PO.ID.Partial.Sensitivity.MSM
Marginal Sensitivity Model bounds: treated/control-arm feasible weights, cutoff construction, observed-data calibrated candidate endpoints, and ATE interval assembly.
Setup 11 core · 6 supporting This file sets up an odds-ratio Marginal Sensitivity Model over the potential-outcome backdoor system POBackdoorSystem. ★ candMean_completeProp_eq_Ymean★ Ymean_mem_Icc★ MSMSet_one_eq
Marginal Sensitivity Model (MSM) for an arm mean E[Y(d)]
This file sets up an odds-ratio Marginal Sensitivity Model over the potential-outcome
backdoor system POBackdoorSystem.
For either treatment arm d, unconfoundedness identifies E[Y(d)] by inverse-probability
weighting against the observed arm propensity e_d(X) = P[D=d | σ(X)]. The MSM relaxes
unconfoundedness by allowing the complete propensity
e₀,d(X, Y(d)) = P[D=d | σ(X, Y(d))] to differ from e_d(X), with the discrepancy
controlled by a sensitivity parameter Λ ≥ 1
through the odds ratio:
1/Λ ≤ OR(e₀,d(X, Y(d)), e_d(X)) ≤ Λ.
The MSM ambiguity set MSMSet d Λ collects all candidate complete propensities
satisfying this odds-ratio bound (and a.e. interiority 0 < · < 1). The candidate
unnormalized IPW mean candMean d ẽ = E[1{D=d}·Y/ẽ] traced over this odds-ratio box
produces the relaxation [msmLower d Λ, msmUpper d Λ]. The interval-validity theorem places
E[Y(d)] inside it under the stated bridge and boundedness hypotheses. The calibrated candidate
set is formalized separately.
This file states the definitions and the structural theorems (IPW/tower bridge,
membership of the truth, the interval bound, monotonicity in Λ, and the Λ = 1
point-identification collapse).
For a first real number and a second real number, the odds ratio is the first number's odds divided by the second number's odds, .
Definition (Lean source)
Given a binary-treatment backdoor system and a treatment arm, the complete-information σ-algebra is the σ-algebra on the sample space generated jointly by the factual covariate and the potential outcome under that arm.
Definition (Lean source)
Given a binary-treatment backdoor system and a treatment arm, the complete propensity assigns each unit the conditional probability of receiving that arm given the factual covariate and potential outcome under that arm.
Definition (Lean source)
Given a binary-treatment backdoor system, a treatment arm, and a candidate complete-propensity function, the candidate inverse-probability-weighted mean is the population mean of the arm indicator times factual outcome divided by that candidate function.
Definition (Lean source)
Given a binary-treatment backdoor system and a treatment arm, the arm-specific potential-outcome mean is the population mean of the potential outcome under that arm.
Definition (Lean source)
The MSM ambiguity set for a binary-treatment backdoor system, a treatment arm, and a sensitivity level consists of candidate complete propensities that are almost surely strictly between zero and one and whose odds relative to the observed arm propensity remain within the sensitivity limits.
Definition (Lean source)
The MSM upper bound is the largest unnormalized inverse-probability-weighted arm mean allowed by the odds-ratio ambiguity set for a binary-treatment backdoor system, a treatment arm, and a sensitivity level.
Definition (Lean source)
The MSM lower bound is the smallest unnormalized inverse-probability-weighted arm mean allowed by the odds-ratio ambiguity set for a binary-treatment backdoor system, a treatment arm, and a sensitivity level.
Definition (Lean source)
Inverse-probability weighting by the complete propensity recovers the mean potential outcome for the selected arm in a binary-treatment backdoor system under consistency, positivity of that arm's complete propensity, and integrability of the corresponding weighted factual outcome, for the selected arm.
Formal statement
Proof (Lean source)
The mean potential outcome for an arm lies between the smallest and largest candidate means in a binary-treatment backdoor system at a sensitivity level when that arm's complete propensity is admissible, its candidate mean equals its potential-outcome mean, and the candidate means are bounded below and above, for the selected arm:
Formal statement
Proof (Lean source)
At sensitivity one, an admissible candidate complete propensity equals the observed arm propensity almost everywhere in a binary-treatment backdoor system, for the selected arm and candidate, provided the observed arm propensity is strictly between zero and one almost surely and the candidate belongs to the arm's ambiguity set.
Formal statement
Proof (Lean source)
6 supporting declarations (lemmas, instances)
-
sigmaXY_lelemma — The joint σ-algebra σ(X, Y(d)) for the chosen arm is coarser than the ambient σ-algebra.hypothesesconclusionS.sigmaXY d ≤ (inferInstance : MeasurableSpace P.Ω)Proof (Lean source)
lemma sigmaXY_le (d : Bool) : S.sigmaXY d ≤ (inferInstance : MeasurableSpace P.Ω) := by refine sup_le ?_ ?_ · exact S.measurable_factualX.comap_le · exact (S.measurable_YofD d).comap_le -
candMean_eqlemma — The candidate inverse-probability-weighted mean for a candidate complete propensity is the population mean of the arm indicator times the factual outcome, divided by that candidate propensity.hypothesesconclusionS.candMean d etilde = ∫ ω, S.dVar.indicator d ω * S.factualY ω / etilde ω ∂P.μProof (Lean source)
@[causal_defs_simps] lemma candMean_eq (d : Bool) (etilde : P.Ω → ℝ) : S.candMean d etilde = ∫ ω, S.dVar.indicator d ω * S.factualY ω / etilde ω ∂P.μ := rfl -
completeProp_mem_MSMSettheorem — The MSM assumption: the truth lies in the ambiguity set. The d complete propensity e₀ belongs to MSMSet Λ, i.e. it is a.e. interior and its odds ratio against the observed arm propensity e_d(X) is a.e. within [1/Λ, Λ]. This is precisely the marginal sensitivity assumption; the membership facts are supplied as hMSM.hypothesesγ :sharedType u_1d :Λ :ℝconclusionS.completeProp d ∈ S.MSMSet d ΛProof (Lean source)
theorem completeProp_mem_MSMSet (d : Bool) (Λ : ℝ) (hMSM : (∀ᵐ ω ∂P.μ, 0 < S.completeProp d ω ∧ S.completeProp d ω < 1) ∧ (∀ᵐ ω ∂P.μ, 1 / Λ ≤ OR (S.completeProp d ω) (S.propScore d ω) ∧ OR (S.completeProp d ω) (S.propScore d ω) ≤ Λ)) : S.completeProp d ∈ S.MSMSet d Λ := by simp only [MSMSet, Set.mem_setOf_eq] exact hMSM -
MSMSet_monotheorem — Monotonicity of the ambiguity set in the sensitivity parameter. A larger budget Λ ≤ Λ' (with 1 ≤ Λ) contains every candidate allowed by the smaller budget: MSMSet Λ ⊆ MSMSet Λ'. The odds-ratio window [1/Λ, Λ] widens with Λ.hypothesesγ :sharedType u_1d :Λ Λ' :ℝhΛ :1 ≤ ΛhΛΛ' :Λ ≤ Λ'conclusionS.MSMSet d Λ ⊆ S.MSMSet d Λ'Proof (Lean source)
theorem MSMSet_mono (d : Bool) {Λ Λ' : ℝ} (hΛ : 1 ≤ Λ) (hΛΛ' : Λ ≤ Λ') : S.MSMSet d Λ ⊆ S.MSMSet d Λ' := by have hΛpos : 0 < Λ := lt_of_lt_of_le one_pos hΛ intro etilde hetilde obtain ⟨hint, hor⟩ := hetilde refine ⟨hint, ?_⟩ filter_upwards [hor] with ω hω obtain ⟨hlo, hhi⟩ := hω constructor · have h1 : 1 / Λ' ≤ 1 / Λ := one_div_le_one_div_of_le hΛpos hΛΛ' exact le_trans h1 hlo · exact le_trans hhi hΛΛ' -
msmUpper_monotheorem — The MSM interval widens with Λ (upper endpoint). Since MSMSet Λ ⊆ MSMSet Λ', the supremum of the candidate mean can only increase. Boundedness of the larger image is required for the sSup comparison.hypothesesγ :sharedType u_1d :Λ Λ' :ℝhΛ :1 ≤ ΛhΛΛ' :Λ ≤ Λ'hne :(S.candMean d '' S.MSMSet d Λ).Nonemptyhbdd' :BddAbove (S.candMean d '' S.MSMSet d Λ')conclusionS.msmUpper d Λ ≤ S.msmUpper d Λ'Proof (Lean source)
theorem msmUpper_mono (d : Bool) {Λ Λ' : ℝ} (hΛ : 1 ≤ Λ) (hΛΛ' : Λ ≤ Λ') (hne : (S.candMean d '' S.MSMSet d Λ).Nonempty) (hbdd' : BddAbove (S.candMean d '' S.MSMSet d Λ')) : S.msmUpper d Λ ≤ S.msmUpper d Λ' := by have hsub : S.MSMSet d Λ ⊆ S.MSMSet d Λ' := S.MSMSet_mono d hΛ hΛΛ' have himg : S.candMean d '' S.MSMSet d Λ ⊆ S.candMean d '' S.MSMSet d Λ' := Set.image_mono hsub exact csSup_le_csSup hbdd' hne himg -
msmLower_antitheorem — The MSM interval widens with Λ (lower endpoint). Since MSMSet Λ ⊆ MSMSet Λ', the infimum of the candidate mean can only decrease. Boundedness-below of the larger image is required for the sInf comparison.hypothesesγ :sharedType u_1d :Λ Λ' :ℝhΛ :1 ≤ ΛhΛΛ' :Λ ≤ Λ'hne :(S.candMean d '' S.MSMSet d Λ).Nonemptyhbdd' :BddBelow (S.candMean d '' S.MSMSet d Λ')conclusionS.msmLower d Λ' ≤ S.msmLower d ΛProof (Lean source)
theorem msmLower_anti (d : Bool) {Λ Λ' : ℝ} (hΛ : 1 ≤ Λ) (hΛΛ' : Λ ≤ Λ') (hne : (S.candMean d '' S.MSMSet d Λ).Nonempty) (hbdd' : BddBelow (S.candMean d '' S.MSMSet d Λ')) : S.msmLower d Λ' ≤ S.msmLower d Λ := by have hsub : S.MSMSet d Λ ⊆ S.MSMSet d Λ' := S.MSMSet_mono d hΛ hΛΛ' have himg : S.candMean d '' S.MSMSet d Λ ⊆ S.candMean d '' S.MSMSet d Λ' := Set.image_mono hsub exact csInf_le_csInf hbdd' hne himg
Calibrated 6 core · 5 supporting This file defines the arm-generic calibrated MSM ambiguity set and proves its basic validity properties. ★ Ymean_mem_Icc_calib★ msmUpperCalib_le_msmUpper
Calibrated marginal-sensitivity set
This file defines the arm-generic calibrated MSM ambiguity set and proves its basic validity
properties. It introduces Calibrated, MSMSetCalib, msmUpperCalib, and msmLowerCalib;
proves that the true complete propensity is calibrated and therefore belongs to the calibrated
set when the MSM assumption holds; proves validity via Ymean_mem_Icc_calib; and, under the
stated nonemptiness and boundedness hypotheses, shows that the calibrated endpoints tighten the
uncalibrated HT relaxation.
Given a binary-treatment backdoor system, a treatment arm, and a candidate complete-propensity function, the calibration condition holds exactly when the conditional mean, given the covariate σ-algebra, of that arm's indicator divided by that function equals one almost surely.
Definition (Lean source)
Given a binary-treatment backdoor system, a treatment arm, and a sensitivity level, the calibrated MSM ambiguity set contains exactly the candidate complete-propensity functions that belong to the MSM ambiguity set at that level and satisfy the calibration condition.
Definition (Lean source)
Given a binary-treatment backdoor system, a treatment arm, and a sensitivity level, the calibrated MSM upper bound is the supremum of candidate inverse-probability-weighted means over the calibrated MSM ambiguity set.
Definition (Lean source)
Given a binary-treatment backdoor system, a treatment arm, and a sensitivity level, the calibrated MSM lower bound is the infimum of candidate inverse-probability-weighted means over the calibrated MSM ambiguity set.
Definition (Lean source)
The mean potential outcome for an arm lies in its calibrated sensitivity interval in a binary-treatment backdoor system at a sensitivity level when the arm's complete propensity is calibrated and admissible, its candidate mean equals its potential-outcome mean, and the calibrated candidate means are bounded below and above, for the selected arm.
Formal statement
Proof (Lean source)
The calibrated upper endpoint does not exceed the uncalibrated HT-relaxation upper endpoint for a binary-treatment backdoor system, the selected arm, and a sensitivity level, provided the calibrated candidate-mean range is nonempty and the uncalibrated range is bounded above.
Formal statement
Proof (Lean source)
5 supporting declarations (lemmas, instances)
-
calibrated_weight_integrabletheorem — Calibration makes the arm-indicator inverse-weight integrand integrable for a binary-treatment backdoor system, the selected arm, and a candidate complete propensity whenever that candidate is calibrated for the arm.hypothesesγ :sharedType u_1d :etilde :P.Ω → ℝhcal :S.Calibrated d etildeconclusionIntegrable (fun ω => S.dVar.indicator d ω / etilde ω) P.μProof (Lean source)
@[fun_prop] theorem calibrated_weight_integrable (d : Bool) (etilde : P.Ω → ℝ) (hcal : S.Calibrated d etilde) : Integrable (fun ω => S.dVar.indicator d ω / etilde ω) P.μ := by unfold POBackdoorSystem.Calibrated at hcal by_contra hnot rw [MeasureTheory.condExp_of_not_integrable hnot] at hcal have hzero_eq_one := integral_congr_ae hcal simp at hzero_eq_one -
completeProp_calibratedtheorem — The complete propensity is calibrated for its arm in a binary-treatment backdoor system when that propensity is positive almost surely and the corresponding inverse-weighted arm indicator is integrable, for the selected arm.hypothesesγ :sharedType u_1IsFiniteMeasure P.μd :hpos :∀ᵐ ω ∂P.μ, 0 < S.completeProp d ωhint :Integrable (fun ω => S.dVar.indicator d ω / S.completeProp d ω) P.μconclusionS.Calibrated d (S.completeProp d)Proof (Lean source)
theorem completeProp_calibrated [StandardBorelSpace P.Ω] [IsFiniteMeasure P.μ] (d : Bool) (hpos : ∀ᵐ ω ∂P.μ, 0 < S.completeProp d ω) (hint : Integrable (fun ω => S.dVar.indicator d ω / S.completeProp d ω) P.μ) : S.Calibrated d (S.completeProp d) := by classical set A : P.Ω → ℝ := S.dVar.indicator d with hA_def set e : P.Ω → ℝ := S.completeProp d with he_def -- `σ(X) ≤ σ(X, Y(d))`. have hX_le : S.sigmaX ≤ S.sigmaXY d := by rw [POBackdoorSystem.sigmaX, POBackdoorSystem.sigmaXY] exact le_sup_left -- `1/e` is `σ(X,Y(d))`-strongly measurable (`e = condExp` is). have he_smeas : StronglyMeasurable[S.sigmaXY d] e := by rw [he_def]; exact stronglyMeasurable_condExp have hinv_smeas : StronglyMeasurable[S.sigmaXY d] (fun ω => 1 / e ω) := (measurable_const.div he_smeas.measurable).stronglyMeasurable -- Integrability of `A` and `(1/e)·A` (= `A/e`). have hA_int : Integrable A P.μ := S.dVar.integrable_indicator d (measurableSet_singleton d) have hinvA_int : Integrable (fun ω => (1 / e ω) * A ω) P.μ := by refine hint.congr (Filter.Eventually.of_forall ?_) intro ω simp [hA_def, he_def, div_eq_inv_mul] -- Pull out `1/e` through conditional expectation with respect to `σ(X,Y(d))`. have he_cond : (P.μ[A | S.sigmaXY d]) = e := by rw [hA_def, he_def]; rfl have hpull : P.μ[fun ω => (1 / e ω) * A ω | S.sigmaXY d] =ᵐ[P.μ] (fun ω => (1 / e ω) * e ω) := by have h := MeasureTheory.condExp_mul_of_stronglyMeasurable_left (m := S.sigmaXY d) (μ := P.μ) hinv_smeas hinvA_int hA_int refine h.trans ?_ rw [he_cond] rfl -- Cancel: `(1/e)·e = 1` a.e. from positivity. have hcancel : (fun ω => (1 / e ω) * e ω) =ᵐ[P.μ] (fun _ => (1 : ℝ)) := by filter_upwards [hpos] with ω hω rw [he_def] at hω rw [he_def] field_simp -- Thus `μ[A/e | σ(X,Y(d))] =ᵐ 1`. have hinner : P.μ[fun ω => A ω / e ω | S.sigmaXY d] =ᵐ[P.μ] (fun _ => (1 : ℝ)) := by have hrw : (fun ω => A ω / e ω) = (fun ω => (1 / e ω) * A ω) := by funext ω; rw [one_div, div_eq_inv_mul] rw [hrw] exact hpull.trans hcancel -- Apply the tower property from `σ(X,Y(d))` down to `σ(X)`. unfold POBackdoorSystem.Calibrated have htower : P.μ[fun ω => A ω / e ω | S.sigmaX] =ᵐ[P.μ] P.μ[P.μ[fun ω => A ω / e ω | S.sigmaXY d] | S.sigmaX] := (MeasureTheory.condExp_condExp_of_le hX_le (S.sigmaXY_le d)).symm refine htower.trans ?_ have hcongr : P.μ[P.μ[fun ω => A ω / e ω | S.sigmaXY d] | S.sigmaX] =ᵐ[P.μ] P.μ[(fun _ => (1 : ℝ)) | S.sigmaX] := condExp_congr_ae hinner refine hcongr.trans ?_ exact Filter.EventuallyEq.of_eq (MeasureTheory.condExp_const S.sigmaX_le (1 : ℝ)) -
completeProp_mem_MSMSetCalibtheorem — The d complete propensity lies in the calibrated set when it satisfies MSM membership and calibration.hypothesesγ :sharedType u_1d :Λ :ℝhmem :S.completeProp d ∈ S.MSMSet d Λhcalib :S.Calibrated d (S.completeProp d)conclusionS.completeProp d ∈ S.MSMSetCalib d ΛProof (Lean source)
theorem completeProp_mem_MSMSetCalib (d : Bool) (Λ : ℝ) (hmem : S.completeProp d ∈ S.MSMSet d Λ) (hcalib : S.Calibrated d (S.completeProp d)) : S.completeProp d ∈ S.MSMSetCalib d Λ := ⟨hmem, hcalib⟩ -
MSMSetCalib_subsettheorem — The calibrated set is a subset of the odds-ratio box.hypothesesconclusionS.MSMSetCalib d Λ ⊆ S.MSMSet d ΛProof (Lean source)
theorem MSMSetCalib_subset (d : Bool) (Λ : ℝ) : S.MSMSetCalib d Λ ⊆ S.MSMSet d Λ := fun _ h => h.1 -
msmLower_le_msmLowerCalibtheorem — The uncalibrated HT-relaxation lower endpoint does not exceed the calibrated lower endpoint for a binary-treatment backdoor system, the selected arm, and a sensitivity level, provided the calibrated candidate-mean range is nonempty and the uncalibrated range is bounded below.hypothesesγ :sharedType u_1d :Λ :ℝhne :(S.candMean d '' S.MSMSetCalib d Λ).Nonemptyhbdd :BddBelow (S.candMean d '' S.MSMSet d Λ)conclusionS.msmLower d Λ ≤ S.msmLowerCalib d ΛProof (Lean source)
theorem msmLower_le_msmLowerCalib (d : Bool) (Λ : ℝ) (hne : (S.candMean d '' S.MSMSetCalib d Λ).Nonempty) (hbdd : BddBelow (S.candMean d '' S.MSMSet d Λ)) : S.msmLower d Λ ≤ S.msmLowerCalib d Λ := by have hsub : S.MSMSetCalib d Λ ⊆ S.MSMSet d Λ := S.MSMSetCalib_subset d Λ have himg : S.candMean d '' S.MSMSetCalib d Λ ⊆ S.candMean d '' S.MSMSet d Λ := Set.image_mono hsub exact csInf_le_csInf hbdd hne himg
Bounds 6 core · 8 supporting This file computes closed forms for an unnormalized IPW functional over an odds-ratio box. ★ msmUpper_eq★ msmLower_eq
Closed-form uncalibrated marginal-sensitivity bounds
This file computes closed forms for an unnormalized IPW functional over an odds-ratio box. Because the box is pointwise separable, the supremum and infimum are attained by boundary inverse-propensity weights selected according to the sign of the observed outcome. These are not the normalized linear-fractional bounds of Zhao–Small–Bhattacharya.
The public surface consists of the endpoint weights wMin and wMax, the
integral forms msmUpperForm and msmLowerForm, and the closed-form identities
msmUpper_eq and msmLower_eq.
For a potential-outcomes backdoor system, a real sensitivity level, and a unit in its sample space, the lower endpoint inverse-propensity weight is , where is that unit's treated propensity score. It is the endpoint corresponding to an odds ratio of .
Definition (Lean source)
For a potential-outcomes backdoor system, a real sensitivity level, and a unit in its sample space, the upper endpoint inverse-propensity weight is , where is that unit's treated propensity score. It is the endpoint corresponding to an odds ratio of .
Definition (Lean source)
For a potential-outcomes backdoor system and a real sensitivity level, the upper marginal-sensitivity functional is the expectation of the factual outcome among treated units, weighted by the upper endpoint weight when that outcome is nonnegative and by the lower endpoint weight otherwise.
Definition (Lean source)
For a potential-outcomes backdoor system and a real sensitivity level, the lower marginal-sensitivity functional is the expectation of the factual outcome among treated units, weighted by the lower endpoint weight when that outcome is nonnegative and by the upper endpoint weight otherwise.
Definition (Lean source)
The largest unnormalized inverse-probability-weighted mean in the odds box is obtained by using the upper endpoint weight for nonnegative outcomes and the lower endpoint weight for negative outcomes. This holds for a potential-outcomes backdoor system at a sensitivity level of at least one under two-sided propensity overlap, measurability of every candidate propensity up to null sets, and integrability of an envelope that dominates every candidate weighted outcome.
Formal statement
Proof (Lean source)
The smallest unnormalized inverse-probability-weighted mean in the odds box is obtained by using the lower endpoint weight for nonnegative outcomes and the upper endpoint weight for negative outcomes. This holds for a potential-outcomes backdoor system at a sensitivity level of at least one under two-sided propensity overlap, measurability of every candidate propensity up to null sets, and integrability of an envelope that dominates every candidate weighted outcome.
Formal statement
Proof (Lean source)
8 supporting declarations (lemmas, instances)
-
wMin_deflemma — The smallest admissible inverse-propensity weight at a sensitivity level sends a unit to one plus the ratio of the complementary propensity score to the sensitivity level times the propensity score.hypotheses -
wMax_deflemma — The largest admissible inverse-propensity weight at a sensitivity level sends a unit to one plus the sensitivity level times the complementary propensity score, divided by the propensity score.hypotheses -
measurable_wMin_sigmaXlemma — The lower marginal-sensitivity weight is measurable for the covariate σ-algebra.hypothesesconclusionMeasurable[S.sigmaX] (S.wMin Λ)Proof (Lean source)
@[fun_prop] lemma measurable_wMin_sigmaX (Λ : ℝ) : Measurable[S.sigmaX] (S.wMin Λ) := by have hp : Measurable[S.sigmaX] (S.propScore true) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable unfold POBackdoorSystem.wMin exact measurable_const.add ((measurable_const.sub hp).div (measurable_const.mul hp)) -
measurable_wMax_sigmaXlemma — The upper marginal-sensitivity weight is measurable for the covariate σ-algebra.hypothesesconclusionMeasurable[S.sigmaX] (S.wMax Λ)Proof (Lean source)
@[fun_prop] lemma measurable_wMax_sigmaX (Λ : ℝ) : Measurable[S.sigmaX] (S.wMax Λ) := by have hp : Measurable[S.sigmaX] (S.propScore true) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable unfold POBackdoorSystem.wMax exact measurable_const.add ((measurable_const.mul (measurable_const.sub hp)).div hp) -
stronglyMeasurable_wMin_sigmaXlemma — The strongly-measurable form, for the covariate σ-algebra, of the lower sensitivity weight.hypothesesconclusionStronglyMeasurable[S.sigmaX] (S.wMin Λ)Proof (Lean source)
@[fun_prop] lemma stronglyMeasurable_wMin_sigmaX (Λ : ℝ) : StronglyMeasurable[S.sigmaX] (S.wMin Λ) := (S.measurable_wMin_sigmaX Λ).stronglyMeasurable -
stronglyMeasurable_wMax_sigmaXlemma — The strongly-measurable form, for the covariate σ-algebra, of the upper sensitivity weight.hypothesesconclusionStronglyMeasurable[S.sigmaX] (S.wMax Λ)Proof (Lean source)
@[fun_prop] lemma stronglyMeasurable_wMax_sigmaX (Λ : ℝ) : StronglyMeasurable[S.sigmaX] (S.wMax Λ) := (S.measurable_wMax_sigmaX Λ).stronglyMeasurable -
measurable_wMinlemma — The lower sensitivity weight is measurable for the ambient σ-algebra.hypothesesconclusionMeasurable (S.wMin Λ)Proof (Lean source)
@[fun_prop] lemma measurable_wMin (Λ : ℝ) : Measurable (S.wMin Λ) := (S.measurable_wMin_sigmaX Λ).mono S.sigmaX_le le_rfl -
measurable_wMaxlemma — The upper sensitivity weight is measurable for the ambient σ-algebra.hypothesesconclusionMeasurable (S.wMax Λ)Proof (Lean source)
@[fun_prop] lemma measurable_wMax (Λ : ℝ) : Measurable (S.wMax Λ) := (S.measurable_wMax_sigmaX Λ).mono S.sigmaX_le le_rfl
QuantileBalance 3 core · 0 supporting This file proves the Neyman-Pearson exchange argument behind the calibrated treated upper bound in the marginal sensitivity model. ★ cutoff_optimal★ msmUpperCalib_eq_cutoff
Quantile balancing for calibrated MSM upper bounds
This file proves the Neyman-Pearson exchange argument behind the calibrated treated
upper bound in the marginal sensitivity model. It defines the quantile-cutoff
complete propensity cutoffProp, proves the optimality theorem
cutoff_optimal, and derives msmUpperCalib_eq_cutoff: once the cutoff
candidate is calibrated and feasible, the calibrated upper endpoint is exactly its
candidate mean.
For a potential-outcome backdoor system, a sensitivity parameter, a real-valued cutoff function on the sample space, and a sample point, the treated-arm quantile-cutoff complete propensity is the reciprocal of the largest admissible treated inverse-propensity weight when the factual outcome exceeds the cutoff and of the smallest such weight otherwise.
Definition (Lean source)
Optimality of the quantile-cutoff weight (Neyman–Pearson exchange). Fix a sensitivity parameter Λ at least 1 and assume the propensity score for treatment given the covariates lies strictly between 0 and 1 almost surely (overlap). For a σ(X)-measurable, integrable cutoff function c whose induced cutoff candidate is feasible and calibrated, and under envelope-integrability conditions bounding the treated outcome, the treatment-weighted mass, and the cutoff-weighted mass by the upper marginal-sensitivity-model weight, then for any other calibrated, box-feasible candidate complete propensity ẽ, ẽ's candidate mean is at most the cutoff candidate mean — the cutoff weight maximizes the candidate mean among calibrated candidates.
Formal statement
Proof (Lean source)
The calibrated upper bound has the quantile-balancing closed form. Fix a sensitivity parameter Λ at least 1 and assume the propensity score for treatment given the covariates lies strictly between 0 and 1 almost surely (overlap). For a σ(X)-measurable, integrable cutoff function c whose induced cutoff candidate is feasible and calibrated, under envelope-integrability conditions bounding the treated outcome, the treatment-weighted mass, and the cutoff-weighted mass by the upper marginal-sensitivity-model weight, then the calibrated upper bound on E[Y(1)] equals the candidate mean of the cutoff propensity built from c.
Formal statement
Proof (Lean source)
ControlCutoff 8 core · 9 supporting This file is the control-arm mirror of the treated cutoff-selection and calibration-bracket development: the cutoff propensity uses the untreated indicator and the control propensity P[D=0 | X], decomposes its conditiona ★ wMin0_mul_propScore_le_one★ controlCutoffProp_calibrated_of_survival★ cutoffProp0_mem_MSMSetCalib0_of_survival
Marginal Sensitivity Model — control cutoff calibration
This file is the control-arm mirror of the treated cutoff-selection and calibration-bracket
development: the cutoff propensity uses the untreated indicator and the control propensity
P[D=0 | X], decomposes its conditional calibration value into a minimum-weight term plus a
conditional control-survival term, and reduces calibrated membership in the calibrated control MSM set to
the corresponding conditional-survival equation.
It defines the control endpoint weights wMin0 and wMax0, the upper-cutoff
candidate cutoffProp0, the survival target survTarget0, and the conditional
survival functional controlSurv. The main theorems are the calibration
bracket lemmas, control_calibValue_eq, controlCutoffProp_calibrated_of_survival,
cutoffProp0_mem_MSMSet0, and cutoffProp0_mem_MSMSetCalib0_of_survival. It ends with the
integrability facts that follow from integrability of the control indicator times the largest
weight: integrable_control_gt_cutoff, integrable_control_wMin0_of_wMax0, and
integrable_wDiff0_mul_control_gt_cutoff.
For a potential-outcome backdoor system, a sensitivity parameter, and a sample point, the smallest admissible control inverse-propensity weight is , where is the probability of the control arm conditional on the covariates.
Definition (Lean source)
For a potential-outcome backdoor system, a sensitivity parameter, and a sample point, the largest admissible control inverse-propensity weight is , where is the probability of the control arm conditional on the covariates.
Definition (Lean source)
For a potential-outcome backdoor system, a sensitivity parameter, a real-valued cutoff function on the sample space, and a sample point, the control quantile-cutoff complete propensity is the reciprocal of the largest admissible control inverse-propensity weight when the factual outcome exceeds the cutoff and of the smallest such weight otherwise.
Definition (Lean source)
For a potential-outcome backdoor system and a real-valued cutoff function on the sample space, the conditional control-survival function assigns to each sample point the conditional expectation, given the covariates, of the control-arm indicator times the indicator that the factual outcome exceeds the cutoff at that point.
Definition (Lean source)
For a potential-outcome backdoor system, a sensitivity parameter, and a sample point, the target control-survival probability is , where is the control propensity score.
Definition (Lean source)
Lower control calibration bracket is at most one. Fix a sensitivity parameter Λ at least 1. If the control propensity P[D=0∣X] lies strictly between 0 and 1 almost everywhere (overlap), then almost everywhere the lower calibration weight wMin0 Λ times the control propensity is at most 1.
Formal statement
Proof (Lean source)
A cutoff solving the target control-survival equation is calibrated. Fix a sensitivity parameter Λ strictly greater than 1. If the control propensity P[D=0∣X] lies strictly between 0 and 1 almost everywhere (overlap), and the product of the control indicator and the survival-cutoff indicator 1{c<Y} is integrable, the product of the control indicator and the lower weight wMin0 Λ is integrable, the product of the weight spread with the control-indicator survival term is integrable, and the conditional control-survival functional at c equals, almost everywhere, the target survival value survTarget0 Λ, then the cutoff-calibration propensity cutoffProp0 Λ c is calibrated: the conditional expectation of the control indicator divided by it, given the covariates, equals 1 almost everywhere.
Formal statement
Proof (Lean source)
The cutoff belongs to the calibrated control MSM set whenever it solves the target control-survival equation. Fix a sensitivity parameter Λ strictly greater than 1. If the control propensity P[D=0∣X] lies strictly between 0 and 1 almost everywhere (overlap), and the product of the control indicator and the survival-cutoff indicator 1{c<Y} is integrable, the product of the control indicator and the lower weight wMin0 Λ is integrable, the product of the weight spread with the control-indicator survival term is integrable, and the conditional control-survival functional at c equals, almost everywhere, the target survival value survTarget0 Λ, then the cutoff-calibration propensity cutoffProp0 Λ c belongs to the calibrated control MSM set MSMSetCalib false Λ.
Formal statement
Proof (Lean source)
9 supporting declarations (lemmas, instances)
-
one_le_wMax0_mul_propScoretheorem — Upper control calibration bracket is at least one. Fix a sensitivity parameter Λ at least 1. If the control propensity P[D=0∣X] lies strictly between 0 and 1 almost everywhere (overlap), then almost everywhere the upper calibration weight wMax0 Λ times the control propensity is at least 1.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λconclusion∀ᵐ ω ∂P.μ, 1 ≤ S.wMax0 Λ ω * S.propScore false ωProof (Lean source)
theorem one_le_wMax0_mul_propScore (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) : ∀ᵐ ω ∂P.μ, 1 ≤ S.wMax0 Λ ω * S.propScore false ω := by filter_upwards [hoverlap] with ω hω set e : ℝ := S.propScore false ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have hw : S.wMax0 Λ ω * S.propScore false ω = e + Λ * (1 - e) := by simp only [POBackdoorSystem.wMax0, ← he_def] field_simp [he0.ne'] have hmul : 1 - e ≤ Λ * (1 - e) := by nlinarith [hΛ, le_of_lt he1] calc 1 = e + (1 - e) := by ring _ ≤ e + Λ * (1 - e) := by linarith _ = S.wMax0 Λ ω * S.propScore false ω := hw.symm -
condExp_control_wMin0_eqtheorem — All-lower-weight control calibration value. For a sensitivity parameter Λ, if the product of the control indicator 1{D=0} and the lower calibration weight wMin0 Λ is integrable, then the conditional expectation of that product given the covariate σ-algebra equals, almost everywhere, the lower weight times the control propensity P[D=0∣X].hypothesesProof (Lean source)
theorem condExp_control_wMin0_eq (Λ : ℝ) (hint : Integrable (fun ω => S.dVar.indicator false ω * S.wMin0 Λ ω) P.μ) : P.μ[fun ω => S.dVar.indicator false ω * S.wMin0 Λ ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMin0 Λ ω * S.propScore false ω) := by have hprop_meas : Measurable[S.sigmaX] (S.propScore false) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable have hw_smeas : StronglyMeasurable[S.sigmaX] (S.wMin0 Λ) := by unfold POBackdoorSystem.wMin0 exact (measurable_const.add ((measurable_const.sub hprop_meas).div (measurable_const.mul hprop_meas))).stronglyMeasurable have hind_int : Integrable (S.dVar.indicator false) P.μ := S.dVar.integrable_indicator false (measurableSet_singleton false) have hcomm : (fun ω => S.dVar.indicator false ω * S.wMin0 Λ ω) = (fun ω => S.wMin0 Λ ω * S.dVar.indicator false ω) := by funext ω exact mul_comm _ _ refine (MeasureTheory.condExp_congr_ae (m := S.sigmaX) (μ := P.μ) (Filter.EventuallyEq.of_eq hcomm)).trans ?_ have hpull : P.μ[fun ω => S.wMin0 Λ ω * S.dVar.indicator false ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMin0 Λ ω * P.μ[S.dVar.indicator false | S.sigmaX] ω) := MeasureTheory.condExp_mul_of_stronglyMeasurable_left (m := S.sigmaX) (μ := P.μ) hw_smeas (hint.congr (Filter.EventuallyEq.of_eq hcomm)) hind_int exact hpull.trans (Filter.EventuallyEq.of_eq (by funext ω rfl)) -
condExp_control_wMax0_eqtheorem — All-upper-weight control calibration value. For a sensitivity parameter Λ, if the product of the control indicator 1{D=0} and the upper calibration weight wMax0 Λ is integrable, then the conditional expectation of that product given the covariate σ-algebra equals, almost everywhere, the upper weight times the control propensity P[D=0∣X].hypothesesProof (Lean source)
theorem condExp_control_wMax0_eq (Λ : ℝ) (hint : Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μ) : P.μ[fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMax0 Λ ω * S.propScore false ω) := by have hprop_meas : Measurable[S.sigmaX] (S.propScore false) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable have hw_smeas : StronglyMeasurable[S.sigmaX] (S.wMax0 Λ) := by unfold POBackdoorSystem.wMax0 exact (measurable_const.add ((measurable_const.mul (measurable_const.sub hprop_meas)).div hprop_meas)).stronglyMeasurable have hind_int : Integrable (S.dVar.indicator false) P.μ := S.dVar.integrable_indicator false (measurableSet_singleton false) have hcomm : (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) = (fun ω => S.wMax0 Λ ω * S.dVar.indicator false ω) := by funext ω exact mul_comm _ _ refine (MeasureTheory.condExp_congr_ae (m := S.sigmaX) (μ := P.μ) (Filter.EventuallyEq.of_eq hcomm)).trans ?_ have hpull : P.μ[fun ω => S.wMax0 Λ ω * S.dVar.indicator false ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMax0 Λ ω * P.μ[S.dVar.indicator false | S.sigmaX] ω) := MeasureTheory.condExp_mul_of_stronglyMeasurable_left (m := S.sigmaX) (μ := P.μ) hw_smeas (hint.congr (Filter.EventuallyEq.of_eq hcomm)) hind_int exact hpull.trans (Filter.EventuallyEq.of_eq (by funext ω rfl)) -
control_calibValue_eqtheorem — Cutoff control calibration value decomposes into a lower bracket plus a survival term. Fix a sensitivity parameter and cutoff function. If the product of the control indicator and the survival-cutoff indicator 1{c<Y} is integrable, the product of the control indicator and the lower weight wMin0 Λ is integrable, and the product of the weight spread wMax0 Λ - wMin0 Λ with the control-indicator survival term is integrable, then the conditional expectation, given the covariate σ-algebra, of the control indicator divided by the cutoff-calibration weight equals, almost everywhere, the lower weight times the control propensity plus the weight spread times the conditional control-survival functional controlSurv c.hypothesesγ :sharedType u_1Λ :ℝc :P.Ω → ℝhint1 :Integrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μhmin_int :Integrable (fun ω => S.dVar.indicator false ω * S.wMin0 Λ ω) P.μhdiff_int :Integrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μProof (Lean source)
theorem control_calibValue_eq (Λ : ℝ) (c : P.Ω → ℝ) (hint1 : Integrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ) (hmin_int : Integrable (fun ω => S.dVar.indicator false ω * S.wMin0 Λ ω) P.μ) (hdiff_int : Integrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ) : P.μ[fun ω => S.dVar.indicator false ω / S.cutoffProp0 Λ c ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMin0 Λ ω * S.propScore false ω + (S.wMax0 Λ ω - S.wMin0 Λ ω) * S.controlSurv c ω) := by classical set A : P.Ω → ℝ := S.dVar.indicator false with hA_def set I : P.Ω → ℝ := fun ω => if c ω < S.factualY ω then (1 : ℝ) else 0 with hI_def have hprop_meas : Measurable[S.sigmaX] (S.propScore false) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable have hwMin_smeas : StronglyMeasurable[S.sigmaX] (S.wMin0 Λ) := by unfold POBackdoorSystem.wMin0 exact (measurable_const.add ((measurable_const.sub hprop_meas).div (measurable_const.mul hprop_meas))).stronglyMeasurable have hwMax_smeas : StronglyMeasurable[S.sigmaX] (S.wMax0 Λ) := by unfold POBackdoorSystem.wMax0 exact (measurable_const.add ((measurable_const.mul (measurable_const.sub hprop_meas)).div hprop_meas)).stronglyMeasurable have hdiff_smeas : StronglyMeasurable[S.sigmaX] (fun ω => S.wMax0 Λ ω - S.wMin0 Λ ω) := (hwMax_smeas.measurable.sub hwMin_smeas.measurable).stronglyMeasurable have hA_int : Integrable A P.μ := by rw [hA_def] exact S.dVar.integrable_indicator false (measurableSet_singleton false) have hI_int : Integrable (fun ω => A ω * I ω) P.μ := by rw [hA_def, hI_def] exact hint1 have hmin_int' : Integrable (fun ω => S.wMin0 Λ ω * A ω) P.μ := by refine hmin_int.congr (Filter.Eventually.of_forall ?_) intro ω rw [hA_def] exact mul_comm _ _ have hpoint : (fun ω => S.dVar.indicator false ω / S.cutoffProp0 Λ c ω) =ᵐ[P.μ] (fun ω => S.wMin0 Λ ω * A ω + (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω)) := by refine Filter.Eventually.of_forall ?_ intro ω rw [hA_def, hI_def] by_cases hcy : c ω < S.factualY ω · simp only [POBackdoorSystem.cutoffProp0, if_pos hcy] rw [div_div_eq_mul_div, div_one] ring · simp only [POBackdoorSystem.cutoffProp0, if_neg hcy] rw [div_div_eq_mul_div, div_one] ring refine (MeasureTheory.condExp_congr_ae (m := S.sigmaX) (μ := P.μ) hpoint).trans ?_ have hsplit : P.μ[fun ω => S.wMin0 Λ ω * A ω + (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω) | S.sigmaX] =ᵐ[P.μ] P.μ[fun ω => S.wMin0 Λ ω * A ω | S.sigmaX] + P.μ[fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω) | S.sigmaX] := MeasureTheory.condExp_add hmin_int' hdiff_int S.sigmaX have hpullMin : P.μ[fun ω => S.wMin0 Λ ω * A ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMin0 Λ ω * S.propScore false ω) := by have h := MeasureTheory.condExp_mul_of_stronglyMeasurable_left (m := S.sigmaX) (μ := P.μ) hwMin_smeas hmin_int' hA_int exact h.trans (Filter.EventuallyEq.of_eq (by funext ω rfl)) have hpullDiff : P.μ[fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω) | S.sigmaX] =ᵐ[P.μ] (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * S.controlSurv c ω) := by have h := MeasureTheory.condExp_mul_of_stronglyMeasurable_left (m := S.sigmaX) (μ := P.μ) hdiff_smeas hdiff_int hI_int exact h.trans (Filter.EventuallyEq.of_eq (by funext ω rfl)) filter_upwards [hsplit, hpullMin, hpullDiff] with ω hsplitω hminω hdiffω rw [hsplitω] change P.μ[fun ω => S.wMin0 Λ ω * A ω | S.sigmaX] ω + P.μ[fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω) | S.sigmaX] ω = S.wMin0 Λ ω * S.propScore false ω + (S.wMax0 Λ ω - S.wMin0 Λ ω) * S.controlSurv c ω rw [hminω, hdiffω] -
cutoffProp0_mem_MSMSet0theorem — The control cutoff propensity always lies inside the control odds-ratio box. Fix a sensitivity parameter Λ at least 1 and a cutoff function c. If the control propensity P[D=0∣X] lies strictly between 0 and 1 almost everywhere (overlap), then the cutoff-calibration candidate propensity cutoffProp0 Λ c always belongs to the control marginal-sensitivity-model ambiguity set MSMSet false Λ.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λc :P.Ω → ℝconclusionS.cutoffProp0 Λ c ∈ S.MSMSet false ΛProof (Lean source)
theorem cutoffProp0_mem_MSMSet0 (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) (c : P.Ω → ℝ) : S.cutoffProp0 Λ c ∈ S.MSMSet false Λ := by classical have hΛ0 : (0 : ℝ) < Λ := lt_of_lt_of_le zero_lt_one hΛ have hOR_box : ∀ {e et : ℝ}, 0 < e → e < 1 → 0 < et → et < 1 → ((1 / Λ ≤ OR et e ∧ OR et e ≤ Λ) ↔ (1 + (1 - e) / (Λ * e) ≤ 1 / et ∧ 1 / et ≤ 1 + Λ * (1 - e) / e)) := by intro e et he0 he1 het0 het1 have h1e : 0 < 1 - e := by linarith have h1et : 0 < 1 - et := by linarith have hOReq : OR et e = et * (1 - e) / ((1 - et) * e) := by rw [OR, div_div_eq_mul_div, div_mul_eq_mul_div, mul_comm, mul_div_mul_comm] ring_nf rw [hOReq] have hMax : (1 / Λ ≤ et * (1 - e) / ((1 - et) * e)) ↔ (1 / et ≤ 1 + Λ * (1 - e) / e) := by rw [div_le_div_iff₀ hΛ0 (by positivity : (0 : ℝ) < (1 - et) * e), show (1 : ℝ) + Λ * (1 - e) / e = (e + Λ * (1 - e)) / e by field_simp, div_le_div_iff₀ het0 he0] constructor <;> intro h <;> nlinarith [h, mul_pos hΛ0 he0] have hMin : (et * (1 - e) / ((1 - et) * e) ≤ Λ) ↔ (1 + (1 - e) / (Λ * e) ≤ 1 / et) := by rw [div_le_iff₀ (by positivity : (0 : ℝ) < (1 - et) * e), show (1 : ℝ) + (1 - e) / (Λ * e) = (Λ * e + (1 - e)) / (Λ * e) by field_simp, div_le_div_iff₀ (by positivity : (0 : ℝ) < Λ * e) het0] constructor <;> intro h <;> nlinarith [h, mul_pos hΛ0 he0] rw [hMax, hMin, and_comm] have hae : ∀ᵐ ω ∂P.μ, (1 : ℝ) < S.wMin0 Λ ω ∧ S.wMin0 Λ ω ≤ S.wMax0 Λ ω := by filter_upwards [hoverlap] with ω hω set e : ℝ := S.propScore false ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have h1e : 0 < 1 - e := by linarith refine ⟨?_, ?_⟩ · have : 0 < (1 - e) / (Λ * e) := by positivity simp only [POBackdoorSystem.wMin0, ← he_def] linarith · simp only [POBackdoorSystem.wMin0, POBackdoorSystem.wMax0, ← he_def] have hd1 : (1 - e) / (Λ * e) ≤ Λ * (1 - e) / e := by rw [div_le_div_iff₀ (by positivity) he0] nlinarith [hΛ, mul_pos h1e he0, mul_pos hΛ0 he0, mul_nonneg (mul_nonneg (le_of_lt h1e) (le_of_lt he0)) (sub_nonneg.mpr hΛ)] linarith have hboxC : ∀ᵐ ω ∂P.μ, S.wMin0 Λ ω ≤ (if c ω < S.factualY ω then S.wMax0 Λ ω else S.wMin0 Λ ω) ∧ (if c ω < S.factualY ω then S.wMax0 Λ ω else S.wMin0 Λ ω) ≤ S.wMax0 Λ ω ∧ 1 < (if c ω < S.factualY ω then S.wMax0 Λ ω else S.wMin0 Λ ω) := by filter_upwards [hae] with ω hω obtain ⟨hmin1, hminmax⟩ := hω by_cases hcy : c ω < S.factualY ω · simp only [if_pos hcy] exact ⟨hminmax, le_rfl, lt_of_lt_of_le hmin1 hminmax⟩ · simp only [if_neg hcy] exact ⟨le_rfl, hminmax, hmin1⟩ refine ⟨?_, ?_⟩ · filter_upwards [hboxC] with ω hω obtain ⟨_, _, hwgt⟩ := hω unfold POBackdoorSystem.cutoffProp0 constructor · positivity · rw [div_lt_one (by linarith)] linarith · filter_upwards [hoverlap, hboxC] with ω hov hw obtain ⟨he0, he1⟩ := hov obtain ⟨hmin, hmax, hwgt⟩ := hw set wC : ℝ := if c ω < S.factualY ω then S.wMax0 Λ ω else S.wMin0 Λ ω with hwC_def have hcut : S.cutoffProp0 Λ c ω = 1 / wC := by rw [POBackdoorSystem.cutoffProp0, hwC_def] have het0 : 0 < S.cutoffProp0 Λ c ω := by rw [hcut] positivity have het1 : S.cutoffProp0 Λ c ω < 1 := by rw [hcut, div_lt_one (by linarith)] linarith rw [(hOR_box he0 he1 het0 het1)] have hinv : 1 / S.cutoffProp0 Λ c ω = wC := by rw [hcut, one_div_one_div] rw [hinv] simpa [POBackdoorSystem.wMin0, POBackdoorSystem.wMax0, hwC_def] using ⟨hmin, hmax⟩ -
ae_one_lt_wMin0_and_le_wMax0theorem — Fix a sensitivity parameter Λ at least one and assume the control propensity score lies strictly between 0 and 1 almost surely. Then almost surely the smallest admissible control inverse-propensity weight exceeds one and is at most the largest admissible weight.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λconclusion∀ᵐ ω ∂P.μ, (1 : ℝ) < S.wMin0 Λ ω ∧ S.wMin0 Λ ω ≤ S.wMax0 Λ ωProof (Lean source)
theorem ae_one_lt_wMin0_and_le_wMax0 (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) : ∀ᵐ ω ∂P.μ, (1 : ℝ) < S.wMin0 Λ ω ∧ S.wMin0 Λ ω ≤ S.wMax0 Λ ω := by have hΛ0 : (0 : ℝ) < Λ := lt_of_lt_of_le zero_lt_one hΛ filter_upwards [hoverlap] with ω hω set e : ℝ := S.propScore false ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have h1e : 0 < 1 - e := by linarith refine ⟨?_, ?_⟩ · have : 0 < (1 - e) / (Λ * e) := by positivity simp only [POBackdoorSystem.wMin0, ← he_def] linarith · simp only [POBackdoorSystem.wMin0, POBackdoorSystem.wMax0, ← he_def] have hd1 : (1 - e) / (Λ * e) ≤ Λ * (1 - e) / e := by rw [div_le_div_iff₀ (by positivity) he0] nlinarith [hΛ, mul_pos h1e he0, mul_pos hΛ0 he0, mul_nonneg (mul_nonneg (le_of_lt h1e) (le_of_lt he0)) (sub_nonneg.mpr hΛ)] linarith -
integrable_control_gt_cutofftheorem — Write D for the control-arm indicator and Y for the observed outcome. For a measurable cutoff function c, the product D·1{Y > c} is integrable: it is a measurable function bounded by D.hypothesesγ :sharedType u_1c :P.Ω → ℝhc :conclusionIntegrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μProof (Lean source)
theorem integrable_control_gt_cutoff (c : P.Ω → ℝ) (hc : Measurable c) : Integrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ := by have hite : Measurable (fun ω => if c ω < S.factualY ω then (1 : ℝ) else 0) := Measurable.ite (measurableSet_lt hc S.measurable_factualY) measurable_const measurable_const have hD : Measurable (S.dVar.indicator false) := S.dVar.measurable_indicator false (MeasurableSet.singleton false) refine (S.dVar.integrable_indicator false (MeasurableSet.singleton false)).mono (hD.mul hite).aestronglyMeasurable (Filter.Eventually.of_forall fun ω => ?_) by_cases h : c ω < S.factualY ω <;> simp [h] -
integrable_control_wMin0_of_wMax0theorem — Write D for the control-arm indicator and w_min, w_max for the smallest and largest admissible control inverse-propensity weights at a sensitivity level Λ at least one. If the control propensity score lies strictly between 0 and 1 almost surely and D·w_max is integrable, then D·w_min is integrable, because 0 ≤ D·w_min ≤ D·w_max almost surely.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λhmax :Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μconclusionIntegrable (fun ω => S.dVar.indicator false ω * S.wMin0 Λ ω) P.μProof (Lean source)
theorem integrable_control_wMin0_of_wMax0 (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) (hmax : Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μ) : Integrable (fun ω => S.dVar.indicator false ω * S.wMin0 Λ ω) P.μ := by have hD : Measurable (S.dVar.indicator false) := S.dVar.measurable_indicator false (MeasurableSet.singleton false) have hp : Measurable (S.propScore false) := S.measurable_propScore false have hwmin : Measurable (S.wMin0 Λ) := by unfold POBackdoorSystem.wMin0 fun_prop refine hmax.mono (hD.mul hwmin).aestronglyMeasurable ?_ filter_upwards [S.ae_one_lt_wMin0_and_le_wMax0 Λ hΛ hoverlap] with ω hω have hD0 : 0 ≤ S.dVar.indicator false ω := Set.indicator_nonneg (fun _ _ => zero_le_one) ω have hmin0 : 0 ≤ S.wMin0 Λ ω := by linarith [hω.1] rw [Real.norm_of_nonneg (mul_nonneg hD0 hmin0), Real.norm_of_nonneg (mul_nonneg hD0 (hmin0.trans hω.2))] exact mul_le_mul_of_nonneg_left hω.2 hD0 -
integrable_wDiff0_mul_control_gt_cutofftheorem — Write D for the control-arm indicator, Y for the observed outcome, and w_min, w_max for the smallest and largest admissible control inverse-propensity weights at a sensitivity level Λ at least one. If the control propensity score lies strictly between 0 and 1 almost surely, c is a measurable cutoff function, and D·w_max is integrable, then (w_max − w_min)·D·1{Y > c} is integrable, because almost surely it lies between 0 and D·w_max.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λc :P.Ω → ℝhc :hmax :Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μconclusionIntegrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μProof (Lean source)
theorem integrable_wDiff0_mul_control_gt_cutoff (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) (c : P.Ω → ℝ) (hc : Measurable c) (hmax : Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μ) : Integrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ := by have hite : Measurable (fun ω => if c ω < S.factualY ω then (1 : ℝ) else 0) := Measurable.ite (measurableSet_lt hc S.measurable_factualY) measurable_const measurable_const have hD : Measurable (S.dVar.indicator false) := S.dVar.measurable_indicator false (MeasurableSet.singleton false) have hp : Measurable (S.propScore false) := S.measurable_propScore false have hwmin : Measurable (S.wMin0 Λ) := by unfold POBackdoorSystem.wMin0 fun_prop have hwmax : Measurable (S.wMax0 Λ) := by unfold POBackdoorSystem.wMax0 fun_prop refine hmax.mono ((hwmax.sub hwmin).mul (hD.mul hite)).aestronglyMeasurable ?_ filter_upwards [S.ae_one_lt_wMin0_and_le_wMax0 Λ hΛ hoverlap] with ω hω have hD0 : 0 ≤ S.dVar.indicator false ω := Set.indicator_nonneg (fun _ _ => zero_le_one) ω have hmin0 : 0 ≤ S.wMin0 Λ ω := by linarith [hω.1] have hmax0 : 0 ≤ S.wMax0 Λ ω := hmin0.trans hω.2 have hdiff0 : 0 ≤ S.wMax0 Λ ω - S.wMin0 Λ ω := sub_nonneg.mpr hω.2 rw [Real.norm_of_nonneg (mul_nonneg hD0 hmax0)] by_cases h : c ω < S.factualY ω · simp only [if_pos h, mul_one] rw [Real.norm_of_nonneg (mul_nonneg hdiff0 hD0), mul_comm] exact mul_le_mul_of_nonneg_left (by linarith) hD0 · simp only [if_neg h, mul_zero, norm_zero] exact mul_nonneg hD0 hmax0
CutoffSelection 4 core · 6 supporting This file reduces calibrated feasibility of the upper MSM cutoff to one conditional-survival equation. ★ cutoff_calibValue_eq★ cutoffProp_mem_MSMSet
Calibrated treated-arm upper bound from calibrated cutoffs
This file reduces calibrated feasibility of the upper MSM cutoff to one
conditional-survival equation. It defines treatedSurv and survTarget, proves
the calibration decomposition cutoff_calibValue_eq, derives
cutoffProp_calibrated_of_survival, proves every cutoff propensity lies in the
odds-ratio box via cutoffProp_mem_MSMSet, and packages both facts as
cutoffProp_mem_MSMSetCalib_of_survival. It ends with the integrability facts that follow from
integrability of the treated indicator times the largest weight:
integrable_treated_gt_cutoff, integrable_treated_wMin_of_wMax, and
integrable_wDiff_mul_treated_gt_cutoff.
For a potential-outcomes backdoor system and a real-valued cutoff function on its sample space, the conditional treated-survival function assigns each unit the conditional expectation, given its covariates, of the treatment indicator times the indicator that its factual outcome exceeds its cutoff.
Definition (Lean source)
For a potential-outcomes backdoor system, a real sensitivity level, and a unit in its sample space, the target survival probability for cutoff calibration is , where is the unit's treated propensity score and are its endpoint weights.
Definition (Lean source)
Decomposition of the cutoff calibration value. For a sensitivity level and cutoff function, assume the treated-survival indicator, weighted by the treatment indicator, is integrable, the product of the treatment indicator and the lower marginal-sensitivity-model weight wMin is integrable, and the gap between the upper and lower weights, weighted by the treatment-weighted treated-survival indicator, is integrable. Then pulling the σ(X)-measurable weights wMin, wMax out of the conditional expectation decomposes the cutoff calibration value: E[Z/cutoffProp Λ c | σ(X)] = wMin·e + (wMax − wMin)·G(c), where G(c) is the conditional treated-survival at cutoff c.
Formal statement
Proof (Lean source)
The cutoff propensity is always in the odds-ratio box. Fix a sensitivity parameter Λ at least 1 and assume the propensity score for treatment given the covariates lies strictly between 0 and 1 almost surely (overlap). Then for any measurable cutoff function c, the induced cutoff propensity always lies in the marginal-sensitivity-model odds-ratio ambiguity set, since at each point it equals either the lower or the upper marginal-sensitivity-model weight.
Formal statement
Proof (Lean source)
6 supporting declarations (lemmas, instances)
-
cutoffProp_calibrated_of_survivaltheorem — Calibration from the survival equation. If the conditional treated-survival of the cutoff equals the target, the cutoff is calibrated.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λc :P.Ω → ℝhint1 :Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μhmin_int :Integrable (fun ω => S.dVar.indicator true ω * S.wMin Λ ω) P.μhdiff_int :Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μhsurv :S.treatedSurv c =ᵐ[P.μ] S.survTarget ΛconclusionS.Calibrated true (S.cutoffProp Λ c)Proof (Lean source)
theorem cutoffProp_calibrated_of_survival (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) (c : P.Ω → ℝ) (hint1 : Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ) (hmin_int : Integrable (fun ω => S.dVar.indicator true ω * S.wMin Λ ω) P.μ) (hdiff_int : Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ) (hsurv : S.treatedSurv c =ᵐ[P.μ] S.survTarget Λ) : S.Calibrated true (S.cutoffProp Λ c) := by unfold POBackdoorSystem.Calibrated have hΛ0 : 0 < Λ := lt_trans zero_lt_one hΛ refine (S.cutoff_calibValue_eq Λ c hint1 hmin_int hdiff_int).trans ?_ filter_upwards [hoverlap, hsurv] with ω hω hsurvω rw [hsurvω] set e : ℝ := S.propScore true ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have hdiff_pos : 0 < S.wMax Λ ω - S.wMin Λ ω := by simp only [POBackdoorSystem.wMax, POBackdoorSystem.wMin, ← he_def] have h1e : 0 < 1 - e := by linarith have hΛsq : 0 < Λ * Λ - 1 := by nlinarith field_simp [hΛ0.ne', he0.ne'] nlinarith [h1e, hΛsq, hΛ0, he0] have hdiff_ne : S.wMax Λ ω - S.wMin Λ ω ≠ 0 := hdiff_pos.ne' unfold POBackdoorSystem.survTarget field_simp [hdiff_ne] ring -
cutoffProp_mem_MSMSetCalib_of_survivaltheorem — Calibrated feasibility reduces to the survival equation. If the cutoff c solves the conditional treated-survival equation G(c) = survTarget, then cutoffProp Λ c ∈ MSMSetCalib Λ, discharging the hcut_mem hypothesis of msmUpperCalib_eq_cutoff.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λc :P.Ω → ℝhint1 :Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μhmin_int :Integrable (fun ω => S.dVar.indicator true ω * S.wMin Λ ω) P.μhdiff_int :Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μhsurv :S.treatedSurv c =ᵐ[P.μ] S.survTarget ΛconclusionS.cutoffProp Λ c ∈ S.MSMSetCalib true ΛProof (Lean source)
theorem cutoffProp_mem_MSMSetCalib_of_survival (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) (c : P.Ω → ℝ) (hint1 : Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ) (hmin_int : Integrable (fun ω => S.dVar.indicator true ω * S.wMin Λ ω) P.μ) (hdiff_int : Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ) (hsurv : S.treatedSurv c =ᵐ[P.μ] S.survTarget Λ) : S.cutoffProp Λ c ∈ S.MSMSetCalib true Λ := ⟨S.cutoffProp_mem_MSMSet Λ (le_of_lt hΛ) hoverlap c, S.cutoffProp_calibrated_of_survival Λ hΛ hoverlap c hint1 hmin_int hdiff_int hsurv⟩ -
ae_one_lt_wMin_and_le_wMaxtheorem — Fix a sensitivity parameter Λ at least one and assume the treated propensity score lies strictly between 0 and 1 almost surely. Then almost surely the smallest admissible treated inverse-propensity weight exceeds one and is at most the largest admissible weight.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λconclusion∀ᵐ ω ∂P.μ, (1 : ℝ) < S.wMin Λ ω ∧ S.wMin Λ ω ≤ S.wMax Λ ωProof (Lean source)
theorem ae_one_lt_wMin_and_le_wMax (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) : ∀ᵐ ω ∂P.μ, (1 : ℝ) < S.wMin Λ ω ∧ S.wMin Λ ω ≤ S.wMax Λ ω := by have hΛ0 : (0 : ℝ) < Λ := lt_of_lt_of_le zero_lt_one hΛ filter_upwards [hoverlap] with ω hω set e : ℝ := S.propScore true ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have h1e : 0 < 1 - e := by linarith refine ⟨?_, ?_⟩ · have : 0 < (1 - e) / (Λ * e) := by positivity simp only [POBackdoorSystem.wMin, ← he_def] linarith · simp only [POBackdoorSystem.wMin, POBackdoorSystem.wMax, ← he_def] have hd1 : (1 - e) / (Λ * e) ≤ Λ * (1 - e) / e := by rw [div_le_div_iff₀ (by positivity) he0] nlinarith [hΛ, mul_pos h1e he0, mul_pos hΛ0 he0, mul_nonneg (mul_nonneg (le_of_lt h1e) (le_of_lt he0)) (sub_nonneg.mpr hΛ)] linarith -
integrable_treated_gt_cutofftheorem — Write D for the treated-arm indicator and Y for the observed outcome. For a measurable cutoff function c, the product D·1{Y > c} is integrable: it is a measurable function bounded by D.hypothesesγ :sharedType u_1c :P.Ω → ℝhc :conclusionIntegrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μProof (Lean source)
theorem integrable_treated_gt_cutoff (c : P.Ω → ℝ) (hc : Measurable c) : Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ := by have hite : Measurable (fun ω => if c ω < S.factualY ω then (1 : ℝ) else 0) := Measurable.ite (measurableSet_lt hc S.measurable_factualY) measurable_const measurable_const have hD : Measurable (S.dVar.indicator true) := S.dVar.measurable_indicator true (MeasurableSet.singleton true) refine (S.dVar.integrable_indicator true (MeasurableSet.singleton true)).mono (hD.mul hite).aestronglyMeasurable (Filter.Eventually.of_forall fun ω => ?_) by_cases h : c ω < S.factualY ω <;> simp [h] -
integrable_treated_wMin_of_wMaxtheorem — Write D for the treated-arm indicator and w_min, w_max for the smallest and largest admissible treated inverse-propensity weights at a sensitivity level Λ at least one. If the treated propensity score lies strictly between 0 and 1 almost surely and D·w_max is integrable, then D·w_min is integrable, because 0 ≤ D·w_min ≤ D·w_max almost surely.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λhmax :Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μconclusionIntegrable (fun ω => S.dVar.indicator true ω * S.wMin Λ ω) P.μProof (Lean source)
theorem integrable_treated_wMin_of_wMax (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) (hmax : Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μ) : Integrable (fun ω => S.dVar.indicator true ω * S.wMin Λ ω) P.μ := by have hD : Measurable (S.dVar.indicator true) := S.dVar.measurable_indicator true (MeasurableSet.singleton true) have hwmin : Measurable (S.wMin Λ) := S.measurable_wMin Λ refine hmax.mono (hD.mul hwmin).aestronglyMeasurable ?_ filter_upwards [S.ae_one_lt_wMin_and_le_wMax Λ hΛ hoverlap] with ω hω have hD0 : 0 ≤ S.dVar.indicator true ω := Set.indicator_nonneg (fun _ _ => zero_le_one) ω have hmin0 : 0 ≤ S.wMin Λ ω := by linarith [hω.1] rw [Real.norm_of_nonneg (mul_nonneg hD0 hmin0), Real.norm_of_nonneg (mul_nonneg hD0 (hmin0.trans hω.2))] exact mul_le_mul_of_nonneg_left hω.2 hD0 -
integrable_wDiff_mul_treated_gt_cutofftheorem — Write D for the treated-arm indicator, Y for the observed outcome, and w_min, w_max for the smallest and largest admissible treated inverse-propensity weights at a sensitivity level Λ at least one. If the treated propensity score lies strictly between 0 and 1 almost surely, c is a measurable cutoff function, and D·w_max is integrable, then (w_max − w_min)·D·1{Y > c} is integrable, because almost surely it lies between 0 and D·w_max.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λc :P.Ω → ℝhc :hmax :Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μconclusionIntegrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μProof (Lean source)
theorem integrable_wDiff_mul_treated_gt_cutoff (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) (c : P.Ω → ℝ) (hc : Measurable c) (hmax : Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μ) : Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ := by have hite : Measurable (fun ω => if c ω < S.factualY ω then (1 : ℝ) else 0) := Measurable.ite (measurableSet_lt hc S.measurable_factualY) measurable_const measurable_const have hD : Measurable (S.dVar.indicator true) := S.dVar.measurable_indicator true (MeasurableSet.singleton true) have hwmin : Measurable (S.wMin Λ) := S.measurable_wMin Λ have hwmax : Measurable (S.wMax Λ) := S.measurable_wMax Λ refine hmax.mono ((hwmax.sub hwmin).mul (hD.mul hite)).aestronglyMeasurable ?_ filter_upwards [S.ae_one_lt_wMin_and_le_wMax Λ hΛ hoverlap] with ω hω have hD0 : 0 ≤ S.dVar.indicator true ω := Set.indicator_nonneg (fun _ _ => zero_le_one) ω have hmin0 : 0 ≤ S.wMin Λ ω := by linarith [hω.1] have hmax0 : 0 ≤ S.wMax Λ ω := hmin0.trans hω.2 have hdiff0 : 0 ≤ S.wMax Λ ω - S.wMin Λ ω := sub_nonneg.mpr hω.2 rw [Real.norm_of_nonneg (mul_nonneg hD0 hmax0)] by_cases h : c ω < S.factualY ω · simp only [if_pos h, mul_one] rw [Real.norm_of_nonneg (mul_nonneg hdiff0 hD0), mul_comm] exact mul_le_mul_of_nonneg_left (by linarith) hD0 · simp only [if_neg h, mul_zero, norm_zero] exact mul_nonneg hD0 hmax0
Compatible 10 core · 12 supporting This file defines the arbitrary full-data models used in the converse half of MSM sharpness. ★ condExp_treatmentIndicator_eq_xyPropensity
Full-data models compatible with an observed marginal sensitivity model
This file defines the arbitrary full-data models used in the converse half of
MSM sharpness. A compatible model lives on its own standard-Borel probability
space, reproduces the observed (X,Z,Z·Y) law, satisfies latent
unconfoundedness given (X,U), and obeys Tan's odds restriction with uniform
two-sided complete-propensity overlap.
It also constructs the conditional propensity given (X,Y(1)), proves the
conditional-independence bridge identifying it with the corresponding
conditional treatment probability, and factors it measurably through the pair
(X,Y(1)).
Given an observed backdoor system, the measurable propensity as a function of the covariate value is a Doob--Dynkin factor of the observed conditional treatment probability through the factual covariate.
Definition (Lean source)
For an observed backdoor system and sensitivity level, an MSM-compatible full-data model consists of its own standard-Borel probability space, measurable X,U,Z,Y(1), a complete propensity equal to the conditional treatment probability given (X,U), latent unconfoundedness, uniform complete overlap, Tan's odds bound, equality of the observable record law, and an integrable treated potential outcome.
Definition (Lean source)
For a compatible model, the σ-algebra generated by its covariate and latent variable is σ(X,U).
Definition (Lean source)
For a compatible model, the σ-algebra generated by its covariate and treated potential outcome is σ(X,Y(1)).
Definition (Lean source)
For a compatible model, the treated-arm indicator is one exactly when the model treatment is true.
Definition (Lean source)
For a compatible model, the complete propensity conditioned further down to σ(X,Y(1)) is the conditional expectation of e(X,U) given that σ-algebra.
Definition (Lean source)
Latent-unconfoundedness bridge. In a compatible model, the conditional treatment probability given (X,Y(1)) equals the conditional expectation of the complete propensity e(X,U) given (X,Y(1)).
Formal statement
Proof (Lean source)
Given a compatible model, the measurable (X,Y(1))-level propensity factor is a Doob--Dynkin representative of its conditional propensity.
Definition (Lean source)
For a compatible model at a full-data unit, the observable record contains its covariate, treatment, and treated observed outcome Z·Y(1).
Definition (Lean source)
The mean of the treated potential outcome is the full-data target.
Definition (Lean source)
12 supporting declarations (lemmas, instances)
-
exists_propensityFactortheorem — The observed propensity has a measurable factor through the factual covariate.hypothesesProof (Lean source)
theorem exists_propensityFactor : ∃ eX : γ → ℝ, Measurable eX ∧ S.propScore true = eX ∘ S.factualX := by have hprop := S.measurable_propScore_sigmaX true rw [POBackdoorSystem.sigmaX] at hprop exact hprop.exists_eq_measurable_comp -
measurable_propensityFactortheorem — The covariate-level propensity factor is measurable.hypothesesconclusionMeasurable S.propensityFactorProof (Lean source)
@[fun_prop] theorem measurable_propensityFactor : Measurable S.propensityFactor := (Classical.choose_spec (exists_propensityFactor S)).1 -
propScore_eq_propensityFactor_comptheorem — The observed propensity equals its covariate-level factor composed with the factual covariate.hypothesesconclusionS.propScore true = S.propensityFactor ∘ S.factualXProof (Lean source)
theorem propScore_eq_propensityFactor_comp : S.propScore true = S.propensityFactor ∘ S.factualX := (Classical.choose_spec (exists_propensityFactor S)).2 -
sigmaXU_letheorem — The latent-information σ-algebra is coarser than the ambient σ-algebra.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionM.sigmaXU ≤ (inferInstance : MeasurableSpace M.Ω)Proof (Lean source)
theorem sigmaXU_le : M.sigmaXU ≤ (inferInstance : MeasurableSpace M.Ω) := sup_le M.measurable_X.comap_le M.measurable_U.comap_le -
sigmaXY1_letheorem — The covariate--potential-outcome σ-algebra is coarser than the ambient σ-algebra.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionM.sigmaXY1 ≤ (inferInstance : MeasurableSpace M.Ω)Proof (Lean source)
theorem sigmaXY1_le : M.sigmaXY1 ≤ (inferInstance : MeasurableSpace M.Ω) := sup_le M.measurable_X.comap_le M.measurable_Y1.comap_le -
measurable_treatmentIndicatortheorem — The treated-arm indicator is measurable.Proof (Lean source)
@[fun_prop] theorem measurable_treatmentIndicator : Measurable M.treatmentIndicator := by unfold treatmentIndicator exact Measurable.ite (M.measurable_Z (measurableSet_singleton true)) measurable_const measurable_const -
integrable_treatmentIndicatortheorem — The treated-arm indicator is integrable.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionIntegrable M.treatmentIndicator M.QProof (Lean source)
@[fun_prop] theorem integrable_treatmentIndicator : Integrable M.treatmentIndicator M.Q := by apply Integrable.of_bound M.measurable_treatmentIndicator.aestronglyMeasurable 1 exact ae_of_all _ fun ω => by simp only [treatmentIndicator] split <;> simp -
integrable_completePropensitytheorem — The complete propensity is integrable.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionIntegrable M.completePropensity M.QProof (Lean source)
@[fun_prop] theorem integrable_completePropensity : Integrable M.completePropensity M.Q := by rw [M.propensity_eq] exact integrable_condExp -
exists_xyPropensityFactortheorem — The conditional propensity given (X,Y(1)) has a measurable factor through the pair (X,Y(1)).hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible Λconclusion∃ g : γ × ℝ → ℝ,conclusion 1conclusion 2M.xyPropensity = g ∘ fun ω => (M.X ω, M.Y1 ω)Proof (Lean source)
theorem exists_xyPropensityFactor : ∃ g : γ × ℝ → ℝ, Measurable g ∧ M.xyPropensity = g ∘ fun ω => (M.X ω, M.Y1 ω) := by have hstrong : StronglyMeasurable[M.sigmaXY1] M.xyPropensity := stronglyMeasurable_condExp unfold sigmaXY1 at hstrong rw [← MeasurableSpace.comap_prodMk M.X M.Y1] at hstrong exact Mathlib.MeasureTheory.exists_measurable_real_comp_of_stronglyMeasurable_comap hstrong -
measurable_xyPropensityFactortheorem — The (X,Y(1))-level propensity factor is measurable.Proof (Lean source)
@[fun_prop] theorem measurable_xyPropensityFactor : Measurable M.xyPropensityFactor := (Classical.choose_spec (exists_xyPropensityFactor M)).1 -
xyPropensity_eq_factor_comptheorem — The conditional propensity given (X,Y(1)) equals its measurable factor evaluated at (X,Y(1)).hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionM.xyPropensity = M.xyPropensityFactor ∘ fun ω => (M.X ω, M.Y1 ω)Proof (Lean source)
theorem xyPropensity_eq_factor_comp : M.xyPropensity = M.xyPropensityFactor ∘ fun ω => (M.X ω, M.Y1 ω) := (Classical.choose_spec (exists_xyPropensityFactor M)).2 -
measurable_observedRecordtheorem — The observable-record map is measurable.Proof (Lean source)
@[fun_prop] theorem measurable_observedRecord : Measurable M.observedRecord := by unfold observedRecord exact (M.measurable_X.prodMk M.measurable_Z).prodMk (Measurable.ite (M.measurable_Z (measurableSet_singleton true)) M.measurable_Y1 measurable_const)
ControlCutoffConstruct 5 core · 11 supporting This file is the control-arm mirror of CutoffConstruct: it constructs a σ(X)-measurable cutoff solving the control conditional-survival calibration equation and uses it to discharge the membership hypothesis in the calib ★ msmUpperCalib0_eq_cutoff_of_calibrating_cutoff_integrability
Marginal Sensitivity Model -- constructing the calibrating control cutoff
This file is the control-arm mirror of CutoffConstruct: it constructs a σ(X)-measurable
cutoff solving the control conditional-survival calibration equation and uses it to discharge the
membership hypothesis in the calibrated control calibrated upper bound.
The file defines controlSet, controlXYLaw, controlCondCDF, and
calibLevel0; proves the constant and functional survival bridges
controlSurv_const_eq and controlSurv_eq; constructs a measurable cutoff in
exists_calibrating_cutoff0; and packages the calibrated upper endpoint under integrability of
the calibrating cutoff as msmUpperCalib0_eq_cutoff_of_calibrating_cutoff_integrability.
For a potential-outcomes system, a measurable covariate space, and a back-door system on them, the control set is the set of all units whose factual treatment status is control.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, and a back-door system on them, the control covariate--outcome law is the image law of the factual covariate and factual outcome under the population measure restricted to control units.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, a back-door system on them, a unit, and a real threshold, the control conditional distribution-function value is the probability that a control unit's factual outcome does not exceed the threshold, conditional on having that unit's factual covariate value.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, a back-door system on them, a sensitivity level, and a unit, the control calibration quantile level is one minus the target control-survival probability divided by that unit's propensity for control. It is the control conditional-distribution-function level whose quantile supplies the calibrating cutoff.
Definition (Lean source)
Fix a sensitivity parameter Λ strictly greater than one. Assume the control propensity score, the conditional probability of no treatment given the covariates, lies strictly between 0 and 1 almost surely and the conditional distribution function of the control outcome given each covariate value is continuous. Write D for the control-arm indicator, Y for the observed outcome, and w_min ≤ w_max for the smallest and largest admissible control inverse-propensity weights at level Λ; the upper cutoff propensity at a cutoff c is 1/w_max where Y > c and 1/w_min elsewhere. Suppose every σ(X)-measurable cutoff c (measurable with respect to the covariates) for which the conditional mean of D·1{Y > c} given the covariates equals the control target survival probability almost surely makes two functions integrable: c itself and |c|·D·w_max, and that D·w_max and D·|Y|·w_max are integrable. Then there is a σ(X)-measurable cutoff c whose upper cutoff propensity lies in the calibrated control sensitivity set and whose candidate inverse-probability-weighted mean equals the calibrated upper bound for the mean of the control potential outcome.
Formal statement
Proof (Lean source)
11 supporting declarations (lemmas, instances)
-
controlXYLaw_eqlemma — The control push-forward law of the covariate and outcome is the image, under the map recording the factual covariate and factual outcome, of the population measure restricted to the control set.hypothesesconclusionS.controlXYLaw = (P.μ.restrict S.controlSet).map (fun ω => (S.factualX ω, S.factualY ω)) -
measurable_controlCondCDF_constlemma — At a fixed outcome level, the control conditional CDF depends on the unit only through the observed covariate, so it is measurable for the covariate σ-algebra.hypothesesconclusionMeasurable[S.sigmaX] (fun ω => S.controlCondCDF ω t)Proof (Lean source)
@[fun_prop] lemma measurable_controlCondCDF_const (t : ℝ) : Measurable[S.sigmaX] (fun ω => S.controlCondCDF ω t) := by rw [POBackdoorSystem.sigmaX] unfold POBackdoorSystem.controlCondCDF exact (ProbabilityTheory.measurable_condCDF S.controlXYLaw t).comp (comap_measurable S.factualX) -
stronglyMeasurable_controlCondCDF_constlemma — The strongly-measurable form, for the covariate σ-algebra, of the control conditional CDF at a fixed outcome level.hypothesesconclusionStronglyMeasurable[S.sigmaX] (fun ω => S.controlCondCDF ω t)Proof (Lean source)
@[fun_prop] lemma stronglyMeasurable_controlCondCDF_const (t : ℝ) : StronglyMeasurable[S.sigmaX] (fun ω => S.controlCondCDF ω t) := (S.measurable_controlCondCDF_const t).stronglyMeasurable -
measurable_controlCondCDF_const_ambientlemma — The control conditional CDF at a fixed outcome level is measurable for the ambient σ-algebra as well as for the covariate one.hypothesesconclusionMeasurable (fun ω => S.controlCondCDF ω t)Proof (Lean source)
@[fun_prop] lemma measurable_controlCondCDF_const_ambient (t : ℝ) : Measurable (fun ω => S.controlCondCDF ω t) := (S.measurable_controlCondCDF_const t).mono S.sigmaX_le le_rfl -
calibLevel0_mem_Iootheorem — Fix a sensitivity parameter Λ strictly greater than one and assume the control propensity score lies strictly between 0 and 1 almost surely. Then the control calibration quantile level lies strictly between 0 and 1 almost surely: on the overlap event it equals Λ/(Λ+1).hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λconclusion∀ᵐ ω ∂P.μ, 0 < S.calibLevel0 Λ ω ∧ S.calibLevel0 Λ ω < 1Proof (Lean source)
theorem calibLevel0_mem_Ioo (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) : ∀ᵐ ω ∂P.μ, 0 < S.calibLevel0 Λ ω ∧ S.calibLevel0 Λ ω < 1 := by filter_upwards [hoverlap] with ω hω have h : S.calibLevel0 Λ ω = Λ / (Λ + 1) := (calibLevel_formulas hΛ hω.1 hω.2).1 have hΛ0 : 0 < Λ := by linarith have hΛp : 0 < Λ + 1 := by linarith rw [h] exact ⟨div_pos hΛ0 hΛp, (div_lt_one hΛp).mpr (by linarith)⟩ -
controlSurv_const_eqtheorem — The survival bridge (constant cutoff). The weighted conditional survival equals the control conditional survival scaled by the propensity: E[(1-Z)·1{Y>t} | σ(X)] = e₀(X)·(1 − F₀(t | X)) a.e. The genuine measure-theoretic content relates a conditional expectation under μ to the conditional CDF of the control push-forward law.hypothesesProof (Lean source)
theorem controlSurv_const_eq (t : ℝ) : P.μ[fun ω => S.dVar.indicator false ω * (if t < S.factualY ω then (1 : ℝ) else 0) | S.sigmaX] =ᵐ[P.μ] fun ω => S.propScore false ω * (1 - S.controlCondCDF ω t) := by classical have hpoint : (fun ω => S.dVar.indicator false ω * (if t < S.factualY ω then (1 : ℝ) else 0)) =ᵐ[P.μ] (fun ω => S.dVar.indicator false ω - S.dVar.indicator false ω * (if S.factualY ω ≤ t then (1 : ℝ) else 0)) := by exact Filter.Eventually.of_forall fun ω => by by_cases hle : S.factualY ω ≤ t · have hnot : ¬ t < S.factualY ω := not_lt.mpr hle simp [hle, hnot] · have hlt : t < S.factualY ω := lt_of_not_ge hle simp [hle, hlt] refine (MeasureTheory.condExp_congr_ae (m := S.sigmaX) (μ := P.μ) hpoint).trans ?_ have hsub := MeasureTheory.condExp_sub (μ := P.μ) (m := S.sigmaX) (f := S.dVar.indicator false) (g := fun ω => S.dVar.indicator false ω * (if S.factualY ω ≤ t then (1 : ℝ) else 0)) (S.dVar.integrable_indicator false (MeasurableSet.singleton false)) (S.integrable_control_le_indicator t) have hle_bridge := S.controlLe_const_eq t filter_upwards [hsub, hle_bridge] with ω hsubω hleω change P.μ[S.dVar.indicator false - (fun ω => S.dVar.indicator false ω * (if S.factualY ω ≤ t then (1 : ℝ) else 0)) | S.sigmaX] ω = S.propScore false ω * (1 - S.controlCondCDF ω t) rw [hsubω] change S.propScore false ω - P.μ[fun ω => S.dVar.indicator false ω * (if S.factualY ω ≤ t then (1 : ℝ) else 0) | S.sigmaX] ω = S.propScore false ω * (1 - S.controlCondCDF ω t) rw [hleω] ring -
measurable_controlCondCDF_variablelemma — Evaluated at a cutoff that itself depends on the unit only through the observed covariate, the control conditional CDF is still measurable for the covariate σ-algebra.hypothesesconclusionMeasurable[S.sigmaX] (fun ω => S.controlCondCDF ω (c ω))Proof (Lean source)
@[fun_prop] lemma measurable_controlCondCDF_variable (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) : Measurable[S.sigmaX] (fun ω => S.controlCondCDF ω (c ω)) := by obtain ⟨q, hq, hc_eq⟩ := S.exists_factor_through_factualX hc haveI : IsFiniteMeasure S.controlXYLaw := by unfold POBackdoorSystem.controlXYLaw infer_instance rw [POBackdoorSystem.sigmaX, hc_eq] unfold POBackdoorSystem.controlCondCDF exact (measurable_condCDF_variable S.controlXYLaw hq).comp (comap_measurable S.factualX) -
stronglyMeasurable_controlCondCDF_variablelemma — The strongly-measurable form, for the covariate σ-algebra, of the control conditional CDF at a covariate-measurable cutoff.hypothesesconclusionStronglyMeasurable[S.sigmaX] (fun ω => S.controlCondCDF ω (c ω))Proof (Lean source)
@[fun_prop] lemma stronglyMeasurable_controlCondCDF_variable (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) : StronglyMeasurable[S.sigmaX] (fun ω => S.controlCondCDF ω (c ω)) := (S.measurable_controlCondCDF_variable c hc).stronglyMeasurable -
measurable_controlCondCDF_variable_ambientlemma — The control conditional CDF at a covariate-measurable cutoff is measurable for the ambient σ-algebra as well as for the covariate one.hypothesesconclusionMeasurable (fun ω => S.controlCondCDF ω (c ω))Proof (Lean source)
@[fun_prop] lemma measurable_controlCondCDF_variable_ambient (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) : Measurable (fun ω => S.controlCondCDF ω (c ω)) := (S.measurable_controlCondCDF_variable c hc).mono S.sigmaX_le le_rfl -
controlSurv_eqtheorem — The survival bridge (functional cutoff). The version of controlSurv_const_eq evaluated at a σ(X)-measurable cutoff c: E[(1-Z)·1{Y>c(X)} | σ(X)] = e₀(X)·(1 − F₀(c(X) | X)) a.e. Since c is σ(X)-measurable it is frozen inside the conditional expectation, reducing to the constant-cutoff bridge fibrewise. This is the form consumed by exists_calibrating_cutoff0.hypothesesconclusionS.controlSurv c =ᵐ[P.μ] fun ω => S.propScore false ω * (1 - S.controlCondCDF ω (c ω))Proof (Lean source)
theorem controlSurv_eq (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) : S.controlSurv c =ᵐ[P.μ] fun ω => S.propScore false ω * (1 - S.controlCondCDF ω (c ω)) := by classical unfold POBackdoorSystem.controlSurv have hpoint : (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) =ᵐ[P.μ] (fun ω => S.dVar.indicator false ω - S.dVar.indicator false ω * (if S.factualY ω ≤ c ω then (1 : ℝ) else 0)) := by exact Filter.Eventually.of_forall fun ω => by by_cases hle : S.factualY ω ≤ c ω · have hnot : ¬ c ω < S.factualY ω := not_lt.mpr hle simp [hle, hnot] · have hlt : c ω < S.factualY ω := lt_of_not_ge hle simp [hle, hlt] refine (MeasureTheory.condExp_congr_ae (m := S.sigmaX) (μ := P.μ) hpoint).trans ?_ have hsub := MeasureTheory.condExp_sub (μ := P.μ) (m := S.sigmaX) (f := S.dVar.indicator false) (g := fun ω => S.dVar.indicator false ω * (if S.factualY ω ≤ c ω then (1 : ℝ) else 0)) (S.dVar.integrable_indicator false (MeasurableSet.singleton false)) (S.integrable_control_le_indicator_variable c hc) have hle_bridge := S.controlLe_eq c hc filter_upwards [hsub, hle_bridge] with ω hsubω hleω change P.μ[S.dVar.indicator false - (fun ω => S.dVar.indicator false ω * (if S.factualY ω ≤ c ω then (1 : ℝ) else 0)) | S.sigmaX] ω = S.propScore false ω * (1 - S.controlCondCDF ω (c ω)) rw [hsubω] change S.propScore false ω - P.μ[fun ω => S.dVar.indicator false ω * (if S.factualY ω ≤ c ω then (1 : ℝ) else 0) | S.sigmaX] ω = S.propScore false ω * (1 - S.controlCondCDF ω (c ω)) rw [hleω] ring -
exists_calibrating_cutoff0theorem — Existence of a calibrating control cutoff. Fix a sensitivity parameter. Under control-arm overlap, continuity of each control conditional CDF, and an interior calibration level, there is a σ(X)-measurable cutoff c solving controlSurv c =ᵐ survTarget0 Λ. The cutoff is the conditional quantile at calibLevel0.hypothesesγ :sharedType u_1Λ :ℝhatomless :∀ a : γ, Continuous (condCDF S.controlXYLaw a)hlevel :∀ᵐ ω ∂P.μ, 0 < S.calibLevel0 Λ ω ∧ S.calibLevel0 Λ ω < 1conclusion∃ c : P.Ω → ℝ,conclusion 1Measurable[S.sigmaX] cconclusion 2S.controlSurv c =ᵐ[P.μ] S.survTarget0 ΛProof (Lean source)
theorem exists_calibrating_cutoff0 (Λ : ℝ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) (hatomless : ∀ a : γ, Continuous (condCDF S.controlXYLaw a)) (hlevel : ∀ᵐ ω ∂P.μ, 0 < S.calibLevel0 Λ ω ∧ S.calibLevel0 Λ ω < 1) : ∃ c : P.Ω → ℝ, Measurable[S.sigmaX] c ∧ S.controlSurv c =ᵐ[P.μ] S.survTarget0 Λ := by classical have hprop_meas : Measurable[S.sigmaX] (S.propScore false) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable have hwMin0_meas : Measurable[S.sigmaX] (S.wMin0 Λ) := by unfold POBackdoorSystem.wMin0 exact measurable_const.add ((measurable_const.sub hprop_meas).div (measurable_const.mul hprop_meas)) have hwMax0_meas : Measurable[S.sigmaX] (S.wMax0 Λ) := by unfold POBackdoorSystem.wMax0 exact measurable_const.add ((measurable_const.mul (measurable_const.sub hprop_meas)).div hprop_meas) have hsurvTarget0_meas : Measurable[S.sigmaX] (S.survTarget0 Λ) := by unfold POBackdoorSystem.survTarget0 exact (measurable_const.sub (hwMin0_meas.mul hprop_meas)).div (hwMax0_meas.sub hwMin0_meas) have hlevel_meas : Measurable[S.sigmaX] (S.calibLevel0 Λ) := by unfold POBackdoorSystem.calibLevel0 exact measurable_const.sub (hsurvTarget0_meas.div hprop_meas) obtain ⟨g, hg, hg_eq⟩ := S.exists_factor_through_factualX hlevel_meas let τ : γ → ℝ := fun a => if 0 < g a ∧ g a < 1 then g a else (1 / 2 : ℝ) have hτ_meas : Measurable τ := by dsimp [τ] refine Measurable.ite ?_ hg measurable_const exact (measurableSet_lt measurable_const hg).inter (measurableSet_lt hg measurable_const) have hτ0 : ∀ a, 0 < τ a := by intro a dsimp [τ] by_cases ha : 0 < g a ∧ g a < 1 · simp [ha] · simp [ha] have hτ1 : ∀ a, τ a < 1 := by intro a dsimp [τ] by_cases ha : 0 < g a ∧ g a < 1 · simp [ha] · simp only [ha, ↓reduceIte] norm_num haveI : IsFiniteMeasure S.controlXYLaw := by unfold POBackdoorSystem.controlXYLaw infer_instance obtain ⟨hq_meas, hq_attain⟩ := measurable_condQuantile_and_attains S.controlXYLaw τ hτ_meas hτ0 hτ1 (fun a => (hatomless a).continuousAt) let c : P.Ω → ℝ := fun ω => condQuantile S.controlXYLaw τ (S.factualX ω) have hc_meas : Measurable[S.sigmaX] c := by rw [POBackdoorSystem.sigmaX] exact hq_meas.comp (comap_measurable S.factualX) refine ⟨c, hc_meas, ?_⟩ have hτ_eq_level : ∀ᵐ ω ∂P.μ, τ (S.factualX ω) = S.calibLevel0 Λ ω := by filter_upwards [hlevel] with ω hω have hgx : g (S.factualX ω) = S.calibLevel0 Λ ω := by exact (congrFun hg_eq ω).symm dsimp [τ] rw [hgx] simp [hω] have hsurv := S.controlSurv_eq c hc_meas filter_upwards [hsurv, hτ_eq_level, hoverlap] with ω hsurvω hτω hoverlapω rw [hsurvω] have hcdf : S.controlCondCDF ω (c ω) = τ (S.factualX ω) := by unfold POBackdoorSystem.controlCondCDF c exact hq_attain (S.factualX ω) rw [hcdf, hτω] unfold POBackdoorSystem.calibLevel0 have hpos : S.propScore false ω ≠ 0 := ne_of_gt hoverlapω.1 field_simp [hpos] ring
LowerBound 6 core · 8 supporting This file proves the lower-endpoint mirror of the treated-arm quantile-cutoff construction. ★ cutoff_optimal_lower★ exists_calibrating_cutoff_lower★ msmLowerCalib_eq_cutoff_of_calibrating_cutoff_integrability
Calibrated treated-arm lower bound for the marginal sensitivity model
This file proves the lower-endpoint mirror of the treated-arm quantile-cutoff
construction. It defines lowerCutoffProp, survTargetLower, and
calibLevelLower; proves lower-cutoff optimality and the endpoint identity
msmLowerCalib_eq_cutoff; reduces calibrated feasibility to the lower survival
equation; constructs a calibrating lower cutoff under continuous conditional
treated laws; and packages the calibrated lower-bound theorem under integrability of the
calibrating cutoff msmLowerCalib_eq_cutoff_of_calibrating_cutoff_integrability.
For a potential-outcomes system, a measurable covariate space, a back-door system on them, a sensitivity level, a cutoff function, and a unit, the lower quantile-cutoff complete propensity is the reciprocal of the lower inverse-probability weight when that unit's factual outcome exceeds its cutoff and of the upper inverse-probability weight otherwise.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, a back-door system on them, a sensitivity level, and a unit, the lower target survival probability is the upper inverse-probability weight times the treatment propensity minus one, divided by the difference between the upper and lower inverse-probability weights.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, a back-door system on them, a sensitivity level, and a unit, the lower calibration quantile level is one minus the lower target survival probability divided by that unit's propensity for treatment.
Definition (Lean source)
Optimality of the lower quantile-cutoff weight. Fix a sensitivity parameter Λ at least 1 and assume the propensity score for treatment given the covariates lies strictly between 0 and 1 almost surely (overlap). For a σ(X)-measurable, integrable cutoff function c whose induced lower-cutoff candidate is feasible and calibrated, and under envelope-integrability conditions bounding the treated outcome, the treatment-weighted mass, and the cutoff-weighted mass by the upper marginal-sensitivity-model weight, then for any other calibrated, box-feasible candidate complete propensity ẽ, the lower-cutoff candidate mean is at most ẽ's candidate mean — the lower cutoff minimizes the candidate mean among calibrated candidates. The ≥-mirror of cutoff_optimal.
Formal statement
Proof (Lean source)
Existence of a calibrating lower cutoff. Fix a sensitivity parameter Λ, and assume the propensity score for treatment given the covariates lies strictly between 0 and 1 almost surely (overlap). If the treated outcome's conditional distribution given each covariate value has a continuous cumulative distribution function and the lower calibration quantile level lies strictly between 0 and 1 almost surely, then there exists an ambient-measurable cutoff function whose conditional treated-survival equals the lower target survival almost everywhere. The survTargetLower analogue of exists_calibrating_cutoff.
Formal statement
Proof (Lean source)
Fix a sensitivity parameter Λ strictly greater than one. Assume the treated propensity score lies strictly between 0 and 1 almost surely and the conditional distribution function of the treated outcome given each covariate value is continuous. Write D for the treated-arm indicator, Y for the observed outcome, and w_min ≤ w_max for the smallest and largest admissible inverse-propensity weights at level Λ; the lower cutoff propensity at a cutoff c is 1/w_min where Y > c and 1/w_max elsewhere. Suppose every σ(X)-measurable cutoff c (measurable with respect to the covariates) for which the conditional mean of D·1{Y > c} given the covariates equals the lower target survival probability almost surely makes two functions integrable: c itself and |c|·D·w_max, and that D·w_max and D·|Y|·w_max are integrable. Then there is a σ(X)-measurable cutoff c whose lower cutoff propensity lies in the calibrated sensitivity set and whose candidate inverse-probability-weighted mean equals the calibrated lower bound for the mean of the treated potential outcome.
Formal statement
Proof (Lean source)
8 supporting declarations (lemmas, instances)
-
measurable_survTargetLower_sigmaXlemma — The lower target survival is measurable for the covariate σ-algebra.hypothesesconclusionMeasurable[S.sigmaX] (S.survTargetLower Λ)Proof (Lean source)
@[fun_prop] lemma measurable_survTargetLower_sigmaX (Λ : ℝ) : Measurable[S.sigmaX] (S.survTargetLower Λ) := by have hp : Measurable[S.sigmaX] (S.propScore true) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable unfold POBackdoorSystem.survTargetLower exact (((S.measurable_wMax_sigmaX Λ).mul hp).sub measurable_const).div ((S.measurable_wMax_sigmaX Λ).sub (S.measurable_wMin_sigmaX Λ)) -
measurable_calibLevelLower_sigmaXlemma — The lower calibration quantile level is measurable for the covariate σ-algebra.hypothesesconclusionMeasurable[S.sigmaX] (S.calibLevelLower Λ)Proof (Lean source)
@[fun_prop] lemma measurable_calibLevelLower_sigmaX (Λ : ℝ) : Measurable[S.sigmaX] (S.calibLevelLower Λ) := by have hp : Measurable[S.sigmaX] (S.propScore true) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable unfold POBackdoorSystem.calibLevelLower exact measurable_const.sub ((S.measurable_survTargetLower_sigmaX Λ).div hp) -
calibLevelLower_mem_Iootheorem — Fix a sensitivity parameter Λ strictly greater than one and assume the treated propensity score lies strictly between 0 and 1 almost surely. Then the lower calibration quantile level lies strictly between 0 and 1 almost surely: on the overlap event it equals 1/(Λ+1).hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λconclusion∀ᵐ ω ∂P.μ, 0 < S.calibLevelLower Λ ω ∧ S.calibLevelLower Λ ω < 1Proof (Lean source)
theorem calibLevelLower_mem_Ioo (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) : ∀ᵐ ω ∂P.μ, 0 < S.calibLevelLower Λ ω ∧ S.calibLevelLower Λ ω < 1 := by filter_upwards [hoverlap] with ω hω have h : S.calibLevelLower Λ ω = 1 / (Λ + 1) := (calibLevel_formulas hΛ hω.1 hω.2).2 have hΛ0 : 0 < Λ := by linarith have hΛp : 0 < Λ + 1 := by linarith rw [h] exact ⟨div_pos one_pos hΛp, (div_lt_one hΛp).mpr (by linarith)⟩ -
msmLowerCalib_eq_cutofftheorem — The calibrated lower bound has the quantile-balancing closed form. Given a calibrating lower cutoff, msmLowerCalib Λ = candMean (lowerCutoffProp Λ c).hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λc :P.Ω → ℝhc_meas :Measurable[S.sigmaX] chc_int :Integrable c P.μhcut_mem :S.lowerCutoffProp Λ c ∈ S.MSMSetCalib true Λhenv :Integrable (fun ω => S.dVar.indicator true ω * |S.factualY ω| * S.wMax Λ ω) P.μhweight_env :Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μhc_env :Integrable (fun ω => |c ω| * S.dVar.indicator true ω * S.wMax Λ ω) P.μProof (Lean source)
theorem msmLowerCalib_eq_cutoff (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) (c : P.Ω → ℝ) (hc_meas : Measurable[S.sigmaX] c) (hc_int : Integrable c P.μ) (hcut_mem : S.lowerCutoffProp Λ c ∈ S.MSMSetCalib true Λ) (henv : Integrable (fun ω => S.dVar.indicator true ω * |S.factualY ω| * S.wMax Λ ω) P.μ) (hweight_env : Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μ) (hc_env : Integrable (fun ω => |c ω| * S.dVar.indicator true ω * S.wMax Λ ω) P.μ) : S.msmLowerCalib true Λ = S.candMean true (S.lowerCutoffProp Λ c) := by classical have hne : (S.candMean true '' S.MSMSetCalib true Λ).Nonempty := ⟨S.candMean true (S.lowerCutoffProp Λ c), Set.mem_image_of_mem _ hcut_mem⟩ have hle_all : ∀ x ∈ S.candMean true '' S.MSMSetCalib true Λ, S.candMean true (S.lowerCutoffProp Λ c) ≤ x := by rintro x ⟨etilde, hmem, rfl⟩ exact S.cutoff_optimal_lower Λ hΛ hoverlap c hc_meas hc_int hcut_mem henv hweight_env hc_env hmem have hbdd : BddBelow (S.candMean true '' S.MSMSetCalib true Λ) := ⟨S.candMean true (S.lowerCutoffProp Λ c), hle_all⟩ refine le_antisymm ?_ ?_ · unfold POBackdoorSystem.msmLowerCalib exact csInf_le hbdd (Set.mem_image_of_mem _ hcut_mem) · unfold POBackdoorSystem.msmLowerCalib exact le_csInf hne hle_all -
lowerCutoff_calibValue_eqtheorem — Decomposition of the lower-cutoff calibration value. For a sensitivity level and cutoff function, assuming integrability of the treatment-weighted survival indicator, integrability of the treatment-weighted upper MSM weight, and integrability of the weighted survival spread, the identity E[Z/lowerCutoffProp Λ c | σ(X)] = wMax·e − (wMax − wMin)·G(c) holds, with G(c) = treatedSurv c.hypothesesγ :sharedType u_1Λ :ℝc :P.Ω → ℝhint1 :Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μhmax_int :Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μhdiff_int :Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μProof (Lean source)
theorem lowerCutoff_calibValue_eq (Λ : ℝ) (c : P.Ω → ℝ) (hint1 : Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ) (hmax_int : Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μ) (hdiff_int : Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ) : P.μ[fun ω => S.dVar.indicator true ω / S.lowerCutoffProp Λ c ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMax Λ ω * S.propScore true ω - (S.wMax Λ ω - S.wMin Λ ω) * S.treatedSurv c ω) := by classical set A : P.Ω → ℝ := S.dVar.indicator true with hA_def set I : P.Ω → ℝ := fun ω => if c ω < S.factualY ω then (1 : ℝ) else 0 with hI_def have _hprop_meas : Measurable[S.sigmaX] (S.propScore true) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable have hwMin_smeas : StronglyMeasurable[S.sigmaX] (S.wMin Λ) := by fun_prop have hwMax_smeas : StronglyMeasurable[S.sigmaX] (S.wMax Λ) := by fun_prop have hdiff_smeas : StronglyMeasurable[S.sigmaX] (fun ω => S.wMax Λ ω - S.wMin Λ ω) := by fun_prop have hA_int : Integrable A P.μ := by fun_prop have hI_int : Integrable (fun ω => A ω * I ω) P.μ := by fun_prop have hmax_int' : Integrable (fun ω => S.wMax Λ ω * A ω) P.μ := by refine hmax_int.congr (Filter.Eventually.of_forall ?_) intro ω rw [hA_def] exact mul_comm _ _ have hpoint : (fun ω => S.dVar.indicator true ω / S.lowerCutoffProp Λ c ω) =ᵐ[P.μ] (fun ω => S.wMax Λ ω * A ω - (S.wMax Λ ω - S.wMin Λ ω) * (A ω * I ω)) := by refine Filter.Eventually.of_forall ?_ intro ω rw [hA_def, hI_def] by_cases hcy : c ω < S.factualY ω · simp only [POBackdoorSystem.lowerCutoffProp, if_pos hcy] rw [div_div_eq_mul_div, div_one] ring · simp only [POBackdoorSystem.lowerCutoffProp, if_neg hcy] rw [div_div_eq_mul_div, div_one] ring refine (MeasureTheory.condExp_congr_ae (m := S.sigmaX) (μ := P.μ) hpoint).trans ?_ have hsplit : P.μ[fun ω => S.wMax Λ ω * A ω - (S.wMax Λ ω - S.wMin Λ ω) * (A ω * I ω) | S.sigmaX] =ᵐ[P.μ] P.μ[fun ω => S.wMax Λ ω * A ω | S.sigmaX] - P.μ[fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (A ω * I ω) | S.sigmaX] := by condexp_linearity have hpullMax : P.μ[fun ω => S.wMax Λ ω * A ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMax Λ ω * S.propScore true ω) := by have h := MeasureTheory.condExp_mul_of_stronglyMeasurable_left (m := S.sigmaX) (μ := P.μ) hwMax_smeas hmax_int' hA_int exact h.trans (Filter.EventuallyEq.of_eq (by funext ω rfl)) have hpullDiff : P.μ[fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (A ω * I ω) | S.sigmaX] =ᵐ[P.μ] (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * S.treatedSurv c ω) := by have h := MeasureTheory.condExp_mul_of_stronglyMeasurable_left (m := S.sigmaX) (μ := P.μ) hdiff_smeas hdiff_int hI_int exact h.trans (Filter.EventuallyEq.of_eq (by funext ω rfl)) filter_upwards [hsplit, hpullMax, hpullDiff] with ω hsplitω hmaxω hdiffω rw [hsplitω] change P.μ[fun ω => S.wMax Λ ω * A ω | S.sigmaX] ω - P.μ[fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (A ω * I ω) | S.sigmaX] ω = S.wMax Λ ω * S.propScore true ω - (S.wMax Λ ω - S.wMin Λ ω) * S.treatedSurv c ω rw [hmaxω, hdiffω] -
lowerCutoffProp_calibrated_of_survivaltheorem — A lower cutoff whose treated-survival function equals the target induces a calibrated propensity.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λc :P.Ω → ℝhint1 :Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μhmax_int :Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μhdiff_int :Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μhsurv :S.treatedSurv c =ᵐ[P.μ] S.survTargetLower ΛconclusionS.Calibrated true (S.lowerCutoffProp Λ c)Proof (Lean source)
theorem lowerCutoffProp_calibrated_of_survival (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) (c : P.Ω → ℝ) (hint1 : Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ) (hmax_int : Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μ) (hdiff_int : Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ) (hsurv : S.treatedSurv c =ᵐ[P.μ] S.survTargetLower Λ) : S.Calibrated true (S.lowerCutoffProp Λ c) := by unfold POBackdoorSystem.Calibrated have hΛ0 : 0 < Λ := lt_trans zero_lt_one hΛ refine (S.lowerCutoff_calibValue_eq Λ c hint1 hmax_int hdiff_int).trans ?_ filter_upwards [hoverlap, hsurv] with ω hω hsurvω rw [hsurvω] set e : ℝ := S.propScore true ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have hdiff_pos : 0 < S.wMax Λ ω - S.wMin Λ ω := by simp only [POBackdoorSystem.wMax, POBackdoorSystem.wMin, ← he_def] have h1e : 0 < 1 - e := by linarith have hΛsq : 0 < Λ * Λ - 1 := by nlinarith field_simp [hΛ0.ne', he0.ne'] nlinarith [h1e, hΛsq, hΛ0, he0] have hdiff_ne : S.wMax Λ ω - S.wMin Λ ω ≠ 0 := hdiff_pos.ne' unfold POBackdoorSystem.survTargetLower field_simp [hdiff_ne] ring -
lowerCutoffProp_mem_MSMSettheorem — Given a backdoor system and sensitivity parameter, if the parameter is at least one and the observed propensity lies strictly between zero and one almost everywhere, then for any cutoff function, the lower cutoff propensity belongs to the treated marginal-sensitivity-model set.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λc :P.Ω → ℝconclusionS.lowerCutoffProp Λ c ∈ S.MSMSet true ΛProof (Lean source)
theorem lowerCutoffProp_mem_MSMSet (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) (c : P.Ω → ℝ) : S.lowerCutoffProp Λ c ∈ S.MSMSet true Λ := by classical have hΛ0 : (0 : ℝ) < Λ := lt_of_lt_of_le zero_lt_one hΛ have hOR_box : ∀ {e et : ℝ}, 0 < e → e < 1 → 0 < et → et < 1 → ((1 / Λ ≤ OR et e ∧ OR et e ≤ Λ) ↔ (1 + (1 - e) / (Λ * e) ≤ 1 / et ∧ 1 / et ≤ 1 + Λ * (1 - e) / e)) := by intro e et he0 he1 het0 het1 have h1e : 0 < 1 - e := by linarith have h1et : 0 < 1 - et := by linarith have hOReq : OR et e = et * (1 - e) / ((1 - et) * e) := by rw [OR, div_div_eq_mul_div, div_mul_eq_mul_div, mul_comm, mul_div_mul_comm] ring_nf rw [hOReq] have hMax : (1 / Λ ≤ et * (1 - e) / ((1 - et) * e)) ↔ (1 / et ≤ 1 + Λ * (1 - e) / e) := by rw [div_le_div_iff₀ hΛ0 (by positivity : (0 : ℝ) < (1 - et) * e), show (1 : ℝ) + Λ * (1 - e) / e = (e + Λ * (1 - e)) / e by field_simp, div_le_div_iff₀ het0 he0] constructor <;> intro h <;> nlinarith [h, mul_pos hΛ0 he0] have hMin : (et * (1 - e) / ((1 - et) * e) ≤ Λ) ↔ (1 + (1 - e) / (Λ * e) ≤ 1 / et) := by rw [div_le_iff₀ (by positivity : (0 : ℝ) < (1 - et) * e), show (1 : ℝ) + (1 - e) / (Λ * e) = (Λ * e + (1 - e)) / (Λ * e) by field_simp, div_le_div_iff₀ (by positivity : (0 : ℝ) < Λ * e) het0] constructor <;> intro h <;> nlinarith [h, mul_pos hΛ0 he0] rw [hMax, hMin, and_comm] have hae : ∀ᵐ ω ∂P.μ, (1 : ℝ) < S.wMin Λ ω ∧ S.wMin Λ ω ≤ S.wMax Λ ω := by filter_upwards [hoverlap] with ω hω set e : ℝ := S.propScore true ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have h1e : 0 < 1 - e := by linarith refine ⟨?_, ?_⟩ · have : 0 < (1 - e) / (Λ * e) := by positivity simp only [POBackdoorSystem.wMin, ← he_def] linarith · simp only [POBackdoorSystem.wMin, POBackdoorSystem.wMax, ← he_def] have hd1 : (1 - e) / (Λ * e) ≤ Λ * (1 - e) / e := by rw [div_le_div_iff₀ (by positivity) he0] nlinarith [hΛ, mul_pos h1e he0, mul_pos hΛ0 he0, mul_nonneg (mul_nonneg (le_of_lt h1e) (le_of_lt he0)) (sub_nonneg.mpr hΛ)] linarith have hboxC : ∀ᵐ ω ∂P.μ, S.wMin Λ ω ≤ (if c ω < S.factualY ω then S.wMin Λ ω else S.wMax Λ ω) ∧ (if c ω < S.factualY ω then S.wMin Λ ω else S.wMax Λ ω) ≤ S.wMax Λ ω ∧ 1 < (if c ω < S.factualY ω then S.wMin Λ ω else S.wMax Λ ω) := by filter_upwards [hae] with ω hω obtain ⟨hmin1, hminmax⟩ := hω by_cases hcy : c ω < S.factualY ω · simp only [if_pos hcy] exact ⟨le_rfl, hminmax, hmin1⟩ · simp only [if_neg hcy] exact ⟨hminmax, le_rfl, lt_of_lt_of_le hmin1 hminmax⟩ refine ⟨?_, ?_⟩ · filter_upwards [hboxC] with ω hω obtain ⟨_, _, hwgt⟩ := hω unfold POBackdoorSystem.lowerCutoffProp constructor · positivity · rw [div_lt_one (by linarith)] linarith · filter_upwards [hoverlap, hboxC] with ω hov hw obtain ⟨he0, he1⟩ := hov obtain ⟨hmin, hmax, hwgt⟩ := hw set wC : ℝ := if c ω < S.factualY ω then S.wMin Λ ω else S.wMax Λ ω with hwC_def have hcut : S.lowerCutoffProp Λ c ω = 1 / wC := by rw [POBackdoorSystem.lowerCutoffProp, hwC_def] have het0 : 0 < S.lowerCutoffProp Λ c ω := by rw [hcut] positivity have het1 : S.lowerCutoffProp Λ c ω < 1 := by rw [hcut, div_lt_one (by linarith)] linarith rw [(hOR_box he0 he1 het0 het1)] have hinv : 1 / S.lowerCutoffProp Λ c ω = wC := by rw [hcut, one_div_one_div] rw [hinv] simpa [POBackdoorSystem.wMin, POBackdoorSystem.wMax, hwC_def] using ⟨hmin, hmax⟩ -
lowerCutoffProp_mem_MSMSetCalib_of_survivaltheorem — The lower cutoff is calibrated-feasible given the survival equation.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λc :P.Ω → ℝhint1 :Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μhmax_int :Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μhdiff_int :Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μhsurv :S.treatedSurv c =ᵐ[P.μ] S.survTargetLower ΛconclusionS.lowerCutoffProp Λ c ∈ S.MSMSetCalib true ΛProof (Lean source)
theorem lowerCutoffProp_mem_MSMSetCalib_of_survival (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) (c : P.Ω → ℝ) (hint1 : Integrable (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ) (hmax_int : Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μ) (hdiff_int : Integrable (fun ω => (S.wMax Λ ω - S.wMin Λ ω) * (S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ) (hsurv : S.treatedSurv c =ᵐ[P.μ] S.survTargetLower Λ) : S.lowerCutoffProp Λ c ∈ S.MSMSetCalib true Λ := by exact ⟨S.lowerCutoffProp_mem_MSMSet Λ (le_of_lt hΛ) hoverlap c, S.lowerCutoffProp_calibrated_of_survival Λ hΛ hoverlap c hint1 hmax_int hdiff_int hsurv⟩
ControlLowerBound 6 core · 6 supporting This file gives the control-arm sInf lower bound for the Marginal Sensitivity Model. ★ cutoff_optimal0_lower★ msmLowerCalib0_eq_cutoff★ msmLowerCalib0_eq_cutoff_of_calibrating_cutoff_integrability
Marginal Sensitivity Model — control calibrated lower bound
This file gives the control-arm sInf lower bound for the Marginal Sensitivity Model. It mirrors
the treated lower-bound construction with the control propensity, untreated indicator, and control
cutoff-survival equation.
It defines the lower-cutoff candidate lowerCutoffProp0, the lower survival
target survTargetLower0, and the quantile level calibLevelLower0. The main
results are cutoff_optimal0_lower, msmLowerCalib0_eq_cutoff,
lowerControl_calibValue_eq, feasibility lemmas for the lower cutoff, the
existence theorem exists_calibrating_cutoff0_lower, and the closed form under integrability of
the calibrating cutoff msmLowerCalib0_eq_cutoff_of_calibrating_cutoff_integrability.
For a potential-outcome backdoor system, a sensitivity parameter, a real-valued cutoff function on the sample space, and a sample point, the lower quantile-cutoff complete propensity is the reciprocal of the lower admissible control inverse-propensity weight when the factual outcome exceeds the cutoff and of the upper admissible weight otherwise: if , and otherwise.
Definition (Lean source)
For a potential-outcome backdoor system, a sensitivity parameter, and a sample point, the lower target control-survival probability is , where is the control propensity score.
Definition (Lean source)
For a potential-outcome backdoor system, a sensitivity parameter, and a sample point, the lower calibration quantile level is one minus the lower target control-survival probability divided by the control propensity score at that point.
Definition (Lean source)
Optimality of the lower quantile-cutoff weight. Fix a sensitivity parameter Λ at least one. Assume the control propensity score is almost surely strictly between 0 and 1 (two-sided overlap), and let c be a σ(X)-measurable, integrable cutoff function such that the lower quantile-cutoff propensity it induces lies in the calibrated control ambiguity set. If the envelope 1_{D=0}·|Y|·wMax0(Λ) is integrable, the weighted control indicator 1_{D=0}·wMax0(Λ) is integrable, and the cutoff-weighted envelope |c|·1_{D=0}·wMax0(Λ) is integrable, then for any candidate complete control propensity ẽ in the calibrated ambiguity set, the candidate mean at the lower quantile-cutoff weight is no greater than the candidate mean at ẽ — the lower cutoff attains the minimum over all calibrated candidates.
Formal statement
Proof (Lean source)
The calibrated lower bound has the quantile-balancing closed form. Fix a sensitivity parameter Λ at least one. Under two-sided overlap of the control propensity score, given a σ(X)-measurable, integrable cutoff c whose induced lower quantile-cutoff propensity is itself calibrated-feasible, and assuming the envelope, weighted-indicator, and cutoff-weighted envelope integrability conditions bounding the IPW integrands, the calibrated (infimum) lower bound for E[Y(0)] over the calibrated ambiguity set equals the candidate mean evaluated at the lower quantile-cutoff propensity.
Formal statement
Proof (Lean source)
Fix a sensitivity parameter Λ strictly greater than one. Assume the control propensity score, the conditional probability of no treatment given the covariates, lies strictly between 0 and 1 almost surely and the conditional distribution function of the control outcome given each covariate value is continuous. Write D for the control-arm indicator, Y for the observed outcome, and w_min ≤ w_max for the smallest and largest admissible control inverse-propensity weights at level Λ; the lower cutoff propensity at a cutoff c is 1/w_min where Y > c and 1/w_max elsewhere. Suppose every σ(X)-measurable cutoff c (measurable with respect to the covariates) for which the conditional mean of D·1{Y > c} given the covariates equals the lower control target survival probability almost surely makes two functions integrable: c itself and |c|·D·w_max, and that D·w_max and D·|Y|·w_max are integrable. Then there is a σ(X)-measurable cutoff c whose lower cutoff propensity lies in the calibrated control sensitivity set and whose candidate inverse-probability-weighted mean equals the calibrated lower bound for the mean of the control potential outcome.
Formal statement
Proof (Lean source)
6 supporting declarations (lemmas, instances)
-
calibLevelLower0_mem_Iootheorem — Fix a sensitivity parameter Λ strictly greater than one and assume the control propensity score lies strictly between 0 and 1 almost surely. Then the lower control calibration quantile level lies strictly between 0 and 1 almost surely: on the overlap event it equals 1/(Λ+1).hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λconclusion∀ᵐ ω ∂P.μ, 0 < S.calibLevelLower0 Λ ω ∧ S.calibLevelLower0 Λ ω < 1Proof (Lean source)
theorem calibLevelLower0_mem_Ioo (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) : ∀ᵐ ω ∂P.μ, 0 < S.calibLevelLower0 Λ ω ∧ S.calibLevelLower0 Λ ω < 1 := by filter_upwards [hoverlap] with ω hω have h : S.calibLevelLower0 Λ ω = 1 / (Λ + 1) := (calibLevel_formulas hΛ hω.1 hω.2).2 have hΛ0 : 0 < Λ := by linarith have hΛp : 0 < Λ + 1 := by linarith rw [h] exact ⟨div_pos one_pos hΛp, (div_lt_one hΛp).mpr (by linarith)⟩ -
lowerControl_calibValue_eqtheorem — Decomposition of the lower-cutoff calibration value. For a sensitivity level and cutoff function, assuming integrability of the control-weighted survival indicator, integrability of the control-weighted upper MSM weight, and integrability of the weighted survival spread, the identity E[(1-Z)/lowerCutoffProp0 Λ c | σ(X)] = wMax0·e₀ − (wMax0 − wMin0)·G(c) holds, with G(c) = controlSurv c.hypothesesγ :sharedType u_1Λ :ℝc :P.Ω → ℝhint1 :Integrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μhmax_int :Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μhdiff_int :Integrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μProof (Lean source)
theorem lowerControl_calibValue_eq (Λ : ℝ) (c : P.Ω → ℝ) (hint1 : Integrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ) (hmax_int : Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μ) (hdiff_int : Integrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ) : P.μ[fun ω => S.dVar.indicator false ω / S.lowerCutoffProp0 Λ c ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMax0 Λ ω * S.propScore false ω - (S.wMax0 Λ ω - S.wMin0 Λ ω) * S.controlSurv c ω) := by classical set A : P.Ω → ℝ := S.dVar.indicator false with hA_def set I : P.Ω → ℝ := fun ω => if c ω < S.factualY ω then (1 : ℝ) else 0 with hI_def have hprop_meas : Measurable[S.sigmaX] (S.propScore false) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable have hwMin_smeas : StronglyMeasurable[S.sigmaX] (S.wMin0 Λ) := by unfold POBackdoorSystem.wMin0 exact (measurable_const.add ((measurable_const.sub hprop_meas).div (measurable_const.mul hprop_meas))).stronglyMeasurable have hwMax_smeas : StronglyMeasurable[S.sigmaX] (S.wMax0 Λ) := by unfold POBackdoorSystem.wMax0 exact (measurable_const.add ((measurable_const.mul (measurable_const.sub hprop_meas)).div hprop_meas)).stronglyMeasurable have hdiff_smeas : StronglyMeasurable[S.sigmaX] (fun ω => S.wMax0 Λ ω - S.wMin0 Λ ω) := (hwMax_smeas.measurable.sub hwMin_smeas.measurable).stronglyMeasurable have hA_int : Integrable A P.μ := by rw [hA_def] exact S.dVar.integrable_indicator (μ := P.μ) false (measurableSet_singleton false) have hI_int : Integrable (fun ω => A ω * I ω) P.μ := by rw [hA_def, hI_def] exact hint1 have hmax_int' : Integrable (fun ω => S.wMax0 Λ ω * A ω) P.μ := by refine hmax_int.congr (Filter.Eventually.of_forall ?_) intro ω rw [hA_def] exact mul_comm _ _ have hpoint : (fun ω => S.dVar.indicator false ω / S.lowerCutoffProp0 Λ c ω) =ᵐ[P.μ] (fun ω => S.wMax0 Λ ω * A ω - (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω)) := by refine Filter.Eventually.of_forall ?_ intro ω rw [hA_def, hI_def] by_cases hcy : c ω < S.factualY ω · simp only [POBackdoorSystem.lowerCutoffProp0, if_pos hcy] rw [div_div_eq_mul_div, div_one] ring · simp only [POBackdoorSystem.lowerCutoffProp0, if_neg hcy] rw [div_div_eq_mul_div, div_one] ring refine (MeasureTheory.condExp_congr_ae (m := S.sigmaX) (μ := P.μ) hpoint).trans ?_ have hsplit : P.μ[fun ω => S.wMax0 Λ ω * A ω - (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω) | S.sigmaX] =ᵐ[P.μ] P.μ[fun ω => S.wMax0 Λ ω * A ω | S.sigmaX] - P.μ[fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω) | S.sigmaX] := MeasureTheory.condExp_sub hmax_int' hdiff_int S.sigmaX have hpullMax : P.μ[fun ω => S.wMax0 Λ ω * A ω | S.sigmaX] =ᵐ[P.μ] (fun ω => S.wMax0 Λ ω * S.propScore false ω) := by have h := MeasureTheory.condExp_mul_of_stronglyMeasurable_left (m := S.sigmaX) (μ := P.μ) hwMax_smeas hmax_int' hA_int exact h.trans (Filter.EventuallyEq.of_eq (by funext ω rfl)) have hpullDiff : P.μ[fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω) | S.sigmaX] =ᵐ[P.μ] (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * S.controlSurv c ω) := by have h := MeasureTheory.condExp_mul_of_stronglyMeasurable_left (m := S.sigmaX) (μ := P.μ) hdiff_smeas hdiff_int hI_int exact h.trans (Filter.EventuallyEq.of_eq (by funext ω rfl)) filter_upwards [hsplit, hpullMax, hpullDiff] with ω hsplitω hmaxω hdiffω rw [hsplitω] change P.μ[fun ω => S.wMax0 Λ ω * A ω | S.sigmaX] ω - P.μ[fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (A ω * I ω) | S.sigmaX] ω = S.wMax0 Λ ω * S.propScore false ω - (S.wMax0 Λ ω - S.wMin0 Λ ω) * S.controlSurv c ω rw [hmaxω, hdiffω] -
lowerCutoffProp0_calibrated_of_survivaltheorem — A lower cutoff whose control-survival function equals the target induces a calibrated control propensity.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λc :P.Ω → ℝhint1 :Integrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μhmax_int :Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μhdiff_int :Integrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μhsurv :S.controlSurv c =ᵐ[P.μ] S.survTargetLower0 ΛconclusionS.Calibrated false (S.lowerCutoffProp0 Λ c)Proof (Lean source)
theorem lowerCutoffProp0_calibrated_of_survival (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) (c : P.Ω → ℝ) (hint1 : Integrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ) (hmax_int : Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μ) (hdiff_int : Integrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ) (hsurv : S.controlSurv c =ᵐ[P.μ] S.survTargetLower0 Λ) : S.Calibrated false (S.lowerCutoffProp0 Λ c) := by have hΛ0 : 0 < Λ := lt_trans zero_lt_one hΛ refine (S.lowerControl_calibValue_eq Λ c hint1 hmax_int hdiff_int).trans ?_ filter_upwards [hoverlap, hsurv] with ω hω hsurvω rw [hsurvω] set e : ℝ := S.propScore false ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have hdiff_pos : 0 < S.wMax0 Λ ω - S.wMin0 Λ ω := by simp only [POBackdoorSystem.wMax0, POBackdoorSystem.wMin0, ← he_def] have h1e : 0 < 1 - e := by linarith have hΛsq : 0 < Λ * Λ - 1 := by nlinarith field_simp [hΛ0.ne', he0.ne'] nlinarith [h1e, hΛsq, hΛ0, he0] have hdiff_ne : S.wMax0 Λ ω - S.wMin0 Λ ω ≠ 0 := hdiff_pos.ne' unfold POBackdoorSystem.survTargetLower0 field_simp [hdiff_ne] ring -
lowerCutoffProp0_mem_MSMSet0theorem — The lower cutoff propensity is always in the odds-ratio box.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λc :P.Ω → ℝconclusionS.lowerCutoffProp0 Λ c ∈ S.MSMSet false ΛProof (Lean source)
theorem lowerCutoffProp0_mem_MSMSet0 (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) (c : P.Ω → ℝ) : S.lowerCutoffProp0 Λ c ∈ S.MSMSet false Λ := by classical have hΛ0 : (0 : ℝ) < Λ := lt_of_lt_of_le zero_lt_one hΛ have hOR_box : ∀ {e et : ℝ}, 0 < e → e < 1 → 0 < et → et < 1 → ((1 / Λ ≤ OR et e ∧ OR et e ≤ Λ) ↔ (1 + (1 - e) / (Λ * e) ≤ 1 / et ∧ 1 / et ≤ 1 + Λ * (1 - e) / e)) := by intro e et he0 he1 het0 het1 have h1e : 0 < 1 - e := by linarith have h1et : 0 < 1 - et := by linarith have hOReq : OR et e = et * (1 - e) / ((1 - et) * e) := by rw [OR, div_div_eq_mul_div, div_mul_eq_mul_div, mul_comm, mul_div_mul_comm] ring_nf rw [hOReq] have hMax : (1 / Λ ≤ et * (1 - e) / ((1 - et) * e)) ↔ (1 / et ≤ 1 + Λ * (1 - e) / e) := by rw [div_le_div_iff₀ hΛ0 (by positivity : (0 : ℝ) < (1 - et) * e), show (1 : ℝ) + Λ * (1 - e) / e = (e + Λ * (1 - e)) / e by field_simp, div_le_div_iff₀ het0 he0] constructor <;> intro h <;> nlinarith [h, mul_pos hΛ0 he0] have hMin : (et * (1 - e) / ((1 - et) * e) ≤ Λ) ↔ (1 + (1 - e) / (Λ * e) ≤ 1 / et) := by rw [div_le_iff₀ (by positivity : (0 : ℝ) < (1 - et) * e), show (1 : ℝ) + (1 - e) / (Λ * e) = (Λ * e + (1 - e)) / (Λ * e) by field_simp, div_le_div_iff₀ (by positivity : (0 : ℝ) < Λ * e) het0] constructor <;> intro h <;> nlinarith [h, mul_pos hΛ0 he0] rw [hMax, hMin, and_comm] have hae : ∀ᵐ ω ∂P.μ, (1 : ℝ) < S.wMin0 Λ ω ∧ S.wMin0 Λ ω ≤ S.wMax0 Λ ω := by filter_upwards [hoverlap] with ω hω set e : ℝ := S.propScore false ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have h1e : 0 < 1 - e := by linarith refine ⟨?_, ?_⟩ · have : 0 < (1 - e) / (Λ * e) := by positivity simp only [POBackdoorSystem.wMin0, ← he_def] linarith · simp only [POBackdoorSystem.wMin0, POBackdoorSystem.wMax0, ← he_def] have hd1 : (1 - e) / (Λ * e) ≤ Λ * (1 - e) / e := by rw [div_le_div_iff₀ (by positivity) he0] nlinarith [hΛ, mul_pos h1e he0, mul_pos hΛ0 he0, mul_nonneg (mul_nonneg (le_of_lt h1e) (le_of_lt he0)) (sub_nonneg.mpr hΛ)] linarith have hboxC : ∀ᵐ ω ∂P.μ, S.wMin0 Λ ω ≤ (if c ω < S.factualY ω then S.wMin0 Λ ω else S.wMax0 Λ ω) ∧ (if c ω < S.factualY ω then S.wMin0 Λ ω else S.wMax0 Λ ω) ≤ S.wMax0 Λ ω ∧ 1 < (if c ω < S.factualY ω then S.wMin0 Λ ω else S.wMax0 Λ ω) := by filter_upwards [hae] with ω hω obtain ⟨hmin1, hminmax⟩ := hω by_cases hcy : c ω < S.factualY ω · simp only [if_pos hcy] exact ⟨le_rfl, hminmax, hmin1⟩ · simp only [if_neg hcy] exact ⟨hminmax, le_rfl, lt_of_lt_of_le hmin1 hminmax⟩ refine ⟨?_, ?_⟩ · filter_upwards [hboxC] with ω hω obtain ⟨_, _, hwgt⟩ := hω unfold POBackdoorSystem.lowerCutoffProp0 constructor · positivity · rw [div_lt_one (by linarith)] linarith · filter_upwards [hoverlap, hboxC] with ω hov hw obtain ⟨he0, he1⟩ := hov obtain ⟨hmin, hmax, hwgt⟩ := hw set wC : ℝ := if c ω < S.factualY ω then S.wMin0 Λ ω else S.wMax0 Λ ω with hwC_def have hcut : S.lowerCutoffProp0 Λ c ω = 1 / wC := by rw [POBackdoorSystem.lowerCutoffProp0, hwC_def] have het0 : 0 < S.lowerCutoffProp0 Λ c ω := by rw [hcut] positivity have het1 : S.lowerCutoffProp0 Λ c ω < 1 := by rw [hcut, div_lt_one (by linarith)] linarith rw [(hOR_box he0 he1 het0 het1)] have hinv : 1 / S.lowerCutoffProp0 Λ c ω = wC := by rw [hcut, one_div_one_div] rw [hinv] simpa [POBackdoorSystem.wMin0, POBackdoorSystem.wMax0, hwC_def] using ⟨hmin, hmax⟩ -
lowerCutoffProp0_mem_MSMSetCalib0_of_survivaltheorem — The lower cutoff is calibrated-feasible given the survival equation.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λc :P.Ω → ℝhint1 :Integrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μhmax_int :Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μhdiff_int :Integrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μhsurv :S.controlSurv c =ᵐ[P.μ] S.survTargetLower0 ΛconclusionS.lowerCutoffProp0 Λ c ∈ S.MSMSetCalib false ΛProof (Lean source)
theorem lowerCutoffProp0_mem_MSMSetCalib0_of_survival (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) (c : P.Ω → ℝ) (hint1 : Integrable (fun ω => S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) P.μ) (hmax_int : Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μ) (hdiff_int : Integrable (fun ω => (S.wMax0 Λ ω - S.wMin0 Λ ω) * (S.dVar.indicator false ω * (if c ω < S.factualY ω then (1 : ℝ) else 0))) P.μ) (hsurv : S.controlSurv c =ᵐ[P.μ] S.survTargetLower0 Λ) : S.lowerCutoffProp0 Λ c ∈ S.MSMSetCalib false Λ := by exact ⟨S.lowerCutoffProp0_mem_MSMSet0 Λ (le_of_lt hΛ) hoverlap c, S.lowerCutoffProp0_calibrated_of_survival Λ hΛ hoverlap c hint1 hmax_int hdiff_int hsurv⟩ -
exists_calibrating_cutoff0_lowertheorem — Existence of a calibrating lower cutoff. Fix a sensitivity parameter. Under control-arm overlap, continuity of each control conditional CDF, and an interior lower calibration level, there is a σ(X)-measurable cutoff c with controlSurv c =ᵐ survTargetLower0 Λ.hypothesesγ :sharedType u_1Λ :ℝhatomless :∀ a : γ, Continuous (condCDF S.controlXYLaw a)hlevel :∀ᵐ ω ∂P.μ, 0 < S.calibLevelLower0 Λ ω ∧ S.calibLevelLower0 Λ ω < 1conclusion∃ c : P.Ω → ℝ,conclusion 1Measurable[S.sigmaX] cconclusion 2S.controlSurv c =ᵐ[P.μ] S.survTargetLower0 ΛProof (Lean source)
theorem exists_calibrating_cutoff0_lower (Λ : ℝ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) (hatomless : ∀ a : γ, Continuous (condCDF S.controlXYLaw a)) (hlevel : ∀ᵐ ω ∂P.μ, 0 < S.calibLevelLower0 Λ ω ∧ S.calibLevelLower0 Λ ω < 1) : ∃ c : P.Ω → ℝ, Measurable[S.sigmaX] c ∧ S.controlSurv c =ᵐ[P.μ] S.survTargetLower0 Λ := by classical have hprop_meas : Measurable[S.sigmaX] (S.propScore false) := by unfold POBackdoorSystem.propScore exact stronglyMeasurable_condExp.measurable have hwMin_meas : Measurable[S.sigmaX] (S.wMin0 Λ) := by unfold POBackdoorSystem.wMin0 exact measurable_const.add ((measurable_const.sub hprop_meas).div (measurable_const.mul hprop_meas)) have hwMax_meas : Measurable[S.sigmaX] (S.wMax0 Λ) := by unfold POBackdoorSystem.wMax0 exact measurable_const.add ((measurable_const.mul (measurable_const.sub hprop_meas)).div hprop_meas) have hsurvTarget_meas : Measurable[S.sigmaX] (S.survTargetLower0 Λ) := by unfold POBackdoorSystem.survTargetLower0 exact ((hwMax_meas.mul hprop_meas).sub measurable_const).div (hwMax_meas.sub hwMin_meas) have hlevel_meas : Measurable[S.sigmaX] (S.calibLevelLower0 Λ) := by unfold POBackdoorSystem.calibLevelLower0 exact measurable_const.sub (hsurvTarget_meas.div hprop_meas) obtain ⟨g, hg, hg_eq⟩ := S.exists_factor_through_factualX hlevel_meas let τ : γ → ℝ := fun a => if 0 < g a ∧ g a < 1 then g a else (1 / 2 : ℝ) have hτ_meas : Measurable τ := by dsimp [τ] refine Measurable.ite ?_ hg measurable_const exact (measurableSet_lt measurable_const hg).inter (measurableSet_lt hg measurable_const) have hτ0 : ∀ a, 0 < τ a := by intro a dsimp [τ] by_cases ha : 0 < g a ∧ g a < 1 · simp [ha] · simp [ha] have hτ1 : ∀ a, τ a < 1 := by intro a dsimp [τ] by_cases ha : 0 < g a ∧ g a < 1 · simp [ha] · simp only [ha, ↓reduceIte] norm_num haveI : IsFiniteMeasure S.controlXYLaw := by unfold POBackdoorSystem.controlXYLaw infer_instance obtain ⟨hq_meas, hq_attain⟩ := measurable_condQuantile_and_attains S.controlXYLaw τ hτ_meas hτ0 hτ1 (fun a => (hatomless a).continuousAt) let c : P.Ω → ℝ := fun ω => condQuantile S.controlXYLaw τ (S.factualX ω) have hc_meas : Measurable[S.sigmaX] c := by rw [POBackdoorSystem.sigmaX] exact hq_meas.comp (comap_measurable S.factualX) refine ⟨c, hc_meas, ?_⟩ have hτ_eq_level : ∀ᵐ ω ∂P.μ, τ (S.factualX ω) = S.calibLevelLower0 Λ ω := by filter_upwards [hlevel] with ω hω have hgx : g (S.factualX ω) = S.calibLevelLower0 Λ ω := by exact (congrFun hg_eq ω).symm dsimp [τ] rw [hgx] simp [hω] have hsurv := S.controlSurv_eq c hc_meas filter_upwards [hsurv, hτ_eq_level, hoverlap] with ω hsurvω hτω hoverlapω rw [hsurvω] have hcdf : S.controlCondCDF ω (c ω) = τ (S.factualX ω) := by unfold POBackdoorSystem.controlCondCDF c exact hq_attain (S.factualX ω) rw [hcdf, hτω] unfold POBackdoorSystem.calibLevelLower0 have hpos : S.propScore false ω ≠ 0 := ne_of_gt hoverlapω.1 field_simp [hpos] ring
ObservedCandidates 7 core · 3 supporting Dorn--Guo's calibrated variational problem optimizes over candidates that are functions of the observed covariate and outcome on the treated arm. ★ msmUpperCalibObs_eq★ msmLowerCalibObs_eq
Observed candidates for the treated marginal sensitivity model
Dorn--Guo's calibrated variational problem optimizes over candidates that are functions of the observed covariate and outcome on the treated arm. This file formalizes that candidate class and proves that restricting the existing calibrated variational problem to it does not change either endpoint: the explicit upper and lower quantile-cutoff optimizers are observed-data measurable.
The construction of a compatible full-data law realizing every observed candidate is a separate measure-construction problem and is not asserted here.
Given a binary-treatment backdoor system, the observed covariate--outcome σ-algebra is the least σ-algebra on the population making both the factual covariate and factual outcome measurable.
Definition (Lean source)
Given a binary-treatment backdoor system and a candidate propensity, the candidate is observed-data measurable on the treated arm when it has a version that is measurable with respect to the factual covariate--outcome σ-algebra and agrees with the candidate almost surely among treated units.
Definition (Lean source)
Given a binary-treatment backdoor system and a sensitivity level, the observed calibrated treated candidate set consists of candidates that belong to the calibrated marginal-sensitivity set and are observed-data measurable on the treated arm.
Definition (Lean source)
Given a binary-treatment backdoor system and a sensitivity level, the observed-candidate calibrated upper endpoint is the supremum of the treated candidate mean over observed calibrated candidates.
Definition (Lean source)
Given a binary-treatment backdoor system and a sensitivity level, the observed-candidate calibrated lower endpoint is the infimum of the treated candidate mean over observed calibrated candidates.
Definition (Lean source)
Observed-candidate upper endpoint. Fix a sensitivity level at least one, strict overlap, and a covariate-measurable integrable cutoff whose upper-cutoff candidate is calibrated and box-feasible. Under the three integrable envelopes used by the cutoff exchange argument, the supremum over observed-data calibrated candidates equals the calibrated MSM upper endpoint.
Formal statement
Proof (Lean source)
Observed-candidate lower endpoint. Fix a sensitivity level at least one, strict overlap, and a covariate-measurable integrable cutoff whose lower-cutoff candidate is calibrated and box-feasible. Under the three integrable envelopes used by the lower-cutoff exchange argument, the infimum over observed-data calibrated candidates equals the calibrated MSM lower endpoint.
Formal statement
Proof (Lean source)
3 supporting declarations (lemmas, instances)
-
MSMSetCalibObs_subsettheorem — For a binary-treatment backdoor system and a sensitivity level, every observed calibrated treated candidate is a calibrated treated candidate.hypothesesconclusionS.MSMSetCalibObs Λ ⊆ S.MSMSetCalib true ΛProof (Lean source)
theorem MSMSetCalibObs_subset (Λ : ℝ) : S.MSMSetCalibObs Λ ⊆ S.MSMSetCalib true Λ := fun _ h => h.1 -
cutoffProp_mem_MSMSetCalibObstheorem — For a binary-treatment backdoor system, a sensitivity level, and a covariate-measurable cutoff, if the upper-cutoff candidate is calibrated and box-feasible, then that candidate belongs to the observed calibrated treated class.hypothesesγ :sharedType u_1Λ :ℝc :P.Ω → ℝhc :Measurable[S.sigmaX] chmem :S.cutoffProp Λ c ∈ S.MSMSetCalib true ΛconclusionS.cutoffProp Λ c ∈ S.MSMSetCalibObs ΛProof (Lean source)
theorem cutoffProp_mem_MSMSetCalibObs (Λ : ℝ) (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) (hmem : S.cutoffProp Λ c ∈ S.MSMSetCalib true Λ) : S.cutoffProp Λ c ∈ S.MSMSetCalibObs Λ := by refine ⟨hmem, S.cutoffProp Λ c, S.measurable_cutoffProp_sigmaXYObs Λ c hc, ?_⟩ exact Filter.EventuallyEq.rfl -
lowerCutoffProp_mem_MSMSetCalibObstheorem — For a binary-treatment backdoor system, a sensitivity level, and a covariate-measurable cutoff, if the lower-cutoff candidate is calibrated and box-feasible, then that candidate belongs to the observed calibrated treated class.hypothesesγ :sharedType u_1Λ :ℝc :P.Ω → ℝhc :Measurable[S.sigmaX] chmem :S.lowerCutoffProp Λ c ∈ S.MSMSetCalib true ΛconclusionS.lowerCutoffProp Λ c ∈ S.MSMSetCalibObs ΛProof (Lean source)
theorem lowerCutoffProp_mem_MSMSetCalibObs (Λ : ℝ) (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) (hmem : S.lowerCutoffProp Λ c ∈ S.MSMSetCalib true Λ) : S.lowerCutoffProp Λ c ∈ S.MSMSetCalibObs Λ := by refine ⟨hmem, S.lowerCutoffProp Λ c, S.measurable_lowerCutoffProp_sigmaXYObs Λ c hc, ?_⟩ exact Filter.EventuallyEq.rfl
ATE 8 core · 2 supporting This file combines treated-arm and control-arm marginal-sensitivity intervals into an interval for the average treatment effect. ★ ate_mem_Icc_calib_of_arm_bounds★ ate_mem_Icc_of_arm_bounds★ ateCalib_subset
Marginal-sensitivity-model ATE interval
This file combines treated-arm and control-arm marginal-sensitivity intervals into an interval for the average treatment effect. The ATE upper endpoint pairs the treated upper bound with the control lower bound, and the lower endpoint pairs the treated lower bound with the control upper bound.
The main declarations are ate, the calibrated endpoints ateUpperCalib and
ateLowerCalib, the uncalibrated endpoints ateUpper and ateLower, validity
theorems ate_mem_Icc_calib_of_arm_bounds and ate_mem_Icc_of_arm_bounds, and the nesting theorem
ateCalib_subset.
For a potential-outcomes system, a measurable covariate space, and a back-door system on them, the average treatment effect is the population mean of the potential outcome under treatment minus the population mean of the potential outcome under control.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, a back-door system on them, and a sensitivity level, the calibrated upper bound for the average treatment effect is the calibrated treated-arm upper bound minus the calibrated control- arm lower bound.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, a back-door system on them, and a sensitivity level, the calibrated lower bound for the average treatment effect is the calibrated treated-arm lower bound minus the calibrated control- arm upper bound.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, a back-door system on them, and a sensitivity level, the uncalibrated upper bound for the average treatment effect is the uncalibrated treated-arm upper bound minus the uncalibrated control-arm lower bound.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, a back-door system on them, and a sensitivity level, the uncalibrated lower bound for the average treatment effect is the uncalibrated treated-arm lower bound minus the uncalibrated control-arm upper bound.
Definition (Lean source)
The average treatment effect lies in the calibrated ATE interval for a binary-treatment backdoor system at a sensitivity level whenever the treated mean potential outcome lies in its calibrated interval and the control mean potential outcome lies in its calibrated interval.
Formal statement
Proof (Lean source)
The average treatment effect lies in the uncalibrated HT-relaxation ATE interval for a binary-treatment backdoor system at a sensitivity level whenever the treated mean potential outcome lies in its uncalibrated HT-relaxation interval and the control mean potential outcome lies in its uncalibrated HT-relaxation interval.
Formal statement
Proof (Lean source)
The calibrated ATE interval is contained in the uncalibrated HT-relaxation ATE interval for a binary-treatment backdoor system at a sensitivity level when the treated calibrated upper endpoint is no larger than its uncalibrated endpoint, the treated uncalibrated lower endpoint is no larger than its calibrated endpoint, the control calibrated upper endpoint is no larger than its uncalibrated endpoint, and the control uncalibrated lower endpoint is no larger than its calibrated endpoint.
Formal statement
Proof (Lean source)
2 supporting declarations (lemmas, instances)
-
sub_mem_Icc_of_mem_Icctheorem — Interval subtraction. If a ∈ [aₗ, aᵤ] and b ∈ [bₗ, bᵤ], then a − b ∈ [aₗ − bᵤ, aᵤ − bₗ]. The arithmetic core of the ATE-interval theorems.hypothesesconclusiona - b ∈ Icc (aₗ - bᵤ) (aᵤ - bₗ)Proof (Lean source)
theorem sub_mem_Icc_of_mem_Icc {a aₗ aᵤ b bₗ bᵤ : ℝ} (ha : a ∈ Icc aₗ aᵤ) (hb : b ∈ Icc bₗ bᵤ) : a - b ∈ Icc (aₗ - bᵤ) (aᵤ - bₗ) := by obtain ⟨ha₁, ha₂⟩ := ha obtain ⟨hb₁, hb₂⟩ := hb exact ⟨by linarith, by linarith⟩ -
ate_mem_Icc_calib_of_msmtheorem — The calibrated ATE interval is valid under the marginal sensitivity model. For a sensitivity budget, if the true treated-arm propensity lies in the calibrated ambiguity set and its candidate mean is the true treated-arm mean with the treated candidate means bounded below and above, and likewise for the control arm, then the true average treatment effect lies in the calibrated ATE interval.Proof (Lean source)
theorem ate_mem_Icc_calib_of_msm (Λ : ℝ) (hmemT : S.completeProp true ∈ S.MSMSetCalib true Λ) (hbridgeT : S.candMean true (S.completeProp true) = S.Ymean true) (hbddT : BddBelow (S.candMean true '' S.MSMSetCalib true Λ)) (hbddT' : BddAbove (S.candMean true '' S.MSMSetCalib true Λ)) (hmemC : S.completeProp false ∈ S.MSMSetCalib false Λ) (hbridgeC : S.candMean false (S.completeProp false) = S.Ymean false) (hbddC : BddBelow (S.candMean false '' S.MSMSetCalib false Λ)) (hbddC' : BddAbove (S.candMean false '' S.MSMSetCalib false Λ)) : S.ate ∈ Icc (S.ateLowerCalib Λ) (S.ateUpperCalib Λ) := S.ate_mem_Icc_calib_of_arm_bounds Λ (S.Ymean_mem_Icc_calib true Λ hmemT hbridgeT hbddT hbddT') (S.Ymean_mem_Icc_calib false Λ hmemC hbridgeC hbddC hbddC')
Converse 3 core · 8 supporting This file derives an observed calibrated propensity candidate from every compatible full-data model. ★ xyPropensity_odds
Converse validity for the marginal sensitivity model
This file derives an observed calibrated propensity candidate from every
compatible full-data model. Conditional expectation preserves the Tan
odds box after rewriting it as a pointwise propensity interval; the resulting
(X,Y(1)) propensity is transported through equality of observable-record
laws. Calibration and the inverse-probability-weighted target identity are
proved rather than assumed.
Under a sensitivity level at least one and observed strict overlap, the complete propensity conditioned on (X,Y(1)) obeys the same Tan odds-ratio box.
Formal statement
Proof (Lean source)
For a compatible model, the inverse-propensity treatment weight is 1{Z=1}/g(X,Y(1)).
Definition (Lean source)
For a compatible model, the inverse-propensity-weighted treated potential outcome is 1{Z=1}Y(1)/g(X,Y(1)).
Definition (Lean source)
8 supporting declarations (lemmas, instances)
-
OR_box_iff_propensity_boxtheorem — Given a positive sensitivity level, an interior observed probability and a complete propensity below one, Tan's odds-ratio interval is equivalent to the corresponding interval for the complete propensity itself.hypothesesΛ q p :ℝhΛ :0 < Λhq0 :0 < qhq1 :q < 1hp1 :p < 1Proof (Lean source)
theorem OR_box_iff_propensity_box {Λ q p : ℝ} (hΛ : 0 < Λ) (hq0 : 0 < q) (hq1 : q < 1) (hp1 : p < 1) : (1 / Λ ≤ OR p q ∧ OR p q ≤ Λ) ↔ (q / (Λ * (1 - q) + q) ≤ p ∧ p ≤ Λ * q / ((1 - q) + Λ * q)) := by have h1q : 0 < 1 - q := by linarith have h1p : 0 < 1 - p := by linarith have hdlo : 0 < Λ * (1 - q) + q := by positivity have hdhi : 0 < (1 - q) + Λ * q := by positivity have hden : 0 < (1 - p) * q := mul_pos h1p hq0 have hor : OR p q = p * (1 - q) / ((1 - p) * q) := by rw [OR, div_div_eq_mul_div, div_mul_eq_mul_div, mul_comm, mul_div_mul_comm] ring_nf rw [hor] constructor · rintro ⟨hlo, hhi⟩ rw [div_le_div_iff₀ hΛ hden] at hlo rw [div_le_iff₀ hden] at hhi constructor · rw [div_le_iff₀ hdlo] nlinarith · rw [le_div_iff₀ hdhi] nlinarith · rintro ⟨hlo, hhi⟩ rw [div_le_iff₀ hdlo] at hlo rw [le_div_iff₀ hdhi] at hhi constructor · rw [div_le_div_iff₀ hΛ hden] nlinarith · rw [div_le_iff₀ hden] nlinarith -
ae_propensityFactor_mem_Iootheorem — If the observed propensity has strict overlap, then the observed covariate-level propensity evaluated in a compatible model is also strictly between zero and one almost everywhere.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible Λconclusion∀ᵐ ω ∂M.Q, 0 < S.propensityFactor (M.X ω) ∧ S.propensityFactor (M.X ω) < 1Proof (Lean source)
theorem ae_propensityFactor_mem_Ioo (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) : ∀ᵐ ω ∂M.Q, 0 < S.propensityFactor (M.X ω) ∧ S.propensityFactor (M.X ω) < 1 := by let pred : ((γ × Bool) × ℝ) → Prop := fun r => 0 < S.propensityFactor r.1.1 ∧ S.propensityFactor r.1.1 < 1 have hpred : MeasurableSet {r | pred r} := by apply (measurableSet_lt measurable_const (S.measurable_propensityFactor.comp (measurable_fst.comp measurable_fst))).inter exact measurableSet_lt (S.measurable_propensityFactor.comp (measurable_fst.comp measurable_fst)) measurable_const have hmap : M.Q.map M.observedRecord = P.μ.map S.factualObservedRecord := by exact M.observedLaw have hfactual : Measurable S.factualObservedRecord := by unfold factualObservedRecord exact (S.measurable_factualX.prodMk S.measurable_factualD).prodMk ((S.dVar.measurable_indicator true (measurableSet_singleton true)).mul S.measurable_factualY) have htransport := (Mathlib.MeasureTheory.ae_comp_iff_of_map_eq M.measurable_observedRecord hfactual pred hpred hmap).mpr apply htransport filter_upwards [hoverlap] with ω hω have hfactor := congrFun S.propScore_eq_propensityFactor_comp ω simpa [pred, MSMDataCompatible.observedRecord, factualObservedRecord, Function.comp_apply, hfactor] using hω -
ae_xyPropensity_mem_Iootheorem — In a compatible model, whose complete propensity is bounded away from zero and one, the (X,Y(1))-conditional propensity is strictly between zero and one almost everywhere.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible Λconclusion∀ᵐ ω ∂M.Q, 0 < M.xyPropensity ω ∧ M.xyPropensity ω < 1Proof (Lean source)
theorem ae_xyPropensity_mem_Ioo : ∀ᵐ ω ∂M.Q, 0 < M.xyPropensity ω ∧ M.xyPropensity ω < 1 := by obtain ⟨ε, hε, hover⟩ := M.completeOverlap have hbounds := Mathlib.MeasureTheory.condExp_ae_mem_Icc M.sigmaXY1_le M.integrable_completePropensity (hover.mono fun ω hω => hω.1) (hover.mono fun ω hω => hω.2) filter_upwards [hbounds] with ω hω exact ⟨hε.trans_le hω.1, lt_of_le_of_lt hω.2 (sub_lt_self 1 hε)⟩ -
integrable_inverseWeighttheorem — The inverse-propensity treatment weight is integrable.Proof (Lean source)
@[fun_prop] theorem integrable_inverseWeight : Integrable M.inverseWeight M.Q := by obtain ⟨ε, hε, hover⟩ := M.completeOverlap have hbound := Mathlib.MeasureTheory.condExp_ae_mem_Icc M.sigmaXY1_le M.integrable_completePropensity (hover.mono fun ω hω => hω.1) (hover.mono fun ω hω => hω.2) have hxy_meas : Measurable M.xyPropensity := stronglyMeasurable_condExp.measurable.mono M.sigmaXY1_le le_rfl apply Integrable.of_bound (M.measurable_treatmentIndicator.div hxy_meas).aestronglyMeasurable (1 / ε) filter_upwards [hbound] with ω hω by_cases hz : M.Z ω · have hg : 0 < M.xyPropensity ω := hε.trans_le hω.1 have hge : ε ≤ M.xyPropensity ω := by simpa only [xyPropensity] using hω.1 change ‖(if M.Z ω then 1 else 0) / M.xyPropensity ω‖ ≤ 1 / ε rw [if_pos hz, one_div, Real.norm_eq_abs, abs_of_pos (inv_pos.mpr hg)] simpa [one_div] using one_div_le_one_div_of_le hε hge · change ‖(if M.Z ω then 1 else 0) / M.xyPropensity ω‖ ≤ 1 / ε simp [hz, hε.le] -
condExp_inverseWeight_eq_onetheorem — In a compatible model, the inverse treatment weight has conditional mean one given (X,Y(1)).hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionM.Q[M.inverseWeight | M.sigmaXY1] =ᵐ[M.Q] (fun _ => 1)Proof (Lean source)
theorem condExp_inverseWeight_eq_one : M.Q[M.inverseWeight | M.sigmaXY1] =ᵐ[M.Q] (fun _ => 1) := by have hgstrong : StronglyMeasurable[M.sigmaXY1] (fun ω => 1 / M.xyPropensity ω) := (measurable_const.div stronglyMeasurable_condExp.measurable).stronglyMeasurable have hreform : M.inverseWeight = fun ω => (1 / M.xyPropensity ω) * M.treatmentIndicator ω := by funext ω simp [inverseWeight, div_eq_inv_mul] have hpull : M.Q[fun ω => (1 / M.xyPropensity ω) * M.treatmentIndicator ω | M.sigmaXY1] =ᵐ[M.Q] (fun ω => (1 / M.xyPropensity ω) * M.xyPropensity ω) := by have h := condExp_mul_of_stronglyMeasurable_left (m := M.sigmaXY1) (μ := M.Q) hgstrong (M.integrable_inverseWeight.congr (ae_of_all _ fun ω => by simp [inverseWeight, div_eq_inv_mul])) M.integrable_treatmentIndicator exact h.trans (Filter.EventuallyEq.rfl.mul M.condExp_treatmentIndicator_eq_xyPropensity) rw [hreform] refine hpull.trans ?_ obtain ⟨ε, hε, hover⟩ := M.completeOverlap have hbounds := Mathlib.MeasureTheory.condExp_ae_mem_Icc M.sigmaXY1_le M.integrable_completePropensity (hover.mono fun ω hω => hω.1) (hover.mono fun ω hω => hω.2) filter_upwards [hbounds] with ω hω have hpos : 0 < M.xyPropensity ω := hε.trans_le hω.1 field_simp -
condExp_inverseWeight_sigmaX_eq_onetheorem — In a compatible model, the inverse treatment weight has conditional mean one given the covariate alone.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionM.Q[M.inverseWeight | comap M.X inferInstance] =ᵐ[M.Q] (fun _ => 1)Proof (Lean source)
theorem condExp_inverseWeight_sigmaX_eq_one : M.Q[M.inverseWeight | comap M.X inferInstance] =ᵐ[M.Q] (fun _ => 1) := by have hXle : comap M.X inferInstance ≤ M.sigmaXY1 := le_sup_left have htower : M.Q[M.inverseWeight | comap M.X inferInstance] =ᵐ[M.Q] M.Q[M.Q[M.inverseWeight | M.sigmaXY1] | comap M.X inferInstance] := (condExp_condExp_of_le (μ := M.Q) (f := M.inverseWeight) hXle M.sigmaXY1_le).symm refine htower.trans ?_ refine (condExp_congr_ae M.condExp_inverseWeight_eq_one).trans ?_ exact Filter.EventuallyEq.of_eq (condExp_const M.measurable_X.comap_le (1 : ℝ)) -
integrable_weightedY1theorem — The inverse-propensity-weighted treated potential outcome is integrable.Proof (Lean source)
@[fun_prop] theorem integrable_weightedY1 : Integrable M.weightedY1 M.Q := by obtain ⟨ε, hε, hover⟩ := M.completeOverlap have hbound := Mathlib.MeasureTheory.condExp_ae_mem_Icc M.sigmaXY1_le M.integrable_completePropensity (hover.mono fun ω hω => hω.1) (hover.mono fun ω hω => hω.2) unfold weightedY1 apply M.integrable_Y1.bdd_mul M.integrable_inverseWeight.aestronglyMeasurable filter_upwards [hbound] with ω hω by_cases hz : M.Z ω · have hg : 0 < M.xyPropensity ω := hε.trans_le hω.1 have hge : ε ≤ M.xyPropensity ω := by simpa only [xyPropensity] using hω.1 change ‖(if M.Z ω then 1 else 0) / M.xyPropensity ω‖ ≤ 1 / ε rw [if_pos hz, one_div, Real.norm_eq_abs, abs_of_pos (inv_pos.mpr hg)] simpa [one_div] using one_div_le_one_div_of_le hε hge · change ‖(if M.Z ω then 1 else 0) / M.xyPropensity ω‖ ≤ 1 / ε simp [hz, hε.le] -
integral_weightedY1_eq_targettheorem — Full-data IPW identity. In a compatible model, the expectation of the inverse-propensity-weighted treated outcome equals the mean of Y(1).hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible Λconclusion∫ ω, M.weightedY1 ω ∂M.Q = M.targetProof (Lean source)
theorem integral_weightedY1_eq_target : ∫ ω, M.weightedY1 ω ∂M.Q = M.target := by have hYmeas : Measurable[M.sigmaXY1] M.Y1 := by exact (comap_measurable M.Y1).mono le_sup_right le_rfl have hYstrong : StronglyMeasurable[M.sigmaXY1] M.Y1 := hYmeas.stronglyMeasurable have hpull : M.Q[M.weightedY1 | M.sigmaXY1] =ᵐ[M.Q] (fun ω => M.Y1 ω) := by have h := condExp_mul_of_stronglyMeasurable_right (m := M.sigmaXY1) (μ := M.Q) hYstrong M.integrable_weightedY1 M.integrable_inverseWeight refine h.trans ?_ filter_upwards [M.condExp_inverseWeight_eq_one] with ω hω simp [hω] unfold target rw [← integral_condExp M.sigmaXY1_le] exact integral_congr_ae hpull
Gaussian 3 core · 3 supporting This file specializes the treated-arm calibrated MSM upper bound to conditional Gaussian outcome laws. ★ msmUpperCalib_gaussian
Gaussian treated-arm MSM cutoff formula
This file specializes the treated-arm calibrated MSM upper bound to conditional
Gaussian outcome laws. It proves the propensity-free calibration level
calibLevel_eq, introduces the conditional-Gaussian CDF assumption
GaussianTreatedModel, defines the explicit quantile cutoff gaussianCutoff,
proves gaussianCutoff_calibrates, and concludes with msmUpperCalib_gaussian:
the calibrated upper endpoint is the candidate mean at that explicit
Gaussian cutoff. The separate half-width file evaluates that candidate mean in
closed form.
The conditional-Gaussian treated-outcome model. The treated conditional law of Y given X is N(m(X), σ(X)²): a measurable mean m and positive standard deviation σ with condCDF treatedXYLaw a t = Φ((t − m a)/σ a) for all a, t.
Definition (Lean source)
For a potential-outcome backdoor system, a covariate-indexed mean function and standard-deviation function, a sensitivity parameter, and a sample point, the explicit Gaussian cutoff is .
Definition (Lean source)
The calibrated upper bound at the explicit Gaussian cutoff. Fix a sensitivity parameter Λ strictly greater than 1 and assume the propensity score for treatment given the covariates lies strictly between 0 and 1 almost surely (overlap). Under the conditional-Gaussian treated-outcome model, i.e. the treated conditional law of the outcome given the covariates is Gaussian with mean m and standard deviation σ, and assuming the integrability conditions needed to make the candidate means and the survival decomposition well defined, the calibrated (Dorn–Guo) upper bound on E[Y(1)] equals the candidate IPW mean evaluated at the cutoff propensity built from the explicit Gaussian quantile cutoff m(X) + σ(X)·Φ⁻¹(Λ/(Λ+1)).
Formal statement
Proof (Lean source)
3 supporting declarations (lemmas, instances)
-
calibLevel_eqtheorem — The calibration level is exactly Λ/(Λ+1). Under overlap and 1 < Λ, the calibrated-upper-bound quantile level calibLevel = 1 − survTarget/e equals Λ/(Λ+1) a.e., independent of the propensity e(X) — because survTarget = e/(Λ+1). Pure algebra from wMin, wMax.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λconclusion∀ᵐ ω ∂P.μ, S.calibLevel Λ ω = Λ / (Λ + 1)Proof (Lean source)
theorem calibLevel_eq (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) : ∀ᵐ ω ∂P.μ, S.calibLevel Λ ω = Λ / (Λ + 1) := by filter_upwards [hoverlap] with ω hω unfold POBackdoorSystem.calibLevel rw [S.survTarget_eq_prop_div Λ hΛ hω] have he0 : S.propScore true ω ≠ 0 := ne_of_gt hω.1 have hΛp : Λ + 1 ≠ 0 := ne_of_gt (by linarith : (0 : ℝ) < Λ + 1) field_simp [he0, hΛp] ring -
measurable_gaussianCutofftheorem — The explicit Gaussian cutoff is σ(X)-measurable.hypothesesγ :sharedType u_1m σ :γ → ℝhm :hσ :Λ :ℝconclusionMeasurable[S.sigmaX] (S.gaussianCutoff m σ Λ)Proof (Lean source)
@[fun_prop] theorem measurable_gaussianCutoff {m σ : γ → ℝ} (hm : Measurable m) (hσ : Measurable σ) (Λ : ℝ) : Measurable[S.sigmaX] (S.gaussianCutoff m σ Λ) := by unfold POBackdoorSystem.gaussianCutoff change Measurable[comap S.factualX inferInstance] (fun ω => m (S.factualX ω) + σ (S.factualX ω) * probit (Λ / (Λ + 1))) exact (hm.comp (comap_measurable S.factualX)).add ((hσ.comp (comap_measurable S.factualX)).mul measurable_const) -
gaussianCutoff_calibratestheorem — The explicit Gaussian cutoff calibrates. Under the conditional-Gaussian model, the cutoff m(X) + σ(X)·Φ⁻¹(Λ/(Λ+1)) solves the survival equation treatedSurv c =ᵐ survTarget Λ.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < Λm σ :γ → ℝhmodel :S.GaussianTreatedModel m σconclusionS.treatedSurv (S.gaussianCutoff m σ Λ) =ᵐ[P.μ] S.survTarget ΛProof (Lean source)
theorem gaussianCutoff_calibrates (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) {m σ : γ → ℝ} (hmodel : S.GaussianTreatedModel m σ) : S.treatedSurv (S.gaussianCutoff m σ Λ) =ᵐ[P.μ] S.survTarget Λ := by have hc : Measurable[S.sigmaX] (S.gaussianCutoff m σ Λ) := S.measurable_gaussianCutoff hmodel.measurable_m hmodel.measurable_σ Λ have hsurv := S.treatedSurv_eq (S.gaussianCutoff m σ Λ) hc filter_upwards [hsurv, hoverlap] with ω hsurvω hω rw [hsurvω] have hσpos : 0 < σ (S.factualX ω) := hmodel.σ_pos (S.factualX ω) have hσne : σ (S.factualX ω) ≠ 0 := ne_of_gt hσpos have hp0 : 0 < Λ / (Λ + 1) := by positivity have hp1 : Λ / (Λ + 1) < 1 := by have hΛp : 0 < Λ + 1 := by linarith rw [div_lt_one hΛp] linarith have hcdf : S.treatedCondCDF ω (S.gaussianCutoff m σ Λ ω) = Λ / (Λ + 1) := by unfold POBackdoorSystem.treatedCondCDF rw [hmodel.condCDF_eq] have harg : (S.gaussianCutoff m σ Λ ω - m (S.factualX ω)) / σ (S.factualX ω) = probit (Λ / (Λ + 1)) := by unfold POBackdoorSystem.gaussianCutoff field_simp [hσne] ring rw [harg] exact stdNormalCDF_probit hp0 hp1 rw [hcdf, S.survTarget_eq_prop_div Λ hΛ hω] have hΛp_ne : Λ + 1 ≠ 0 := ne_of_gt (by linarith : (0 : ℝ) < Λ + 1) field_simp [hΛp_ne] ring
Realization 5 core · 4 supporting This file proves the calibration-to-measure identities needed by the Dorn--Guo reciprocal-tilt construction. ★ reciprocalTilt_map_factualX_eq_of_calibrated★ bernoulliMarkedLaw_observedRecord_eq★ bernoulliMarkedLaw_target_eq_candMean
Calibration identities for MSM full-data realization
This file proves the calibration-to-measure identities needed by the
Dorn--Guo reciprocal-tilt construction. Using calibration's integrability of the inverse treated
weight, an observed representative of a calibrated
candidate produces a reciprocal tilt whose covariate marginal is exactly the
observed covariate law and whose total mass is one. The resulting Bernoulli-mark
law reproduces the factual observed record and has target mean candMean.
Suppose an observed representative agrees on treated units with a calibrated candidate, and the candidate is positive almost surely. Then the covariate marginal of the representative's reciprocal tilt of the treated sublaw equals the observed covariate law.
Formal statement
Proof (Lean source)
For a backdoor system, the observable record of a marked full-data point contains its covariate, Boolean treatment mark, and treated observed outcome Z·Y(1).
Definition (Lean source)
For a backdoor system, the factual observable record of an observational unit contains its covariate, factual treatment, and treated observed outcome.
Definition (Lean source)
Suppose a measurable observed representative agrees on treated units with a calibrated candidate that lies strictly between zero and one. Then the reciprocal-tilt Bernoulli construction has exactly the factual observed law of (X,Z,Z·Y).
Formal statement
Proof (Lean source)
Suppose a measurable observed representative agrees on treated units with a candidate that lies strictly between zero and one. Then the mean of the treated potential outcome in the reciprocal-tilt Bernoulli construction equals the candidate inverse-probability-weighted mean.
Formal statement
Proof (Lean source)
4 supporting declarations (lemmas, instances)
-
observed_reciprocal_integrabletheorem — If an observed representative agrees on treated units with a candidate whose inverse treated weight is integrable, then the representative's reciprocal is integrable under the treated sublaw.hypothesesγ :sharedType u_1etilde h :P.Ω → ℝheq :etilde =ᵐ[P.μ.restrict S.treatedSet] hhint :Integrable (fun ω => S.dVar.indicator true ω / etilde ω) P.μconclusionIntegrable (fun ω => 1 / h ω) (P.μ.restrict S.treatedSet)Proof (Lean source)
@[fun_prop] theorem observed_reciprocal_integrable (etilde h : P.Ω → ℝ) (heq : etilde =ᵐ[P.μ.restrict S.treatedSet] h) (hint : Integrable (fun ω => S.dVar.indicator true ω / etilde ω) P.μ) : Integrable (fun ω => 1 / h ω) (P.μ.restrict S.treatedSet) := by refine hint.restrict.congr ?_ filter_upwards [heq, ae_restrict_mem S.measurableSet_treatedSet] with ω hω hT have hA : S.dVar.indicator true ω = 1 := by rw [S.treated_indicator_eq] simp [hT] simp [hA, hω] -
reciprocalTilt_treated_univ_eq_onetheorem — Under the same observed-representative, agreement, positivity, and calibration conditions, the reciprocal tilt of the treated sublaw has total mass one.hypothesesγ :sharedType u_1etilde h :P.Ω → ℝheq :etilde =ᵐ[P.μ.restrict S.treatedSet] hhpos :∀ᵐ ω ∂P.μ, 0 < etilde ωhcal :S.Calibrated true etildeconclusionreciprocalTilt (P.μ.restrict S.treatedSet) h univ = 1Proof (Lean source)
theorem reciprocalTilt_treated_univ_eq_one (etilde h : P.Ω → ℝ) (heq : etilde =ᵐ[P.μ.restrict S.treatedSet] h) (hpos : ∀ᵐ ω ∂P.μ, 0 < etilde ω) (hcal : S.Calibrated true etilde) : reciprocalTilt (P.μ.restrict S.treatedSet) h univ = 1 := by have hmarg := S.reciprocalTilt_map_factualX_eq_of_calibrated etilde h heq hpos hcal have hu := congrArg (fun μ : Measure γ => μ univ) hmarg rw [Measure.map_apply S.measurable_factualX MeasurableSet.univ, Measure.map_apply S.measurable_factualX MeasurableSet.univ] at hu simpa using hu -
reciprocalTilt_eq_add_failureTilttheorem — For a base measure, a unit-interval weight, the reciprocal tilt decomposes into the base measure plus its failure-odds tilt.hypothesesconclusionreciprocalTilt ν₁ h= ν₁ + ν₁.withDensity (fun a => ofReal ((1 - h a) / h a))Proof (Lean source)
theorem reciprocalTilt_eq_add_failureTilt {α : Type*} [MeasurableSpace α] (ν₁ : Measure α) (h : α → ℝ) (hpos : ∀ᵐ a ∂ν₁, 0 < h a) (hle : ∀ᵐ a ∂ν₁, h a ≤ 1) : reciprocalTilt ν₁ h = ν₁ + ν₁.withDensity (fun a => ofReal ((1 - h a) / h a)) := by unfold reciprocalTilt calc ν₁.withDensity (fun a => ofReal (1 / h a)) = ν₁.withDensity (fun a => 1 + ofReal ((1 - h a) / h a)) := by apply withDensity_congr_ae filter_upwards [hpos, hle] with a ha ha' have hratio : 0 ≤ (1 - h a) / h a := div_nonneg (sub_nonneg.mpr ha') ha.le have hreal : 1 / h a = 1 + (1 - h a) / h a := by field_simp ring calc ofReal (1 / h a) = ofReal (1 + (1 - h a) / h a) := congrArg ofReal hreal _ = ofReal 1 + ofReal ((1 - h a) / h a) := ENNReal.ofReal_add zero_le_one hratio _ = 1 + ofReal ((1 - h a) / h a) := by simp _ = ν₁.withDensity 1 + ν₁.withDensity (fun a => ofReal ((1 - h a) / h a)) := by change ν₁.withDensity ((fun _a : α => (1 : ENNReal)) + (fun a => ofReal ((1 - h a) / h a))) = ν₁.withDensity (fun _a : α => (1 : ENNReal)) + ν₁.withDensity (fun a => ofReal ((1 - h a) / h a)) exact withDensity_add_left measurable_const _ _ = ν₁ + ν₁.withDensity (fun a => ofReal ((1 - h a) / h a)) := by exact congrArg (fun m => m + ν₁.withDensity (fun a => ofReal ((1 - h a) / h a))) withDensity_one -
failureTilt_map_factualX_eq_controltheorem — Suppose an observed representative agrees on treated units with a calibrated candidate that lies strictly between zero and one. Then the covariate marginal of the failure-odds tilt is the observed control-arm covariate sublaw.hypothesesγ :sharedType u_1etilde h :P.Ω → ℝheq :etilde =ᵐ[P.μ.restrict S.treatedSet] hhpos :∀ᵐ ω ∂P.μ, 0 < etilde ωhlt :∀ᵐ ω ∂P.μ, etilde ω < 1hcal :S.Calibrated true etildeProof (Lean source)
theorem failureTilt_map_factualX_eq_control (etilde h : P.Ω → ℝ) (heq : etilde =ᵐ[P.μ.restrict S.treatedSet] h) (hpos : ∀ᵐ ω ∂P.μ, 0 < etilde ω) (hlt : ∀ᵐ ω ∂P.μ, etilde ω < 1) (hcal : S.Calibrated true etilde) : ((P.μ.restrict S.treatedSet).withDensity (fun ω => ofReal ((1 - h ω) / h ω))).map S.factualX = (P.μ.restrict S.controlSet).map S.factualX := by let ν₁ := P.μ.restrict S.treatedSet let ν₀ := ν₁.withDensity (fun ω => ofReal ((1 - h ω) / h ω)) let ν := Causalean.Mathlib.Probability.reciprocalTilt ν₁ h have hhpos : ∀ᵐ ω ∂ν₁, 0 < h ω := by filter_upwards [ae_restrict_of_ae hpos, heq] with ω hω hω' simpa [← hω'] using hω have hhle : ∀ᵐ ω ∂ν₁, h ω ≤ 1 := by filter_upwards [ae_restrict_of_ae hlt, heq] with ω hω hω' exact (hω'.symm ▸ hω).le have htilt : ν = ν₁ + ν₀ := by exact reciprocalTilt_eq_add_failureTilt ν₁ h hhpos hhle have hmarg : ν.map S.factualX = P.μ.map S.factualX := by exact S.reciprocalTilt_map_factualX_eq_of_calibrated etilde h heq hpos hcal have hcompl : S.treatedSetᶜ = S.controlSet := by ext ω simp only [POBackdoorSystem.treatedSet, POBackdoorSystem.controlSet, Set.mem_compl_iff, Set.mem_preimage, Set.mem_singleton_iff] cases S.factualD ω <;> simp ext B hB rw [Measure.map_apply S.measurable_factualX hB, Measure.map_apply S.measurable_factualX hB] change ν₀ (S.factualX ⁻¹' B) = (P.μ.restrict S.controlSet) (S.factualX ⁻¹' B) have htiltB := congrArg (fun m : Measure P.Ω => m (S.factualX ⁻¹' B)) htilt rw [Measure.add_apply ν₁ ν₀ (S.factualX ⁻¹' B)] at htiltB have hmargB := congrArg (fun m : Measure γ => m B) hmarg rw [Measure.map_apply S.measurable_factualX hB, Measure.map_apply S.measurable_factualX hB] at hmargB have hpart := Measure.restrict_add_restrict_compl (μ := P.μ) S.measurableSet_treatedSet rw [hcompl] at hpart have hpartB := congrArg (fun m : Measure P.Ω => m (S.factualX ⁻¹' B)) hpart rw [Measure.add_apply (P.μ.restrict S.treatedSet) (P.μ.restrict S.controlSet) (S.factualX ⁻¹' B)] at hpartB apply (ENNReal.add_right_inj (measure_ne_top ν₁ (S.factualX ⁻¹' B))).mp calc ν₁ (S.factualX ⁻¹' B) + ν₀ (S.factualX ⁻¹' B) = ν (S.factualX ⁻¹' B) := htiltB.symm _ = P.μ (S.factualX ⁻¹' B) := hmargB _ = (P.μ.restrict S.treatedSet) (S.factualX ⁻¹' B) + (P.μ.restrict S.controlSet) (S.factualX ⁻¹' B) := hpartB.symm _ = ν₁ (S.factualX ⁻¹' B) + (P.μ.restrict S.controlSet) (S.factualX ⁻¹' B) := by rfl
ATEClosedForm 1 core · 1 supporting This file combines the four arm-level quantile-cutoff closed forms into closed-form endpoints for the calibrated ATE interval. ★ ate_endpoints_eq_cutoff_of_calibrating_cutoff_integrability
Marginal-sensitivity-model ATE cutoff forms under calibrating-cutoff integrability
This file combines the four arm-level quantile-cutoff closed forms into closed-form endpoints for the calibrated ATE interval. Under assumed arm-wise validity, the true ATE is then placed between the appropriate differences of the treated and control cutoff candidate means.
The theorem ate_endpoints_eq_cutoff_of_calibrating_cutoff_integrability gives the endpoint
representation using treated upper/lower cutoffs and control upper/lower cutoffs. The theorem
ate_mem_Icc_cutoff_of_calibrating_cutoff_integrability_and_arm_bounds combines those endpoint
equalities with assumed arm-wise interval validity.
For a binary-treatment backdoor system and a sensitivity parameter Λ strictly greater than one, assume for the treated arm that the propensity score lies strictly between 0 and 1 almost surely and the conditional distribution function of the outcome given each covariate value is continuous. Write D for the treated-arm indicator, Y for the observed outcome, and w_min ≤ w_max for the smallest and largest admissible treated inverse-propensity weights at level Λ. Suppose every σ(X)-measurable cutoff c (measurable with respect to the covariates) for which the conditional mean of D·1{Y > c} given the covariates equals the upper target survival probability almost surely makes c and |c|·D·w_max integrable, that the same two functions are integrable for every σ(X)-measurable cutoff matching the lower target survival probability, and that D·w_max and D·|Y|·w_max are integrable. Assume the same for the control arm, with the control-arm indicator, the control propensity score and the control weights: overlap, a continuous conditional outcome distribution function, the two integrability conditions at every σ(X)-measurable cutoff matching the control upper target survival probability and at every one matching the control lower target survival probability, and integrability of the control indicator times the largest control weight and the control indicator times |Y| times the largest control weight. Then there are σ(X)-measurable cutoffs cTU, cTL, cCU, cCL such that the calibrated upper endpoint for the average treatment effect equals the treated upper-cutoff candidate mean at cTU minus the control lower-cutoff candidate mean at cCL, and the calibrated lower endpoint equals the treated lower-cutoff candidate mean at cTL minus the control upper-cutoff candidate mean at cCU.
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
ate_mem_Icc_cutoff_of_calibrating_cutoff_integrability_and_arm_boundstheorem — For a binary-treatment backdoor system and a sensitivity parameter Λ strictly greater than one, assume for the treated arm that the propensity score lies strictly between 0 and 1 almost surely and the conditional distribution function of the outcome given each covariate value is continuous. Write D for the treated-arm indicator, Y for the observed outcome, and w_min ≤ w_max for the smallest and largest admissible treated inverse-propensity weights at level Λ. Suppose every σ(X)-measurable cutoff c (measurable with respect to the covariates) for which the conditional mean of D·1{Y > c} given the covariates equals the upper target survival probability almost surely makes c and |c|·D·w_max integrable, that the same two functions are integrable for every σ(X)-measurable cutoff matching the lower target survival probability, and that D·w_max and D·|Y|·w_max are integrable. Assume the same for the control arm, with the control-arm indicator, the control propensity score and the control weights: overlap, a continuous conditional outcome distribution function, the two integrability conditions at every σ(X)-measurable cutoff matching the control upper target survival probability and at every one matching the control lower target survival probability, and integrability of the control indicator times the largest control weight and the control indicator times |Y| times the largest control weight. If in addition the mean of the treated potential outcome lies in the treated arm's calibrated interval and the mean of the control potential outcome lies in the control arm's calibrated interval, then there are σ(X)-measurable cutoffs cTU, cTL, cCU, cCL such that the average treatment effect lies between the treated lower-cutoff candidate mean at cTL minus the control upper-cutoff candidate mean at cCU and the treated upper-cutoff candidate mean at cTU minus the control lower-cutoff candidate mean at cCL.hypothesesγ :sharedType u_1Λ :ℝhΛ :1 < ΛhatomlessT :∀ a : γ, Continuous (condCDF S.treatedXYLaw a)hregTU :∀ c : P.Ω → ℝhregTL :∀ c : P.Ω → ℝhmaxT :Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μhenvT :Integrable (fun ω => S.dVar.indicator true ω * |S.factualY ω| * S.wMax Λ ω) P.μhatomlessC :∀ a : γ, Continuous (condCDF S.controlXYLaw a)hregCU :∀ c : P.Ω → ℝifMeasurable[S.sigmaX] candS.controlSurv c =ᵐ[P.μ] S.survTarget0 ΛthenIntegrable c P.μ ∧Integrable (fun ω => |c ω| * S.dVar.indicator false ω * S.wMax0 Λ ω) P.μhregCL :∀ c : P.Ω → ℝifMeasurable[S.sigmaX] candS.controlSurv c =ᵐ[P.μ] S.survTargetLower0 ΛthenIntegrable c P.μ ∧Integrable (fun ω => |c ω| * S.dVar.indicator false ω * S.wMax0 Λ ω) P.μhmaxC :Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μhenvC :Integrable (fun ω => S.dVar.indicator false ω * |S.factualY ω| * S.wMax0 Λ ω) P.μconclusion∃ cTU cTL cCU cCL : P.Ω → ℝ,conclusion 1Proof (Lean source)
theorem ate_mem_Icc_cutoff_of_calibrating_cutoff_integrability_and_arm_bounds (Λ : ℝ) (hΛ : 1 < Λ) (hoverlapT : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) (hatomlessT : ∀ a : γ, Continuous (condCDF S.treatedXYLaw a)) (hregTU : ∀ c : P.Ω → ℝ, Measurable[S.sigmaX] c → S.treatedSurv c =ᵐ[P.μ] S.survTarget Λ → Integrable c P.μ ∧ Integrable (fun ω => |c ω| * S.dVar.indicator true ω * S.wMax Λ ω) P.μ) (hregTL : ∀ c : P.Ω → ℝ, Measurable[S.sigmaX] c → S.treatedSurv c =ᵐ[P.μ] S.survTargetLower Λ → Integrable c P.μ ∧ Integrable (fun ω => |c ω| * S.dVar.indicator true ω * S.wMax Λ ω) P.μ) (hmaxT : Integrable (fun ω => S.dVar.indicator true ω * S.wMax Λ ω) P.μ) (henvT : Integrable (fun ω => S.dVar.indicator true ω * |S.factualY ω| * S.wMax Λ ω) P.μ) (hoverlapC : ∀ᵐ ω ∂P.μ, 0 < S.propScore false ω ∧ S.propScore false ω < 1) (hatomlessC : ∀ a : γ, Continuous (condCDF S.controlXYLaw a)) (hregCU : ∀ c : P.Ω → ℝ, Measurable[S.sigmaX] c → S.controlSurv c =ᵐ[P.μ] S.survTarget0 Λ → Integrable c P.μ ∧ Integrable (fun ω => |c ω| * S.dVar.indicator false ω * S.wMax0 Λ ω) P.μ) (hregCL : ∀ c : P.Ω → ℝ, Measurable[S.sigmaX] c → S.controlSurv c =ᵐ[P.μ] S.survTargetLower0 Λ → Integrable c P.μ ∧ Integrable (fun ω => |c ω| * S.dVar.indicator false ω * S.wMax0 Λ ω) P.μ) (hmaxC : Integrable (fun ω => S.dVar.indicator false ω * S.wMax0 Λ ω) P.μ) (henvC : Integrable (fun ω => S.dVar.indicator false ω * |S.factualY ω| * S.wMax0 Λ ω) P.μ) (hT : S.Ymean true ∈ Icc (S.msmLowerCalib true Λ) (S.msmUpperCalib true Λ)) (hC : S.Ymean false ∈ Icc (S.msmLowerCalib false Λ) (S.msmUpperCalib false Λ)) : ∃ cTU cTL cCU cCL : P.Ω → ℝ, (Measurable[S.sigmaX] cTU ∧ Measurable[S.sigmaX] cTL ∧ Measurable[S.sigmaX] cCU ∧ Measurable[S.sigmaX] cCL) ∧ S.ate ∈ Icc (S.candMean true (S.lowerCutoffProp Λ cTL) - S.candMean false (S.cutoffProp0 Λ cCU)) (S.candMean true (S.cutoffProp Λ cTU) - S.candMean false (S.lowerCutoffProp0 Λ cCL)) := by obtain ⟨cTU, cTL, cCU, cCL, hmeas, hUp, hLo⟩ := S.ate_endpoints_eq_cutoff_of_calibrating_cutoff_integrability Λ hΛ hoverlapT hatomlessT hregTU hregTL hmaxT henvT hoverlapC hatomlessC hregCU hregCL hmaxC henvC have hval := S.ate_mem_Icc_calib_of_arm_bounds Λ hT hC rw [hUp, hLo] at hval exact ⟨cTU, cTL, cCU, cCL, hmeas, hval⟩
CompatibleRealization 1 core · 0 supporting This file packages the reciprocal-tilt Bernoulli construction as an MSMDataCompatible model. ★ exists_compatible_realization
Compatible full-data realization of an observed MSM candidate
This file packages the reciprocal-tilt Bernoulli construction as an
MSMDataCompatible model. The base observational unit is retained as the latent
variable, so latent unconfoundedness is immediate; the marked law supplies the
complete propensity and reproduces the observable record law.
Given a measurable observed candidate representative that agrees on the treated arm with an observed calibrated MSM candidate, has uniform two-sided overlap under the treated law, and yields an integrable potential outcome under the marked law, there exists a compatible full-data model whose target equals the candidate mean.
Formal statement
Proof (Lean source)
ControlObservedCandidates 6 core · 3 supporting This file is the control-arm reflection of MSM.ObservedCandidates. ★ msmUpperCalibObs0_eq★ msmLowerCalibObs0_eq
Observed candidates for the control marginal sensitivity model
This file is the control-arm reflection of MSM.ObservedCandidates. It restricts calibrated
control candidates to functions with an observed covariate--outcome measurable
version on the control arm and proves that the explicit control cutoff
optimizers keep both calibrated endpoints unchanged.
Given a binary-treatment backdoor system and a candidate control propensity, the candidate is observed-data measurable on the control arm when it has a version that is measurable with respect to the factual covariate--outcome σ-algebra and agrees with the candidate almost surely among control units.
Definition (Lean source)
Given a binary-treatment backdoor system and a sensitivity level, the observed calibrated control candidate set consists of candidates that belong to the calibrated control marginal-sensitivity set and are observed-data measurable on the control arm.
Definition (Lean source)
Given a binary-treatment backdoor system and a sensitivity level, the observed-candidate calibrated control upper endpoint is the supremum of the control candidate mean over observed calibrated control candidates.
Definition (Lean source)
Given a binary-treatment backdoor system and a sensitivity level, the observed-candidate calibrated control lower endpoint is the infimum of the control candidate mean over observed calibrated control candidates.
Definition (Lean source)
Observed-candidate control upper endpoint. Fix a sensitivity level at least one, strict control overlap, and a covariate-measurable integrable cutoff whose upper control-cutoff candidate is calibrated and box-feasible. Under the three integrable envelopes used by the control exchange argument, the supremum over observed-data calibrated control candidates equals the calibrated control upper endpoint.
Formal statement
Proof (Lean source)
Observed-candidate control lower endpoint. Fix a sensitivity level at least one, strict control overlap, and a covariate-measurable integrable cutoff whose lower control-cutoff candidate is calibrated and box-feasible. Under the three integrable envelopes used by the lower control exchange argument, the infimum over observed-data calibrated control candidates equals the calibrated control lower endpoint.
Formal statement
Proof (Lean source)
3 supporting declarations (lemmas, instances)
-
MSMSetCalibObs0_subsettheorem — For a binary-treatment backdoor system and a sensitivity level, every observed calibrated control candidate is a calibrated control candidate.hypothesesconclusionS.MSMSetCalibObs0 Λ ⊆ S.MSMSetCalib false ΛProof (Lean source)
theorem MSMSetCalibObs0_subset (Λ : ℝ) : S.MSMSetCalibObs0 Λ ⊆ S.MSMSetCalib false Λ := fun _ h => h.1 -
cutoffProp0_mem_MSMSetCalibObs0theorem — For a binary-treatment backdoor system, a sensitivity level, and a covariate-measurable cutoff, if the upper control-cutoff candidate is calibrated and box-feasible, then that candidate belongs to the observed calibrated control class.hypothesesγ :sharedType u_1Λ :ℝc :P.Ω → ℝhc :Measurable[S.sigmaX] chmem :S.cutoffProp0 Λ c ∈ S.MSMSetCalib false ΛconclusionS.cutoffProp0 Λ c ∈ S.MSMSetCalibObs0 ΛProof (Lean source)
theorem cutoffProp0_mem_MSMSetCalibObs0 (Λ : ℝ) (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) (hmem : S.cutoffProp0 Λ c ∈ S.MSMSetCalib false Λ) : S.cutoffProp0 Λ c ∈ S.MSMSetCalibObs0 Λ := by refine ⟨hmem, S.cutoffProp0 Λ c, S.measurable_cutoffProp0_sigmaXYObs Λ c hc, ?_⟩ exact Filter.EventuallyEq.rfl -
lowerCutoffProp0_mem_MSMSetCalibObs0theorem — For a binary-treatment backdoor system, a sensitivity level, and a covariate-measurable cutoff, if the lower control-cutoff candidate is calibrated and box-feasible, then that candidate belongs to the observed calibrated control class.hypothesesγ :sharedType u_1Λ :ℝc :P.Ω → ℝhc :Measurable[S.sigmaX] chmem :S.lowerCutoffProp0 Λ c ∈ S.MSMSetCalib false ΛconclusionS.lowerCutoffProp0 Λ c ∈ S.MSMSetCalibObs0 ΛProof (Lean source)
theorem lowerCutoffProp0_mem_MSMSetCalibObs0 (Λ : ℝ) (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) (hmem : S.lowerCutoffProp0 Λ c ∈ S.MSMSetCalib false Λ) : S.lowerCutoffProp0 Λ c ∈ S.MSMSetCalibObs0 Λ := by refine ⟨hmem, S.lowerCutoffProp0 Λ c, S.measurable_lowerCutoffProp0_sigmaXYObs Λ c hc, ?_⟩ exact Filter.EventuallyEq.rfl
ControlQuantileBalance 2 core · 0 supporting This file mirrors the treated-arm quantile-balancing closed form for the control arm: calibrated feasible control propensities are dominated by the control cutoff propensity, so the calibrated control upper bound is atta ★ cutoff_optimal0★ msmUpperCalib0_eq_cutoff
Marginal Sensitivity Model — control-arm quantile balancing
This file mirrors the treated-arm quantile-balancing closed form for the control arm: calibrated feasible control propensities are dominated by the control cutoff propensity, so the calibrated control upper bound is attained at that cutoff.
The theorem cutoff_optimal0 proves optimality of a calibrated control cutoff
against every member of MSMSetCalib false. The theorem msmUpperCalib0_eq_cutoff
then identifies the calibrated control upper bound with the cutoff
candidate mean.
Optimality of the control quantile-cutoff weight. Fix a sensitivity parameter Λ at least one. Assume the control propensity score is almost surely strictly between 0 and 1 (two-sided overlap), and let c be a σ(X)-measurable, integrable cutoff function such that the quantile-cutoff propensity it induces lies in the calibrated control ambiguity set. If the envelope, weighted-indicator, and cutoff-weighted envelope integrability conditions bounding the IPW integrands hold, then for any candidate complete control propensity ẽ in the calibrated ambiguity set, the candidate mean at ẽ is no greater than the candidate mean at the quantile-cutoff weight: the control cutoff attains the maximum over all calibrated candidates.
Formal statement
Proof (Lean source)
The calibrated control upper bound has the quantile-balancing closed form. Fix a sensitivity parameter Λ at least one. Under two-sided overlap of the control propensity score, given a σ(X)-measurable, integrable cutoff c whose induced quantile-cutoff propensity is itself calibrated-feasible, and assuming the envelope, weighted-indicator, and cutoff-weighted envelope integrability conditions bounding the IPW integrands, the calibrated (supremum) upper bound for E[Y(0)] over the calibrated ambiguity set equals the candidate mean evaluated at the quantile-cutoff propensity.
Formal statement
Proof (Lean source)
ConverseObserved 5 core · 14 supporting This file transports the conditional propensity, calibration identity, and inverse-probability-weighted target identity from a compatible full-data model to its common observed-record law. ★ target_mem_Icc_msmCalib
Observed-law transport for the MSM converse
This file transports the conditional propensity, calibration identity, and inverse-probability-weighted target identity from a compatible full-data model to its common observed-record law.
For a compatible model, the observed candidate induced by its conditional propensity uses the (X,Y) factor on treated records and the observed propensity on control records.
Definition (Lean source)
For a compatible model, the record-level version of its induced observed candidate is a measurable statistic of (X,Z,Z·Y).
Definition (Lean source)
For a compatible model, the record-level inverse treatment weight is zero on controls and the reciprocal induced candidate on treated records.
Definition (Lean source)
For a compatible model, the record-level weighted treated outcome is the record's treated outcome multiplied by its inverse treatment weight.
Definition (Lean source)
MSM converse. Under a sensitivity level at least one, observed strict overlap, and boundedness of the calibrated candidate means, the treated-potential-outcome mean of every compatible model lies in the calibrated MSM interval.
Formal statement
Proof (Lean source)
14 supporting declarations (lemmas, instances)
-
measurable_recordCandidatetheorem — The record-level induced candidate is measurable.Proof (Lean source)
@[fun_prop] theorem measurable_recordCandidate : Measurable M.recordCandidate := by unfold recordCandidate exact Measurable.ite ((measurable_snd.comp measurable_fst) (measurableSet_singleton true)) (M.measurable_xyPropensityFactor.comp ((measurable_fst.comp measurable_fst).prodMk measurable_snd)) (S.measurable_propensityFactor.comp (measurable_fst.comp measurable_fst)) -
recordCandidate_factualObservedRecordtheorem — The induced candidate evaluated on a factual observable record is the record-level candidate.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible Λω :P.ΩconclusionM.recordCandidate (S.factualObservedRecord ω) = M.observedCandidate ωProof (Lean source)
theorem recordCandidate_factualObservedRecord (ω : P.Ω) : M.recordCandidate (S.factualObservedRecord ω) = M.observedCandidate ω := by by_cases hd : S.factualD ω · have hi : S.dVar.indicator true ω = 1 := by have hmem : ω ∈ S.treatedSet := by simpa [POBackdoorSystem.treatedSet] using hd rw [S.treated_indicator_eq] simp [hmem] simp [recordCandidate, observedCandidate, factualObservedRecord, hd, hi] · have hfactor := congrFun S.propScore_eq_propensityFactor_comp ω simp [recordCandidate, observedCandidate, factualObservedRecord, hd, Function.comp_apply] at hfactor ⊢ exact hfactor.symm -
recordCandidate_observedRecordtheorem — The induced candidate evaluated on a compatible model's observable record equals its (X,Y(1)) conditional propensity on treated units and the observed propensity on controls.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible Λω :M.ΩconclusionM.recordCandidate (M.observedRecord ω)= if M.Z ω then M.xyPropensity ω else S.propensityFactor (M.X ω)Proof (Lean source)
theorem recordCandidate_observedRecord (ω : M.Ω) : M.recordCandidate (M.observedRecord ω) = if M.Z ω then M.xyPropensity ω else S.propensityFactor (M.X ω) := by by_cases hz : M.Z ω · have hfactor := congrFun M.xyPropensity_eq_factor_comp ω simpa [recordCandidate, MSMDataCompatible.observedRecord, hz, Function.comp_apply] using hfactor.symm · simp [recordCandidate, MSMDataCompatible.observedRecord, hz] -
observedCandidate_observedOnTreatedtheorem — The induced observed candidate has an observed (X,Y)-measurable version on the treated arm.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionS.ObservedOnTreated M.observedCandidateProof (Lean source)
theorem observedCandidate_observedOnTreated : S.ObservedOnTreated M.observedCandidate := by let eObs : P.Ω → ℝ := fun ω => M.xyPropensityFactor (S.factualX ω, S.factualY ω) have heObs : Measurable[S.sigmaXYObs] eObs := by apply M.measurable_xyPropensityFactor.comp exact ((comap_measurable S.factualX).mono le_sup_left le_rfl).prodMk ((comap_measurable S.factualY).mono le_sup_right le_rfl) refine ⟨eObs, heObs, ?_⟩ filter_upwards [ae_restrict_mem S.measurableSet_treatedSet] with ω hω have hd : S.factualD ω = true := by simpa [POBackdoorSystem.treatedSet] using hω simp [observedCandidate, eObs, hd] -
observedCandidate_mem_MSMSettheorem — Under a sensitivity level at least one and observed strict overlap, the candidate induced by any compatible model lies in the observed MSM odds box.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛhΛ :1 ≤ ΛconclusionM.observedCandidate ∈ S.MSMSet true ΛProof (Lean source)
theorem observedCandidate_mem_MSMSet (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) : M.observedCandidate ∈ S.MSMSet true Λ := by have hΛpos : 0 < Λ := lt_of_lt_of_le zero_lt_one hΛ have hq := M.ae_propensityFactor_mem_Ioo hoverlap have hg := M.ae_xyPropensity_mem_Ioo have hodds := M.xyPropensity_odds hΛ hoverlap have hmodelInterior : ∀ᵐ ω ∂M.Q, 0 < M.recordCandidate (M.observedRecord ω) ∧ M.recordCandidate (M.observedRecord ω) < 1 := by filter_upwards [hq, hg] with ω hqω hgω rw [M.recordCandidate_observedRecord] split <;> assumption have hmodelOdds : ∀ᵐ ω ∂M.Q, 1 / Λ ≤ OR (M.recordCandidate (M.observedRecord ω)) (S.propensityFactor (M.observedRecord ω).1.1) ∧ OR (M.recordCandidate (M.observedRecord ω)) (S.propensityFactor (M.observedRecord ω).1.1) ≤ Λ := by filter_upwards [hq, hodds] with ω hqω hoddsω rw [M.recordCandidate_observedRecord] by_cases hz : M.Z ω · simpa [MSMDataCompatible.observedRecord, hz] using hoddsω · have hor : OR (S.propensityFactor (M.X ω)) (S.propensityFactor (M.X ω)) = 1 := by unfold OR have hp : S.propensityFactor (M.X ω) ≠ 0 := ne_of_gt hqω.1 have hpc : 1 - S.propensityFactor (M.X ω) ≠ 0 := by linarith [hqω.2] field_simp have hlower : 1 / Λ ≤ (1 : ℝ) := by rw [div_le_one hΛpos] exact hΛ simpa [MSMDataCompatible.observedRecord, hz, hor] using And.intro hlower hΛ let interior : ((γ × Bool) × ℝ) → Prop := fun r => 0 < M.recordCandidate r ∧ M.recordCandidate r < 1 have hinteriorMeas : MeasurableSet {r | interior r} := (measurableSet_lt measurable_const M.measurable_recordCandidate).inter (measurableSet_lt M.measurable_recordCandidate measurable_const) let oddsBox : ((γ × Bool) × ℝ) → Prop := fun r => 1 / Λ ≤ OR (M.recordCandidate r) (S.propensityFactor r.1.1) ∧ OR (M.recordCandidate r) (S.propensityFactor r.1.1) ≤ Λ have hoddsMeas : MeasurableSet {r | oddsBox r} := by have hOR : Measurable (fun r => OR (M.recordCandidate r) (S.propensityFactor r.1.1)) := by unfold OR fun_prop exact (measurableSet_le measurable_const hOR).inter (measurableSet_le hOR measurable_const) have hfactual : Measurable S.factualObservedRecord := by unfold factualObservedRecord exact (S.measurable_factualX.prodMk S.measurable_factualD).prodMk ((S.dVar.measurable_indicator true (measurableSet_singleton true)).mul S.measurable_factualY) have hinteriorObs := (Mathlib.MeasureTheory.ae_comp_iff_of_map_eq M.measurable_observedRecord hfactual interior hinteriorMeas M.observedLaw).mp hmodelInterior have hoddsObs := (Mathlib.MeasureTheory.ae_comp_iff_of_map_eq M.measurable_observedRecord hfactual oddsBox hoddsMeas M.observedLaw).mp hmodelOdds constructor · filter_upwards [hinteriorObs] with ω hω simpa [interior, M.recordCandidate_factualObservedRecord] using hω · filter_upwards [hoddsObs] with ω hω have hfactor := congrFun S.propScore_eq_propensityFactor_comp ω change 1 / Λ ≤ OR (M.recordCandidate (S.factualObservedRecord ω)) (S.propensityFactor (S.factualX ω)) ∧ OR (M.recordCandidate (S.factualObservedRecord ω)) (S.propensityFactor (S.factualX ω)) ≤ Λ at hω rw [M.recordCandidate_factualObservedRecord] at hω simpa [Function.comp_apply, hfactor] using hω -
measurable_recordInverseWeighttheorem — The record-level inverse treatment weight is measurable.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionMeasurable M.recordInverseWeightProof (Lean source)
@[fun_prop] theorem measurable_recordInverseWeight : Measurable M.recordInverseWeight := by unfold recordInverseWeight exact Measurable.ite ((measurable_snd.comp measurable_fst) (measurableSet_singleton true)) (measurable_const.div M.measurable_recordCandidate) measurable_const -
recordInverseWeight_observedRecordtheorem — The record inverse weight composed with the model record equals the model's inverse treatment weight.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionM.recordInverseWeight ∘ M.observedRecord = M.inverseWeightProof (Lean source)
theorem recordInverseWeight_observedRecord : M.recordInverseWeight ∘ M.observedRecord = M.inverseWeight := by funext ω by_cases hz : M.Z ω · have hc := M.recordCandidate_observedRecord ω simp [recordInverseWeight, MSMDataCompatible.observedRecord, inverseWeight, treatmentIndicator, hz] at hc ⊢ rw [hc] · simp [recordInverseWeight, MSMDataCompatible.observedRecord, inverseWeight, treatmentIndicator, hz] -
recordInverseWeight_factualObservedRecordtheorem — The record inverse weight composed with the factual record equals treatment divided by the induced observed candidate.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionM.recordInverseWeight ∘ S.factualObservedRecord= fun ω => S.dVar.indicator true ω / M.observedCandidate ωProof (Lean source)
theorem recordInverseWeight_factualObservedRecord : M.recordInverseWeight ∘ S.factualObservedRecord = fun ω => S.dVar.indicator true ω / M.observedCandidate ω := by funext ω change (if S.factualD ω then 1 / M.recordCandidate (S.factualObservedRecord ω) else 0) = S.dVar.indicator true ω / M.observedCandidate ω rw [M.recordCandidate_factualObservedRecord] by_cases hd : S.factualD ω · have hmem : ω ∈ S.treatedSet := by simpa [POBackdoorSystem.treatedSet] using hd have hi : S.dVar.indicator true ω = 1 := by rw [S.treated_indicator_eq] simp [hmem] simp [hd, hi] · have hnmem : ω ∉ S.treatedSet := by simpa [POBackdoorSystem.treatedSet] using hd have hi : S.dVar.indicator true ω = 0 := by rw [S.treated_indicator_eq] simp [hnmem] simp [hd, hi] -
observedCandidate_calibratedtheorem — Transported calibration. The candidate induced by a compatible model has conditional inverse-weight mean one given the observed covariate.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionS.Calibrated true M.observedCandidateProof (Lean source)
theorem observedCandidate_calibrated : S.Calibrated true M.observedCandidate := by let design : ((γ × Bool) × ℝ) → γ := fun r => r.1.1 have hdesign : Measurable design := measurable_fst.comp measurable_fst have hint : Integrable (M.recordInverseWeight ∘ M.observedRecord) M.Q := by rw [M.recordInverseWeight_observedRecord] exact M.integrable_inverseWeight have hcond : M.Q[M.recordInverseWeight ∘ M.observedRecord | comap (design ∘ M.observedRecord) inferInstance] =ᵐ[M.Q] (fun _ => 1) := by rw [M.recordInverseWeight_observedRecord] simpa [design, MSMDataCompatible.observedRecord, Function.comp_def] using M.condExp_inverseWeight_sigmaX_eq_one have htransport := Mathlib.MeasureTheory.condExp_comp_eq_one_of_map_eq M.measurable_observedRecord (by unfold factualObservedRecord exact (S.measurable_factualX.prodMk S.measurable_factualD).prodMk ((S.dVar.measurable_indicator true (measurableSet_singleton true)).mul S.measurable_factualY)) design hdesign M.recordInverseWeight M.measurable_recordInverseWeight M.observedLaw hint hcond rw [M.recordInverseWeight_factualObservedRecord] at htransport unfold Calibrated sigmaX simpa [design, factualObservedRecord, Function.comp_def] using htransport -
measurable_recordWeightedOutcometheorem — The record-level weighted treated outcome is measurable.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionMeasurable M.recordWeightedOutcomeProof (Lean source)
@[fun_prop] theorem measurable_recordWeightedOutcome : Measurable M.recordWeightedOutcome := by unfold recordWeightedOutcome exact M.measurable_recordInverseWeight.mul measurable_snd -
recordWeightedOutcome_observedRecordtheorem — The record-level weighted outcome composed with the compatible model record equals the full-data weighted potential outcome.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionM.recordWeightedOutcome ∘ M.observedRecord = M.weightedY1Proof (Lean source)
theorem recordWeightedOutcome_observedRecord : M.recordWeightedOutcome ∘ M.observedRecord = M.weightedY1 := by funext ω change M.recordInverseWeight (M.observedRecord ω) * (if M.Z ω then M.Y1 ω else 0) = M.inverseWeight ω * M.Y1 ω have hw : M.recordInverseWeight (M.observedRecord ω) = M.inverseWeight ω := by simpa only [Function.comp_apply] using congrFun M.recordInverseWeight_observedRecord ω rw [hw] by_cases hz : M.Z ω · simp [hz] · simp [hz, inverseWeight, treatmentIndicator] -
recordWeightedOutcome_factualObservedRecordtheorem — The record-level weighted outcome composed with the factual record is the candidate-mean integrand.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionM.recordWeightedOutcome ∘ S.factualObservedRecord= fun ω => S.dVar.indicator true ω * S.factualY ω / M.observedCandidate ωProof (Lean source)
theorem recordWeightedOutcome_factualObservedRecord : M.recordWeightedOutcome ∘ S.factualObservedRecord = fun ω => S.dVar.indicator true ω * S.factualY ω / M.observedCandidate ω := by funext ω simp only [Function.comp_apply] unfold recordWeightedOutcome have hw : M.recordInverseWeight (S.factualObservedRecord ω) = S.dVar.indicator true ω / M.observedCandidate ω := by simpa only [Function.comp_apply] using congrFun M.recordInverseWeight_factualObservedRecord ω rw [hw] simp only [factualObservedRecord] by_cases hd : S.factualD ω · have hmem : ω ∈ S.treatedSet := by simpa [POBackdoorSystem.treatedSet] using hd have hi : S.dVar.indicator true ω = 1 := by rw [S.treated_indicator_eq] simp [hmem] simp [hi, div_eq_mul_inv, mul_comm] · have hnmem : ω ∉ S.treatedSet := by simpa [POBackdoorSystem.treatedSet] using hd have hi : S.dVar.indicator true ω = 0 := by rw [S.treated_indicator_eq] simp [hnmem] simp [hi] -
candMean_observedCandidate_eq_targettheorem — Transported IPW identity. The candidate mean induced by a compatible model equals that model's full-data treated-potential-outcome mean.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛconclusionS.candMean true M.observedCandidate = M.targetProof (Lean source)
theorem candMean_observedCandidate_eq_target : S.candMean true M.observedCandidate = M.target := by have htransport := Mathlib.MeasureTheory.integral_comp_eq_of_map_eq M.measurable_observedRecord (by unfold factualObservedRecord exact (S.measurable_factualX.prodMk S.measurable_factualD).prodMk ((S.dVar.measurable_indicator true (measurableSet_singleton true)).mul S.measurable_factualY)) M.recordWeightedOutcome M.measurable_recordWeightedOutcome M.observedLaw change ∫ ω, (M.recordWeightedOutcome ∘ M.observedRecord) ω ∂M.Q = ∫ ω, (M.recordWeightedOutcome ∘ S.factualObservedRecord) ω ∂P.μ at htransport rw [M.recordWeightedOutcome_observedRecord, M.recordWeightedOutcome_factualObservedRecord] at htransport unfold candMean exact htransport.symm.trans M.integral_weightedY1_eq_target -
observedCandidate_mem_MSMSetCalibObstheorem — MSM converse candidate. Under a sensitivity level at least one and observed strict overlap, every compatible model induces an observed, calibrated MSM candidate.hypothesesΛ :sharedℝM :sharedS.MSMDataCompatible ΛhΛ :1 ≤ ΛconclusionM.observedCandidate ∈ S.MSMSetCalibObs ΛProof (Lean source)
theorem observedCandidate_mem_MSMSetCalibObs (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) : M.observedCandidate ∈ S.MSMSetCalibObs Λ := ⟨⟨M.observedCandidate_mem_MSMSet hΛ hoverlap, M.observedCandidate_calibrated⟩, M.observedCandidate_observedOnTreated⟩
CutoffExists 3 core · 1 supporting This file isolates the existence and regularity assumptions for treated-arm calibrating cutoffs. ★ wMin_mul_propScore_le_one★ condExp_treat_wMin_eq★ condExp_treat_wMax_eq
Existence interface for calibrated MSM cutoffs
This file isolates the existence and regularity assumptions for treated-arm calibrating cutoffs. It packages the facts needed to turn a conditional-quantile cutoff into a calibrated candidate weight for the calibrated MSM upper bound.
The public results are the endpoint bracket inequalities
wMin_mul_propScore_le_one and one_le_wMax_mul_propScore, together with the
conditional-expectation pullout identities condExp_treat_wMin_eq and
condExp_treat_wMax_eq.
Lower calibration bracket (algebraic). Fix a sensitivity parameter Λ at least 1. Assuming the propensity score for treatment given the covariates lies strictly between 0 and 1 almost surely (overlap), almost surely the lower marginal-sensitivity-model weight satisfies wMin(X)·e(X) = e(X) + (1 − e(X))/Λ ≤ 1, where e(X) denotes the propensity score.
Formal statement
Proof (Lean source)
The all-wMin conditional calibration value is wMin·e. Assuming the product of the treatment indicator and the lower marginal-sensitivity-model weight wMin is integrable, the conditional expectation, given the σ-algebra generated by the covariates, of the treatment indicator times wMin equals wMin times the propensity score, almost everywhere.
Formal statement
Proof (Lean source)
The all-wMax conditional calibration value is wMax·e. Assuming the product of the treatment indicator and the upper marginal-sensitivity-model weight wMax is integrable, the conditional expectation, given the σ-algebra generated by the covariates, of the treatment indicator times wMax equals wMax times the propensity score, almost everywhere.
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
one_le_wMax_mul_propScoretheorem — Upper calibration bracket (algebraic). Fix a sensitivity parameter Λ at least 1. Assuming the propensity score for treatment given the covariates lies strictly between 0 and 1 almost surely (overlap), almost surely the upper marginal-sensitivity-model weight satisfies 1 ≤ wMax(X)·e(X) = e(X) + Λ·(1 − e(X)).hypothesesγ :sharedType u_1Λ :ℝhΛ :1 ≤ Λconclusion∀ᵐ ω ∂P.μ, 1 ≤ S.wMax Λ ω * S.propScore true ωProof (Lean source)
theorem one_le_wMax_mul_propScore (Λ : ℝ) (hΛ : 1 ≤ Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) : ∀ᵐ ω ∂P.μ, 1 ≤ S.wMax Λ ω * S.propScore true ω := by filter_upwards [hoverlap] with ω hω set e : ℝ := S.propScore true ω with he_def have he0 : 0 < e := by simpa [he_def] using hω.1 have he1 : e < 1 := by simpa [he_def] using hω.2 have hw : S.wMax Λ ω * S.propScore true ω = e + Λ * (1 - e) := by simp only [POBackdoorSystem.wMax, ← he_def] field_simp [he0.ne'] have hmul : 1 - e ≤ Λ * (1 - e) := by nlinarith [hΛ, le_of_lt he1] calc 1 = e + (1 - e) := by ring _ ≤ e + Λ * (1 - e) := by linarith _ = S.wMax Λ ω * S.propScore true ω := hw.symm
GaussianHalfWidth 3 core · 0 supporting This file evaluates the calibrated Gaussian MSM upper endpoint in closed form. ★ msmUpperCalib_gaussian_halfWidth
Gaussian MSM half-width formula
This file evaluates the calibrated Gaussian MSM upper endpoint in closed form.
It defines the scalar gaussianMSMHalfWidthFactor, strengthens the CDF-only
Gaussian cutoff model to GaussianOutcomeModel with conditional mean and
truncated-mean identities, and proves msmUpperCalib_gaussian_halfWidth: the
calibrated upper bound is the point-identified conditional mean plus the Dorn-Guo
half-width contribution.
For a real sensitivity parameter, the Dorn–Guo Gaussian half-width factor is , where and are the standard normal distribution and density functions, respectively.
Definition (Lean source)
The conditional-Gaussian outcome model. Strengthens GaussianTreatedModel (conditional CDF Φ((·−m)/σ)) with the two conditional moments it implies: the treated conditional mean E[A·Y|σX] = e(X)·m(X) and the truncated mean above any σ(X)-measurable cutoff. This is the faithful "treated outcomes are conditionally Gaussian N(m(X), σ(X)²)" premise of the Dorn–Guo corollary.
Definition (Lean source)
The Dorn–Guo Gaussian calibrated upper bound, closed form. Fix a sensitivity parameter Λ strictly greater than 1 and assume the propensity score for treatment given the covariates lies strictly between 0 and 1 almost surely (overlap). Under the conditional-Gaussian treated-outcome model with conditional mean m and conditional standard deviation σ, strengthened with the implied treated conditional mean and truncated-mean identities, assuming the conditional mean m(X) is integrable, (1 − e(X))·σ(X) is integrable, the regularity conditions making the Gaussian-cutoff candidate mean and survival decomposition well defined, and the candidate-mean integrability at the lower weight and at the truncated difference, then the calibrated upper bound on E[Y(1)] equals the point-identified mean ∫ m(X) plus the half-width (Λ²−1)/Λ · φ(Φ⁻¹(Λ/(Λ+1))) · ∫ (1 − e(X))·σ(X).
Formal statement
Proof (Lean source)
Sharp 2 core · 0 supporting This file combines the arbitrary-model converse with reciprocal-tilt realizations of supplied upper and lower cutoff candidates. ★ msmCalib_sharp
Sharpness of the calibrated marginal sensitivity bounds
This file combines the arbitrary-model converse with reciprocal-tilt realizations of supplied upper and lower cutoff candidates. Under the explicit feasibility, overlap, integrability, and boundedness hypotheses below, the calibrated variational endpoints are the supremum and infimum of the compatible full-data treated-potential-outcome means.
Given an observed backdoor system and a sensitivity level, the compatible treated means are the means of Y(1) across all compatible full-data models in the ambient universe.
Definition (Lean source)
Conditional sharpness from supplied cutoff realizations. Fix a sensitivity level at least one, strict observed overlap, upper and lower covariate cutoffs, upper-cutoff measurability and integrability, upper-cutoff feasibility and envelope conditions, lower-cutoff measurability and integrability, lower-cutoff feasibility and envelope conditions. If the two realized cutoff propensities additionally have uniform overlap on the treated law and produce integrable potential outcomes under their marked laws, and the calibrated candidate means are bounded below and above, then the calibrated upper and lower endpoints are respectively the supremum and infimum of the compatible full-data treated means.