Applies the group-design determinations of the What Works Clearinghouse (WWC) to education impact studies. Computes WWC effect sizes (Hedges' g with the small-sample correction, and the Cox index) and classifies baseline equivalence; classifies overall and differential attrition against the WWC attrition boundary; returns the group-design study rating; and reports the robustness of the baseline-equivalence verdict as a multiverse over the computation choices an analyst could defensibly make differently. Provides report-ready tables and Love plots.
baselinr applies the group-design determinations of the What Works
Clearinghouse (WWC) to education impact
studies, following the conventions of its Procedures and Standards
Handbooks. It computes the WWC effect sizes (Hedges’ g for
continuous covariates, the Cox index for binary ones) and
baseline-equivalence categories, classifies attrition against the
WWC boundary, returns the group-design study rating, and reports how
stable a baseline-equivalence verdict is to defensible computation
choices.
It is a small, education-specific package. For general-purpose covariate
balance assessment, see cobalt;
baselinr focuses on the WWC determinations that education evaluation
reports are required to state.
Install the released version from CRAN:
install.packages("baselinr")
Or the development version from GitHub:
# install.packages("remotes")
remotes::install_github("zl1212-ship-it/baselinr")
library(baselinr)
study <- data.frame(
treat = c(1, 1, 1, 0, 0, 0),
pretest = c(5, 6, 7, 4, 5, 6), # continuous -> Hedges' g
female = c(1, 0, 1, 0, 0, 1) # binary -> Cox index
)
knitr::kable(baseline_equivalence(study, treatment = "treat"), digits = 3)
| covariate | type | n_treatment | n_comparison | mean_treatment | mean_comparison | sd_treatment | sd_comparison | effect_size | wwc_category |
|---|---|---|---|---|---|---|---|---|---|
| pretest | continuous | 3 | 3 | 6.000 | 5.000 | 1.000 | 1.000 | 0.80 | not_satisfied |
| female | binary | 3 | 3 | 0.667 | 0.333 | 0.577 | 0.577 | 0.84 | not_satisfied |
The WWC categories are:
| Effect size (absolute) | Category | Meaning |
|---|---|---|
<= 0.05 |
satisfied |
Baseline equivalence holds. |
0.05–0.25 |
satisfied_with_adjustment |
Holds only if the covariate is adjusted for in the impact model. |
> 0.25 |
not_satisfied |
Cannot establish equivalence. |
love_plot() shows the standardized effect size of every covariate
against the WWC thresholds (requires ggplot2):
love_plot(baseline_equivalence(study, treatment = "treat"))
gt_baseline() renders the same table as a formatted gt table for
reports and Quarto/HTML (requires gt):
gt_baseline(baseline_equivalence(study, treatment = "treat"))
Continuous covariates use Hedges’ g (with the WWC small-sample
correction); binary covariates (numeric 0/1, logical, or two-level
factor) use the WWC Cox index. wwc_summary() collapses the covariate
table into an overall verdict. Beyond baseline equivalence,
attrition() and attrition_boundary() report and classify sample
attrition against the WWC boundary, cluster_correction() computes the
WWC clustering correction for mismatched analyses, wwc_rating()
returns the group-design study rating, and wwc_robustness() reports
whether a baseline-equivalence verdict holds up under defensible
alternative computations. See NEWS.md for the roadmap.
If you use baselinr in your work, please cite it: run
citation("baselinr") in R for the full reference, or use the “Cite
this repository” button on GitHub. If you use baselinr in research or
practice, I would love to hear about it: [email protected].
MIT © Yuxia Liang