library (knitr)
true_params <- list (
mu = c (UNIF = 4 , EXP = 4 , GEO = 4 ),
var = c (UNIF = 64 / 12 , EXP = 16 , GEO = 20 )
)
(sim6 <- parameters (~ n, c (5 , 20 , 50 , 100 )) %>%
add_trials (10000 ) %>%
mutate (
samp_unif = map (n, ~ runif (.x, min = 0 , max = 8 )),
samp_exp = map (n, ~ rexp (.x, rate = 1 / 4 )),
samp_geo = map (n, ~ rgeom (.x, prob = 0.2 )),
ybar_unif = map_dbl (samp_unif, mean),
ybar_exp = map_dbl (samp_exp, mean),
ybar_geo = map_dbl (samp_geo, mean),
s2_unif = map_dbl (samp_unif, var),
s2_exp = map_dbl (samp_exp, var),
s2_geo = map_dbl (samp_geo, var),
t_crit = qt (0.975 , df = n - 1 ),
mu_lcl_unif = ybar_unif - t_crit * sqrt (s2_unif / n),
mu_ucl_unif = ybar_unif + t_crit * sqrt (s2_unif / n),
mu_lcl_exp = ybar_exp - t_crit * sqrt (s2_exp / n),
mu_ucl_exp = ybar_exp + t_crit * sqrt (s2_exp / n),
mu_lcl_geo = ybar_geo - t_crit * sqrt (s2_geo / n),
mu_ucl_geo = ybar_geo + t_crit * sqrt (s2_geo / n),
cov_mu_unif = (mu_lcl_unif <= true_params$ mu["UNIF" ]) & (mu_ucl_unif >= true_params$ mu["UNIF" ]),
cov_mu_exp = (mu_lcl_exp <= true_params$ mu["EXP" ]) & (mu_ucl_exp >= true_params$ mu["EXP" ]),
cov_mu_geo = (mu_lcl_geo <= true_params$ mu["GEO" ]) & (mu_ucl_geo >= true_params$ mu["GEO" ]),
chi_lower = qchisq (0.025 , df = n - 1 ),
chi_upper = qchisq (0.975 , df = n - 1 ),
var_lcl_unif = (n - 1 ) * s2_unif / chi_upper,
var_ucl_unif = (n - 1 ) * s2_unif / chi_lower,
var_lcl_exp = (n - 1 ) * s2_exp / chi_upper,
var_ucl_exp = (n - 1 ) * s2_exp / chi_lower,
var_lcl_geo = (n - 1 ) * s2_geo / chi_upper,
var_ucl_geo = (n - 1 ) * s2_geo / chi_lower,
cov_var_unif = (var_lcl_unif <= true_params$ var["UNIF" ]) & (var_ucl_unif >= true_params$ var["UNIF" ]),
cov_var_exp = (var_lcl_exp <= true_params$ var["EXP" ]) & (var_ucl_exp >= true_params$ var["EXP" ]),
cov_var_geo = (var_lcl_geo <= true_params$ var["GEO" ]) & (var_ucl_geo >= true_params$ var["GEO" ])
)
)
# A tibble: 40,000 × 32
n .trial samp_unif samp_exp samp_geo ybar_unif ybar_exp ybar_geo s2_unif
<dbl> <dbl> <list> <list> <list> <dbl> <dbl> <dbl> <dbl>
1 5 1 <dbl [5]> <dbl [5]> <int> 3.64 5.64 1.2 7.92
2 5 2 <dbl [5]> <dbl [5]> <int> 2.70 3.09 3.8 2.35
3 5 3 <dbl [5]> <dbl [5]> <int> 4.02 4.29 4 10.4
4 5 4 <dbl [5]> <dbl [5]> <int> 5.65 2.44 2 2.28
5 5 5 <dbl [5]> <dbl [5]> <int> 1.46 2.59 4.2 4.30
6 5 6 <dbl [5]> <dbl [5]> <int> 5.06 6.22 8 6.11
7 5 7 <dbl [5]> <dbl [5]> <int> 3.81 2.50 3.2 9.11
8 5 8 <dbl [5]> <dbl [5]> <int> 4.12 3.13 4 5.51
9 5 9 <dbl [5]> <dbl [5]> <int> 3.51 2.30 2.4 5.53
10 5 10 <dbl [5]> <dbl [5]> <int> 4.54 2.28 6.4 4.22
# ℹ 39,990 more rows
# ℹ 23 more variables: s2_exp <dbl>, s2_geo <dbl>, t_crit <dbl>,
# mu_lcl_unif <dbl>, mu_ucl_unif <dbl>, mu_lcl_exp <dbl>, mu_ucl_exp <dbl>,
# mu_lcl_geo <dbl>, mu_ucl_geo <dbl>, cov_mu_unif <lgl>, cov_mu_exp <lgl>,
# cov_mu_geo <lgl>, chi_lower <dbl>, chi_upper <dbl>, var_lcl_unif <dbl>,
# var_ucl_unif <dbl>, var_lcl_exp <dbl>, var_ucl_exp <dbl>,
# var_lcl_geo <dbl>, var_ucl_geo <dbl>, cov_var_unif <lgl>, …
table_mu <- sim6 %>%
group_by (n) %>%
summarize (
` Y ~ UNIF(0,8) ` = mean (cov_mu_unif),
` Y ~ EXP(beta = 4) ` = mean (cov_mu_exp),
` Y ~ GEO(p = 0.2) ` = mean (cov_mu_geo)
) %>%
mutate (n = paste0 ("n = " , n)) %>%
bind_rows (
tibble (n = "True mu" , ` Y ~ UNIF(0,8) ` = 4 , ` Y ~ EXP(beta = 4) ` = 4 , ` Y ~ GEO(p = 0.2) ` = 4 ),
.
)
table_var <- sim6 %>%
group_by (n) %>%
summarize (
` Y ~ UNIF(0,8) ` = mean (cov_var_unif),
` Y ~ EXP(beta = 4) ` = mean (cov_var_exp),
` Y ~ GEO(p = 0.2) ` = mean (cov_var_geo)
) %>%
mutate (n = paste0 ("n = " , n)) %>%
bind_rows (
tibble (n = "True sigma^2" , ` Y ~ UNIF(0,8) ` = round (64 / 12 , 2 ), ` Y ~ EXP(beta = 4) ` = 16 , ` Y ~ GEO(p = 0.2) ` = 20 ),
.
)
kable (table_mu, align = "c" , caption = "Coverage of mu" )