## 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.