workflowr
Last updated: 2020-03-31
Checks: 7 0
Knit directory: mcfa-para-est/
This reproducible R Markdown analysis was created with workflowr (version 1.5.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20190614)
was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility. The version displayed above was the version of the Git repository at the time these results were generated. Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: data/compiled_para_results.txt
Ignored: data/results_bias_est.csv
Ignored: manuscript/
Ignored: output/fact-cov-converge-largeN.pdf
Ignored: output/fact-cov-converge-medN.pdf
Ignored: output/fact-cov-converge-smallN.pdf
Ignored: output/loading-converge-largeN.pdf
Ignored: output/loading-converge-medN.pdf
Ignored: output/loading-converge-smallN.pdf
Ignored: sera-presentation/
Untracked files:
Untracked: analysis/ml-cfa-parameter-bias-factor-loadings.Rmd
Untracked: analysis/ml-cfa-parameter-bias-level1-factor-covariances.Rmd
Untracked: analysis/ml-cfa-parameter-bias-level2-factor-covariances.Rmd
Untracked: analysis/ml-cfa-parameter-bias-level2-factor-variances.Rmd
Untracked: analysis/ml-cfa-parameter-bias-overview.Rmd
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
There are no past versions. Publish this analysis with wflow_publish()
to start tracking its development.
rm(list=ls())
source(paste0(getwd(),"/code/load_packages.R"))
source(paste0(getwd(),"/code/get_data.R"))
sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] xtable_1.8-4 kableExtra_1.1.0 MplusAutomation_0.7-3
[4] data.table_1.12.6 patchwork_1.0.0 forcats_0.4.0
[7] stringr_1.4.0 dplyr_0.8.3 purrr_0.3.3
[10] readr_1.3.1 tidyr_1.0.0 tibble_2.1.3
[13] ggplot2_3.2.1 tidyverse_1.3.0
loaded via a namespace (and not attached):
[1] Rcpp_1.0.3 lubridate_1.7.4 lattice_0.20-38 assertthat_0.2.1
[5] zeallot_0.1.0 rprojroot_1.3-2 digest_0.6.23 R6_2.4.1
[9] cellranger_1.1.0 plyr_1.8.4 backports_1.1.5 reprex_0.3.0
[13] evaluate_0.14 coda_0.19-3 httr_1.4.1 pillar_1.4.2
[17] rlang_0.4.2 lazyeval_0.2.2 readxl_1.3.1 rstudioapi_0.10
[21] texreg_1.36.23 rmarkdown_1.18 gsubfn_0.7 proto_1.0.0
[25] webshot_0.5.2 pander_0.6.3 munsell_0.5.0 broom_0.5.2
[29] compiler_3.6.1 httpuv_1.5.2 modelr_0.1.5 xfun_0.11
[33] pkgconfig_2.0.3 htmltools_0.4.0 tidyselect_0.2.5 workflowr_1.5.0
[37] viridisLite_0.3.0 crayon_1.3.4 dbplyr_1.4.2 withr_2.1.2
[41] later_1.0.0 grid_3.6.1 nlme_3.1-140 jsonlite_1.6
[45] gtable_0.3.0 lifecycle_0.1.0 DBI_1.0.0 git2r_0.26.1
[49] magrittr_1.5 scales_1.1.0 cli_1.1.0 stringi_1.4.3
[53] fs_1.3.1 promises_1.1.0 xml2_1.2.2 generics_0.0.2
[57] vctrs_0.2.0 boot_1.3-22 tools_3.6.1 glue_1.3.1
[61] hms_0.5.2 parallel_3.6.1 yaml_2.2.0 colorspace_1.4-1
[65] rvest_0.3.5 knitr_1.26 haven_2.2.0
Convergence
Model converge is when …
Single Condition Breakdown
Estimation Method
c <- sim_results %>%
group_by(Estimator) %>%
summarise(Converge=mean(Converge))
colnames(c)<- c("Estimation Method", "Convergence")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
Estimation Method
Convergence
MLR
0.9998
ULSMV
0.9990
WLSMV
0.9998
Level-2 Sample Size
c <- sim_results %>%
group_by(ss_l2) %>%
summarise(Converge=mean(Converge))
colnames(c)<- c("Level-2 N", "Convergence")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
Level-2 N
Convergence
30
0.9984
50
0.9999
100
0.9999
200
0.9999
Level-1 Sample Size
c <- sim_results %>%
group_by(ss_l1) %>%
summarise(Converge=mean(Converge))
colnames(c)<- c("Level-1 N", "Convergence")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
Level-1 N
Convergence
5
0.9989
10
0.9998
30
0.9998
ICC Observed Variables
c <- sim_results %>%
group_by(icc_ov) %>%
summarise(Converge=mean(Converge))
colnames(c)<- c("ICC Observed Variable", "Convergence")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
ICC Observed Variable
Convergence
0.1
0.9998
0.3
0.9998
0.5
0.9989
ICC Latent Variables
c <- sim_results %>%
group_by(icc_lv) %>%
summarise(Converge=mean(Converge))
colnames(c)<- c("ICC Latent Variable", "Convergence")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
ICC Latent Variable
Convergence
0.1
0.9995
0.5
0.9995
Convergence by Estimation Method and Sample Sizes
Estimation Method & Level-2 Sample Size
c <- sim_results %>%
group_by(Estimator, ss_l2) %>%
summarise(Converge=mean(Converge))
c1 <- cbind(c[ c$Estimator == 'MLR', c( 'ss_l2', 'Converge')],
c[ c$Estimator == 'ULSMV', 'Converge'],
c[ c$Estimator == 'WLSMV', 'Converge'])
colnames(c1) <- c('Level-2 N', 'MLR', 'ULSMV', 'WLSMV')
kable(c1, format='html', digits=4) %>%
kable_styling(full_width = T) %>%
add_header_above(c(' '= 1, 'Estimation Method'=3))
Estimation Method
Level-2 N
MLR
ULSMV
WLSMV
30
1.0000
0.9961
0.9992
50
0.9999
0.9998
0.9999
100
0.9998
1.0000
1.0000
200
0.9996
1.0000
1.0000
Estimation Method & Level-1 Sample Size
c <- sim_results %>%
group_by(Estimator, ss_l1) %>%
summarise(Converge=mean(Converge))
c1 <- cbind(c[ c$Estimator == 'MLR', c( 'ss_l1', 'Converge')],
c[ c$Estimator == 'ULSMV', 'Converge'],
c[ c$Estimator == 'WLSMV', 'Converge'])
colnames(c1) <- c('Level-1 N', 'MLR', 'ULSMV', 'WLSMV')
kable(c1, format='html', digits=4) %>%
kable_styling(full_width = T) %>%
add_header_above(c(' '= 1, 'Estimation Method'=3))
Estimation Method
Level-1 N
MLR
ULSMV
WLSMV
5
0.9999
0.9973
0.9994
10
0.9999
0.9997
0.9999
30
0.9996
0.9999
1.0000
Estimation Method, Level-2 Sample Size & Level-1 Sample Size
c <- sim_results %>%
group_by(Estimator, ss_l1, ss_l2) %>%
summarise(Converge=mean(Converge))
c1 <- cbind(c[ c$Estimator == 'MLR', c( 'ss_l1', 'ss_l2', 'Converge')],
c[ c$Estimator == 'ULSMV', 'Converge'],
c[ c$Estimator == 'WLSMV', 'Converge'])
colnames(c1) <- c('Level-1 N', 'Level-2 N', 'MLR', 'ULSMV', 'WLSMV')
kable(c1, format='html', digits=4) %>%
kable_styling(full_width = T) %>%
add_header_above(c(' '= 2, 'Estimation Method'=3))
Estimation Method
Level-1 N
Level-2 N
MLR
ULSMV
WLSMV
5
30
1.0000
0.9897
0.9977
5
50
1.0000
0.9997
1.0000
5
100
1.0000
1.0000
1.0000
5
200
0.9997
1.0000
1.0000
10
30
1.0000
0.9990
1.0000
10
50
1.0000
0.9997
0.9997
10
100
1.0000
1.0000
1.0000
10
200
0.9997
1.0000
1.0000
30
30
1.0000
0.9997
1.0000
30
50
0.9997
1.0000
1.0000
30
100
0.9993
1.0000
1.0000
30
200
0.9993
1.0000
1.0000
Across all conditions
c <- sim_results %>%
group_by(Estimator, ss_l1, ss_l2, icc_ov, icc_lv) %>%
summarise(Converge=mean(Converge))
c1 <- cbind(c[ c$Estimator == 'MLR', c('ss_l2', 'ss_l1', 'icc_ov', 'icc_lv', 'Converge')],
c[ c$Estimator == 'ULSMV', 'Converge'],
c[ c$Estimator == 'WLSMV', 'Converge'])
colnames(c1) <- c('Level-2 N', 'Level-1 N', 'ICC-OV', 'ICC-LV', 'MLR', 'ULSMV', 'WLSMV')
kable(c1, format='html', digits=4) %>%
kable_styling(full_width = T) %>%
add_header_above(c(' '= 4, 'Estimation Method'=3))
Estimation Method
Level-2 N
Level-1 N
ICC-OV
ICC-LV
MLR
ULSMV
WLSMV
30
5
0.1
0.1
1.000
0.998
0.992
30
5
0.1
0.5
1.000
1.000
1.000
30
5
0.3
0.1
1.000
0.998
1.000
30
5
0.3
0.5
1.000
1.000
1.000
30
5
0.5
0.1
1.000
0.966
0.998
30
5
0.5
0.5
1.000
0.976
0.996
50
5
0.1
0.1
1.000
1.000
1.000
50
5
0.1
0.5
1.000
1.000
1.000
50
5
0.3
0.1
1.000
1.000
1.000
50
5
0.3
0.5
1.000
1.000
1.000
50
5
0.5
0.1
1.000
0.998
1.000
50
5
0.5
0.5
1.000
1.000
1.000
100
5
0.1
0.1
1.000
1.000
1.000
100
5
0.1
0.5
1.000
1.000
1.000
100
5
0.3
0.1
1.000
1.000
1.000
100
5
0.3
0.5
1.000
1.000
1.000
100
5
0.5
0.1
1.000
1.000
1.000
100
5
0.5
0.5
1.000
1.000
1.000
200
5
0.1
0.1
1.000
1.000
1.000
200
5
0.1
0.5
1.000
1.000
1.000
200
5
0.3
0.1
1.000
1.000
1.000
200
5
0.3
0.5
1.000
1.000
1.000
200
5
0.5
0.1
1.000
1.000
1.000
200
5
0.5
0.5
0.998
1.000
1.000
30
10
0.1
0.1
1.000
1.000
1.000
30
10
0.1
0.5
1.000
1.000
1.000
30
10
0.3
0.1
1.000
1.000
1.000
30
10
0.3
0.5
1.000
1.000
1.000
30
10
0.5
0.1
1.000
0.998
1.000
30
10
0.5
0.5
1.000
0.996
1.000
50
10
0.1
0.1
1.000
1.000
1.000
50
10
0.1
0.5
1.000
0.998
0.998
50
10
0.3
0.1
1.000
1.000
1.000
50
10
0.3
0.5
1.000
1.000
1.000
50
10
0.5
0.1
1.000
1.000
1.000
50
10
0.5
0.5
1.000
1.000
1.000
100
10
0.1
0.1
1.000
1.000
1.000
100
10
0.1
0.5
1.000
1.000
1.000
100
10
0.3
0.1
1.000
1.000
1.000
100
10
0.3
0.5
1.000
1.000
1.000
100
10
0.5
0.1
1.000
1.000
1.000
100
10
0.5
0.5
1.000
1.000
1.000
200
10
0.1
0.1
1.000
1.000
1.000
200
10
0.1
0.5
1.000
1.000
1.000
200
10
0.3
0.1
0.998
1.000
1.000
200
10
0.3
0.5
1.000
1.000
1.000
200
10
0.5
0.1
1.000
1.000
1.000
200
10
0.5
0.5
1.000
1.000
1.000
30
30
0.1
0.1
1.000
1.000
1.000
30
30
0.1
0.5
1.000
1.000
1.000
30
30
0.3
0.1
1.000
1.000
1.000
30
30
0.3
0.5
1.000
1.000
1.000
30
30
0.5
0.1
1.000
1.000
1.000
30
30
0.5
0.5
1.000
0.998
1.000
50
30
0.1
0.1
1.000
1.000
1.000
50
30
0.1
0.5
1.000
1.000
1.000
50
30
0.3
0.1
1.000
1.000
1.000
50
30
0.3
0.5
0.998
1.000
1.000
50
30
0.5
0.1
1.000
1.000
1.000
50
30
0.5
0.5
1.000
1.000
1.000
100
30
0.1
0.1
1.000
1.000
1.000
100
30
0.1
0.5
1.000
1.000
1.000
100
30
0.3
0.1
1.000
1.000
1.000
100
30
0.3
0.5
0.996
1.000
1.000
100
30
0.5
0.1
1.000
1.000
1.000
100
30
0.5
0.5
1.000
1.000
1.000
200
30
0.1
0.1
1.000
1.000
1.000
200
30
0.1
0.5
1.000
1.000
1.000
200
30
0.3
0.1
1.000
1.000
1.000
200
30
0.3
0.5
0.996
1.000
1.000
200
30
0.5
0.1
1.000
1.000
1.000
200
30
0.5
0.5
1.000
1.000
1.000
Admissibility Summary
Admissibility rates are first subsetted to the converged models. So, the rates may seem misleading and not directly relatable across all conditions and models due to differences in convergence rates.
c.sim_results <- filter(sim_results, Converge == 1)
Single Condition Breakdown
Estimation Method
c <- c.sim_results %>%
group_by(Estimator) %>%
summarise(Admissible=mean(Admissible))
colnames(c)<- c("Estimation Method", "Admissible")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
Estimation Method
Admissible
MLR
0.8340
ULSMV
0.7651
WLSMV
0.7217
Level-2 Sample Size
c <- c.sim_results %>%
group_by(ss_l2) %>%
summarise(Admissible=mean(Admissible))
colnames(c)<- c("Level-2 N", "Admissible")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
Level-2 N
Admissible
30
0.5993
50
0.7160
100
0.8424
200
0.9364
Level-1 Sample Size
c <- c.sim_results %>%
group_by(ss_l1) %>%
summarise(Admissible=mean(Admissible))
colnames(c)<- c("Level-1 N", "Admissible")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
Level-1 N
Admissible
5
0.6524
10
0.7837
30
0.8846
ICC Observed Variables
c <- c.sim_results %>%
group_by(icc_ov) %>%
summarise(Admissible=mean(Admissible))
colnames(c)<- c("ICC Observed Variable", "Admissible")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
ICC Observed Variable
Admissible
0.1
0.6774
0.3
0.8554
0.5
0.7881
ICC Latent Variables
c <- c.sim_results %>%
group_by(icc_lv) %>%
summarise(Admissible=mean(Admissible))
colnames(c)<- c("ICC Latent Variable", "Admissible")
kable(c, format='html', digits=4) %>%
kable_styling(full_width = T)
ICC Latent Variable
Admissible
0.1
0.6953
0.5
0.8520
Admissible Replications by Estimation Method and Sample Sizes
Estimation Method & Level-2 Sample Size
c <- c.sim_results %>%
group_by(Estimator, ss_l2) %>%
summarise(Admissible=mean(Admissible))
c1 <- cbind(c[ c$Estimator == 'MLR', c( 'ss_l2', 'Admissible')],
c[ c$Estimator == 'ULSMV', 'Admissible'],
c[ c$Estimator == 'WLSMV', 'Admissible'])
colnames(c1) <- c('Level-2 N', 'MLR', 'ULSMV', 'WLSMV')
kable(c1, format='html', digits=4) %>%
kable_styling(full_width = T) %>%
add_header_above(c(' '= 1, 'Estimation Method'=3))
Estimation Method
Level-2 N
MLR
ULSMV
WLSMV
30
0.6994
0.5809
0.5175
50
0.7916
0.7064
0.6501
100
0.8906
0.8366
0.8000
200
0.9543
0.9358
0.9192
Estimation Method & Level-1 Sample Size
c <- c.sim_results %>%
group_by(Estimator, ss_l1) %>%
summarise(Admissible=mean(Admissible))
c1 <- cbind(c[ c$Estimator == 'MLR', c( 'ss_l1', 'Admissible')],
c[ c$Estimator == 'ULSMV', 'Admissible'],
c[ c$Estimator == 'WLSMV', 'Admissible'])
colnames(c1) <- c('Level-1 N', 'MLR', 'ULSMV', 'WLSMV')
kable(c1, format='html', digits=4) %>%
kable_styling(full_width = T) %>%
add_header_above(c(' '= 1, 'Estimation Method'=3))
Estimation Method
Level-1 N
MLR
ULSMV
WLSMV
5
0.7455
0.6267
0.5849
10
0.8409
0.7780
0.7321
30
0.9156
0.8902
0.8481
Estimation Method, Level-2 Sample Size & Level-1 Sample Size
c <- c.sim_results %>%
group_by(Estimator, ss_l1, ss_l2) %>%
summarise(Admissible=mean(Admissible))
c1 <- cbind(c[ c$Estimator == 'MLR', c( 'ss_l1', 'ss_l2', 'Admissible')],
c[ c$Estimator == 'ULSMV', 'Admissible'],
c[ c$Estimator == 'WLSMV', 'Admissible'])
colnames(c1) <- c('Level-1 N', 'Level-2 N', 'MLR', 'ULSMV', 'WLSMV')
kable(c1, format='html', digits=4) %>%
kable_styling(full_width = T) %>%
add_header_above(c(' '= 2, 'Estimation Method'=3))
Estimation Method
Level-1 N
Level-2 N
MLR
ULSMV
WLSMV
5
30
0.5753
0.4052
0.3558
5
50
0.6773
0.5318
0.4700
5
100
0.8057
0.6920
0.6647
5
200
0.9236
0.8753
0.8487
10
30
0.6847
0.5736
0.5080
10
50
0.7957
0.7076
0.6606
10
100
0.9200
0.8730
0.8243
10
200
0.9633
0.9577
0.9357
30
30
0.8383
0.7623
0.6883
30
50
0.9020
0.8797
0.8197
30
100
0.9463
0.9447
0.9110
30
200
0.9760
0.9743
0.9733
Admissible Replications for individual conditions
c <- c.sim_results %>%
group_by(Estimator, ss_l1, ss_l2, icc_ov, icc_lv) %>%
summarise(Admissible=mean(Admissible))
c1 <- cbind(c[ c$Estimator == 'MLR', c('ss_l2', 'ss_l1', 'icc_ov', 'icc_lv', 'Admissible')],
c[ c$Estimator == 'ULSMV', 'Admissible'],
c[ c$Estimator == 'WLSMV', 'Admissible'])
colnames(c1) <- c('Level-2 N', 'Level-1 N', 'ICC-OV', 'ICC-LV', 'MLR', 'ULSMV', 'WLSMV')
kable(c1, format='html', digits=4) %>%
kable_styling(full_width = T) %>%
add_header_above(c(' '= 4, 'Estimation Method'=3))
Estimation Method
Level-2 N
Level-1 N
ICC-OV
ICC-LV
MLR
ULSMV
WLSMV
30
5
0.1
0.1
0.522
0.0301
0.0484
30
5
0.1
0.5
0.372
0.0360
0.0240
30
5
0.3
0.1
0.468
0.3567
0.2500
30
5
0.3
0.5
0.792
0.7300
0.6740
30
5
0.5
0.1
0.360
0.3354
0.2244
30
5
0.5
0.5
0.938
0.9529
0.9137
50
5
0.1
0.1
0.560
0.1380
0.1460
50
5
0.1
0.5
0.500
0.0920
0.0520
50
5
0.3
0.1
0.548
0.5420
0.4040
50
5
0.3
0.5
0.972
0.9380
0.8680
50
5
0.5
0.1
0.488
0.4830
0.3580
50
5
0.5
0.5
0.996
0.9980
0.9920
100
5
0.1
0.1
0.752
0.4940
0.5560
100
5
0.1
0.5
0.726
0.3140
0.2380
100
5
0.3
0.1
0.760
0.7580
0.6820
100
5
0.3
0.5
0.996
0.9900
0.9820
100
5
0.5
0.1
0.600
0.5960
0.5320
100
5
0.5
0.5
1.000
1.0000
0.9980
200
5
0.1
0.1
0.952
0.8900
0.9000
200
5
0.1
0.5
0.956
0.7280
0.6140
200
5
0.3
0.1
0.890
0.8800
0.8620
200
5
0.3
0.5
1.000
1.0000
1.0000
200
5
0.5
0.1
0.744
0.7540
0.7160
200
5
0.5
0.5
1.000
1.0000
1.0000
30
10
0.1
0.1
0.608
0.3520
0.3640
30
10
0.1
0.5
0.494
0.1340
0.0800
30
10
0.3
0.1
0.584
0.5740
0.4180
30
10
0.3
0.5
0.988
0.9520
0.8540
30
10
0.5
0.1
0.446
0.4489
0.3580
30
10
0.5
0.5
0.988
0.9819
0.9740
50
10
0.1
0.1
0.832
0.6680
0.7260
50
10
0.1
0.5
0.762
0.3868
0.2184
50
10
0.3
0.1
0.698
0.6980
0.6180
50
10
0.3
0.5
1.000
0.9940
0.9760
50
10
0.5
0.1
0.482
0.4980
0.4240
50
10
0.5
0.5
1.000
1.0000
1.0000
100
10
0.1
0.1
0.970
0.9320
0.9460
100
10
0.1
0.5
0.988
0.7540
0.5180
100
10
0.3
0.1
0.890
0.8840
0.8460
100
10
0.3
0.5
1.000
1.0000
0.9980
100
10
0.5
0.1
0.672
0.6680
0.6380
100
10
0.5
0.5
1.000
1.0000
1.0000
200
10
0.1
0.1
1.000
0.9980
1.0000
200
10
0.1
0.5
1.000
0.9780
0.8560
200
10
0.3
0.1
0.984
0.9800
0.9800
200
10
0.3
0.5
1.000
1.0000
1.0000
200
10
0.5
0.1
0.796
0.7900
0.7780
200
10
0.5
0.5
1.000
1.0000
1.0000
30
30
0.1
0.1
0.950
0.9020
0.8900
30
30
0.1
0.5
0.938
0.5180
0.2340
30
30
0.3
0.1
0.688
0.6900
0.6360
30
30
0.3
0.5
1.000
0.9900
0.9500
30
30
0.5
0.1
0.460
0.4820
0.4320
30
30
0.5
0.5
0.994
0.9920
0.9880
50
30
0.1
0.1
0.996
0.9880
0.9900
50
30
0.1
0.5
0.994
0.8440
0.5520
50
30
0.3
0.1
0.830
0.8480
0.8160
50
30
0.3
0.5
1.000
1.0000
1.0000
50
30
0.5
0.1
0.592
0.5980
0.5600
50
30
0.5
0.5
1.000
1.0000
1.0000
100
30
0.1
0.1
1.000
1.0000
1.0000
100
30
0.1
0.5
1.000
0.9700
0.8120
100
30
0.3
0.1
0.962
0.9600
0.9620
100
30
0.3
0.5
1.000
1.0000
1.0000
100
30
0.5
0.1
0.716
0.7380
0.6920
100
30
0.5
0.5
1.000
1.0000
1.0000
200
30
0.1
0.1
1.000
1.0000
1.0000
200
30
0.1
0.5
1.000
1.0000
0.9820
200
30
0.3
0.1
0.998
1.0000
0.9980
200
30
0.3
0.5
1.000
1.0000
1.0000
200
30
0.5
0.1
0.858
0.8460
0.8600
200
30
0.5
0.5
1.000
1.0000
1.0000
Manuscript Table
c <- sim_results %>%
group_by(Estimator, ss_l2) %>%
mutate(A = ifelse(is.na(Admissible), 0, Admissible)) %>%
summarise(Admissible=mean(A, na.rm = T))
c1 <- cbind(c[ c$Estimator == 'MLR', c( 'ss_l2','Admissible')],
c[ c$Estimator == 'ULSMV', 'Admissible'],
c[ c$Estimator == 'WLSMV', 'Admissible'])
colnames(c1) <- c('Level-2 N_2', 'MLR', 'ULSMV', 'WLSMV')
kable(c1, format='html', digits=3) %>%
kable_styling(full_width = T)
Level-2 N_2
MLR
ULSMV
WLSMV
30
0.699
0.579
0.517
50
0.792
0.706
0.650
100
0.890
0.837
0.800
200
0.954
0.936
0.919
print(xtable(c1, digits = 3,align=c("l", "l", "r", "r", "r"),
display=c("s", "d", "f", "f", "f"),
caption="Rates of admissible replications",
label="tb:admiss"),
booktabs = T, include.rownames = F,
caption.placement = "top")
% latex table generated in R 3.6.1 by xtable 1.8-4 package
% Tue Mar 31 15:55:49 2020
\begin{table}[ht]
\centering
\caption{Rates of admissible replications}
\label{tb:admiss}
\begin{tabular}{lrrr}
\toprule
Level-2 N\_2 & MLR & ULSMV & WLSMV \\
\midrule
30 & 0.699 & 0.579 & 0.517 \\
50 & 0.792 & 0.706 & 0.650 \\
100 & 0.890 & 0.837 & 0.800 \\
200 & 0.954 & 0.936 & 0.919 \\
\bottomrule
\end{tabular}
\end{table}
Session information
sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] xtable_1.8-4 kableExtra_1.1.0 MplusAutomation_0.7-3
[4] data.table_1.12.6 patchwork_1.0.0 forcats_0.4.0
[7] stringr_1.4.0 dplyr_0.8.3 purrr_0.3.3
[10] readr_1.3.1 tidyr_1.0.0 tibble_2.1.3
[13] ggplot2_3.2.1 tidyverse_1.3.0
loaded via a namespace (and not attached):
[1] Rcpp_1.0.3 lubridate_1.7.4 lattice_0.20-38 assertthat_0.2.1
[5] zeallot_0.1.0 rprojroot_1.3-2 digest_0.6.23 R6_2.4.1
[9] cellranger_1.1.0 plyr_1.8.4 backports_1.1.5 reprex_0.3.0
[13] evaluate_0.14 coda_0.19-3 highr_0.8 httr_1.4.1
[17] pillar_1.4.2 rlang_0.4.2 lazyeval_0.2.2 readxl_1.3.1
[21] rstudioapi_0.10 texreg_1.36.23 rmarkdown_1.18 gsubfn_0.7
[25] proto_1.0.0 webshot_0.5.2 pander_0.6.3 munsell_0.5.0
[29] broom_0.5.2 compiler_3.6.1 httpuv_1.5.2 modelr_0.1.5
[33] xfun_0.11 pkgconfig_2.0.3 htmltools_0.4.0 tidyselect_0.2.5
[37] workflowr_1.5.0 viridisLite_0.3.0 crayon_1.3.4 dbplyr_1.4.2
[41] withr_2.1.2 later_1.0.0 grid_3.6.1 nlme_3.1-140
[45] jsonlite_1.6 gtable_0.3.0 lifecycle_0.1.0 DBI_1.0.0
[49] git2r_0.26.1 magrittr_1.5 scales_1.1.0 cli_1.1.0
[53] stringi_1.4.3 fs_1.3.1 promises_1.1.0 xml2_1.2.2
[57] generics_0.0.2 vctrs_0.2.0 boot_1.3-22 tools_3.6.1
[61] glue_1.3.1 hms_0.5.2 parallel_3.6.1 yaml_2.2.0
[65] colorspace_1.4-1 rvest_0.3.5 knitr_1.26 haven_2.2.0