IPW (variable selection: SCAD / lasso / MCP)
Inverse probability weighting with a penalised propensity score. The selection formula includes a redundant covariate x3 (which the DGP does not use for selection); each penalty should learn to drop it.
nonprobsvy version: 0.3.0 | R: 4.6.0 | run: 2026-05-24 07:54:24 | commit: 4b2ba9a
| script | penalty | var_method | rep_type | num_boot | alpha | n_reps | bias | rmse | mc_se | mean_se | coverage | ci_width |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ipw_scad | SCAD | analytic | NA | NA | 0.05 | 500 | -0.101 | 0.176 | 0.006 | 0.106 | 0.726 | 0.414 |
| ipw_scad | lasso | analytic | NA | NA | 0.05 | 500 | -0.009 | 0.123 | 0.006 | 0.108 | 0.908 | 0.423 |
| ipw_scad | MCP | analytic | NA | NA | 0.05 | 500 | -0.022 | 0.126 | 0.006 | 0.107 | 0.886 | 0.421 |
| ipw_scad_boot | SCAD | bootstrap | subbootstrap | 50 | 0.05 | 100 | -0.109 | 0.190 | 0.016 | 0.110 | 0.690 | 0.432 |
| ipw_scad_boot | lasso | bootstrap | subbootstrap | 50 | 0.05 | 100 | -0.018 | 0.118 | 0.012 | 0.114 | 0.950 | 0.445 |
| ipw_scad_boot | MCP | bootstrap | subbootstrap | 50 | 0.05 | 100 | -0.027 | 0.121 | 0.012 | 0.113 | 0.930 | 0.443 |
Notes
- DGP:
defaultwith selection formula~ x1 + x2 + x3. True selection uses onlyx1andx2, sox3is the noise variable. - Each replicate runs cross-validation inside
control_sel(penalty = ...), which makes this script slower per replicate than the unpenalised IPW variants. - Coverage differences across SCAD, lasso, and MCP largely come from how aggressively each penalty zeros out the noise coefficient.