Estimation.Minimax­ATE

Structure-agnostic lower bounds for treatment-effect estimation: the oracle-vs-black-box reduction, least-favourable constructions, and variance calculations.

Achievability 6 core · 3 supporting · 1 submodule Achievability side of the structure-agnostic program: estimators matching the lower-bound rate. Reduction 4 core · 4 supporting · 3 submodules The reduction from estimation risk to testing between mixture alternatives, including witness-mixture constructions. Const­Center­Half 30 core · 49 supporting · 10 submodules Half-center constant-propensity lower-bound construction for MinimaxATE: explicit witnesses, χ² indistinguishability, Ingster-style calibration, and parametric variants. Varying­Center­Case1 18 core · 24 supporting · 6 submodules First varying-center MinimaxATE lower-bound construction: cell-varying mixture laws, class membership, χ² overlap, ATE gap, and risk lower bound. Varying­Center­Case2 19 core · 28 supporting · 5 submodules Second, propensity-dominant varying-center MinimaxATE construction: perturbed sample laws, positivity algebra, class membership, χ² overlap, and lower-bound gap. Causal 30 core · 32 supporting · 3 submodules Causal grounding for the MinimaxATE lower bounds: a finite backdoor SCM and potential-outcome system, the causalATE target, and bridges that recenter the lower bound from the observed-data contrast to the causal ATE. Const­Center­General 18 core · 23 supporting · 6 submodules General constant-center least-favourable construction for MinimaxATE: mixture laws, class membership, χ² overlap, gap, MSE, and lower-bound assembly.
Model 14 core · 6 supporting This file defines the finite observed-data experiment used for structure-agnostic ATE estimation. ★ nMiss_sq_le_nMSE

Finite Observed-Data Model

This file defines the finite observed-data experiment used for structure-agnostic ATE estimation. The covariate space is an arbitrary finite type C, treatment and outcome are binary, and one observation is Obs C = C × Bool × Bool.

Main declarations:

* ValidDGP, obsReal, obsPMF, and obsLaw build a valid data-generating process and its single-observation law, with obsReal_sum, obsReal_nonneg, and obsLaw_isProb recording the finite probability facts. * ate and l2sq define the average treatment effect and squared L²(P_X) nuisance distance. * InClass and InClassDGP package the structure-agnostic nuisance class around fixed estimates. * productLaw, nMiss, nMSE, and minimaxMiss define the sample law, miss probability, expected squared error, and worst-case-over-class miss probability. * nMiss_sq_le_nMSE connects probability-of-miss lower bounds to mean-squared-error lower bounds, and nMiss_le_minimaxMiss embeds an in-class DGP's miss probability into the minimax supremum.

abbrev Obs reviewed
Causalean.Estimation.MinimaxATE

One observation: covariate X : C, treatment D : Bool, outcome Y : Bool.

Definition (Lean source)
abbrev Obs (C : Type*) := C × Bool × Bool
Causalean.Estimation.MinimaxATE.Obs · Causalean/Estimation/MinimaxATE/Model.lean:74
structure ValidDGP reviewed
Causalean.Estimation.MinimaxATE

A data-generating process (m, g) is valid when the propensity m takes values in the unit interval [0,1] and each outcome-regression arm g d also takes values in [0,1].

Definition (Lean source)
m :
C → ℝ
g :
Bool → C → ℝ
m_mem :
∀ x, m x ∈ Icc (0 : ℝ) 1
g_mem :
∀ d x, g d x ∈ Icc (0 : ℝ) 1
Causalean.Estimation.MinimaxATE.ValidDGP · Causalean/Estimation/MinimaxATE/Model.lean:79
def obsReal reviewed
Causalean.Estimation.MinimaxATE

The real-valued mass the DGP (m, g) assigns to the observation z = (x, d, y): (1/card C) · P(D = d | x) · P(Y = y | d, x).

Definition (Lean source)
noncomputable def obsReal (m : C → ℝ) (g : Bool → C → ℝ) (z : Obs C) : ℝ := (Fintype.card C : ℝ)⁻¹ * (if z.2.1 then m z.1 else 1 - m z.1) * (if z.2.2 then g z.2.1 z.1 else 1 - g z.2.1 z.1)
Causalean.Estimation.MinimaxATE.obsReal · Causalean/Estimation/MinimaxATE/Model.lean:86 · uses Obs
def obsPMF reviewed
Causalean.Estimation.MinimaxATE

The single-observation law of the DGP (m, g) as a probability PMF.

Definition (Lean source)
noncomputable def obsPMF [Nonempty C] {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) : PMF (Obs C) := PMF.ofFintype (fun z => ofReal (obsReal m g z)) <| by rw [← ENNReal.ofReal_sum_of_nonneg (fun z _ => obsReal_nonneg hv z), obsReal_sum] simp
Causalean.Estimation.MinimaxATE.obsPMF · Causalean/Estimation/MinimaxATE/Model.lean:117 · uses Obs , ValidDGP
def obsLaw reviewed
Causalean.Estimation.MinimaxATE

The single-observation law of the DGP (m, g) as a probability Measure.

Definition (Lean source)
noncomputable def obsLaw [Nonempty C] {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) : Measure (Obs C) := (obsPMF hv).toMeasure
Causalean.Estimation.MinimaxATE.obsLaw · Causalean/Estimation/MinimaxATE/Model.lean:126 · uses Obs , ValidDGP
def ate reviewed
Causalean.Estimation.MinimaxATE

The average treatment effect (1/card C) Σ_x (g true x − g false x). Depends only on the outcome regression g.

Definition (Lean source)
noncomputable def ate (g : Bool → C → ℝ) : ℝ := (Fintype.card C : ℝ)⁻¹ * ∑ x, (g true x - g false x)
Causalean.Estimation.MinimaxATE.ate · Causalean/Estimation/MinimaxATE/Model.lean:136
def l2sq reviewed
Causalean.Estimation.MinimaxATE

The squared L²(P_X) distance (1/card C) Σ_x (a x − b x)² between two functions of the covariate.

Definition (Lean source)
noncomputable def l2sq (a b : C → ℝ) : ℝ := (Fintype.card C : ℝ)⁻¹ * ∑ x, (a x - b x) ^ 2
Causalean.Estimation.MinimaxATE.l2sq · Causalean/Estimation/MinimaxATE/Model.lean:141
structure InClass reviewed
Causalean.Estimation.MinimaxATE

Structure-agnostic nuisance class. A candidate data-generating process (m, g) belongs to the class ℱ(εg, εm) around fixed nuisance estimates (mhat, ghat) when it is a valid DGP, with propensity and both outcome-regression arms taking values in [0,1], each outcome-regression arm lies within squared L²(P_X) distance εg of the corresponding estimated arm, and the propensity lies within squared L²(P_X) distance εm of the estimated propensity.

Definition (Lean source)
mhat :
C → ℝ
ghat :
Bool → C → ℝ
εg εm :
m :
C → ℝ
g :
Bool → C → ℝ
valid :
err_g :
∀ d, l2sq (g d) (ghat d) ≤ εg
err_m :
l2sq m mhat ≤ εm
Causalean.Estimation.MinimaxATE.InClass · Causalean/Estimation/MinimaxATE/Model.lean:146
def InClassDGP reviewed
Causalean.Estimation.MinimaxATE

A DGP packaged with a proof that it lies in the class ℱ(εg, εm).

Definition (Lean source)
def InClassDGP (mhat : C → ℝ) (ghat : Bool → C → ℝ) (εg εm : ℝ) : Type _ := { p : (C → ℝ) × (Bool → C → ℝ) // InClass mhat ghat εg εm p.1 p.2 }
Causalean.Estimation.MinimaxATE.InClassDGP · Causalean/Estimation/MinimaxATE/Model.lean:158
def productLaw reviewed
Causalean.Estimation.MinimaxATE

The n-sample data law: the product Measure.pi of n independent copies of the single-observation law.

Definition (Lean source)
noncomputable def productLaw [Nonempty C] {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) (n : ℕ) : Measure (Fin n → Obs C) := Measure.pi (fun _ => obsLaw hv)
Causalean.Estimation.MinimaxATE.productLaw · Causalean/Estimation/MinimaxATE/Model.lean:162 · uses Obs , ValidDGP
def nMiss reviewed
Causalean.Estimation.MinimaxATE

The probability that the estimator est, run on n samples from the DGP (m, g), misses the true ATE ate g by at least s.

Definition (Lean source)
noncomputable def nMiss [Nonempty C] {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) (n : ℕ) (est : (Fin n → Obs C) → ℝ) (s : ℝ) : ℝ := (productLaw hv n).real {x | s ≤ |est x - ate g|}
Causalean.Estimation.MinimaxATE.nMiss · Causalean/Estimation/MinimaxATE/Model.lean:173 · uses Obs , ValidDGP
def nMSE reviewed
Causalean.Estimation.MinimaxATE

The mean-squared error of est on n samples from the DGP (m, g): the expected squared deviation from the true ATE ate g. This is the expected-risk functional whose minimax lower bound the paper (Jin–Syrgkanis 2024, eq. for 𝔐ⁿ,γ) deduces — as the weaker (1−γ)-factor consequence — from the quantile (probability-of-miss) form.

Definition (Lean source)
noncomputable def nMSE [Nonempty C] {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) (n : ℕ) (est : (Fin n → Obs C) → ℝ) : ℝ := ∫ x, (est x - ate g) ^ 2 ∂(productLaw hv n)
Causalean.Estimation.MinimaxATE.nMSE · Causalean/Estimation/MinimaxATE/Model.lean:179 · uses Obs , ValidDGP
theorem nMiss_sq_le_nMSE reviewed
Causalean.Estimation.MinimaxATE

Chebyshev/Markov bridge. For a valid data-generating process (m, g) and a nonnegative separation threshold s, the squared threshold times the probability that an estimator misses the true average treatment effect by at least s, on n i.i.d. draws, is at most the estimator's mean-squared error. This is the quantitative form of the paper's observation that the quantile risk lower bound implies the expected-risk one (𝔐ₙ,γ ≥ ρ ⟹ minimax 𝔼-risk ≥ (1−γ)ρ`).

Formal statement
Nonempty C
m :
C → ℝ
g :
Bool → C → ℝ
hv :
n :
(Fin n → Obs C) → ℝ
s :
hs :
0 ≤ s
s ^ 2 * nMiss hv n est s ≤ nMSE hv n est
Proof (Lean source)
theorem nMiss_sq_le_nMSE [Nonempty C] [MeasurableSingletonClass C] {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) (n : ℕ) {est : (Fin n → Obs C) → ℝ} {s : ℝ} (hs : 0 ≤ s) : s ^ 2 * nMiss hv n est s ≤ nMSE hv n est := by have hset : {x : Fin n → Obs C | s ≤ |est x - ate g|} = {x | s ^ 2 ≤ (est x - ate g) ^ 2} := by ext x simp only [Set.mem_setOf_eq] constructor <;> intro h <;> nlinarith [abs_nonneg (est x - ate g), sq_abs (est x - ate g), sq_nonneg (est x - ate g)] unfold nMiss nMSE rw [hset] exact mul_meas_ge_le_integral_of_nonneg (Filter.Eventually.of_forall fun x => sq_nonneg _) Integrable.of_finite (s ^ 2)
Causalean.Estimation.MinimaxATE.nMiss_sq_le_nMSE · Causalean/Estimation/MinimaxATE/Model.lean:188 · uses Obs , ValidDGP , nMSE , nMiss
def minimaxMiss reviewed
Causalean.Estimation.MinimaxATE

Minimax (worst-case-over-class) miss probability. The supremum over all in-class DGPs of the probability that est misses that DGP's true ATE by s. A lower bound on this quantity is a minimax lower bound: no estimator can be within s of the truth with high probability uniformly over the class.

Definition (Lean source)
noncomputable def minimaxMiss [Nonempty C] (mhat : C → ℝ) (ghat : Bool → C → ℝ) (εg εm : ℝ) (n : ℕ) (est : (Fin n → Obs C) → ℝ) (s : ℝ) : ℝ := ⨆ p : InClassDGP mhat ghat εg εm, nMiss p.2.valid n est s
Causalean.Estimation.MinimaxATE.minimaxMiss · Causalean/Estimation/MinimaxATE/Model.lean:210 · uses Obs
6 supporting declarations (lemmas, instances)
  • obsReal_sum theorem — The total mass of obsReal is 1 (for nonempty C): summing over Y gives 1, then over D gives 1, then over X gives card C · (1/card C) = 1.
    Nonempty C
    m :
    C → ℝ
    g :
    Bool → C → ℝ
    ∑ z : Obs C, obsReal m g z = 1
    Proof (Lean source)
    theorem obsReal_sum [Nonempty C] (m : C → ℝ) (g : Bool → C → ℝ) : ∑ z : Obs C, obsReal m g z = 1 := by have hC : (Fintype.card C : ℝ) ≠ 0 := Nat.cast_ne_zero.mpr Fintype.card_ne_zero -- summing over `Y` then `D` collapses each cell to its mass `1/card C` have key : ∑ z : Obs C, obsReal m g z = ∑ _x : C, (Fintype.card C : ℝ)⁻¹ := by rw [Fintype.sum_prod_type] refine Finset.sum_congr rfl fun x _ => ?_ rw [Fintype.sum_prod_type] simp only [obsReal, Fintype.sum_bool, Bool.false_eq_true, if_false, if_true] ring rw [key, Finset.sum_const, Finset.card_univ, nsmul_eq_mul] field_simp
    Causalean.Estimation.MinimaxATE.obsReal_sum · Causalean/Estimation/MinimaxATE/Model.lean:92
  • obsReal_nonneg theorem — Nonnegativity of obsReal for a valid DGP.
    m :
    C → ℝ
    g :
    Bool → C → ℝ
    hv :
    z :
    Obs C
    0 ≤ obsReal m g z
    Proof (Lean source)
    theorem obsReal_nonneg {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) (z : Obs C) : 0 ≤ obsReal m g z := by have hCinv : (0 : ℝ) ≤ (Fintype.card C : ℝ)⁻¹ := by positivity obtain ⟨hm0, hm1⟩ := hv.m_mem z.1 refine mul_nonneg (mul_nonneg hCinv ?_) ?_ · rcases z.2.1 with _ | _ <;> simp <;> linarith · obtain ⟨hg0, hg1⟩ := hv.g_mem z.2.1 z.1 rcases z.2.2 with _ | _ <;> simp <;> linarith
    Causalean.Estimation.MinimaxATE.obsReal_nonneg · Causalean/Estimation/MinimaxATE/Model.lean:107
  • obsLaw_isProb instance — The single-observation law of any valid data-generating process is a probability measure.
    instance obsLaw_isProb [Nonempty C] {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) : IsProbabilityMeasure (obsLaw hv) := by unfold obsLaw; infer_instance
    Causalean.Estimation.MinimaxATE.obsLaw_isProb · Causalean/Estimation/MinimaxATE/Model.lean:131
  • productLaw_isProb instance — The independent sample law of any valid data-generating process is a probability measure.
    instance productLaw_isProb [Nonempty C] {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) (n : ℕ) : IsProbabilityMeasure (productLaw hv n) := by unfold productLaw; infer_instance
    Causalean.Estimation.MinimaxATE.productLaw_isProb · Causalean/Estimation/MinimaxATE/Model.lean:168
  • bddAbove_nMiss_range theorem — Each in-class miss probability is bounded above by 1 (it is a probability), so the range of nMiss over the class is bounded above.
    Nonempty C
    mhat :
    C → ℝ
    ghat :
    Bool → C → ℝ
    εg εm :
    n :
    est :
    (Fin n → Obs C) → ℝ
    s :
    BddAbove (Set.range fun p : InClassDGP mhat ghat εg εm => nMiss p.2.valid n est s)
    Proof (Lean source)
    theorem bddAbove_nMiss_range [Nonempty C] (mhat : C → ℝ) (ghat : Bool → C → ℝ) (εg εm : ℝ) (n : ℕ) (est : (Fin n → Obs C) → ℝ) (s : ℝ) : BddAbove (Set.range fun p : InClassDGP mhat ghat εg εm => nMiss p.2.valid n est s) := by refine ⟨1, ?_⟩ rintro y ⟨p, rfl⟩ unfold nMiss calc (productLaw p.2.valid n).real {x | s ≤ |est x - ate p.1.2|} ≤ (productLaw p.2.valid n).real univ := measureReal_mono (Set.subset_univ _) (measure_ne_top _ _) _ = 1 := by rw [probReal_univ]
    Causalean.Estimation.MinimaxATE.bddAbove_nMiss_range · Causalean/Estimation/MinimaxATE/Model.lean:218
  • nMiss_le_minimaxMiss theorem — A specific in-class DGP's miss probability is ≤ minimaxMiss.
    Nonempty C
    mhat :
    C → ℝ
    ghat :
    Bool → C → ℝ
    εg εm :
    n :
    (Fin n → Obs C) → ℝ
    s :
    p :
    InClassDGP mhat ghat εg εm
    nMiss p.2.valid n est s ≤ minimaxMiss mhat ghat εg εm n est s
    Proof (Lean source)
    theorem nMiss_le_minimaxMiss [Nonempty C] {mhat : C → ℝ} {ghat : Bool → C → ℝ} {εg εm : ℝ} {n : ℕ} {est : (Fin n → Obs C) → ℝ} {s : ℝ} (p : InClassDGP mhat ghat εg εm) : nMiss p.2.valid n est s ≤ minimaxMiss mhat ghat εg εm n est s := le_ciSup (bddAbove_nMiss_range mhat ghat εg εm n est s) p
    Causalean.Estimation.MinimaxATE.nMiss_le_minimaxMiss · Causalean/Estimation/MinimaxATE/Model.lean:231
Optimality 4 core · 2 supporting This file combines the cell-varying minimax converse with the finite-sample AIPW upper bound. ★ aipw_inclass_bias_bound★ aipw_minimaxMiss_le

AIPW Optimality

This file combines the cell-varying minimax converse with the finite-sample AIPW upper bound. It records that the structure-agnostic ATE minimax rate is of product-bias order and that the AIPW estimator attains this order up to constants.

The file first proves finite-sample facts for the fixed-center AIPW estimator: aipw_mean_eq identifies its mean, aipw_nMiss_le turns a bias and variance bound into a miss-probability bound, aipw_inclass_bias_bound supplies the uniform product-bias estimate over InClass, and aipw_minimaxMiss_le lifts these bounds to the minimax miss probability. It then defines MinimaxRateThreshold and assembles the lower and upper bounds in aipw_attains_minimax_rate, showing that the cell-varying lower-bound construction and the AIPW upper bound have matching sqrt(εg * εm) separation order.

theorem aipw_inclass_bias_bound reviewed
Causalean.Estimation.MinimaxATE

In-class bias bound. For a positive overlap threshold ε such that the fixed propensity estimate mhat stays at least ε away from both 0 and 1 at every covariate value, and for any data-generating process (m, g) lying in the structure-agnostic nuisance class around the fixed estimates (mhat, ghat) with error budgets εg, εm, the plug-in bias of the fixed-center AIPW estimator's population score is at most ε⁻¹·2·√εg·√εm.

Formal statement
mhat :
C → ℝ
ghat :
Bool → C → ℝ
εg εm :
ε :
:
0 < ε
hco :
∀ x, ε ≤ mhat x ∧ ε ≤ 1 - mhat x
m :
C → ℝ
g :
Bool → C → ℝ
hin :
InClass mhat ghat εg εm m g
|(∑ z : Obs C, obsReal m g z * aipwScoreFin mhat ghat z) - ate g|
≤ ε⁻¹ * (2 * sqrt εg * sqrt εm)
Proof (Lean source)
theorem aipw_inclass_bias_bound {mhat : C → ℝ} {ghat : Bool → C → ℝ} {εg εm : ℝ} {ε : ℝ} (hε : 0 < ε) (hco : ∀ x, ε ≤ mhat x ∧ ε ≤ 1 - mhat x) {m : C → ℝ} {g : Bool → C → ℝ} (hin : InClass mhat ghat εg εm m g) : |(∑ z : Obs C, obsReal m g z * aipwScoreFin mhat ghat z) - ate g| ≤ ε⁻¹ * (2 * sqrt εg * sqrt εm) := by refine (aipw_bias_bound mhat ghat hε hco).trans ?_ apply mul_le_mul_of_nonneg_left _ (by positivity : (0:ℝ) ≤ ε⁻¹) have hg1 : sqrt (l2sq (g true) (ghat true)) ≤ sqrt εg := Real.sqrt_le_sqrt (hin.err_g true) have hg0 : sqrt (l2sq (g false) (ghat false)) ≤ sqrt εg := Real.sqrt_le_sqrt (hin.err_g false) have hmm : sqrt (l2sq m mhat) ≤ sqrt εm := Real.sqrt_le_sqrt hin.err_m calc (sqrt (l2sq (g true) (ghat true)) + sqrt (l2sq (g false) (ghat false))) * sqrt (l2sq m mhat) ≤ (2 * sqrt εg) * sqrt εm := mul_le_mul (by linarith) hmm (Real.sqrt_nonneg _) (by positivity) _ = 2 * sqrt εg * sqrt εm := by ring
Causalean.Estimation.MinimaxATE.aipw_inclass_bias_bound · Causalean/Estimation/MinimaxATE/Optimality.lean:108 · uses InClass , Obs , aipwScoreFin , ate , obsReal
theorem aipw_minimaxMiss_le reviewed
Causalean.Estimation.MinimaxATE

Worst-case (minimax) miss bound for AIPW. Suppose the fixed nuisance estimates (mhat, ghat) are themselves valid, for a positive overlap threshold ε such that mhat stays at least ε away from 0 and 1 everywhere, nonnegative error budgets εg, εm, a positive sample size n, and a separation s exceeding the uniform bias bound b = ε⁻¹·2·√εg·√εm. Then the worst-case-over-class miss probability of the fixed-center AIPW estimator at separation s is at most ((1+2/ε)²/n)/(s−b)².

Formal statement
mhat :
C → ℝ
ghat :
Bool → C → ℝ
εg εm :
hghat :
ValidDGP mhat ghat
ε :
:
0 < ε
hco :
∀ x, ε ≤ mhat x ∧ ε ≤ 1 - mhat x
hεg :
0 ≤ εg
hεm :
0 ≤ εm
n :
hn :
0 < n
s :
hsb :
ε⁻¹ * (2 * sqrt εg * sqrt εm) < s
minimaxMiss mhat ghat εg εm n (estAIPW mhat ghat n) s
≤ ((1 + 2 / ε) ^ 2 / n) / (s - ε⁻¹ * (2 * sqrt εg * sqrt εm)) ^ 2
Proof (Lean source)
theorem aipw_minimaxMiss_le {mhat : C → ℝ} {ghat : Bool → C → ℝ} {εg εm : ℝ} (hghat : ValidDGP mhat ghat) {ε : ℝ} (hε : 0 < ε) (hco : ∀ x, ε ≤ mhat x ∧ ε ≤ 1 - mhat x) (hεg : 0 ≤ εg) (hεm : 0 ≤ εm) {n : ℕ} (hn : 0 < n) {s : ℝ} (hsb : ε⁻¹ * (2 * sqrt εg * sqrt εm) < s) : minimaxMiss mhat ghat εg εm n (estAIPW mhat ghat n) s ≤ ((1 + 2 / ε) ^ 2 / n) / (s - ε⁻¹ * (2 * sqrt εg * sqrt εm)) ^ 2 := by haveI : Nonempty (InClassDGP mhat ghat εg εm) := ⟨⟨(mhat, ghat), { valid := hghat err_g := fun d => by rw [l2sq_self]; exact hεg err_m := by rw [l2sq_self]; exact hεm }⟩⟩ refine ciSup_le (fun p => ?_) exact aipw_nMiss_le p.2.valid mhat ghat hn (aipw_inclass_bias_bound hε hco p.2) (aipw_var_bound p.2.valid mhat ghat hghat hε hco n) hsb
Causalean.Estimation.MinimaxATE.aipw_minimaxMiss_le · Causalean/Estimation/MinimaxATE/Optimality.lean:133 · uses ValidDGP , estAIPW , minimaxMiss
structure MinimaxRateThreshold reviewed
Causalean.Estimation.MinimaxATE

Minimax rate threshold (reusable vocabulary). An estimation problem over the finite model exhibits a rate threshold when a single estimator's worst-case miss is bounded above at one separation (sepUpper), while every estimator's worst-case miss is bounded below at a (smaller) separation (sepLower). When sepLower and sepUpper are of the same order, this certifies the minimax rate and that estimator attains it.

Definition (Lean source)
mhat :
C → ℝ
ghat :
Bool → C → ℝ
εg εm :
n :
The rate-optimal estimator.
estimator :
(Fin n → Obs C) → ℝ
Impossibility separation.
sepLower :
Lower bound on every estimator's worst-case miss at `sepLower`.
probLower :
converse :
∀ est : (Fin n → Obs C) → ℝ
then
probLower ≤ minimaxMiss mhat ghat εg εm n est sepLower
Achievability separation (of the same order as `sepLower`).
sepUpper :
Upper bound on `estimator`'s worst-case miss at `sepUpper`.
missUpper :
achievability :
minimaxMiss mhat ghat εg εm n estimator sepUpper ≤ missUpper
Causalean.Estimation.MinimaxATE.MinimaxRateThreshold · Causalean/Estimation/MinimaxATE/Optimality.lean:155
def aipw_attains_minimax_rate reviewed
Causalean.Estimation.MinimaxATE

Capstone — DR/AIPW attains the structure-agnostic minimax rate. For the cell-varying construction P with the per-pair budgets and regularity conditions of the lower bound, the problem exhibits a MinimaxRateThreshold:

Definition (Lean source)
noncomputable def aipw_attains_minimax_rate (P : VarConstr K) [NeZero K] {n : ℕ} (hn : 0 < n) {εg εm : ℝ} (hm : ∀ j, (P.m₀ j * (P.β / P.g₁ j)) ^ 2 ≤ εm) (hg : ∀ j, P.g₁ j ^ 2 * (P.α + P.β) ^ 2 / (P.g₁ j - P.β) ^ 2 ≤ εg) (hεg : 0 ≤ εg) (hεm : 0 ≤ εm) (hΓsum : ∑ j, P.ΓV j / (K : ℝ) ≤ 1) (hreg : (n : ℝ) ^ 2 / 2 * ∑ j, (P.ΓV j / (K : ℝ)) ^ 2 ≤ log 2) {ε : ℝ} (hε : 0 < ε) (hco : ∀ x, ε ≤ P.mhatV x ∧ ε ≤ 1 - P.mhatV x) {s : ℝ} (hsb : ε⁻¹ * (2 * sqrt εg * sqrt εm) < s) : MinimaxRateThreshold P.mhatV P.ghatV εg εm n where estimator := estAIPW P.mhatV P.ghatV n sepLower := (card (Fin K × Bool) : ℝ)⁻¹ * (2 * P.β * (P.α + P.β)) * (∑ j : Fin K, P.g₁ j / (P.g₁ j ^ 2 - P.β ^ 2)) / 2 probLower := 1 / 4 converse := fun _est hest => P.minimax_lower_bound_var hm hg hεg hεm hΓsum hreg hest sepUpper := s missUpper := ((1 + 2 / ε) ^ 2 / n) / (s - ε⁻¹ * (2 * sqrt εg * sqrt εm)) ^ 2 achievability := aipw_minimaxMiss_le P.validDGP_hatV hε hco hεg hεm hn hsb
2 supporting declarations (lemmas, instances)
  • aipw_mean_eq theorem — The mean of the AIPW estimator equals the single-observation population mean of the score (mean of an i.i.d. average), for n > 0.
    m :
    C → ℝ
    g :
    Bool → C → ℝ
    hv :
    mhat :
    C → ℝ
    ghat :
    Bool → C → ℝ
    n :
    hn :
    0 < n
    ∫ sample, estAIPW mhat ghat n sample ∂(productLaw hv n)
    = ∑ z : Obs C, obsReal m g z * aipwScoreFin mhat ghat z
    Proof (Lean source)
    theorem aipw_mean_eq {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) (mhat : C → ℝ) (ghat : Bool → C → ℝ) {n : ℕ} (hn : 0 < n) : ∫ sample, estAIPW mhat ghat n sample ∂(productLaw hv n) = ∑ z : Obs C, obsReal m g z * aipwScoreFin mhat ghat z := by have hne : (n : ℝ) ≠ 0 := Nat.cast_ne_zero.mpr hn.ne' have hper : ∀ i : Fin n, ∫ sample, aipwScoreFin mhat ghat (sample i) ∂(productLaw hv n) = ∑ z : Obs C, obsReal m g z * aipwScoreFin mhat ghat z := by intro i have hmap : (productLaw hv n).map (fun s : Fin n → Obs C => s i) = obsLaw hv := by rw [productLaw]; exact (measurePreserving_eval (fun _ : Fin n => obsLaw hv) i).map_eq rw [← aipw_pop_mean hv mhat ghat, ← integral_map (φ := fun s : Fin n → Obs C => s i) (measurable_pi_apply i).aemeasurable (measurable_of_finite _).aestronglyMeasurable, hmap] unfold estAIPW rw [integral_const_mul, integral_finset_sum _ (fun i _ => Integrable.of_finite)] simp_rw [hper] rw [Finset.sum_const, Finset.card_univ, Fintype.card_fin, nsmul_eq_mul, ← mul_assoc, inv_mul_cancel₀ hne, one_mul]
    Causalean.Estimation.MinimaxATE.aipw_mean_eq · Causalean/Estimation/MinimaxATE/Optimality.lean:51
  • aipw_nMiss_le theorem — Per-DGP Chebyshev miss bound. If the plug-in bias is ≤ b and the variance is ≤ V, then for any separation s > b the miss probability is ≤ V / (s − b)².
    m :
    C → ℝ
    g :
    Bool → C → ℝ
    hv :
    mhat :
    C → ℝ
    ghat :
    Bool → C → ℝ
    n :
    hn :
    0 < n
    b V s :
    hbias :
    |(∑ z : Obs C, obsReal m g z * aipwScoreFin mhat ghat z) - ate g| ≤ b
    hvar :
    variance (estAIPW mhat ghat n) (productLaw hv n) ≤ V
    hsb :
    b < s
    nMiss hv n (estAIPW mhat ghat n) s ≤ V / (s - b) ^ 2
    Proof (Lean source)
    theorem aipw_nMiss_le {m : C → ℝ} {g : Bool → C → ℝ} (hv : ValidDGP m g) (mhat : C → ℝ) (ghat : Bool → C → ℝ) {n : ℕ} (hn : 0 < n) {b V s : ℝ} (hbias : |(∑ z : Obs C, obsReal m g z * aipwScoreFin mhat ghat z) - ate g| ≤ b) (hvar : variance (estAIPW mhat ghat n) (productLaw hv n) ≤ V) (hsb : b < s) : nMiss hv n (estAIPW mhat ghat n) s ≤ V / (s - b) ^ 2 := by have hsub0 : 0 < s - b := by linarith set μ' := productLaw hv n with hμ' set X := estAIPW mhat ghat n with hX have hmem : MemLp X 2 μ' := ⟨(measurable_of_finite _).aestronglyMeasurable, eLpNorm_lt_top_of_finite⟩ have hmean : ∫ a, X a ∂μ' = ∑ z : Obs C, obsReal m g z * aipwScoreFin mhat ghat z := aipw_mean_eq hv mhat ghat hn have hEbias : |(∫ a, X a ∂μ') - ate g| ≤ b := by rw [hmean]; exact hbias have hsubset : {sample | s ≤ |X sample - ate g|} ⊆ {sample | s - b ≤ |X sample - ∫ a, X a ∂μ'|} := by intro sample hsample simp only [Set.mem_setOf_eq] at hsample ⊢ have htri : |X sample - ate g| ≤ |X sample - ∫ a, X a ∂μ'| + |(∫ a, X a ∂μ') - ate g| := abs_sub_le _ _ _ linarith have hvar0 : 0 ≤ variance X μ' := variance_nonneg _ _ calc nMiss hv n X s = μ'.real {sample | s ≤ |X sample - ate g|} := rfl _ ≤ μ'.real {sample | s - b ≤ |X sample - ∫ a, X a ∂μ'|} := measureReal_mono hsubset (measure_ne_top _ _) _ ≤ variance X μ' / (s - b) ^ 2 := by rw [Measure.real] refine (ENNReal.toReal_mono ENNReal.ofReal_ne_top (meas_ge_le_variance_div_sq hmem hsub0)).trans ?_ rw [ENNReal.toReal_ofReal (by positivity)] _ ≤ V / (s - b) ^ 2 := by gcongr
    Causalean.Estimation.MinimaxATE.aipw_nMiss_le · Causalean/Estimation/MinimaxATE/Optimality.lean:73