Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG_UNRELEASED.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@

- in `random_variable.v`
+ lemmas `lebesgue_integral_pmf`, `cdf_measurable`, `ccdf_measurable`,
`le0_expectation_cdf`
`le0_expectation_cdf`, `expectation_cdf_ccdf`

- in `lebesgue_integral_nonneg.v`:
+ lemma `integral_setU`
Expand Down
31 changes: 31 additions & 0 deletions theories/probability_theory/random_variable.v
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,37 @@ rewrite setDitv1r; congr -%E; apply: eq_integral => r _.
by rewrite (@comp_preimage _ _ _ _ _ -%R)/= opp_preimage_itvbndy/= opprK.
Qed.

Lemma expectation_cdf_ccdf (X : {RV P >-> R}) : Lfun P 1 X ->
'E_P[X] = \int[mu]_(r in `[0%R, +oo[) ccdf X r
- \int[mu]_(r in `]-oo, 0%R[) cdf X r.
Proof.
move=> L1X.
pose Xp := (cst 0%R) \max X.
pose Xm := (cst 0%R) \min X.
have Xp_leX x : setT x -> `|(Xp x)%:E| <= `|(X x)%:E|.
by rewrite lee_tofin// ger0_norm ?le_max ?lexx// ge_max normr_ge0 ler_norm.
have Xm_leX x : setT x -> `|(Xm x)%:E| <= `|(X x)%:E|.
rewrite /Xm lee_tofin//=.
by have [//=| Xle0 |] := (@real_le0P _ (X x));
[rewrite ler0_norm | rewrite normr0; exact: ltW].
have XpP1 : Xp \in Lfun P 1.
by rewrite Lfun1_integrable; apply: (le_integrable _ _ Xp_leX);
[| apply/measurable_EFinP | rewrite -Lfun1_integrable].
have XmP1: Xm \in Lfun P 1.
by rewrite Lfun1_integrable; apply: (le_integrable _ _ Xm_leX);
[| apply/measurable_EFinP | rewrite -Lfun1_integrable].
rewrite (_ : MeasurableFun.sort X = (Xp \+ Xm)%R) ?expectationD//;
last by apply: funext => x; rewrite /= addr_max_min add0r.
rewrite (_ : 'E_P[Xp] = \int[mu]_(r in `[0%R, +oo[) ccdf X r); last first.
rewrite ge0_expectation_ccdf/= => [|x]; last by case: ler0P; last exact: ltW.
apply: eq_integral => r; rewrite inE/= in_itv/= andbT => r_ge0; congr (P _).
by apply: eq_set => x/=; rewrite !in_itv/= !andbT lt_max ltNge r_ge0.
rewrite (_ : 'E_P[Xm] = - \int[mu]_(r in `]-oo, 0%R[) cdf X r)//.
rewrite le0_expectation_cdf/= => [|x]; last by rewrite ge_min ?lexx.
congr -%E; apply: eq_integral => r; rewrite inE/= in_itv/= => r_le0.
by congr (P _); apply: eq_set => x/=; rewrite !in_itv/= ge_min leNgt r_le0.
Qed.

End tail_expectation_formula.

HB.lock Definition covariance {d} {T : measurableType d} {R : realType}
Expand Down
Loading