Apakah setiap matriks kovarian pasti positif?

48

Saya kira jawabannya harus ya, tetapi saya masih merasa ada sesuatu yang tidak benar. Seharusnya ada beberapa hasil umum dalam literatur, ada yang bisa membantu saya?

Jingjings
sumber
2
Setiap matriks kovarians adalah semi-pasti positif. Itu berarti setiap matriks kovarians harus memiliki nilai eigen non-negatif. Jika tidak ada nilai eigen yang nol maka matriks kovarians juga merupakan positif pasti.
kaka
4
@Jingjings: Saya dapat melihat di profil Anda bahwa Anda tidak pernah menaikkan atau menerima jawaban apa pun; ini sangat luar biasa mengingat Anda memiliki banyak pertanyaan bagus dengan banyak jawaban bagus. Saya kira Anda tidak benar-benar menyadari cara kerjanya. Idenya adalah bahwa Anda harus memutakhirkan setiap jawaban yang menurut Anda berguna dan menerima jawaban yang menurut Anda menyelesaikan masalah Anda. Sepertinya Anda dapat meningkatkan banyak jawaban dan juga menerima sebagian dari mereka.
Amoeba berkata Reinstate Monica

Jawaban:

47

Tidak.

Mempertimbangkan tiga variabel, , Y dan Z = X + Y . Matriks kovarian mereka, M , tidak pasti positif, karena ada vektor z ( = ( 1 , 1 , - 1 ) ) yang z M z tidak positif.XYZ=X+YMz=(1,1,1)zMz

Matriks kovarians populasi adalah semi-pasti positif.

(Lihat properti 2 di sini .)

Hal yang sama umumnya harus berlaku untuk matriks kovarian sampel lengkap (tidak ada nilai yang hilang), karena mereka juga dapat dilihat sebagai bentuk kovarians populasi diskrit.

Namun karena ketidaktepatan perhitungan numerik floating point, bahkan kasus pasti positif aljabar kadang-kadang dapat dihitung bahkan semi positif tidak positif; pilihan algoritma yang baik dapat membantu dengan ini.

Lebih umum, matriks kovarians sampel - tergantung pada bagaimana mereka menangani nilai-nilai yang hilang dalam beberapa variabel - mungkin atau mungkin tidak semi-pasti positif, bahkan dalam teori. Jika penghapusan berpasangan digunakan, misalnya, maka tidak ada jaminan semi-kepastian positif. Lebih lanjut, akumulasi kesalahan numerik dapat menyebabkan matriks kovarian sampel yang semestinya positif semi-pasti gagal.

Seperti itu:

 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

Ini terjadi pada contoh pertama yang saya coba (saya mungkin harus menyediakan benih tetapi tidak jarang bahwa Anda harus mencoba banyak contoh sebelum Anda mendapatkannya).

Hasilnya keluar negatif , meskipun harus secara aljabar nol. Satu set angka yang berbeda mungkin menghasilkan angka positif atau nol "tepat".

-

Contoh hilangnya moderat yang mengarah pada hilangnya semidefiniteness positif melalui penghapusan berpasangan:

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
sumber
1
+1: Tetapi sebagai komentar yang sebagian besar untuk Anda kata-kata: Saat Anda menyajikannya, sepertinya PSD-ness tidak dijamin dalam kasus umum. Seperti yang ditunjukkan dalam jawaban sjm.majewski, Anda memerlukan kasus "patologis" (peringkat tidak lengkap) dan Anda berakhir dengan masalah itu. (Saya sepenuhnya setuju dengan komentar numerik) Dapatkah Anda menguraikan lebih sedikit masalah nilai yang hilang di mana Anda bahkan tidak dapat menjamin PSD bahkan jika Anda memperhitungkan kesalahan numerik? (Saya berasumsi Anda tidak peduli dengan sparsity pengukuran dll ketika mengatakan itu)
usεr11852 mengatakan Reinstate Monic
2
Tentu saja itu hanya terjadi ketika itu bukan peringkat penuh (atau sangat dekat dengannya). Lihatlah definisi PSD (dan @ sjm.majewski tentang kaitannya dengan varians), dan ini sangat jelas. Tetapi untuk mendefinisikannya sebagai patologis tampaknya aneh, karena situasi pangkat tidak lengkap ini terjadi setiap saat dalam praktik. Ini bukan peredaran sederhana - ini memengaruhi set data nyata setiap hari, dan sebagai hasilnya menghasilkan pertanyaan reguler di sini. Saya akan berbicara tentang hilangnya dan penghapusan berpasangan di atas, karena tidak ada ruang untuk itu di sini.
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
sumber
Bagus! Suara positif;)
Seorang pria tua di laut.
Ini seharusnya menjadi jawaban yang diterima. Pertanyaannya hanya bertanya tentang "matriks kovarians" yang umumnya merujuk pada matriks kovarians populasi dari variabel acak, bukan sampel.
user3303
Bolehkah saya bertanya apa formula yang Anda gunakan dalam jawaban Anda?
Aqqqq
Jika Anda memaksudkan rumus dengan varians dan kovarian, maka Anda dapat memperolehnya dari rumus untuk kuadrat jumlah (yaitu kuadrat jumlah sama dengan jumlah produk untuk semua pasangan).
sjm.majewski