Fit a naive meta-analysis model (no borrowing across designs)
Source:R/meta_did.R
meta_did_naive.RdDeprecated. meta_did_naive() is deprecated in favour of meta_did_general() with
time_trend = "fixed_zero" and baseline_imbalance = "fixed_zero",
which provides the same behaviour with more explicit control.
This function imposes the "naive" assumptions typically made when analysing each design in isolation:
RCT: Baseline means are assumed equal across treatment and control groups (randomisation assumption), so the baseline difference \(\gamma\) is fixed to zero.
Pre-post: The time trend \(\beta\) is fixed to zero, so the pre-post change is attributed entirely to the treatment effect.
Usage
meta_did_naive(
summary_data = NULL,
individual_data = NULL,
normalise_by_baseline = TRUE,
robust_heterogeneity = FALSE,
design_effects = FALSE,
hierarchical_rho = TRUE,
covariates = NULL,
center_covariates = TRUE,
priors = set_priors(),
method = c("sample", "optimize"),
chains = 4L,
iter_warmup = 1000L,
iter_sampling = 1000L,
seed = NULL,
allow_no_did = FALSE,
...
)Arguments
- summary_data
A data frame with one row per study containing summary statistics. Must include columns
study_idanddesign. Seevalidate_summary_data()for the full column specification per design. Valid designs:"did","did_change","rct","pp".- individual_data
A data frame in long format with one row per observation. Must include columns
study_id,design,group,time, andvalue. Valid designs:"did","rct","pp". Nostudy_idmay appear in bothsummary_dataandindividual_data.- normalise_by_baseline
Logical. If
TRUE(default), all means and SDs are divided by each study's pre-treatment control mean (or the grand mean for change-only studies), placing outcomes on a common fractional scale.- robust_heterogeneity
Logical. If
TRUE, study-level treatment effects are drawn from a Student-t distribution rather than a normal, providing robustness to outlier studies. The degrees-of-freedom parameter is estimated with the prior specified inpriors$nu.- design_effects
Logical. If
TRUE, additive offsets on the population treatment effect mean are estimated for RCT and Pre-Post studies relative to DiD (the reference). Useful for testing whether designs yield systematically different effect estimates.- hierarchical_rho
Logical. If
TRUE(default), the pre-post correlation is modelled hierarchically across studies. Studies with a reported correlation inform the population distribution; studies without one have their correlation imputed.- covariates
An optional one-sided formula specifying study-level covariates for meta-regression on the treatment effect (e.g.,
~ dose + year). The named columns must be numeric and present in bothsummary_dataandindividual_data(whichever are provided). For individual-level data, covariate values must be constant within each study. DefaultNULL(no meta-regression).- center_covariates
Logical. If
TRUE(default), covariates are mean-centered across all studies before fitting. This ensures thattreatment_effect_meanis the population treatment effect at the average covariate values. Set toFALSEto use raw covariate values, in which casetreatment_effect_meanis the effect when all covariates equal zero. The covariate coefficients (beta_cov) have the same interpretation regardless of centering: the change in expected treatment effect per unit increase in the covariate.- priors
A
did_priorsobject fromset_priors(). Controls the prior distributions on all population-level parameters.- method
Inference method.
"sample"(default) runs full MCMC via Stan's HMC-NUTS sampler and returns a posterior distribution."optimize"finds the maximum a posteriori (MAP) estimate via L-BFGS and is substantially faster, but returns only a point estimate with no uncertainty quantification.- chains
Number of MCMC chains. Ignored when
method = "optimize". Default4.- iter_warmup
Number of warmup iterations per chain. Ignored when
method = "optimize". Default1000.- iter_sampling
Number of sampling iterations per chain. Ignored when
method = "optimize". Default1000.- seed
Integer random seed for reproducibility. Default
NULL.- allow_no_did
Logical. If
FALSE(default),meta_did()will stop with an error when no DiD studies are present, because the treatment effect is not identified from the data without the double-difference structure. Set toTRUEto override this check if you understand the limitation (the posterior will be prior-driven).- ...
Additional arguments passed to the underlying CmdStanModel method:
$sample()whenmethod = "sample"(e.g.,parallel_chains,adapt_delta) or$optimize()whenmethod = "optimize"(e.g.,algorithm,iter).
Value
A meta_did_fit object, identical in structure to the return
value of meta_did().
See also
meta_did_general() for independent control over assumptions.