PO.ID.Partial.Sensitivity.MSM.CutoffConstruct
In the marginal sensitivity model with parameter Λ, the largest value of E[Y(1)] is reached by a propensity that takes its extreme admissible values above and below a covariate-dependent outcome cutoff.
ConstantCutoff 5 core · 10 supporting This part defines the treated push-forward law, its conditional distribution function, the calibration level, and proves the constant-cutoff conditional-survival identity. ★ treatedSurv_const_eq
Treated-law definitions and the constant-cutoff survival bridge
This part defines the treated push-forward law, its conditional distribution function, the calibration level, and proves the constant-cutoff conditional-survival identity.
For a potential-outcomes system, a measurable covariate space, and a back-door system on them, the treated set is the set of all units whose factual treatment status is treatment.
Definition (Lean source)
For a potential-outcomes system, a measurable covariate space, and a back-door system on them, the treated covariate--outcome law is the image law of the factual covariate and factual outcome under the population measure restricted to treated 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 treated conditional distribution-function value is the probability that a treated 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 calibration quantile level is one minus the target treated-survival probability divided by that unit's propensity for treatment. It is the treated conditional-distribution-function level whose quantile supplies the calibrating cutoff.
Definition (Lean source)
For a potential-outcome system and measurable covariate space, a back-door system, and a fixed outcome cutoff, the conditional mean of treatment times the indicator that the outcome exceeds the cutoff equals the propensity times one minus the treated conditional distribution at that cutoff, almost surely.
Formal statement
Proof (Lean source)
10 supporting declarations (lemmas, instances)
-
exists_measurableSet_through_factualXlemma — Given a backdoor system and an event in its sample space, if the event is measurable with respect to the σ-algebra generated by the factual covariate, then it is the preimage under that covariate of some measurable covariate set.hypothesesProof (Lean source)
lemma exists_measurableSet_through_factualX {s : Set P.Ω} (hs : MeasurableSet[S.sigmaX] s) : ∃ B : Set γ, MeasurableSet B ∧ S.factualX ⁻¹' B = s := by rw [POBackdoorSystem.sigmaX] at hs exact MeasurableSpace.measurableSet_comap.mp hs -
treatedXYLaw_eqlemma — The treated 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 treated set.hypothesesconclusionS.treatedXYLaw = (P.μ.restrict S.treatedSet).map (fun ω => (S.factualX ω, S.factualY ω)) -
measurableSet_treatedSetlemma — For a backdoor system, the event of receiving treatment is measurable.hypothesesconclusionMeasurableSet S.treatedSetProof (Lean source)
lemma measurableSet_treatedSet : MeasurableSet S.treatedSet := by unfold POBackdoorSystem.treatedSet exact MeasurableSet.singleton true |>.preimage S.measurable_factualD -
treated_indicator_eqlemma — For a backdoor system, the indicator of factual treatment being true equals the indicator of the treated event.hypothesesconclusionS.dVar.indicator true = S.treatedSet.indicator (fun _ : P.Ω => (1 : ℝ)) -
treatedXYLaw_fstlemma — For a backdoor system, the covariate marginal of the unnormalized treated covariate-outcome law is the factual-covariate law restricted to the treated event.hypothesesconclusionS.treatedXYLaw.fst = (P.μ.restrict S.treatedSet).map S.factualXProof (Lean source)
lemma treatedXYLaw_fst : S.treatedXYLaw.fst = (P.μ.restrict S.treatedSet).map S.factualX := by unfold POBackdoorSystem.treatedXYLaw fst rw [MeasureTheory.Measure.map_map measurable_fst (S.measurable_factualX.prodMk S.measurable_factualY)] rfl -
measurable_treatedCondCDF_constlemma — At a fixed outcome level, the treated conditional CDF depends on the unit only through the observed covariate, so it is measurable for the covariate σ-algebra.hypothesesconclusionMeasurable[S.sigmaX] (fun ω => S.treatedCondCDF ω t)Proof (Lean source)
@[fun_prop] lemma measurable_treatedCondCDF_const (t : ℝ) : Measurable[S.sigmaX] (fun ω => S.treatedCondCDF ω t) := by rw [POBackdoorSystem.sigmaX] unfold POBackdoorSystem.treatedCondCDF exact (ProbabilityTheory.measurable_condCDF S.treatedXYLaw t).comp (comap_measurable S.factualX) -
stronglyMeasurable_treatedCondCDF_constlemma — The strongly-measurable form, for the covariate σ-algebra, of the treated conditional CDF at a fixed outcome level.hypothesesconclusionStronglyMeasurable[S.sigmaX] (fun ω => S.treatedCondCDF ω t)Proof (Lean source)
@[fun_prop] lemma stronglyMeasurable_treatedCondCDF_const (t : ℝ) : StronglyMeasurable[S.sigmaX] (fun ω => S.treatedCondCDF ω t) := (S.measurable_treatedCondCDF_const t).stronglyMeasurable -
measurable_treatedCondCDF_const_ambientlemma — The treated conditional CDF at a fixed outcome level is measurable for the ambient σ-algebra as well as for the covariate one.hypothesesconclusionMeasurable (fun ω => S.treatedCondCDF ω t)Proof (Lean source)
@[fun_prop] lemma measurable_treatedCondCDF_const_ambient (t : ℝ) : Measurable (fun ω => S.treatedCondCDF ω t) := (S.measurable_treatedCondCDF_const t).mono S.sigmaX_le le_rfl -
calibLevel_formulastheorem — Let e be a propensity value and write w_min = 1 + (1 − e)/(Λe) and w_max = 1 + Λ(1 − e)/e for the smallest and largest admissible inverse-propensity weights. For a sensitivity parameter Λ strictly greater than one and a propensity value strictly between 0 and 1, the upper calibration quantile level 1 − ((1 − w_min·e)/(w_max − w_min))/e equals Λ/(Λ+1), and the lower calibration quantile level 1 − ((w_max·e − 1)/(w_max − w_min))/e equals 1/(Λ+1). Neither level depends on the propensity.hypothesesΛ e :ℝhΛ :1 < Λhe0 :0 < ehe1 :e < 1conclusionconclusion 11- (1 - (1 + (1 - e) / (Λ * e)) * e) / (1 + Λ * (1 - e) / e - (1 + (1 - e) / (Λ * e))) / e= Λ / (Λ + 1)conclusion 21 - ((1 + Λ * (1 - e) / e) * e - 1) / (1 + Λ * (1 - e) / e - (1 + (1 - e) / (Λ * e))) / e= 1 / (Λ + 1)Proof (Lean source)
theorem calibLevel_formulas {Λ e : ℝ} (hΛ : 1 < Λ) (he0 : 0 < e) (he1 : e < 1) : 1 - (1 - (1 + (1 - e) / (Λ * e)) * e) / (1 + Λ * (1 - e) / e - (1 + (1 - e) / (Λ * e))) / e = Λ / (Λ + 1) ∧ 1 - ((1 + Λ * (1 - e) / e) * e - 1) / (1 + Λ * (1 - e) / e - (1 + (1 - e) / (Λ * e))) / e = 1 / (Λ + 1) := by have h1e : (1 - e) ≠ 0 := ne_of_gt (by linarith) have he : e ≠ 0 := ne_of_gt he0 have hΛ0 : Λ ≠ 0 := ne_of_gt (by linarith) have hΛm : Λ - 1 ≠ 0 := ne_of_gt (by linarith) have hΛp : Λ + 1 ≠ 0 := ne_of_gt (by linarith) have hden : 1 + Λ * (1 - e) / e - (1 + (1 - e) / (Λ * e)) = (1 - e) * (Λ - 1) * (Λ + 1) / (Λ * e) := by field_simp ring have hup : 1 - (1 + (1 - e) / (Λ * e)) * e = (1 - e) * (Λ - 1) / Λ := by field_simp ring have hlo : (1 + Λ * (1 - e) / e) * e - 1 = (1 - e) * (Λ - 1) := by field_simp ring rw [hden, hup, hlo] constructor · field_simp ring · field_simp ring -
calibLevel_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 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.calibLevel Λ ω ∧ S.calibLevel Λ ω < 1Proof (Lean source)
theorem calibLevel_mem_Ioo (Λ : ℝ) (hΛ : 1 < Λ) (hoverlap : ∀ᵐ ω ∂P.μ, 0 < S.propScore true ω ∧ S.propScore true ω < 1) : ∀ᵐ ω ∂P.μ, 0 < S.calibLevel Λ ω ∧ S.calibLevel Λ ω < 1 := by filter_upwards [hoverlap] with ω hω have h : S.calibLevel Λ ω = Λ / (Λ + 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)⟩
VariableCutoff 2 core · 8 supporting This part extends the survival bridge to covariate-measurable cutoffs, constructs a measurable calibrating conditional quantile, and obtains the calibrated upper endpoint under integrability of the calibrating cutoff. ★ exists_calibrating_cutoff★ msmUpperCalib_eq_cutoff_of_calibrating_cutoff_integrability
Variable cutoffs and calibrated MSM construction
This part extends the survival bridge to covariate-measurable cutoffs, constructs a measurable calibrating conditional quantile, and obtains the calibrated upper endpoint under integrability of the calibrating cutoff.
Existence of a calibrating cutoff (treated arm). Fix a sensitivity parameter Λ. Assume the treated propensity score is almost surely strictly between zero and one (two-sided overlap), that the treated-arm conditional law of the outcome given covariates is atomless, i.e. its conditional CDF is continuous, and that the calibration quantile level lies strictly between 0 and 1 almost everywhere. Then there exists an ambient-measurable cutoff function c such that the treatment-weighted conditional survival function at c agrees almost everywhere with the target survival function survTarget Λ; the cutoff is realized as the conditional quantile of the treated outcome law at the calibration level.
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 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 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 sensitivity set and whose candidate inverse-probability-weighted mean equals the calibrated upper bound for the mean of the treated potential outcome.
Formal statement
Proof (Lean source)
8 supporting declarations (lemmas, instances)
-
measurable_condCDF_variablelemma — The conditional CDF remains measurable when evaluated at a measurable cutoff.hypothesesconclusionMeasurable (fun a => condCDF ρ a (q a))Proof (Lean source)
@[fun_prop] lemma measurable_condCDF_variable (ρ : Measure (γ × ℝ)) [IsFiniteMeasure ρ] {q : γ → ℝ} (hq : Measurable q) : Measurable (fun a => condCDF ρ a (q a)) := by classical let V : Set (γ × ℝ) := {p : γ × ℝ | p.2 ≤ q p.1} have hV : MeasurableSet V := by dsimp [V] exact measurableSet_le measurable_snd (hq.comp measurable_fst) let hf := ProbabilityTheory.isCondKernelCDF_condCDF ρ have hkern : Measurable fun a : γ => hf.toKernel (fun p : Unit × γ => condCDF ρ p.2) ((), a) (Prod.mk a ⁻¹' V) := by exact Kernel.measurable_kernel_prodMk_left' (η := hf.toKernel (fun p : Unit × γ => condCDF ρ p.2)) hV () have hfun : (fun a : γ => condCDF ρ a (q a)) = fun a => (hf.toKernel (fun p : Unit × γ => condCDF ρ p.2) ((), a) (Prod.mk a ⁻¹' V)).toReal := by funext a have hpre : Prod.mk a ⁻¹' V = Iic (q a) := by ext y simp [V] rw [hpre, ProbabilityTheory.IsCondKernelCDF.toKernel_Iic] exact (ENNReal.toReal_ofReal (ProbabilityTheory.condCDF_nonneg ρ a (q a))).symm rw [hfun] exact ENNReal.measurable_toReal.comp hkern -
integrable_condCDF_variablelemma — The conditional CDF evaluated at a measurable cutoff is integrable under the first marginal.hypothesesconclusionIntegrable (fun a => condCDF ρ a (q a)) ρ.fstProof (Lean source)
@[fun_prop] lemma integrable_condCDF_variable (ρ : Measure (γ × ℝ)) [IsFiniteMeasure ρ] {q : γ → ℝ} (hq : Measurable q) : Integrable (fun a => condCDF ρ a (q a)) ρ.fst := by refine (integrable_const (μ := ρ.fst) (c := (1 : ℝ))).mono' (measurable_condCDF_variable ρ hq).aestronglyMeasurable ?_ exact Filter.Eventually.of_forall fun a => by rw [Real.norm_of_nonneg (ProbabilityTheory.condCDF_nonneg ρ a (q a))] exact ProbabilityTheory.condCDF_le_one ρ a (q a) -
setLIntegral_condCDF_variablelemma — Set-lintegral form of the conditional CDF identity at a measurable variable cutoff.Proof (Lean source)
lemma setLIntegral_condCDF_variable (ρ : Measure (γ × ℝ)) [IsFiniteMeasure ρ] {B : Set γ} (hB : MeasurableSet B) {q : γ → ℝ} (hq : Measurable q) : ∫⁻ a in B, ofReal (condCDF ρ a (q a)) ∂ρ.fst = ρ {p : γ × ℝ | p.1 ∈ B ∧ p.2 ≤ q p.1} := by classical let V : Set (γ × ℝ) := {p : γ × ℝ | p.1 ∈ B ∧ p.2 ≤ q p.1} have hV : MeasurableSet V := by dsimp [V] exact (hB.preimage measurable_fst).inter (measurableSet_le measurable_snd (hq.comp measurable_fst)) let hf := ProbabilityTheory.isCondKernelCDF_condCDF ρ have hmem := ProbabilityTheory.lintegral_toKernel_mem (κ := Kernel.const Unit ρ) (ν := Kernel.const Unit ρ.fst) (f := fun p : Unit × γ => condCDF ρ p.2) hf () hV have hpoint : ∀ a : γ, hf.toKernel (fun p : Unit × γ => condCDF ρ p.2) ((), a) (Prod.mk a ⁻¹' V) = B.indicator (fun a => ofReal (condCDF ρ a (q a))) a := by intro a by_cases ha : a ∈ B · have hpre : Prod.mk a ⁻¹' V = Iic (q a) := by ext y simp [V, ha] rw [hpre, ProbabilityTheory.IsCondKernelCDF.toKernel_Iic] simp [Set.indicator_of_mem ha] · have hpre : Prod.mk a ⁻¹' V = ∅ := by ext y simp [V, ha] rw [hpre] simp [Set.indicator_of_notMem ha] calc ∫⁻ a in B, ofReal (condCDF ρ a (q a)) ∂ρ.fst = ∫⁻ a, B.indicator (fun a => ofReal (condCDF ρ a (q a))) a ∂ρ.fst := by exact (MeasureTheory.lintegral_indicator hB _).symm _ = ∫⁻ a, hf.toKernel (fun p : Unit × γ => condCDF ρ p.2) ((), a) (Prod.mk a ⁻¹' V) ∂(Kernel.const Unit ρ.fst ()) := by simp only [Kernel.const_apply] exact lintegral_congr_ae (Filter.Eventually.of_forall fun a => (hpoint a).symm) _ = Kernel.const Unit ρ () V := hmem _ = ρ V := by simp -
measurable_treatedCondCDF_variablelemma — Evaluated at a cutoff that itself depends on the unit only through the observed covariate, the treated conditional CDF is still measurable for the covariate σ-algebra.hypothesesconclusionMeasurable[S.sigmaX] (fun ω => S.treatedCondCDF ω (c ω))Proof (Lean source)
@[fun_prop] lemma measurable_treatedCondCDF_variable (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) : Measurable[S.sigmaX] (fun ω => S.treatedCondCDF ω (c ω)) := by obtain ⟨q, hq, hc_eq⟩ := S.exists_factor_through_factualX_private hc haveI : IsFiniteMeasure S.treatedXYLaw := by unfold POBackdoorSystem.treatedXYLaw infer_instance rw [POBackdoorSystem.sigmaX, hc_eq] unfold POBackdoorSystem.treatedCondCDF exact (measurable_condCDF_variable S.treatedXYLaw hq).comp (comap_measurable S.factualX) -
stronglyMeasurable_treatedCondCDF_variablelemma — The strongly-measurable form, for the covariate σ-algebra, of the treated conditional CDF at a covariate-measurable cutoff.hypothesesconclusionStronglyMeasurable[S.sigmaX] (fun ω => S.treatedCondCDF ω (c ω))Proof (Lean source)
@[fun_prop] lemma stronglyMeasurable_treatedCondCDF_variable (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) : StronglyMeasurable[S.sigmaX] (fun ω => S.treatedCondCDF ω (c ω)) := (S.measurable_treatedCondCDF_variable c hc).stronglyMeasurable -
measurable_treatedCondCDF_variable_ambientlemma — The treated conditional CDF at a covariate-measurable cutoff is measurable for the ambient σ-algebra as well as for the covariate one.hypothesesconclusionMeasurable (fun ω => S.treatedCondCDF ω (c ω))Proof (Lean source)
@[fun_prop] lemma measurable_treatedCondCDF_variable_ambient (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) : Measurable (fun ω => S.treatedCondCDF ω (c ω)) := (S.measurable_treatedCondCDF_variable c hc).mono S.sigmaX_le le_rfl -
treatedSurv_eqtheorem — The survival bridge (functional cutoff). The version of treatedSurv_const_eq evaluated at a σ(X)-measurable cutoff c: E[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_cutoff.hypothesesconclusionS.treatedSurv c =ᵐ[P.μ] fun ω => S.propScore true ω * (1 - S.treatedCondCDF ω (c ω))Proof (Lean source)
theorem treatedSurv_eq (c : P.Ω → ℝ) (hc : Measurable[S.sigmaX] c) : S.treatedSurv c =ᵐ[P.μ] fun ω => S.propScore true ω * (1 - S.treatedCondCDF ω (c ω)) := by classical unfold POBackdoorSystem.treatedSurv have hpoint : (fun ω => S.dVar.indicator true ω * (if c ω < S.factualY ω then (1 : ℝ) else 0)) =ᵐ[P.μ] (fun ω => S.dVar.indicator true ω - S.dVar.indicator true ω * (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 true) (g := fun ω => S.dVar.indicator true ω * (if S.factualY ω ≤ c ω then (1 : ℝ) else 0)) (S.dVar.integrable_indicator true (MeasurableSet.singleton true)) (S.integrable_treated_le_indicator_variable c hc) have hle_bridge := S.treatedLe_eq c hc filter_upwards [hsub, hle_bridge] with ω hsubω hleω change P.μ[S.dVar.indicator true - (fun ω => S.dVar.indicator true ω * (if S.factualY ω ≤ c ω then (1 : ℝ) else 0)) | S.sigmaX] ω = S.propScore true ω * (1 - S.treatedCondCDF ω (c ω)) rw [hsubω] change S.propScore true ω - P.μ[fun ω => S.dVar.indicator true ω * (if S.factualY ω ≤ c ω then (1 : ℝ) else 0) | S.sigmaX] ω = S.propScore true ω * (1 - S.treatedCondCDF ω (c ω)) rw [hleω] ring -
exists_factor_through_factualXtheorem — σ(X)-measurable functions factor through X. If f is σ(X)-measurable then f = g ∘ X for a measurable g : γ → ℝ. This is standard comap factorization: the conditioning is on the value of X.hypothesesProof (Lean source)
theorem exists_factor_through_factualX {f : P.Ω → ℝ} (hf : Measurable[S.sigmaX] f) : ∃ g : γ → ℝ, Measurable g ∧ f = fun ω => g (S.factualX ω) := by rw [POBackdoorSystem.sigmaX] at hf obtain ⟨g, hg, hfg⟩ := hf.exists_eq_measurable_comp (f := S.factualX) exact ⟨g, hg, by simpa [Function.comp_def] using hfg⟩