Estimation.Minimax­ATE.Reduction

The reduction from estimation risk to testing between mixture alternatives, including witness-mixture constructions.

Bump 1 core · 3 supporting This file provides finite squared-distance identities for functions on a covariate space. ★ l2sq_bump

Squared-Distance Bump Algebra

This file provides finite squared-distance identities for functions on a covariate space. It proves the basic algebraic facts l2sq_self, l2sq_comm, and l2sq_nonneg, then records the Rademacher-bump identity l2sq_bump: if a x = b x + δ * σ x and every sign satisfies (σ x)^2 = 1, then the squared distance from a to b is exactly δ^2 on a nonempty finite space. This is the reusable membership calculation for lower-bound perturbations that are placed on the boundary of an InClass budget.

theorem l2sq_bump reviewed
Causalean.Estimation.MinimaxATE

Constant-magnitude (Rademacher) bump. If a sign function σ satisfies (σ x)² = 1 at every covariate value, then on a nonempty finite covariate space, the squared L²(P_X) distance between b shifted by δ·σ and b itself equals δ². This is exactly what makes a Rademacher-bump perturbation land on the boundary of the nuisance class ℱ(ε,·) when δ = √ε.

Formal statement
Nonempty C
b :
C → ℝ
δ :
σ :
C → ℝ
:
∀ x, (σ x) ^ 2 = 1
l2sq (fun x => b x + δ * σ x) b = δ ^ 2
Proof (Lean source)
theorem l2sq_bump [Nonempty C] (b : C → ℝ) (δ : ℝ) (σ : C → ℝ) (hσ : ∀ x, (σ x) ^ 2 = 1) : l2sq (fun x => b x + δ * σ x) b = δ ^ 2 := by have hC : (Fintype.card C : ℝ) ≠ 0 := Nat.cast_ne_zero.mpr Fintype.card_ne_zero rw [l2sq] have hsum : ∑ x : C, ((b x + δ * σ x) - b x) ^ 2 = ∑ _x : C, δ ^ 2 := by apply Finset.sum_congr rfl intro x _ have : ((b x + δ * σ x) - b x) ^ 2 = δ ^ 2 * (σ x) ^ 2 := by ring rw [this, hσ x, mul_one] rw [hsum, Finset.sum_const, Finset.card_univ, nsmul_eq_mul] field_simp
Causalean.Estimation.MinimaxATE.l2sq_bump · Causalean/Estimation/MinimaxATE/Reduction/Bump.lean:51 · uses l2sq
3 supporting declarations (lemmas, instances)
Witness 2 core · 1 supporting This file defines the abstract two-point witness used in structure-agnostic ATE lower bounds. ★ twoPointWitness_lower_bound

Two-Point Reduction

This file defines the abstract two-point witness used in structure-agnostic ATE lower bounds. It turns a pair of statistically close sample laws with separated ATEs and in-class realizability into a minimax lower bound for the worst-case probability of estimator error.

The structure TwoPointWitness packages the two sample laws, their ATE labels, a separation half-scale, a total-variation budget, and the domination condition connecting each witness law to minimaxMiss. The theorem twoPointWitness_lower_bound gives the Le Cam lower bound (1 - c) / 2, and twoPointWitness_quarter specializes it to the common c ≤ 1/2 case used by the explicit minimax constructions.

structure TwoPointWitness reviewed
Causalean.Estimation.MinimaxATE

Two-point (Le Cam) witness for the structure-agnostic ATE lower bound: it bundles two n-sample data laws, indexed by a hypothesis label j : Bool, together with the data needed to run Le Cam's two-point method. For each hypothesis, Q j is a probability measure with true average treatment effect θ j; the two hypotheses' ATE values are separated by at least twice the half-scale s, while the total-variation distance between the two laws is bounded by c, and for every estimator the probability under Q j of missing θ j by s is dominated by the in-class minimax miss probability — the realizability condition that a mixture-of-in-class-DGPs construction discharges.

Definition (Lean source)
C :
Type*
Nonempty C
n :
mhat :
C → ℝ
ghat :
Bool → C → ℝ
εg εm :
Separation half-scale (a concrete witness achieves `s ≍ √εg · √εm`).
s :
Total-variation budget between the two `n`-sample laws (`c < 1` is what bites).
c :
The `n`-sample data law of each hypothesis.
Q :
BoolMeasure (Fin n → Obs C)
Each law is a probability measure.
prob :
The true ATE attached to each hypothesis.
θ :
Bool → ℝ
The two ATE values are `2s`-separated.
sep :
2 * s ≤ |θ true - θ false|
The two laws are statistically close: `tvDist ≤ c`.
tvBound :
tvDist (Q false) (Q true) ≤ c
**Realizability.** For every estimator, the probability under `Q j` of missing `θ j` by `s` is dominated by the in-class minimax miss probability. A mixture witness discharges this because an average of in-class miss probabilities is at most their supremum.
dominated :
∀ (est : (Fin n → Obs C) → ℝ) (j : Bool),
(Q j).real {x | s ≤ |est x - θ j|} ≤ minimaxMiss mhat ghat εg εm n est s
Causalean.Estimation.MinimaxATE.TwoPointWitness · Causalean/Estimation/MinimaxATE/Reduction/Witness.lean:60
theorem twoPointWitness_lower_bound reviewed
Causalean.Estimation.MinimaxATE

Structure-agnostic two-point lower bound. Given a two-point (Le Cam) witness W packaging two statistically close n-sample laws with separated true average-treatment-effect values, for any measurable estimator, the worst-case-over-class probability that it misses the true ATE by W.s is at least (1 − W.c)/2. The proof is two_point_lower_bound_of_tvDist_le applied to the two witness laws, followed by the realizability domination.

Formal statement
W :
est :
(Fin n → Obs C) → ℝ
hest :
(1 - W.c) / 2 ≤ minimaxMiss mhat ghat εg εm n est W.s
Proof (Lean source)
theorem twoPointWitness_lower_bound (W : TwoPointWitness C n mhat ghat εg εm) {est : (Fin n → Obs C) → ℝ} (hest : Measurable est) : (1 - W.c) / 2 ≤ minimaxMiss mhat ghat εg εm n est W.s := by haveI := W.prob false haveI := W.prob true have hsep : 2 * W.s ≤ |W.θ false - W.θ true| := by rw [abs_sub_comm]; exact W.sep have h := two_point_lower_bound_of_tvDist_le (P₀ := W.Q false) (P₁ := W.Q true) hest hsep W.tvBound refine h.trans ?_ rw [max_le_iff] exact ⟨W.dominated est false, W.dominated est true⟩
Causalean.Estimation.MinimaxATE.twoPointWitness_lower_bound · Causalean/Estimation/MinimaxATE/Reduction/Witness.lean:94 · uses Obs , TwoPointWitness , minimaxMiss
1 supporting declaration (lemmas, instances)
Witness­Mixture 1 core · 0 supporting This file proves a mixture version of the two-point lower-bound argument for structure-agnostic average-treatment-effect estimation. ★ mixture_two_point_lower_bound

Mixture Two-Point Reduction

This file proves a mixture version of the two-point lower-bound argument for structure-agnostic average-treatment-effect estimation. It handles a null in-class DGP and a finite weighted family of in-class alternatives whose treatment effects are each separated from the null, without requiring the alternatives to share one common ATE.

The main theorem mixture_two_point_lower_bound combines the total-variation testing inequality with mixtureReal_le and nMiss_le_minimaxMiss: the null miss event is dominated directly, while the complement of the null miss event is contained in each alternative's own miss event by the per-component separation.

theorem mixture_two_point_lower_bound reviewed
Causalean.Estimation.MinimaxATE

Mixture two-point lower bound (one-sided separation). Suppose a null data-generating process (m₀, g₀) lies in the structure-agnostic nuisance class and a finite family of alternative data-generating processes (mlam i, glam i) also lie in the class, with nonnegative mixture weights w summing to 1, where every alternative's average treatment effect is at least 2s away from the null's, and the null's n-sample law and the weighted mixture of the alternatives' n-sample laws are at total-variation distance at most c. Then for any measurable estimator of the average treatment effect, the worst-case-over-class probability that it misses the true ATE by s is at least (1 − c)/2. Unlike TwoPointWitness, the alternatives need not share a common ATE — only 2 s ≤ |ate g₀ − ate (glam i)| per component.

Formal statement
n :
mhat :
C → ℝ
ghat :
Bool → C → ℝ
εg εm :
ι :
Type*
m₀ :
C → ℝ
g₀ :
Bool → C → ℝ
hnull :
InClass mhat ghat εg εm m₀ g₀
mlam :
ι → C → ℝ
glam :
ι → Bool → C → ℝ
hin :
∀ i, InClass mhat ghat εg εm (mlam i) (glam i)
w :
ι → ℝ≥0∞
hw :
∑ i, w i = 1
s c :
hsep :
∀ i, 2 * s ≤ |ate g₀ - ate (glam i)|
htv :
tvDist (productLaw hnull.valid n) (mixture w (fun i => productLaw (hin i).valid n)) ≤ c
est :
(Fin n → Obs C) → ℝ
hest :
(1 - c) / 2 ≤ minimaxMiss mhat ghat εg εm n est s
Proof (Lean source)
theorem mixture_two_point_lower_bound {n : ℕ} {mhat : C → ℝ} {ghat : Bool → C → ℝ} {εg εm : ℝ} {ι : Type*} [Fintype ι] {m₀ : C → ℝ} {g₀ : Bool → C → ℝ} (hnull : InClass mhat ghat εg εm m₀ g₀) {mlam : ι → C → ℝ} {glam : ι → Bool → C → ℝ} (hin : ∀ i, InClass mhat ghat εg εm (mlam i) (glam i)) (w : ι → ℝ≥0∞) (hw : ∑ i, w i = 1) {s c : ℝ} (hsep : ∀ i, 2 * s ≤ |ate g₀ - ate (glam i)|) (htv : tvDist (productLaw hnull.valid n) (mixture w (fun i => productLaw (hin i).valid n)) ≤ c) {est : (Fin n → Obs C) → ℝ} (hest : Measurable est) : (1 - c) / 2 ≤ minimaxMiss mhat ghat εg εm n est s := by haveI : IsProbabilityMeasure (productLaw hnull.valid n) := productLaw_isProb hnull.valid n haveI hpi : ∀ i, IsProbabilityMeasure (productLaw (hin i).valid n) := fun i => productLaw_isProb (hin i).valid n haveI : IsProbabilityMeasure (mixture w (fun i => productLaw (hin i).valid n)) := mixture_isProbabilityMeasure w hw _ -- the null miss region set A := {x : Fin n → Obs C | s ≤ |est x - ate g₀|} with hA have hAmeas : MeasurableSet A := by have h := measurableSet_error (Ω := Fin n → Obs C) (Θ := ℝ) hest (ate g₀) s simpa only [Real.dist_eq, hA] using h -- testing bound: `1 − tvDist ≤ Q₀ A + Qmix Aᶜ` have htest := one_sub_tvDist_le_test (μ := productLaw hnull.valid n) (ν := mixture w (fun i => productLaw (hin i).valid n)) hAmeas -- null side: `Q₀ A = nMiss (at ate g₀) ≤ minimaxMiss` have hnullmiss : (productLaw hnull.valid n).real A ≤ minimaxMiss mhat ghat εg εm n est s := by rw [hA] exact nMiss_le_minimaxMiss (⟨(m₀, g₀), hnull⟩ : InClassDGP mhat ghat εg εm) -- mixture side: on `Aᶜ` each component is in its own miss region have hmixmiss : (mixture w (fun i => productLaw (hin i).valid n)).real Aᶜ ≤ minimaxMiss mhat ghat εg εm n est s := by refine mixtureReal_le w hw (fun i => productLaw (hin i).valid n) Aᶜ _ ?_ intro i have hsub : Aᶜ ⊆ {x | s ≤ |est x - ate (glam i)|} := by intro x hx have hlt : |est x - ate g₀| < s := by simpa only [hA, Set.mem_compl_iff, Set.mem_setOf_eq, not_le] using hx have htri : |ate g₀ - ate (glam i)| ≤ |est x - ate g₀| + |est x - ate (glam i)| := by have h := abs_sub_le (ate g₀) (est x) (ate (glam i)) rwa [abs_sub_comm (ate g₀) (est x)] at h have hs2 := hsep i simp only [Set.mem_setOf_eq] by_contra hcon push_neg at hcon linarith calc (productLaw (hin i).valid n).real Aᶜ ≤ (productLaw (hin i).valid n).real {x | s ≤ |est x - ate (glam i)|} := measureReal_mono hsub (measure_ne_top _ _) _ ≤ minimaxMiss mhat ghat εg εm n est s := nMiss_le_minimaxMiss (⟨(mlam i, glam i), hin i⟩ : InClassDGP mhat ghat εg εm) linarith