Carry-forward (LOCF) natural-history treatment policy

Description

Creates a natural-history modified treatment policy that carries the seed treatment value forward at every period: \(A^d_t = A^d_{t-1} = \dots = A^d_1\). With the default seed = “baseline” the seed is each individual’s own baseline natural treatment value \(A_1\), so the policy holds everyone at their baseline level for the whole follow-up. With a numeric seed the policy sets every period to that fixed value (reducing to a static() regime).

This is the degenerate (limiting) member of the G-LMTP family: because the intervened value depends only on the baseline natural value, it equals a standard ICE regime that sets current treatment to baseline. It is provided as a convenient constructor for the common last-observation-carried-forward policy and routes through the same augmented engine as grace_period() so the two share a code path.

Usage

carry_forward(seed = "baseline", budget = 1024L)

Arguments

seed Either the string “baseline” (default; carry each individual’s natural baseline value \(A_1\) forward) or a single numeric value (carry that fixed value forward at every period).
budget Positive integer. Worst-step enumeration budget, as in grace_period(). Default 1024.

Value

A causatr_glmtp object (also inheriting causatr_intervention).

References

Diaz I, Williams NT, Morzywolek P, Rudolph KE (2026). Modified treatment policies that depend on the natural history of treatment. arXiv:2605.24167.

See Also

grace_period(), static(), contrast()

Other glmtp: grace_period()

Examples

library("causatr")

fit <- causat(long_data, outcome = "Y", treatment = "A",
              confounders = ~ L0, confounders_tv = ~ L,
              id = "id", time = "t", estimator = "gcomp")
contrast(fit, interventions = list(
  locf = carry_forward(),
  natural = NULL
), ci_method = "bootstrap")