Apa yang dikatakan oleh matriks kovariansi non positif yang pasti tentang data saya?

21

Saya memiliki sejumlah pengamatan multivariat dan ingin mengevaluasi kepadatan probabilitas di semua variabel. Diasumsikan bahwa data terdistribusi secara normal. Pada jumlah variabel yang rendah semuanya berfungsi seperti yang saya harapkan, tetapi pindah ke jumlah yang lebih besar menghasilkan matriks kovarians menjadi tidak pasti positif.

Saya telah mengurangi masalah di Matlab menjadi:

load raw_data.mat; % matrix number-of-values x number of variables
Sigma = cov(data);
[R,err] = cholcov(Sigma, 0); % Test for pos-def done in mvnpdf.

Jika err> 0 maka Sigma tidak pasti positif.

Adakah yang bisa saya lakukan untuk mengevaluasi data eksperimen saya pada dimensi yang lebih tinggi? Apakah ini memberi tahu saya sesuatu yang berguna tentang data saya?

Saya agak pemula di bidang ini, jadi minta maaf jika saya melewatkan sesuatu yang jelas.

ralight
sumber
Sepertinya data Anda terlalu jarang untuk representasi berdimensi tinggi. Apakah Anda berencana menjalankan model regresi dengan data ini?
Jonathan Thiele

Jawaban:

30

Matriks kovarians tidak pasti positif karena singular. Itu berarti bahwa setidaknya satu dari variabel Anda dapat dinyatakan sebagai kombinasi linear dari yang lain. Anda tidak perlu semua variabel karena nilai minimal satu dapat ditentukan dari subset yang lain. Saya akan menyarankan menambahkan variabel secara berurutan dan memeriksa matriks kovarians pada setiap langkah. Jika variabel baru membuat singularitas, letakkan dan lanjutkan ke yang berikutnya. Akhirnya, Anda harus memiliki subset variabel dengan matriks kovarians pasti postive.

Michael R. Chernick
sumber
19
+1. Juga perlu dicatat bahwa semua matriks kovarians adalah pasti positif dan semua matriks pasti positif adalah matriks kovarians dari beberapa distribusi multivarian. Oleh karena itu, mengatakan "matriks kovariansi pasti non-positif" adalah sedikit oxymoron. Tampaknya OP benar-benar hanya mengatakan bahwa matriks kovarian sampel adalah singular yang dapat terjadi dari collinearity (seperti yang telah Anda katakan) atau ketika jumlah pengamatan kurang dari jumlah variabel .
Makro
3
Beberapa perangkat lunak statistik dapat diinduksi untuk memperbaiki masalah ini secara otomatis. Misalnya, regressperintah Stata akan secara otomatis menjatuhkan variabel tambahan ketika beberapa collinear (dan outputnya dapat disimpan dalam bentuk yang mengidentifikasi variabel-variabel ini dan menandai subset non-collinear untuk digunakan di masa mendatang). Namun, komplikasi yang mungkin terjadi adalah bahwa variabel-variabel tersebut mungkin tidak selalu berupa garis lurus, tetapi mereka mungkin cukup dekat sehingga penyebaran kesalahan titik apung dalam dekomposisi Cholesky menghasilkan perkiraan nilai eigen negatif, membuat variabel-variabel tersebut membentuk garis lurus untuk semua tujuan praktis.
whuber
1
@whuber, ada fungsi serupa Rjuga - model regresi secara otomatis menjatuhkan variabel dari prediktor linier jika ada collinearity yang tepat.
Makro
2
@whuber, ini sedikit hacky tetapi Anda dapat melakukan trik serupa. Jika gmodel linier Anda, maka colnames(model.matrix(g))[-which(is.na(coef(g))==TRUE)][-1]harus mengembalikan nama-nama prediktor yang dimasukkan ke dalam model yang tidak persis collinear. Ini berfungsi dengan memeriksa koefisien mana yang NA(itulah yang Rmenunjukkan variabel dijatuhkan), dan menemukan nama kolom yang sesuai dari matriks model (menghapus kolom intersep). Ngomong-ngomong, itu tidak akan berfungsi jika tidak ada istilah collinear sehingga pernyataan if untuk memeriksa yang which(is.na(coef(g))==TRUE)tidak kosong diperlukan :)
Makro
8
@ Macro Semua matriks kovarians adalah semi-pasti positif. Ketika mereka tunggal mereka tidak pasti positif karena x'Ax> 0 untuk semua vektor x untuk matriks A menjadi pasti positif. Dalam kasus tunggal x'Ax = 0 terjadi untuk beberapa x.
Michael R. Chernick
0

Ini hasil yang valid. Perkiraan untuk komponen matriks kovarian adalah nol, yang mungkin benar! Ini dapat menyebabkan kesulitan perhitungan, tetapi beberapa algoritma di R (saya tidak tahu tentang Matlab) dapat menangani ini. Saya tidak mengerti mengapa orang marah tentang hal ini dan bersikeras untuk memasang model yang lebih pelit.

KARTU AS
sumber
-1

Satu hal yang menurut saya tidak dibahas di atas adalah bahwa itu IS mungkin untuk menghitung matriks kovarians pasti non-positif dari data empiris bahkan jika variabel Anda tidak terkait linear secara sempurna. Jika Anda tidak memiliki data yang cukup (terutama jika Anda mencoba untuk membangun matriks kovarians dimensi tinggi dari sekelompok perbandingan berpasangan) atau jika data Anda tidak mengikuti distribusi normal multivariat, maka Anda dapat berakhir dengan hubungan paradoks antar variabel, seperti cov (A, B)> 0; cov (A, C)> 0; cov (B, C) <0.

Dalam kasus seperti itu, seseorang tidak dapat memenuhi multivariat PDF normal, karena tidak ada distribusi normal multivariat yang memenuhi kriteria ini - cov (A, B)> 0 dan cov (A, C)> 0 selalu berarti bahwa cov (B, C )> 0.

Semua ini untuk mengatakan, matriks pasti non-positif tidak selalu berarti bahwa Anda termasuk variabel collinear. Bisa juga menyarankan agar Anda mencoba membuat model hubungan yang tidak mungkin mengingat struktur parametrik yang telah Anda pilih.

Adam Clark
sumber
1
Jawaban Anda salah pada banyak tingkatan. Bagaimanapun, pertimbangkan matriks kovarians dengan 1 pada diagonal, dan 1/2 untuk cov (komponen 1 dan 2), 1/2 untuk cov (komponen 1 dan 3), dan -1/2 untuk cov (komponen 2 dan 3d) . Matriks kovarians memiliki nilai eigen sekitar 0,15, 1,35, 1,50, memberikan contoh tandingan terhadap pernyataan dalam paragraf ke-2 Anda.
Mark L. Stone
@ MarkL.Stone, Anda benar tentang paragraf ke-2, tapi saya ingin tahu apakah beberapa di antaranya ambigu & dapat disimpan di bawah interpretasi yang murah hati. Misalnya, saya bertanya-tanya apakah, dalam paragraf 1, "tidak memiliki data yang cukup ... mencoba membangun matriks kovarians dimensi tinggi dari sekelompok perbandingan berpasangan" mengacu pada memiliki banyak data yang hilang & menggunakan pengamatan lengkap berpasangan. untuk menghitung setiap elemen dalam matriks kovarians.
gung - Reinstate Monica