Toda matriz de covariância é positiva definitiva?


48

Acho que a resposta deve ser sim, mas ainda sinto que algo não está certo. Deve haver alguns resultados gerais na literatura, alguém poderia me ajudar?


2
Toda matriz de covariância é semi-definida positiva. Isso significa que toda matriz de covariância deve ter valores de eigen não negativos. Se nenhum dos valores de eigen é zero, a matriz de covariância é adicionalmente um positivo definido.
Kay


4
@Jingjings: posso ver no seu perfil que você nunca votou ou aceitou nenhuma resposta; isso é bastante notável, pois você tem muitas perguntas boas e muitas respostas boas. Eu acho que você não está realmente ciente de como isso funciona. A idéia é que você deve votar em qualquer resposta que achar útil e aceitar qualquer resposta que considere resolver seu problema. Parece que você pode votar muitas respostas e também aceitar algumas delas.
Ameba diz Restabelecer Monica

Respostas:


47

Não.

Considere três variáveis , e . Sua matriz de covariância, , não é definida positivamente, pois existe um vetor ( ) para o qual não é positivo.Y Z = X + Y M z = ( 1 , 1 , - 1 ) z M zXYZ=X+YMz=(1,1,1)zMz

Matrizes de covariância populacional são semi-definidas positivas.

(Veja a propriedade 2 aqui .)

O mesmo deve ser aplicado às matrizes de covariância de amostras completas (sem valores ausentes), pois elas também podem ser vistas como uma forma de covariância discreta na população.

No entanto, devido à inexatidão de cálculos numéricos de ponto flutuante, mesmo casos definidos algebricamente positivos podem ocasionalmente ser computados para não serem nem mesmo semi-definidos positivos; boa escolha de algoritmos pode ajudar com isso.

De maneira mais geral, as matrizes de covariância da amostra - dependendo de como elas lidam com os valores ausentes em algumas variáveis ​​- podem ou não ser semi-definidas positivas, mesmo na teoria. Se a exclusão em pares for usada, por exemplo, não haverá garantia de semi-definição positiva. Além disso, o erro numérico acumulado pode fazer com que as matrizes de covariância da amostra que deveriam ser nocionalmente positivas semi-definidas falhem.

Igual a:

 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

Isso aconteceu no primeiro exemplo que eu tentei (eu provavelmente deveria fornecer uma semente, mas não é tão raro que você precise experimentar vários exemplos antes de obter uma).

O resultado saiu negativo , embora deva ser algebricamente zero. Um conjunto diferente de números pode gerar um número positivo ou um zero "exato".

-

Exemplo de falta moderada que leva à perda de semidefinitividade positiva por meio de exclusão 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

1
+1: Mas como um comentário principalmente para o seu texto: Ao apresentá-lo, parece que o PSD-ness não é garantido no caso geral. Conforme mostrado na resposta de sjm.majewski, você precisa de um caso "patológico" (classificação não completa) e acaba com esse problema. (Concordo plenamente com o comentário numérico) Você pode elaborar um problema de valores que faltam um pouco mais, onde você nem pode garantir o PSD, mesmo se considerar erros numéricos? (Suponho que você não está preocupado com a dispersão das medições etc. ao dizer que)
usεr11852 diz Reintegrar Monic

2
Obviamente, isso só ocorre quando não está no ranking completo (ou muito próximo). Veja a definição de PSD (e a menção de @ sjm.majewski da relação com variância), e isso é claro. Mas defini-lo como patológico parece estranho, uma vez que essas situações de classificação não plena ocorrem o tempo todo na prática. Isso não é simples pedantaria - afeta conjuntos de dados reais todos os dias e, como resultado, gera perguntas regulares aqui. Vou falar sobre falta e exclusão aos pares acima, porque não há espaço para isso aqui.
Glen_b

2
Eu acho que seria ótimo acrescentar a esta resposta uma observação explícita de que, na situação , a matriz de covariância da amostra será garantida para não ser positiva - definida (será uma classificação baixa, ou seja, terá alguns autovalores zero). Eu estava pesquisando se temos um segmento no qual este Q stats.stackexchange.com/questions/198488 pode ser fechado como uma duplicata e acho que esse seria um bom candidato, mas você não parece mencionar caso. n<pn<p
Ameba diz Restabelecer Monica

27

Bem, para entender por que a matriz de covariância de uma população é sempre semi-definida positiva, observe que: onde são alguns números reais e são algumas variáveis ​​aleatórias com valor real.

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

Isso também explica por que, no exemplo dado por Glen_b, a matriz de covariância não era positiva definida. Tínhamos e , então e o a variação de uma variável aleatória constante é .X 1 = X , X 2 = Y , X 3 = Z = X + Y 3 i = 1 y i X i = 0 0y1=1,y2=1,y3=1X1=X,X2=Y,X3=Z=X+Yi=13yiXi=00


Agradável! Voto a favor;)
Um homem velho no mar.

Essa deve ser a resposta aceita. A pergunta é feita apenas sobre "matrizes de covariância", que geralmente se referem à matriz de covariância populacional de variáveis ​​aleatórias, não à amostra.
user3303

Posso perguntar qual é a fórmula que você usou na sua resposta?
Aqqqq

Se você quer dizer a fórmula com variância e covariâncias, pode derivá-la da fórmula do quadrado da soma (que é o quadrado da soma é igual à soma dos produtos para todos os pares).
Sjm.majewski
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.