Rosenman 2020 - Simulation Results
Summary
In a simulation with observational and RCT units, or strata, and strong unmeasured confounding, every shrinkage estimator beats the RCT-only estimate. Without bias adjustment the gain is small (about 1% risk reduction for , 5% for ) because is very biased; with stabilised IPW the gain is about 25% () and 40% (), close to the oracle at . Common-shrinkage estimators usually beat component-wise ones; Green-Strawderman’s is slightly more robust when covariate distributions differ.
Overview
The paper reports only percent risk-reduction plots (Figs. 1-4), not tables, so the numbers below are the textual claims.
Main Content
Design (Sec. 6.1; patterned on Rosenman et al. 2018)
- , sampled with unit variances and off-diagonals 0 (prob. 1/2) or (prob. 1/4 each), roughly matching the Women’s Health Initiative covariance structure. .
- Unmeasured covariate , (correlated with measured covariates).
- Control outcome , , .
- Treatment effect varies only with the second covariate . Strata from quantiles of its normal distribution: (“few strata”) and (“many”), equal-size or variable-size (first half of strata have about of the units each, second half ) to make homoscedastic vs heteroscedastic. Stratum effects , rescaled so Cohen’s in the observational study (“weak” effect).
- 25 covariate/potential-outcome draws 20 treatment draws = 500 simulations.
- Observational treatment: with (high selection bias; because depends on IPW cannot remove it). RCT: half of each stratum randomly treated.
- Estimators: ; Green-Strawderman ; an oracle convex combination with true . Metric: percent risk reduction vs , risk estimated as average loss with .
Results
| Condition | Observational estimator | Typical risk reduction vs | Notes |
|---|---|---|---|
| Same covariate distributions (Fig. 1) | unadjusted | about 1% (), 5% () | (), () the risk of ; about half the oracle’s gain for few strata; winners: (6 strata, similar size), (6 strata, variable), (20, similar), (20, variable); lags |
| Same distributions (Fig. 2) | SIPW | about 25% (), 40% () | ‘s risk is only about 40% above ‘s () and almost identical (); estimators near oracle at ; best for 6 strata/similar size, best for 20/similar, best in the variable-size cases |
| Different covariate means in (obs. mean vector drawn ) (Fig. 3) | unadjusted | all degrade vs oracle | Green-Strawderman do better: best in first three conditions, best in 20-strata variable-size |
| Different covariate means (Fig. 4) | SIPW | similar to Fig. 2 pattern | modestly ahead of in every condition |
General findings: all proposed estimators beat the RCT-only estimator under every tested condition and also beat the observational-only estimator in risk; estimators with a single shrinkage factor (“1” subscript) tend to outperform component-wise ones; more strata gets closer to the oracle (the asymptotics in ).
Conclusion and extensions (Sec. 7)
Summary: a procedure to derive shrinkage estimators from a URE; two estimators and their corrected versions with testable finite- conditions and asymptotic optimality; sensitivity link via Zhao et al. Extensions suggested: other shrinkage structures (the procedure is general); use auxiliary information to guess which strata are most biased and shrink less there; a thresholding rule that uses alone when it differs from by more than ; weaken the assumptions (well-defined shared strata, equal effects within strata), guidance on choosing strata (many accurate subgroups vs few stable ones; minimum four strata, more if heteroscedastic or weights differ), and robustness measures to violations of Assumption 2.
Examples
# Re-run a miniature version of the simulation logic: oracle vs kappa_1+ vs RCT-only (diagonal case)
import numpy as np
rng = np.random.default_rng(1)
def run(K=20, bias_sd=0.1, sr=0.2, so=0.02, reps=3000):
out = np.zeros((reps, 4))
for r in range(reps):
tau = rng.uniform(0, 1, K); xi = rng.normal(0, bias_sd, K)
tr = tau + rng.normal(0, sr, K); to = tau + xi + rng.normal(0, so, K)
lam = min(sr**2 / max(((to - tr)**2).mean(), 1e-12), 1.0)
k1 = tr - lam*(tr - to)
lam_or = sr**2 / (sr**2 + so**2 + (xi**2).mean()); orc = tr - lam_or*(tr - to)
out[r] = [((tr-tau)**2).mean(), ((to-tau)**2).mean(), ((k1-tau)**2).mean(), ((orc-tau)**2).mean()]
return out.mean(0) # RCT, OBS, kappa_1+, oracle
print(run())Output of this miniature (, bias SD 0.1, 3,000 reps; mean squared error per stratum): RCT-only 0.0399, observational-only 0.0105, 0.0100, oracle 0.0082. The data-driven weight recovers most of the oracle’s gain without knowing .
Connections
- Marketing reading: the SIPW result (bias reduction by propensity adjustment matters more than the choice among shrinkers) matches the practice of grading propensity-adjusted brand-lift estimates against experiments; see Gordon et al 2019 - Observational Lift Estimates by Study and Method.
- Hierarchical Bayesian analogue: Rosenman 2020 - Hierarchical Bias Model Sketch for Few Holdouts.
See Also
Rosenman 2020 - Combining Observational and Experimental Datasets - Overview