Saya memiliki satu set data yang terdiri dari 717 pengamatan (baris) yang dijelaskan oleh 33 variabel (kolom). Data terstandarisasi dengan z-scoring semua variabel. Tidak ada dua variabel yang bergantung linear ( ). Saya juga menghapus semua variabel dengan varians sangat rendah (kurang dari ). Gambar di bawah ini menunjukkan matriks korelasi yang sesuai (dalam nilai absolut).
Ketika saya mencoba menjalankan analisis faktor menggunakan factoran
Matlab sebagai berikut:
[Loadings1,specVar1,T,stats] = factoran(Z2,1);
Saya menerima kesalahan berikut:
The data X must have a covariance matrix that is positive definite.
Bisakah Anda memberi tahu saya di mana masalahnya? Apakah karena ketergantungan timbal balik yang rendah antara variabel yang digunakan? Selain itu, apa yang bisa saya lakukan?
Matriks korelasi saya:
eig(cov(Z2))
). Saya sangat curiga bahwa beberapa dari mereka sangat kecil.Z2
matriks Anda ? Jika Anda memiliki nilai yang hilang dalam data Anda, maka penghapusan berpasangan dapat mendorong matriks menjadi noninvertibel ketika korelasi yang berbeda dalam matriks tersebut dihitung menggunakan subsampel data yang berbeda.Jawaban:
Mari kita mendefinisikan matriks korelasi dengan . Karena positif semi-pasti, tetapi tidak pasti positif, dekomposisi spektralnya terlihat seperti mana kolom terdiri dari vektor eigen ortonormal dan 0 \ end {pmatrix} adalah matriks diagonal yang berisi nilai eigen yang sesuai dengan vektor eigen di . Beberapa di antaranyaC C=QDQ−1, Q C D=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜λ10⋮⋮⋮⋮00λ2⋱⋯⋯⋱⋱⋱⋯⋯⋱λn⋱⋯⋯⋱0⋱⋯⋯⋱⋱00⋮⋮⋮⋮00⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟ Q 0 . Selain itu, adalah pangkat .n C
Cara sederhana untuk mengembalikan kepastian positif adalah dengan menetapkan -eigenvalues ke beberapa nilai yang secara numerik tidak nol, misalnyaKarenanya, set mana Lalu,0 λn+1,λn+2,...=10−15. C~=QD~Q−1, D~=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜λ10⋮⋮⋮⋮00λ2⋱⋯⋯⋱⋱⋱⋯⋯⋱λn⋱⋯⋯⋱10−15⋱⋯⋯⋱⋱00⋮⋮⋮⋮010−15⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟
Di Matlab, seseorang dapat memperoleh menggunakan perintah:Q,D
Membangun kemudian hanyalah manipulasi Matrix sederhana.C~
Catatan: Akan sulit untuk mengatakan bagaimana ini memengaruhi analisis faktor; karenanya, orang mungkin harus berhati-hati dengan metode ini. Selain itu, meskipun ini adalah adalah matriks korelasi, mungkin tidak. Oleh karena itu, normalisasi lain dari entri mungkin diperlukan.C C~
sumber
Mungkin saja Anda menghadapi masalah numerik dengan matriks Anda. Ini mungkin benar-benar pasti positif, tetapi perhitungan numerik mengatakan sebaliknya.
Solusi yang sangat umum, dalam hal ini, adalah menambahkan nilai yang sangat rendah (misalnya 1.E-10) ke semua elemen diagonal. Jika ini tidak menyelesaikan masalah, cobalah untuk semakin meningkatkan nilai ini.
sumber
FA berfungsi paling baik ketika data Anda adalah Gaussian, karena itu Anda mungkin ingin mencoba beberapa pendekatan pra-pemrosesan untuk memiliki data yang lebih mirip Gaussian.
sumber