DR (variable selection: SCAD / lasso / MCP)
Doubly-robust estimator with penalised nuisance models on both sides: the propensity score and the outcome regression each carry the same penalty and a redundant covariate x3 that the DGP doesn’t actually use.
nonprobsvy version: 0.3.0 | R: 4.6.0 | run: 2026-05-24 08:26:03 | commit: ec5beda
| script | penalty | var_method | rep_type | num_boot | alpha | n_reps | bias | rmse | mc_se | mean_se | coverage | ci_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dr_scad | SCAD | analytic | NA | NA | 0.05 | 500 | 0.008 | 0.084 | 0.004 | 0.111 | 0.986 | 0.434 |
| dr_scad | lasso | analytic | NA | NA | 0.05 | 500 | 0.009 | 0.085 | 0.004 | 0.121 | 0.992 | 0.473 |
| dr_scad | MCP | analytic | NA | NA | 0.05 | 500 | 0.009 | 0.085 | 0.004 | 0.119 | 0.992 | 0.468 |
| dr_scad_boot | SCAD | bootstrap | subbootstrap | 50 | 0.05 | 100 | 0.004 | 0.078 | 0.008 | 0.072 | 0.930 | 0.283 |
| dr_scad_boot | lasso | bootstrap | subbootstrap | 50 | 0.05 | 100 | 0.004 | 0.079 | 0.008 | 0.073 | 0.930 | 0.286 |
| dr_scad_boot | MCP | bootstrap | subbootstrap | 50 | 0.05 | 100 | 0.004 | 0.079 | 0.008 | 0.072 | 0.930 | 0.283 |
Notes
- DGP:
defaultwith~ x1 + x2 + x3on both selection and outcome. - Like
dr_glm, the analytical SE here is conservative — over-coverage at the 5% level is the expected pattern. Coverage typically settles closer to nominal under bootstrap. - Both penalised models run cross-validation inside each replicate, which makes this script slower per replicate than the unpenalised DR variant.