cleverly.sensitivity.SensitivityElements#
- class cleverly.sensitivity.SensitivityElements(estimand: str, sigma2: float, nu2: float, max_bias: float, psi_sigma2: ndarray[tuple[Any, ...], dtype[float64]], psi_nu2: ndarray[tuple[Any, ...], dtype[float64]] | None, psi_max_bias: ndarray[tuple[Any, ...], dtype[float64]] | None, riesz_representer: ndarray[tuple[Any, ...], dtype[float64]], nu2_estimator: str)[source]#
The ingredients of the bias bound for one estimand.
- Parameters:
- estimand
str Alias of the estimand these elements describe.
- sigma2
float \(E[(Y - \bar Q^*(A, W))^2]\), the residual outcome variance.
- nu2
float \(E[\alpha(A, W)^2]\), the second moment of the Riesz representer.
- max_bias
float \(\sqrt{\sigma^2 \nu^2}\), the bias scale. The bound multiplies it by
|rho| sqrt(cf_y cf_d / (1 - cf_d)), which can exceed 1, so it is not the largest bias. The name follows DoubleML.- psi_sigma2
ndarray Influence curve of
sigma2.- psi_nu2
ndarrayorNone Influence curve of
nu2under the doubly robust estimator: the score of Lemma 3 of Chernozhukov et al. (2026), plus the influence of the conditioning share for the ATT and the ATC.Noneunder the plug-in estimator, whose curve no derivation in a source this package cites gives (docs/roadmap.md F26).- psi_max_bias
ndarrayorNone Influence curve of
max_bias, as in Theorem 4 of the same paper, so the bias-adjusted bounds get confidence limits rather than being treated as known constants.Noneunder the plug-in estimator or whenmax_biasis zero.- riesz_representer
ndarray (n,)values of \(\\alpha(A, W)\) for the targeted functional.- nu2_estimator
str Which estimator of
nu2produced these values.
- estimand