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?
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?
Respuestas:
No.
Considere tres variables, ,Y 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.
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