すべての共分散行列は正定ですか?


48

答えはイエスだと思いますが、それでも何か間違っていると感じています。文献にはいくつかの一般的な結果があるはずですが、誰か助けてもらえますか?


2
すべての共分散行列は半正定です。つまり、すべての共分散行列は非負の固有値を持たなければなりません。固有値がゼロでない場合、共分散行列は追加で正定値になります。
カカ


4
@Jingjings:あなたのプロフィールでは、あなたは決して賛成したり、答えを受け入れたりしたことがないことがわかります。たくさんの良い質問と多くの良い答えがあるので、これは非常に注目に値します。私はあなたがそれがどのように機能するのか本当に気づいていないと思います。アイデアは、あなたが役に立つと思うどんな答えでも支持して、あなたの問題を解決すると思うどんな答えでも受け入れるべきであるということです。あなたは多くの答えに賛成し、またそれらのいくつかを受け入れることができるようです。
アメーバは、モニカを復活

回答:


47

番号。

、、 3つの変数を考えます。それらの共分散行列、が正でないベクトル()があるため、はありません。XYZ=X+YMz=(1,1,1)zMz

母集団共分散行列は、半正定です。

(プロパティ2を参照してくださいここに。)

同じことは、一般に完全なサンプル(欠損値なし)の共分散行列にも当てはまります。これは、離散母集団共分散の形式として見ることもできるためです。

ただし、浮動小数点数値計算の不正確さのために、代数的に正定の場合でさえ、半正定でさえないように計算される場合があります。アルゴリズムの適切な選択がこれに役立ちます。

より一般的には、サンプル共分散行列は、いくつかの変数の欠損値の処理方法に応じて、理論的にも正の半正定値である場合とそうでない場合があります。たとえば、ペアごとの削除が使用される場合、正の半正定性の保証はありません。さらに、蓄積された数値誤差により、サンプル共分散行列が、正に半正定である必要がありますが、失敗する可能性があります。

そのようです:

 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

これは私が最初に試した例で起こりました(おそらくシードを提供する必要がありますが、それを入手する前に多くの例を試してみる必要があるほどまれではありません)。

代数的にゼロであるべきであるにもかかわらず、結果はになりました。異なる数のセットは、正の数または「正確な」ゼロを生成する場合があります。

-

ペアワイズ削除を介して正の半確定性が失われる中程度の欠損の例:

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:しかし、主にあなたの言葉遣いに対するコメントとして:あなたがそれを提示するとき、PSD-nessは一般的な場合に保証されないように見えます。sjm.majewskiの回答に示されているように、「病的」なケース(非フルランク)が必要であり、その問題が発生します。(数値コメントに完全に同意します)数値誤差を考慮してもPSDを保証することさえできない、もう少し欠損値の問題を詳しく説明できますか?(私はそれを言ったときには、などの測定値のスパース性に関係していないと仮定)
usεr11852は回復モニック言う

2
もちろん、フルランク(またはそれに非常に近い)でない場合にのみ発生します。PSDの定義(および分散との関係に関する@ sjm.majewskiの言及)を見てください。これは明らかです。しかし、これらの非フルランクの状況は実際には常に発生するため、病理学的と定義することは奇妙に思えます。これは簡単なことではありません-毎日実際のデータセットに影響し、その結果、ここで定期的な質問が生成されます。ここでそれの余地がないので、私は上記の欠落とペアワイズ削除について話します。
Glen_b

2
この回答に、状況ではサンプル共分散行列が正定値にならないことが保証される(低ランク、つまり固有値が0になる)という明示的な発言を追加すると素晴らしいと思います。このQ stats.stackexchange.com/questions/198488を複製として閉じることができるスレッドがあるかどうかを検索していましたが、これは良い候補になると思いますが、言及していないようです場合。n<pn<p
アメーバは、モニカーを復活させる

27

さて、母集団の共分散行列が常に正の半正定である理由を理解するには、次のことに注意してください。 ここで、は実数で、は実数値のランダム変数です。

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

これはまた、Glen_bによって与えられた例で共分散行列が正定ではなかった理由を説明します。我々が持っていた、及び、そう、および定数である確率変数の分散はです。y1=1,y2=1,y3=1X1=X,X2=Y,X3=Z=X+Yi=13yiXi=00


いいね!Upvote;)
海の老人。

これは受け入れられた答えであるべきです。この質問は、一般にサンプルではなく、ランダム変数の母集団共分散行列を指す「共分散行列」について尋ねているだけです。
user3303

回答で使用した式は何ですか?
Aqqqq

分散と共分散を含む式を意味する場合、合計の平方の式から導出できます(つまり、合計の平方はすべてのペアの積の合計に等しくなります)。
sjm.majewski
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.