Estimands¶
An estimand is the causal quantity you want to identify and estimate. CausalRL makes the estimand explicit and pairs it with assumptions.
Policy value¶
PolicyValueEstimand represents the expected return of a target policy.
from crl.estimands.policy_value import PolicyValueEstimand
from crl.assumptions import AssumptionSet
from crl.assumptions_catalog import BEHAVIOR_POLICY_KNOWN, OVERLAP, SEQUENTIAL_IGNORABILITY
estimand = PolicyValueEstimand(
policy=target_policy,
discount=0.99,
horizon=10,
assumptions=AssumptionSet([SEQUENTIAL_IGNORABILITY, OVERLAP, BEHAVIOR_POLICY_KNOWN]),
)
Policy contrast¶
PolicyContrastEstimand captures differences between two policies.
from crl.estimands.policy_value import PolicyContrastEstimand
contrast = PolicyContrastEstimand(
treatment=policy_a,
control=policy_b,
discount=0.99,
horizon=10,
)
Sensitivity estimand¶
SensitivityPolicyValueEstimand encodes a gamma-bounded confounding model and
produces partial identification bounds.
Proximal estimand¶
ProximalPolicyValueEstimand encodes proximal assumptions about proxy
variables and bridge functions.
Why estimands matter¶
- They define what you can claim.
- They connect assumptions to estimators.
- They force clarity when data are incomplete.