## graphics library(tidyverse) theme_set(theme_bw() + theme(panel.spacing = grid::unit(0, "lines"))) library(ggh4x) ## for nested facets
tables are best suited for looking up specific information, and graphs are better for perceiving trends and making comparisons and predictions
dd <- read_table("../data/wei_tab5.5.txt") head(dd)
## # A tibble: 6 × 11 ## dataset r type MGHD.ERR MGHD.ARI MST.ERR MST.ARI `MI/MGHD.ERR` ## <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 sim1 0.05 est 0.0608 0.774 0.0688 0.771 0.121 ## 2 sim1 0.05 sd 0.0292 0.0925 0.0557 0.0998 0.0302 ## 3 sim1 0.1 est 0.0578 0.782 0.277 0.456 0.188 ## 4 sim1 0.1 sd 0.0116 0.0412 0.0895 0.215 0.0392 ## 5 sim1 0.2 est 0.0674 0.752 0.231 0.562 0.311 ## 6 sim1 0.2 sd 0.0335 0.108 0.0604 0.105 0.0552 ## # … with 3 more variables: MI/MGHD.ARI <dbl>, MI/MST.ERR <dbl>, ## # MI/MST.ARI <dbl>
dd2 <- (dd %>% pivot_longer(names_to = "model", values_to = "val", cols = -c(dataset, r, type)) %>% separate(model, into = c("model", "stat"), sep = "\\.") ## est + sd in a single row %>% pivot_wider(names_from = type, values_from = val) ) head(dd2, 4)
## # A tibble: 4 × 6 ## dataset r model stat est sd ## <chr> <dbl> <chr> <chr> <dbl> <dbl> ## 1 sim1 0.05 MGHD ERR 0.0608 0.0292 ## 2 sim1 0.05 MGHD ARI 0.774 0.0925 ## 3 sim1 0.05 MST ERR 0.0688 0.0557 ## 4 sim1 0.05 MST ARI 0.771 0.0998
simtab <- read.table(header=TRUE,text=" dataset distribution covstruc separation sim1 MGHD VEE well-separated sim2 MGHD VEE overlapping sim3 MST VEI well-separated sim4 MST VEI overlapping sim5 GMM VEE well-separated sim6 GMM VEE overlapping ") dd3 <- dd2 %>% full_join(simtab,by="dataset")
gg1 <- (ggplot(dd3,aes(factor(r),est,colour=model)) + geom_point()+geom_line(aes(group=model)) ## points and lines ## transparent ribbons, +/- 1 SD: + geom_ribbon(aes(ymin=est-sd,ymax=est+sd,group=model,fill=model), colour=NA,alpha=0.3) ## limit y-axis, compress out-of-bounds values + scale_y_continuous(limits=c(0,1),oob=scales::squish) + ggh4x::facet_nested(stat~distribution+covstruc+separation) + labs(x="r (proportion missing)",y="") + scale_colour_brewer(palette="Dark2") + scale_fill_brewer(palette="Dark2"))
geom_rect
)tidyr::pivot_longer
(wide to long format)tabulizer
package (extract_tables
, extract_area
)expand.grid
(or tidyr::expand_grid
) to create hierarchical columnszoo::na.locf
(or tidyr::fill
) to fill in blank spacesGelman, Andrew. 2011. “Why Tables Are Really Much Better Than Graphs.” Journal of Computational and Graphical Statistics 20 (1): 3–7. https://doi.org/10.1198/jcgs.2011.09166.
Gelman, Andrew, Cristian Pasarica, and Rahul Dodhia. 2002. “Let’s Practice What We Preach: Turning Tables into Graphs.” The American Statistician 56 (2): 121–30. http://www.tandfonline.com/doi/abs/10.1198/000313002317572790.
Wei, Yuhong. 2017. “Extending Growth Mixture Models and Handling Missing Values via Mixtures of Non-Elliptical Distributions.” Thesis. https://macsphere.mcmaster.ca/handle/11375/21987.