cleverly.GComputationMethod#

class cleverly.GComputationMethod(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=False, 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 = 'gcomp')[source]#

Configure sequential g-computation of a longitudinal regimen.

The iterated conditional expectation of Bang and Robins (2005, Section 4), fitted by cleverly.longitudinal.SequentialGComputation. The method fits in sample, so cross_fitting defaults to CrossFitting(enabled=False), and above one fold the engine refuses. It fits no fluctuation, so the fluctuation settings of Targeting stay at their defaults. Every learner left at None is a main-terms GLM. A point-treatment functional, a working model over regimens, and an odds tilt with an estimated mechanism refuse the method.

Parameters:
modelsModelSpec

Nuisance learners. outcome_learner fits each backward regression.

cross_fittingCrossFitting

Sample-splitting settings. The default is in sample, and the engine refuses more than one fold.

targetingTargeting

g_bounds and q_bounds. g_bounds moves the positivity diagnostics only. submodel_alpha, max_iter, tol, stopping, step_bound, step_search and iterate are refused, because the estimator fits no fluctuation.

inferenceInference

Interval and resampling settings.

runtimeRuntime

Seed, run identifier, and parallelism.

namestr

Stable method name.

See also

IPWMethod

The inverse-probability-weighted baseline.

SDRMethod

The sequentially doubly robust estimator of the same parameters.

cleverly.longitudinal.SequentialGComputation

The engine this configuration is translated for.

cleverly.LongitudinalTreatment

The design whose functionals take this method.

Examples

>>> from cleverly import GComputationMethod
>>> method = GComputationMethod()
>>> method.name, method.cross_fitting.enabled
('gcomp', False)
>>> kwargs = method.estimator_kwargs(longitudinal=True)
>>> kwargs["n_folds"], "alpha" in kwargs
(1, False)

Methods#

Attributes#

GComputationMethod.name: str = 'gcomp'#