Estimation.ATE.DML
This roll-up exports dmlEstimator, the one-shot sample-split augmented inverse-probability weighted estimator for the back-door average treatment effect.
Basic 1 core · 0 supporting Defines dmlEstimator, the fold-B empirical average of the AIPW pseudo-outcome for a one-shot sample split.
One-shot ATE DML estimator
Defines dmlEstimator, the fold-B empirical average of the AIPW pseudo-outcome
for a one-shot sample split. Asymptotic linearity and normality are proved in
the two downstream files of this directory.
For a potential-outcome system with a measurable covariate space, a back-door estimation system, an independent and identically distributed sample of observed covariate, treatment, and outcome triples from its observable data law, a one-shot split of that sample, an outcome-regression learner indexed by sample size and population realization, a propensity-score learner indexed in the same way, and a nonnegative integer sample-size index, the one-shot DML/AIPW estimator of the back-door average treatment effect assigns to each population realization the average AIPW moment over that index's estimation fold.
Definition (Lean source)
AsymptoticLinearity 1 core · 1 supporting Proves the good-event, almost-everywhere good-event, and direct forms of asymptotic linearity for dmlEstimator. ★ dml_ATE_isAsymLinear_of_goodSet
Asymptotic linearity for one-shot ATE DML
Proves the good-event, almost-everywhere good-event, and direct forms of
asymptotic linearity for dmlEstimator. These wrappers discharge the abstract
AIPW DML interface from overlap, moment, sample-split, measurability, and
nuisance-rate assumptions.
Asymptotic linearity of the one-shot DML estimator of the average treatment effect. For a back-door estimation system satisfying the back-door identification assumptions, with an overlap threshold ε such that 0 < ε ≤ 1/2 and the true propensity score lies between ε and 1 − ε almost surely, a square-integrable observed outcome and square-integrable potential outcomes, let an i.i.d. sample be split once into a training fold and an evaluation fold whose evaluation-fold share converges to a limit c that is positive, and let μ̂_n and ê_n be the outcome-regression and propensity learners. Suppose there are events G_n whose complements have probability at most Δ_n for a sequence Δ_n that tends to zero. Assume (ω, x) ↦ μ̂_n(ω)(a, x) is jointly measurable for each arm a and so is (ω, x) ↦ ê_n(ω)(x); on G_n each μ̂_n(a, ·) is square-integrable under the covariate law, ê_n is square-integrable under the covariate law and ε ≤ ê_n ≤ 1 − ε almost everywhere under the covariate law; μ̂_n and ê_n are measurable with respect to the product of the σ-algebra generated by the training-fold observations and the covariate σ-algebra; for each arm the L² error of μ̂_n under the covariate law is o_p(1), the L² error of ê_n is o_p(1), and for each arm the product of these two L² errors is o_p(n^(−1/2)). Then the evaluation-fold augmented inverse-probability-weighted estimator built from μ̂_n and ê_n is asymptotically linear at the true average treatment effect along the evaluation fold, with the augmented inverse-probability-weighted influence function evaluated at the true regression and propensity.
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
dml_ATE_isAsymLinear_of_goodSet_aetheorem — For an ATE estimation system and threshold, identification, overlap, and moment assumptions, a sample and one-shot split with an evaluation-fold share converging to a positive limit, and nuisance learners, assume ambient measurability, almost-sure square-integrability and overlap at every horizon, training-fold measurability, and the individual and product rates. Then the one-shot DML/AIPW estimator is asymptotically linear.hypothesesγ :sharedType u_1S :ε :ℝhA :S.toPOBackdoorSystem.Assumptionsh_overlap :S.StrictOverlap εh_y2 :Integrable (fun ω => (S.toPOBackdoorSystem.factualY ω) ^ 2) P.μh_yd2 :∀ d : Bool, Integrable (fun ω => (S.toPOBackdoorSystem.YofD d ω) ^ 2) P.μsplit :OneShotSplit samplec :ℝhc_pos :0 < cμ_hat :ℕ → P.Ω → (Bool → γ → ℝ)e_hat :ℕ → P.Ω → (γ → ℝ)h_mu_meas :∀ n a, Measurable (fun (p : P.Ω × γ) => μ_hat n p.1 a p.2)h_e_meas :∀ n, Measurable (fun (p : P.Ω × γ) => e_hat n p.1 p.2)h_mu_memLp :∀ n, ∀ᵐ ω ∂P.μ, ∀ a, MemLp (fun x => μ_hat n ω a x) 2 S.P_Xh_e_memLp :∀ n, ∀ᵐ ω ∂P.μ, MemLp (fun x => e_hat n ω x) 2 S.P_Xh_e_overlap :∀ n, ∀ᵐ ω ∂P.μ, ∀ᵐ x ∂S.P_X, ε ≤ e_hat n ω x ∧ e_hat n ω x ≤ 1 - εh_mu_uncurry_foldA :∀ n a,Measurable[(comap (fun ω (i : split.foldA n) => sample.Z i ω) inferInstance).prod (inferInstance : MeasurableSpace γ)] (fun (p : P.Ω × γ) => μ_hat n p.1 a p.2)h_e_uncurry_foldA :∀ n,Measurable[(comap (fun ω (i : split.foldA n) => sample.Z i ω) inferInstance).prod (inferInstance : MeasurableSpace γ)] (fun (p : P.Ω × γ) => e_hat n p.1 p.2)h_mu_rate :∀ a : Bool,IsLittleOp (fun n ω => (eLpNorm (fun x => μ_hat n ω a x - S.μ_val a x) 2 S.P_X).toReal) (fun _ => (1 : ℝ)) P.μh_e_rate :IsLittleOp (fun n ω => (eLpNorm (fun x => e_hat n ω x - S.e_val x) 2 S.P_X).toReal) (fun _ => (1 : ℝ)) P.μconclusionIsAsymLinear (dmlEstimator S sample split μ_hat e_hat) S.θ₀ (S.ψ_AIPW) sample split.foldBProof (Lean source)
theorem dml_ATE_isAsymLinear_of_goodSet_ae (S : BackdoorEstimationSystem P γ) {ε : ℝ} (hA : S.toPOBackdoorSystem.Assumptions) (h_overlap : S.StrictOverlap ε) (h_y2 : Integrable (fun ω => (S.toPOBackdoorSystem.factualY ω) ^ 2) P.μ) (h_yd2 : ∀ d : Bool, Integrable (fun ω => (S.toPOBackdoorSystem.YofD d ω) ^ 2) P.μ) (sample : IIDSample P.Ω (γ × Bool × ℝ) P.μ S.P_Z) (split : OneShotSplit sample) {c : ℝ} (hc_pos : 0 < c) (h_split_rate : Tendsto (fun n => ((split.foldB n).card : ℝ) / n) atTop (𝓝 c)) (μ_hat : ℕ → P.Ω → (Bool → γ → ℝ)) (e_hat : ℕ → P.Ω → (γ → ℝ)) (h_mu_meas : ∀ n a, Measurable (fun (p : P.Ω × γ) => μ_hat n p.1 a p.2)) (h_e_meas : ∀ n, Measurable (fun (p : P.Ω × γ) => e_hat n p.1 p.2)) (h_mu_memLp : ∀ n, ∀ᵐ ω ∂P.μ, ∀ a, MemLp (fun x => μ_hat n ω a x) 2 S.P_X) (h_e_memLp : ∀ n, ∀ᵐ ω ∂P.μ, MemLp (fun x => e_hat n ω x) 2 S.P_X) (h_e_overlap : ∀ n, ∀ᵐ ω ∂P.μ, ∀ᵐ x ∂S.P_X, ε ≤ e_hat n ω x ∧ e_hat n ω x ≤ 1 - ε) (h_mu_uncurry_foldA : ∀ n a, Measurable[(comap (fun ω (i : split.foldA n) => sample.Z i ω) inferInstance).prod (inferInstance : MeasurableSpace γ)] (fun (p : P.Ω × γ) => μ_hat n p.1 a p.2)) (h_e_uncurry_foldA : ∀ n, Measurable[(comap (fun ω (i : split.foldA n) => sample.Z i ω) inferInstance).prod (inferInstance : MeasurableSpace γ)] (fun (p : P.Ω × γ) => e_hat n p.1 p.2)) (h_mu_rate : ∀ a : Bool, IsLittleOp (fun n ω => (eLpNorm (fun x => μ_hat n ω a x - S.μ_val a x) 2 S.P_X).toReal) (fun _ => (1 : ℝ)) P.μ) (h_e_rate : IsLittleOp (fun n ω => (eLpNorm (fun x => e_hat n ω x - S.e_val x) 2 S.P_X).toReal) (fun _ => (1 : ℝ)) P.μ) (h_product_rate : ∀ a : Bool, IsLittleOp (fun n ω => (eLpNorm (fun x => μ_hat n ω a x - S.μ_val a x) 2 S.P_X).toReal * (eLpNorm (fun x => e_hat n ω x - S.e_val x) 2 S.P_X).toReal) (fun n => (n : ℝ) ^ (-(1 / 2 : ℝ))) P.μ) : IsAsymLinear (dmlEstimator S sample split μ_hat e_hat) S.θ₀ (S.ψ_AIPW) sample split.foldB := by classical let goodSet : ℕ → Set P.Ω := fun n => {ω | (∀ a, MemLp (fun x => μ_hat n ω a x) 2 S.P_X) ∧ MemLp (fun x => e_hat n ω x) 2 S.P_X ∧ (∀ᵐ x ∂S.P_X, ε ≤ e_hat n ω x ∧ e_hat n ω x ≤ 1 - ε)} have hgood : ∀ n, ∀ᵐ ω ∂P.μ, ω ∈ goodSet n := by intro n filter_upwards [h_mu_memLp n, h_e_memLp n, h_e_overlap n] with ω hμ he hover exact ⟨hμ, he, hover⟩ apply dml_ATE_isAsymLinear_of_goodSet S hA h_overlap h_y2 h_yd2 sample split hc_pos h_split_rate μ_hat e_hat goodSet (fun _ => 0) tendsto_const_nhds · intro n have hz : P.μ (goodSet n)ᶜ = 0 := by apply ae_iff.mp filter_upwards [hgood n] with ω hω exact hω simpa [hz] · exact h_mu_meas · exact h_e_meas · intro n ω hω exact hω.1 · intro n ω hω exact hω.2.1 · intro n ω hω exact hω.2.2 · exact h_mu_uncurry_foldA · exact h_e_uncurry_foldA · exact h_mu_rate · exact h_e_rate · exact h_product_rate
AsymptoticNormality 1 core · 1 supporting Proves dml_ATE_tendstoNormal_on_highProbEvent, the normal limit when the learner square-integrability and overlap conditions hold on events of probability tending to one, by combining good-set asymptotic linearity with t ★ dml_ATE_tendstoNormal
Asymptotic normality for one-shot ATE DML
Proves dml_ATE_tendstoNormal_on_highProbEvent, the normal limit when the learner
square-integrability and overlap conditions hold on events of probability tending to
one, by combining good-set asymptotic linearity with the fold-level central limit
theorem. dml_ATE_tendstoNormal is its corollary for learners satisfying those
conditions at every realization. This file owns the normal-limit wrappers, not the
estimator or linearity proof.
Asymptotic normality of the one-shot DML estimator of the average treatment effect. Under the back-door identification assumptions, with strict overlap for the true propensity score and the same overlap bounds holding almost everywhere under the covariate law for every realization of the propensity learner, finite second moments of the observed and potential outcomes, and a one-shot sample split whose evaluation-fold share converges to a positive limit c: suppose the outcome-regression and propensity learners μ̂_n, ê_n are jointly measurable in the realization and the covariate, square-integrable under the covariate law at every realization, measurable with respect to the product of the σ-algebra generated by the training-fold observations and the covariate σ-algebra, and have L² errors under the covariate law that are each o_p(1), with the product of the outcome-regression and propensity L² errors being o_p(n^(−1/2)) for each arm. These nuisance conditions are imposed at every realization of the learners, not only on a high-probability event. Given in addition measurability of the augmented inverse-probability-weighted influence function, almost-everywhere measurability of the rescaled estimator at every sample size, and almost-everywhere measurability of the normalized influence-function sum at every sample size, then √|B(n)|·(θ̂_n − θ₀), where B(n) is the evaluation fold, converges in distribution to the centered normal law whose variance is the second moment of the augmented inverse-probability-weighted influence function under the observed-data law.
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
dml_ATE_tendstoNormal_on_highProbEventtheorem — Asymptotic normality of the one-shot DML estimator of the average treatment effect, with learner conditions on events of probability tending to one. For a back-door estimation system satisfying the back-door identification assumptions, with an overlap threshold ε such that 0 < ε ≤ 1/2 and the true propensity score lies between ε and 1 − ε almost surely, a square-integrable observed outcome and square-integrable potential outcomes, let an i.i.d. sample be split once into a training fold and an evaluation fold whose evaluation-fold share converges to a limit c that is positive, and let μ̂_n and ê_n be the outcome-regression and propensity learners. Suppose there are events G_n whose complements have probability at most Δ_n for a sequence Δ_n that tends to zero. Assume (ω, x) ↦ μ̂_n(ω)(a, x) is jointly measurable for each arm a and so is (ω, x) ↦ ê_n(ω)(x); on G_n each μ̂_n(a, ·) is square-integrable under the covariate law, ê_n is square-integrable under the covariate law and ε ≤ ê_n ≤ 1 − ε almost everywhere under the covariate law; μ̂_n and ê_n are measurable with respect to the product of the σ-algebra generated by the training-fold observations and the covariate σ-algebra; for each arm the L² error of μ̂_n under the covariate law is o_p(1), the L² error of ê_n is o_p(1), and for each arm the product of these two L² errors is o_p(n^(−1/2)). Given in addition measurability of the augmented inverse-probability-weighted influence function, almost-everywhere measurability of the rescaled estimator at every sample size, and almost-everywhere measurability of the normalized influence-function sum at every sample size, then √|B(n)|·(θ̂_n − θ₀), where B(n) is the evaluation fold, converges in distribution to the centered normal law whose variance is the second moment of the augmented inverse-probability-weighted influence function under the observed-data law.hypothesesγ :sharedType u_1S :ε :ℝhA :S.toPOBackdoorSystem.Assumptionsh_overlap :S.StrictOverlap εh_y2 :Integrable (fun ω => (S.toPOBackdoorSystem.factualY ω) ^ 2) P.μh_yd2 :∀ d : Bool, Integrable (fun ω => (S.toPOBackdoorSystem.YofD d ω) ^ 2) P.μsplit :OneShotSplit samplec :ℝhc_pos :0 < cμ_hat :ℕ → P.Ω → (Bool → γ → ℝ)e_hat :ℕ → P.Ω → (γ → ℝ)goodSet :ℕ → Set P.ΩΔ :ℕ → ℝ≥0∞hfail :∀ n, P.μ (goodSet n)ᶜ ≤ Δ nh_mu_meas :∀ n a, Measurable (fun (p : P.Ω × γ) => μ_hat n p.1 a p.2)h_e_meas :∀ n, Measurable (fun (p : P.Ω × γ) => e_hat n p.1 p.2)h_mu_memLp :∀ n ωifω ∈ goodSet nthen∀ a, MemLp (fun x => μ_hat n ω a x) 2 S.P_Xh_e_memLp :∀ n ωifω ∈ goodSet nthenMemLp (fun x => e_hat n ω x) 2 S.P_Xh_e_overlap :∀ n ωifω ∈ goodSet nthen∀ᵐ x ∂S.P_X, ε ≤ e_hat n ω x ∧ e_hat n ω x ≤ 1 - εh_mu_uncurry_foldA :∀ n a,Measurable[(comap (fun ω (i : split.foldA n) => sample.Z i ω) inferInstance).prod (inferInstance : MeasurableSpace γ)] (fun (p : P.Ω × γ) => μ_hat n p.1 a p.2)h_e_uncurry_foldA :∀ n,Measurable[(comap (fun ω (i : split.foldA n) => sample.Z i ω) inferInstance).prod (inferInstance : MeasurableSpace γ)] (fun (p : P.Ω × γ) => e_hat n p.1 p.2)h_mu_rate :∀ a : Bool,IsLittleOp (fun n ω => (eLpNorm (fun x => μ_hat n ω a x - S.μ_val a x) 2 S.P_X).toReal) (fun _ => (1 : ℝ)) P.μh_e_rate :IsLittleOp (fun n ω => (eLpNorm (fun x => e_hat n ω x - S.e_val x) 2 S.P_X).toReal) (fun _ => (1 : ℝ)) P.μh_product_rate :hψ_meas :Measurable (S.ψ_AIPW)hθn_meas :∀ n : ℕ,AEMeasurable (IsAsymLinear.rescaledEstimator (dmlEstimator S sample split μ_hat e_hat) S.θ₀ split.foldB n) P.μhSum_meas :∀ n : ℕ, AEMeasurable (IsAsymLinear.normalizedSum sample (S.ψ_AIPW) split.foldB n) P.μconclusionModes.TendstoInLaw (fun _ : ℕ => P.μ) (IsAsymLinear.rescaledEstimator (dmlEstimator S sample split μ_hat e_hat) S.θ₀ split.foldB) atTop (gaussianMeasure 0 (∫ x, (S.ψ_AIPW x) ^ 2 ∂S.P_Z))Proof (Lean source)
theorem dml_ATE_tendstoNormal_on_highProbEvent (S : BackdoorEstimationSystem P γ) {ε : ℝ} (hA : S.toPOBackdoorSystem.Assumptions) (h_overlap : S.StrictOverlap ε) (h_y2 : Integrable (fun ω => (S.toPOBackdoorSystem.factualY ω) ^ 2) P.μ) (h_yd2 : ∀ d : Bool, Integrable (fun ω => (S.toPOBackdoorSystem.YofD d ω) ^ 2) P.μ) (sample : IIDSample P.Ω (γ × Bool × ℝ) P.μ S.P_Z) (split : OneShotSplit sample) {c : ℝ} (hc_pos : 0 < c) (h_split_rate : Tendsto (fun n => ((split.foldB n).card : ℝ) / n) atTop (𝓝 c)) (μ_hat : ℕ → P.Ω → (Bool → γ → ℝ)) (e_hat : ℕ → P.Ω → (γ → ℝ)) (goodSet : ℕ → Set P.Ω) (Δ : ℕ → ℝ≥0∞) (hΔ : Tendsto Δ atTop (𝓝 0)) (hfail : ∀ n, P.μ (goodSet n)ᶜ ≤ Δ n) (h_mu_meas : ∀ n a, Measurable (fun (p : P.Ω × γ) => μ_hat n p.1 a p.2)) (h_e_meas : ∀ n, Measurable (fun (p : P.Ω × γ) => e_hat n p.1 p.2)) (h_mu_memLp : ∀ n ω, ω ∈ goodSet n → ∀ a, MemLp (fun x => μ_hat n ω a x) 2 S.P_X) (h_e_memLp : ∀ n ω, ω ∈ goodSet n → MemLp (fun x => e_hat n ω x) 2 S.P_X) (h_e_overlap : ∀ n ω, ω ∈ goodSet n → ∀ᵐ x ∂S.P_X, ε ≤ e_hat n ω x ∧ e_hat n ω x ≤ 1 - ε) (h_mu_uncurry_foldA : ∀ n a, Measurable[(comap (fun ω (i : split.foldA n) => sample.Z i ω) inferInstance).prod (inferInstance : MeasurableSpace γ)] (fun (p : P.Ω × γ) => μ_hat n p.1 a p.2)) (h_e_uncurry_foldA : ∀ n, Measurable[(comap (fun ω (i : split.foldA n) => sample.Z i ω) inferInstance).prod (inferInstance : MeasurableSpace γ)] (fun (p : P.Ω × γ) => e_hat n p.1 p.2)) (h_mu_rate : ∀ a : Bool, IsLittleOp (fun n ω => (eLpNorm (fun x => μ_hat n ω a x - S.μ_val a x) 2 S.P_X).toReal) (fun _ => (1 : ℝ)) P.μ) (h_e_rate : IsLittleOp (fun n ω => (eLpNorm (fun x => e_hat n ω x - S.e_val x) 2 S.P_X).toReal) (fun _ => (1 : ℝ)) P.μ) (h_product_rate : ∀ a : Bool, IsLittleOp (fun n ω => (eLpNorm (fun x => μ_hat n ω a x - S.μ_val a x) 2 S.P_X).toReal * (eLpNorm (fun x => e_hat n ω x - S.e_val x) 2 S.P_X).toReal) (fun n => (n : ℝ) ^ (-(1 / 2 : ℝ))) P.μ) (hψ_meas : Measurable (S.ψ_AIPW)) (hθn_meas : ∀ n : ℕ, AEMeasurable (IsAsymLinear.rescaledEstimator (dmlEstimator S sample split μ_hat e_hat) S.θ₀ split.foldB n) P.μ) (hSum_meas : ∀ n : ℕ, AEMeasurable (IsAsymLinear.normalizedSum sample (S.ψ_AIPW) split.foldB n) P.μ) : Modes.TendstoInLaw (fun _ : ℕ => P.μ) (IsAsymLinear.rescaledEstimator (dmlEstimator S sample split μ_hat e_hat) S.θ₀ split.foldB) atTop (gaussianMeasure 0 (∫ x, (S.ψ_AIPW x) ^ 2 ∂S.P_Z)) := by have hAL := dml_ATE_isAsymLinear_of_goodSet S hA h_overlap h_y2 h_yd2 sample split hc_pos h_split_rate μ_hat e_hat goodSet Δ hΔ hfail h_mu_meas h_e_meas h_mu_memLp h_e_memLp h_e_overlap h_mu_uncurry_foldA h_e_uncurry_foldA h_mu_rate h_e_rate h_product_rate exact hAL.tendsto_normal_foldB split hψ_meas hθn_meas hSum_meas