cleverly.SDRMethod#
- class cleverly.SDRMethod(models: ModelSpec = ModelSpec(outcome_learner=None, treatment_learner=None, missingness_learner=None, intermediate_learner=None, pseudo_learner=None, censoring_learner=None, density_bins=None, ratio='density', screen_treatment=False, screen_threshold=0.1, min_retain=None, outcome_by_arm=False, survival_model='iterated_mean'), cross_fitting: CrossFitting = CrossFitting(enabled=True, n_folds=10, learner_folds=5, repeats=1, stratify_by='none', targeting_scheme='pooled', fold_evaluation=False, split_plan=None), targeting: Targeting = Targeting(fluctuation='logistic', algorithm='iterative', g_bounds='auto', q_bounds=None, nuisance_bound=0.01, submodel_alpha=0.9995, target_weights=False, step_size=0.001, max_iter=20, tol=1e-10, stopping='relative', step_bound=None, step_search=True, iterate='last', isotonic=False), inference: Inference = Inference(alpha=0.05, n_bootstrap=0, bootstrap_resampling='auto', simultaneous=True, n_multiplier='auto', multiplier_kind='rademacher'), runtime: Runtime = Runtime(random_state=None, run_id=None, n_jobs=1), name: str = 'sdr')[source]#
Configure the sequentially doubly robust longitudinal estimator.
The estimator of Díaz, Williams, Hoffman and Schenck (2023, Section 5.3), fitted by
cleverly.longitudinal.SDR. It runs the sequential regression of a longitudinal fit and fits no fluctuation, so the fluctuation settings ofTargetingstay at their defaults.g_boundsbounds each partial path probability. A point-treatment functional refuses the method.- Parameters:
- models
ModelSpec Nuisance learners.
pseudo_learnerfits a real-valued target, and its default is a regression Super Learner with no clip.- cross_fitting
CrossFitting Sample-splitting settings. Above one fold, each fold fits every nuisance on its training rows.
- targeting
Targeting g_boundsandq_bounds.submodel_alpha,max_iter,tol,stopping,step_bound,step_searchanditerateare refused, because the estimator fits no fluctuation.- inference
Inference Interval and resampling settings. The bootstrap runs and reports a bootstrap sd, with no percentile inference.
- runtime
Runtime Seed, run identifier, and parallelism.
- name
str Stable method name.
- models
See also
TMLEMethodThe targeted estimator of the same longitudinal parameters.
cleverly.longitudinal.SDRThe engine this configuration is translated for.
cleverly.LongitudinalTreatmentThe design whose functionals take this method.
Examples
>>> from cleverly import CrossFitting, SDRMethod >>> method = SDRMethod(cross_fitting=CrossFitting(n_folds=5)) >>> method.name, method.cross_fitting.n_folds ('sdr', 5) >>> "alpha" in method.estimator_kwargs(longitudinal=True) False
Methods#
- SDRMethod.estimator_kwargs(*, longitudinal: bool = False) dict[str, Any][source]#
Translate this configuration for the longitudinal SDR engine.
- Parameters:
- longitudinalbool
Must be true, because the estimator is a longitudinal sequential regression.
- Returns:
- Raises:
MethodConfigurationErrorWhen
longitudinalis false, or when a fluctuation setting differs from its default.