@@ -34,23 +34,23 @@ following conditions is true:
34
34
- `X - μ[X | m]` is not square-integrable. -/
35
35
noncomputable def condVar : Ω → ℝ := μ[(X - μ[X | m]) ^ 2 | m]
36
36
37
- @[inherit_doc] scoped notation "Var[" X " ; " μ " | " m "]" => condVar m X μ
37
+ @[inherit_doc] scoped notation "Var[" X "; " μ " | " m "]" => condVar m X μ
38
38
39
39
/-- Conditional variance of a real-valued random variable. It is defined as `0` if any one of the
40
40
following conditions is true:
41
41
- `m` is not a sub-σ-algebra of `m₀`,
42
42
- `volume` is not σ-finite with respect to `m`,
43
43
- `X - 𝔼[X | m]` is not square-integrable. -/
44
- scoped notation "Var[" f "|" m "]" => Var[f ; MeasureTheory.volume | m]
44
+ scoped notation "Var[" f "|" m "]" => Var[f; MeasureTheory.volume | m]
45
45
46
- lemma condVar_of_not_le (hm : ¬m ≤ m₀) : Var[X ; μ | m] = 0 := by rw [condVar, condExp_of_not_le hm]
46
+ lemma condVar_of_not_le (hm : ¬m ≤ m₀) : Var[X; μ | m] = 0 := by rw [condVar, condExp_of_not_le hm]
47
47
48
48
lemma condVar_of_not_sigmaFinite (hμm : ¬SigmaFinite (μ.trim hm)) :
49
- Var[X ; μ | m] = 0 := by rw [condVar, condExp_of_not_sigmaFinite hm hμm]
49
+ Var[X; μ | m] = 0 := by rw [condVar, condExp_of_not_sigmaFinite hm hμm]
50
50
51
51
open scoped Classical in
52
52
lemma condVar_of_sigmaFinite [SigmaFinite (μ.trim hm)] :
53
- Var[X ; μ | m] =
53
+ Var[X; μ | m] =
54
54
if Integrable (fun ω ↦ (X ω - (μ[X | m]) ω) ^ 2 ) μ then
55
55
if StronglyMeasurable[m] (fun ω ↦ (X ω - (μ[X | m]) ω) ^ 2 ) then
56
56
fun ω ↦ (X ω - (μ[X | m]) ω) ^ 2
@@ -59,51 +59,51 @@ lemma condVar_of_sigmaFinite [SigmaFinite (μ.trim hm)] :
59
59
60
60
lemma condVar_of_stronglyMeasurable [SigmaFinite (μ.trim hm)]
61
61
(hX : StronglyMeasurable[m] X) (hXint : Integrable ((X - μ[X | m]) ^ 2 ) μ) :
62
- Var[X ; μ | m] = fun ω ↦ (X ω - (μ[X | m]) ω) ^ 2 :=
62
+ Var[X; μ | m] = fun ω ↦ (X ω - (μ[X | m]) ω) ^ 2 :=
63
63
condExp_of_stronglyMeasurable _ ((hX.sub stronglyMeasurable_condExp).pow _) hXint
64
64
65
65
lemma condVar_of_not_integrable (hXint : ¬ Integrable (fun ω ↦ (X ω - (μ[X | m]) ω) ^ 2 ) μ) :
66
- Var[X ; μ | m] = 0 := condExp_of_not_integrable hXint
66
+ Var[X; μ | m] = 0 := condExp_of_not_integrable hXint
67
67
68
- @[simp] lemma condVar_zero : Var[0 ; μ | m] = 0 := by simp [condVar]
68
+ @[simp] lemma condVar_zero : Var[0 ; μ | m] = 0 := by simp [condVar]
69
69
70
70
@[simp]
71
- lemma condVar_const (hm : m ≤ m₀) (c : ℝ) : Var[fun _ ↦ c ; μ | m] = 0 := by
71
+ lemma condVar_const (hm : m ≤ m₀) (c : ℝ) : Var[fun _ ↦ c; μ | m] = 0 := by
72
72
obtain rfl | hc := eq_or_ne c 0
73
73
· simp [← Pi.zero_def]
74
74
by_cases hμm : IsFiniteMeasure μ
75
75
· simp [condVar, hm, Pi.pow_def]
76
76
· simp [condVar, condExp_of_not_integrable, integrable_const_iff_isFiniteMeasure hc,
77
77
integrable_const_iff_isFiniteMeasure <| pow_ne_zero _ hc, hμm, Pi.pow_def]
78
78
79
- lemma stronglyMeasurable_condVar : StronglyMeasurable[m] (Var[X ; μ | m]) :=
79
+ lemma stronglyMeasurable_condVar : StronglyMeasurable[m] (Var[X; μ | m]) :=
80
80
stronglyMeasurable_condExp
81
81
82
- lemma condVar_congr_ae (h : X =ᵐ[μ] Y) : Var[X ; μ | m] =ᵐ[μ] Var[Y ; μ | m] :=
82
+ lemma condVar_congr_ae (h : X =ᵐ[μ] Y) : Var[X; μ | m] =ᵐ[μ] Var[Y; μ | m] :=
83
83
condExp_congr_ae <| by filter_upwards [h, condExp_congr_ae h] with ω hω hω'; dsimp; rw [hω, hω']
84
84
85
85
lemma condVar_of_aestronglyMeasurable [hμm : SigmaFinite (μ.trim hm)]
86
86
(hX : AEStronglyMeasurable[m] X μ) (hXint : Integrable ((X - μ[X | m]) ^ 2 ) μ) :
87
- Var[X ; μ | m] =ᵐ[μ] (X - μ[X | m]) ^ 2 :=
87
+ Var[X; μ | m] =ᵐ[μ] (X - μ[X | m]) ^ 2 :=
88
88
condExp_of_aestronglyMeasurable' _ ((continuous_pow _).comp_aestronglyMeasurable
89
89
(hX.sub stronglyMeasurable_condExp.aestronglyMeasurable)) hXint
90
90
91
- lemma integrable_condVar : Integrable Var[X ; μ | m] μ := integrable_condExp
91
+ lemma integrable_condVar : Integrable Var[X; μ | m] μ := integrable_condExp
92
92
93
93
/-- The integral of the conditional variance `Var[X | m]` over an `m`-measurable set is equal to
94
94
the integral of `(X - μ[X | m]) ^ 2` on that set. -/
95
95
lemma setIntegral_condVar [SigmaFinite (μ.trim hm)] (hX : Integrable ((X - μ[X | m]) ^ 2 ) μ)
96
96
(hs : MeasurableSet[m] s) :
97
- ∫ ω in s, (Var[X ; μ | m]) ω ∂μ = ∫ ω in s, (X ω - (μ[X | m]) ω) ^ 2 ∂μ :=
97
+ ∫ ω in s, (Var[X; μ | m]) ω ∂μ = ∫ ω in s, (X ω - (μ[X | m]) ω) ^ 2 ∂μ :=
98
98
setIntegral_condExp _ hX hs
99
99
100
100
-- `(· ^ 2)` is a postfix operator called `_sq` in lemma names, but
101
101
-- `condVar_ae_eq_condExp_sq_sub_condExp_sq` is a bit ridiculous, so we exceptionally denote it by
102
102
-- `sq_` as it were a prefix.
103
103
lemma condVar_ae_eq_condExp_sq_sub_sq_condExp (hm : m ≤ m₀) [IsFiniteMeasure μ] (hX : Memℒp X 2 μ) :
104
- Var[X ; μ | m] =ᵐ[μ] μ[X ^ 2 | m] - μ[X | m] ^ 2 := by
104
+ Var[X; μ | m] =ᵐ[μ] μ[X ^ 2 | m] - μ[X | m] ^ 2 := by
105
105
calc
106
- Var[X ; μ | m]
106
+ Var[X; μ | m]
107
107
_ = μ[X ^ 2 - 2 * X * μ[X | m] + μ[X | m] ^ 2 | m] := by rw [condVar, sub_sq]
108
108
_ =ᵐ[μ] μ[X ^ 2 | m] - 2 * μ[X | m] ^ 2 + μ[X | m] ^ 2 := by
109
109
have aux₀ : Integrable (X ^ 2 ) μ := hX.integrable_sq
@@ -122,51 +122,51 @@ lemma condVar_ae_eq_condExp_sq_sub_sq_condExp (hm : m ≤ m₀) [IsFiniteMeasure
122
122
_ = μ[X ^ 2 | m] - μ[X | m] ^ 2 := by ring
123
123
124
124
lemma condVar_ae_le_condExp_sq (hm : m ≤ m₀) [IsFiniteMeasure μ] (hX : Memℒp X 2 μ) :
125
- Var[X ; μ | m] ≤ᵐ[μ] μ[X ^ 2 | m] := by
125
+ Var[X; μ | m] ≤ᵐ[μ] μ[X ^ 2 | m] := by
126
126
filter_upwards [condVar_ae_eq_condExp_sq_sub_sq_condExp hm hX] with ω hω
127
127
dsimp at hω
128
128
nlinarith
129
129
130
130
/-- **Law of total variance** -/
131
131
lemma integral_condVar_add_variance_condExp (hm : m ≤ m₀) [IsProbabilityMeasure μ]
132
- (hX : Memℒp X 2 μ) : μ[Var[X ; μ | m]] + Var[μ[X | m] ; μ] = Var[X ; μ] := by
132
+ (hX : Memℒp X 2 μ) : μ[Var[X; μ | m]] + Var[μ[X | m]; μ] = Var[X; μ] := by
133
133
calc
134
- μ[Var[X ; μ | m]] + Var[μ[X | m] ; μ]
134
+ μ[Var[X; μ | m]] + Var[μ[X | m]; μ]
135
135
_ = μ[(μ[X ^ 2 | m] - μ[X | m] ^ 2 : Ω → ℝ)] + (μ[μ[X | m] ^ 2 ] - μ[μ[X | m]] ^ 2 ) := by
136
136
congr 1
137
137
· exact integral_congr_ae <| condVar_ae_eq_condExp_sq_sub_sq_condExp hm hX
138
138
· exact variance_def' hX.condExp
139
139
_ = μ[X ^ 2 ] - μ[μ[X | m] ^ 2 ] + (μ[μ[X | m] ^ 2 ] - μ[X] ^ 2 ) := by
140
140
rw [integral_sub' integrable_condExp, integral_condExp hm, integral_condExp hm]
141
141
exact hX.condExp.integrable_sq
142
- _ = Var[X ; μ] := by rw [variance_def' hX]; ring
142
+ _ = Var[X; μ] := by rw [variance_def' hX]; ring
143
143
144
144
lemma condVar_bot' [NeZero μ] (X : Ω → ℝ) :
145
- Var[X ; μ | ⊥] = fun _ => ⨍ ω, (X ω - ⨍ ω', X ω' ∂μ) ^ 2 ∂μ := by
145
+ Var[X; μ | ⊥] = fun _ => ⨍ ω, (X ω - ⨍ ω', X ω' ∂μ) ^ 2 ∂μ := by
146
146
ext ω; simp [condVar, condExp_bot', average]
147
147
148
148
lemma condVar_bot_ae_eq (X : Ω → ℝ) :
149
- Var[X ; μ | ⊥] =ᵐ[μ] fun _ ↦ ⨍ ω, (X ω - ⨍ ω', X ω' ∂μ) ^ 2 ∂μ := by
149
+ Var[X; μ | ⊥] =ᵐ[μ] fun _ ↦ ⨍ ω, (X ω - ⨍ ω', X ω' ∂μ) ^ 2 ∂μ := by
150
150
obtain rfl | hμ := eq_zero_or_neZero μ
151
151
· rw [ae_zero]
152
152
exact eventually_bot
153
153
· exact .of_forall <| congr_fun (condVar_bot' X)
154
154
155
155
lemma condVar_bot [IsProbabilityMeasure μ] (hX : AEMeasurable X μ) :
156
- Var[X ; μ | ⊥] = fun _ω ↦ Var[X ; μ] := by
156
+ Var[X; μ | ⊥] = fun _ω ↦ Var[X; μ] := by
157
157
simp [condVar_bot', average_eq_integral, variance_eq_integral hX]
158
158
159
- lemma condVar_smul (c : ℝ) (X : Ω → ℝ) : Var[c • X ; μ | m] =ᵐ[μ] c ^ 2 • Var[X ; μ | m] := by
159
+ lemma condVar_smul (c : ℝ) (X : Ω → ℝ) : Var[c • X; μ | m] =ᵐ[μ] c ^ 2 • Var[X; μ | m] := by
160
160
calc
161
- Var[c • X ; μ | m]
161
+ Var[c • X; μ | m]
162
162
_ =ᵐ[μ] μ[c ^ 2 • (X - μ[X | m]) ^ 2 | m] := by
163
163
rw [condVar]
164
164
refine condExp_congr_ae ?_
165
165
filter_upwards [condExp_smul (m := m) c X] with ω hω
166
166
simp [hω, ← mul_sub, mul_pow]
167
- _ =ᵐ[μ] c ^ 2 • Var[X ; μ | m] := condExp_smul ..
167
+ _ =ᵐ[μ] c ^ 2 • Var[X; μ | m] := condExp_smul ..
168
168
169
- @[simp] lemma condVar_neg (X : Ω → ℝ) : Var[-X ; μ | m] =ᵐ[μ] Var[X ; μ | m] := by
169
+ @[simp] lemma condVar_neg (X : Ω → ℝ) : Var[-X; μ | m] =ᵐ[μ] Var[X; μ | m] := by
170
170
refine condExp_congr_ae ?_
171
171
filter_upwards [condExp_neg (m := m) X] with ω hω
172
172
simp [condVar, hω]
0 commit comments