@@ -10,31 +10,55 @@ test_that("predict_delay_parameters works with NULL newdata and the latent logno
10
10
)
11
11
pred <- predict_delay_parameters(fit )
12
12
expect_s3_class(pred , " data.table" )
13
- expect_named(pred , c(" index " , " draw " , " mu" , " sigma" , " mean" , " sd" ))
13
+ expect_named(pred , c(" draw " , " index " , " mu" , " sigma" , " mean" , " sd" ))
14
14
expect_true(all(pred $ mean > 0 ))
15
15
expect_true(all(pred $ sd > 0 ))
16
16
expect_equal(length(unique(pred $ index )), nrow(prep_obs ))
17
17
expect_equal(length(unique(pred $ draw )), summary(fit )$ total_ndraws )
18
18
})
19
19
20
- test_that(" predict_delay_parameters accepts newdata arguments" , { # nolint: line_length_linter.
20
+ test_that(" predict_delay_parameters accepts newdata arguments and prediction by sex recovers underlying parameters " , { # nolint: line_length_linter.
21
21
skip_on_cran()
22
22
set.seed(1 )
23
- prep_obs <- as_latent_individual(sim_obs )
24
- fit <- epidist(
25
- data = prep_obs ,
23
+ prep_obs_sex <- as_latent_individual(sim_obs_sex )
24
+ fit_sex <- epidist(
25
+ data = prep_obs_sex ,
26
+ formula = brms :: bf(mu ~ 1 + sex , sigma ~ 1 + sex ),
26
27
seed = 1 ,
27
- silent = 2 ,
28
- output_dir = fs :: dir_create(tempfile())
28
+ silent = 2
29
+ )
30
+ pred_sex <- predict_delay_parameters(fit_sex , prep_obs_sex )
31
+ expect_s3_class(pred_sex , " data.table" )
32
+ expect_named(pred_sex , c(" draw" , " index" , " mu" , " sigma" , " mean" , " sd" ))
33
+ expect_true(all(pred_sex $ mean > 0 ))
34
+ expect_true(all(pred_sex $ sd > 0 ))
35
+ expect_equal(length(unique(pred_sex $ index )), nrow(prep_obs_sex ))
36
+ expect_equal(length(unique(pred_sex $ draw )), summary(fit_sex )$ total_ndraws )
37
+
38
+ pred_sex_summary <- pred_sex | >
39
+ dplyr :: left_join(
40
+ dplyr :: select(data.frame (prep_obs_sex ), index = row_id , sex ),
41
+ by = " index"
42
+ ) | >
43
+ dplyr :: group_by(sex ) | >
44
+ dplyr :: summarise(
45
+ mu = mean(mu ),
46
+ sigma = mean(sigma )
47
+ )
48
+
49
+ # Correct predictions of M
50
+ expect_equal(
51
+ as.numeric(pred_sex_summary [1 , c(" mu" , " sigma" )]),
52
+ c(meanlog_m , sdlog_m ),
53
+ tolerance = 0.1
54
+ )
55
+
56
+ # Correction predictions of F
57
+ expect_equal(
58
+ as.numeric(pred_sex_summary [2 , c(" mu" , " sigma" )]),
59
+ c(meanlog_f , sdlog_f ),
60
+ tolerance = 0.1
29
61
)
30
- n <- 5
31
- pred <- predict_delay_parameters(fit , newdata = prep_obs [1 : n , ])
32
- expect_s3_class(pred , " data.table" )
33
- expect_named(pred , c(" index" , " draw" , " mu" , " sigma" , " mean" , " sd" ))
34
- expect_true(all(pred $ mean > 0 ))
35
- expect_true(all(pred $ sd > 0 ))
36
- expect_equal(length(unique(pred $ index )), 5 )
37
- expect_equal(length(unique(pred $ draw )), summary(fit )$ total_ndraws )
38
62
})
39
63
40
64
test_that(" add_mean_sd.lognormal_samples works with simulated lognormal distribution parameter data" , { # nolint: line_length_linter.
0 commit comments