@@ -5,7 +5,7 @@ Authors: Rémy Degenne
5
5
-/
6
6
import Mathlib.Analysis.LocallyConvex.ContinuousOfBounded
7
7
import Mathlib.MeasureTheory.Constructions.BorelSpace.ContinuousLinearMap
8
- import Mathlib.Probability.Moments.Variance
8
+ import Mathlib.Probability.Moments.Covariance
9
9
10
10
/-!
11
11
# Covariance in Banach spaces
@@ -179,6 +179,11 @@ lemma uncenteredCovarianceBilin_of_not_memLp (h : ¬ MemLp id 2 μ) (L₁ L₂ :
179
179
uncenteredCovarianceBilin μ L₁ L₂ = 0 := by
180
180
simp [uncenteredCovarianceBilin, Dual.toLp_of_not_memLp h]
181
181
182
+ lemma uncenteredCovarianceBilin_zero : uncenteredCovarianceBilin (0 : Measure E) = 0 := by
183
+ ext
184
+ have : Subsingleton (Lp ℝ 2 (0 : Measure E)) := ⟨fun x y ↦ Lp.ext_iff.2 rfl⟩
185
+ simp [uncenteredCovarianceBilin, Subsingleton.eq_zero (Dual.toLp 0 2 )]
186
+
182
187
lemma norm_uncenteredCovarianceBilin_le (L₁ L₂ : Dual ℝ E) :
183
188
‖uncenteredCovarianceBilin μ L₁ L₂‖ ≤ ‖L₁‖ * ‖L₂‖ * ∫ x, ‖x‖ ^ 2 ∂μ := by
184
189
by_cases h : MemLp id 2 μ
@@ -229,6 +234,18 @@ lemma covarianceBilin_of_not_memLp (h : ¬ MemLp id 2 μ) (L₁ L₂ : Dual ℝ
229
234
rw [this]
230
235
exact h_Lp.add (memLp_const _)
231
236
237
+ @[simp]
238
+ lemma covarianceBilin_zero : covarianceBilin (0 : Measure E) = 0 := by
239
+ rw [covarianceBilin, Measure.map_zero, uncenteredCovarianceBilin_zero]
240
+
241
+ lemma covarianceBilin_comm (L₁ L₂ : Dual ℝ E) :
242
+ covarianceBilin μ L₁ L₂ = covarianceBilin μ L₂ L₁ := by
243
+ by_cases h : MemLp id 2 μ
244
+ · have h' : MemLp id 2 (Measure.map (fun x ↦ x - ∫ (x : E), x ∂μ) μ) :=
245
+ (measurableEmbedding_subRight _).memLp_map_measure_iff.mpr <| h.sub (memLp_const _)
246
+ simp_rw [covarianceBilin, uncenteredCovarianceBilin_apply h', mul_comm (L₁ _)]
247
+ · simp [h]
248
+
232
249
variable [CompleteSpace E]
233
250
234
251
lemma covarianceBilin_apply (h : MemLp id 2 μ) (L₁ L₂ : Dual ℝ E) :
@@ -239,10 +256,22 @@ lemma covarianceBilin_apply (h : MemLp id 2 μ) (L₁ L₂ : Dual ℝ E) :
239
256
simp [← hL]
240
257
· exact (measurableEmbedding_subRight _).memLp_map_measure_iff.mpr <| h.sub (memLp_const _)
241
258
242
- lemma covarianceBilin_same_eq_variance (h : MemLp id 2 μ) (L : Dual ℝ E) :
259
+ lemma covarianceBilin_apply' (h : MemLp id 2 μ) (L₁ L₂ : Dual ℝ E) :
260
+ covarianceBilin μ L₁ L₂ = ∫ x, L₁ (x - μ[id]) * L₂ (x - μ[id]) ∂μ := by
261
+ rw [covarianceBilin_apply h]
262
+ have hL (L : Dual ℝ E) : μ[L] = L (∫ x, x ∂μ) := L.integral_comp_comm (h.integrable (by simp))
263
+ simp [← hL]
264
+
265
+ lemma covarianceBilin_eq_covariance (h : MemLp id 2 μ) (L₁ L₂ : Dual ℝ E) :
266
+ covarianceBilin μ L₁ L₂ = cov[L₁, L₂; μ] := by
267
+ rw [covarianceBilin_apply h, covariance]
268
+
269
+ lemma covarianceBilin_self_eq_variance (h : MemLp id 2 μ) (L : Dual ℝ E) :
243
270
covarianceBilin μ L L = Var[L; μ] := by
244
- rw [covarianceBilin_apply h, variance_eq_integral (by fun_prop)]
245
- simp_rw [pow_two]
271
+ rw [covarianceBilin_eq_covariance h, covariance_self (by fun_prop)]
272
+
273
+ @[deprecated (since := "2025-07-16")] alias covarianceBilin_same_eq_variance :=
274
+ covarianceBilin_self_eq_variance
246
275
247
276
end Covariance
248
277
0 commit comments