4 votos

Matriz de covarianza de la normal multivariante cuando los valores negativos se hacen cero

Dejemos que $x$ sea $n$ normalmente distribuido de forma multivariada con media $\mu$ y la matriz de covarianza $\Sigma$ . Ahora dejemos que $y$ sean variables aleatorias definidas por

\begin{equation} y_i= \begin{cases} 0, & x_i\leq 0 \\ x_i, & x_i>0 \end{cases} \end{equation}

¿Cuál es la media y la matriz de covarianza de $y$ ? ¿Podemos obtener una solución analítica? Si no es así, ¿qué ocurre en algunos casos especiales? Por ejemplo, cuando $\mu=\bf{0}$ y $\Sigma$ tiene una diagonal de uno y todas las demás entradas el mismo valor $\rho$ ?

1voto

Jim Baldwin Puntos 427

Creo que basta con tratar el caso bivariante ya que sólo te interesan las covarianzas. También creo que es probable que no haya una solución analítica cuando las medias de los $X$ no son cero. Aquí hay un enfoque usando Mathematica :

Para el caso bivariado $Y_1$ y $Y_2$ ambos tienen medias que se pueden calcular integrando sobre 0 a $\infty$ utilizando las densidades marginales de $X_1$ y $X_2$ respectivamente.

Encuentre los medios de $Y_1$ y $Y_2$ :

mean1 = Integrate[y1 PDF[NormalDistribution[0, 1], y1], {y1, 0, }, Assumptions -> 1 > 0]
(* 1/Sqrt[2 ] *)

mean2 = Integrate[y2 PDF[NormalDistribution[0, 2], y2], {y2, 0, }, Assumptions -> 2 > 0]
(* 2/Sqrt[2 ] *)

Ahora la covarianza depende de si $\rho$ es positivo o negativo:

pdf = PDF[BinormalDistribution[{0, 0}, {1, 2}, ], {y1, y2}];

covPositive = FullSimplify[Integrate[y1 y2 pdf, {y1, 0, }, {y2, 0, },
  Assumptions -> {1 > 0, 2 > 0, 0 <  < 1}] - mean1 mean2,
  Assumptions -> {1 > 0, 2 > 0, 0 <  < 1}]
(* (1 2 (-1 +   + Sqrt[1 - ^2] -  ArcCos[]))/(2 ) *)

covNegative = Integrate[y1 y2 pdf, {y1, 0, }, {y2, 0, },
  Assumptions -> {1 > 0, 2 > 0, -1 <  <= 0}] - mean1 mean2 // FullSimplify
(* (1 2 (-1 +   + Sqrt[1 - ^2] -  ArcCos[]))/(2 ) *)

Como comprobación se pueden establecer valores para $\sigma_1$ , $\sigma_2$ y $\rho$ y tomar muestras al azar:

n = 10000000;
parms = {1 -> 1, 2 -> 7,  -> -1/2};
x1x2 = RandomVariate[BinormalDistribution[{0, 0}, {1, 2}, ] /. parms, n];
x1x2[[All, 1]] = Max[0, #] & /@ x1x2[[All, 1]];
x1x2[[All, 2]] = Max[0, #] & /@ x1x2[[All, 2]];

(* Sample estimate *)
Covariance[x1x2][[1, 2]]
(* -0.7329134893798569 *)

(* True covariance formula *)
(1 2 (-1 +   + Sqrt[1 - ^2] -  ArcCos[]))/(2 ) /. parms // N
(* -0.7325923679884647 *)

Los resultados son consistentes para este ejemplo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X