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?
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?
Jawaban:
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.
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