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: default with ~ x1 + x2 + x3 on 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.