¿Cada matriz de covarianza es positiva definida?

48

Supongo que la respuesta debería ser sí, pero aún siento que algo no está bien. Debería haber algunos resultados generales en la literatura, ¿alguien podría ayudarme?

Jingjings
fuente
2
Cada matriz de covarianza es Positiva semi-definida. Eso significa que cada matriz de covarianza debe tener valores propios no negativos. Si ninguno de los valores propios es cero, entonces la matriz de covarianza es adicionalmente un Definido positivo.
kaka
44
@Jingjings: puedo ver en tu perfil que nunca has votado a favor ni aceptado ninguna respuesta; Esto es bastante notable dado que tiene muchas buenas preguntas con muchas buenas respuestas. Supongo que no eres realmente consciente de cómo funciona La idea es que debería votar cualquier respuesta que encuentre útil y aceptar cualquier respuesta que crea que resuelve su problema. Parece que puedes votar muchas respuestas y también aceptar algunas de ellas.
ameba dice Reinstate Monica

Respuestas:

47

No.

Considere tres variables, ,YXY y . Su matriz de covarianza, M , no es definida positiva, ya que hay un vector z ( = ( 1 , 1 , - 1 ) ) para el cual z M z no es positivo.Z=X+YMz=(1,1,1)zMz

Las matrices de covarianza de la población son semi-definidas positivas.

(Ver propiedad 2 aquí .)

Lo mismo debería aplicarse generalmente a las matrices de covarianza de muestras completas (sin valores faltantes), ya que también pueden verse como una forma de covarianza de población discreta.

Sin embargo, debido a la inexactitud de los cálculos numéricos de coma flotante, incluso los casos definidos algebraicamente positivos pueden ocasionalmente calcularse para que ni siquiera sean semi-definidos positivos; Una buena elección de algoritmos puede ayudar con esto.

En términos más generales, las matrices de covarianza de muestra, dependiendo de cómo manejen los valores faltantes en algunas variables, pueden ser semidefinidas positivas o no, incluso en teoría. Si se usa la eliminación por pares, por ejemplo, entonces no hay garantía de semi-definición positiva. Además, el error numérico acumulado puede causar matrices de covarianza de la muestra que, en teoría, deberían ser semidefinidas como positivas.

Al igual que:

 x <- rnorm(30)
 y <- rnorm(30) - x/10 # it doesn't matter for this if x and y are correlated or not
 z <- x+y
 M <- cov(data.frame(x=x,y=y,z=z))
 z <- rbind(1,1,-1)
 t(z)%*%M%*%z
              [,1]
[1,] -1.110223e-16

Esto sucedió en el primer ejemplo que probé (probablemente debería suministrar una semilla, pero no es tan raro que debas probar muchos ejemplos antes de obtener uno).

El resultado salió negativo , aunque debería ser algebraicamente cero. Un conjunto diferente de números podría producir un número positivo o un cero "exacto".

-

Ejemplo de falta moderada que conduce a la pérdida de semidefinidad positiva a través de la eliminación por pares:

z <- x + y + rnorm(30)/50  # same x and y as before.
xyz1 <- data.frame(x=x,y=y,z=z) # high correlation but definitely of full rank 

xyz1$x[sample(1:30,5)] <- NA   # make 5 x's missing  

xyz1$y[sample(1:30,5)] <- NA   # make 5 y's missing  

xyz1$z[sample(1:30,5)] <- NA   # make 5 z's missing  

cov(xyz1,use="pairwise")     # the individual pairwise covars are fine ...

           x          y        z
x  1.2107760 -0.2552947 1.255868
y -0.2552947  1.2728156 1.037446
z  1.2558683  1.0374456 2.367978

 chol(cov(xyz1,use="pairwise"))  # ... but leave the matrix not positive semi-definite

Error in chol.default(cov(xyz1, use = "pairwise")) : 
  the leading minor of order 3 is not positive definite

 chol(cov(xyz1,use="complete")) # but deleting even more rows leaves it PSD

          x          y          z
x 0.8760209 -0.2253484 0.64303448
y 0.0000000  1.1088741 1.11270078
z 0.0000000  0.0000000 0.01345364
Glen_b
fuente
1
+1: Pero como un comentario principalmente para tu redacción: al presentarlo, parece que la PSD-ness no está garantizada en el caso general. Como se muestra en la respuesta de sjm.majewski, necesita un caso "patológico" (rango no completo) y termina con ese problema. (Estoy totalmente de acuerdo con el comentario numérico) ¿Puede elaborar un problema un poco más de valores perdidos en el que ni siquiera puede garantizar PSD incluso si tiene en cuenta los errores numéricos? (Supongo que no le preocupa la escasez de medidas, etc. al decir eso)
usεr11852 dice Reinstate Monic el
2
Por supuesto, solo ocurre cuando no es de rango completo (o muy cerca de él). Mire la definición de PSD (y la mención de @ sjm.majewski de la relación con la varianza), y esto está claro. Pero definirlo como patológico parece extraño, ya que estas situaciones de rango no completo ocurren todo el tiempo en la práctica. Esto no es simple pedantería: afecta a conjuntos de datos reales todos los días y, como resultado, genera preguntas regulares aquí. Hablaré sobre la falta y la eliminación por pares arriba, porque no hay espacio para eso aquí.
Glen_b
2
n<pn<p
27

i,j=1nyiyjCov(Xi,Xj)=Var(i=1nyiXi)0
yiXi

y1=1,y2=1,y3=1X1=X,X2=Y,X3=Z=X+Yi=13yiXi=00

sjm.majewski
fuente
¡Agradable! Votación a favor;)
Un anciano en el mar.
Esta debería ser la respuesta aceptada. La pregunta solo se refiere a las "matrices de covarianza" que generalmente se refieren a la matriz de covarianza de la población de variables aleatorias, no a la muestra.
user3303
¿Puedo preguntar cuál es la fórmula que usó en su respuesta?
Aqqqq
Si te refieres a la fórmula con varianza y covarianzas, entonces puedes derivarla de la fórmula para el cuadrado de la suma (es decir, el cuadrado de la suma es igual a la suma de productos para todos los pares).
sjm.majewski