Kovaryans matrisi pozitif tanımlı olmadığında faktör analizi nasıl yapılır?


11

33 değişken (sütun) tarafından açıklanan 717 gözlem (satır) oluşan bir veri kümesi var. Veriler, tüm değişkenlerin z-skorlaması ile standartlaştırılmıştır. Hiçbir iki değişken doğrusal olarak bağımlı değildir ( ). Ayrıca çok düşük varyanslı ( az ) tüm değişkenleri kaldırdım . Aşağıdaki şekilde karşılık gelen korelasyon matrisi gösterilmektedir (mutlak değerlerde).r=10.1

factoranMatlab'da aşağıdaki gibi faktör analizi yapmaya çalıştığımda :

[Loadings1,specVar1,T,stats] = factoran(Z2,1);

Aşağıdaki hatayı alıyorum:

The data X must have a covariance matrix that is positive definite.

Sorunun nerede olduğunu söyleyebilir misiniz? Kullanılan değişkenler arasında karşılıklı bağımlılığın düşük olması mı? Ayrıca, bu konuda ne yapabilirim?


Korelasyon matrisim:

resim açıklamasını buraya girin


3
Bence burada bir sorun olan düşük karşılıklı bağımlılığın aksine . Muhtemelen kendi aralarında lineer olarak bağımlı bazı değişkenleriniz vardır ve bu kovaryans matrisinizin yarı-tanımlanmış olmasına (yani, sıfır özdeğerlerine sahip olmasına) neden olur.
usεr11852

3
Kapatmak için soruyu oy kullanan insanlara: Örnek kovaryans matrisinin pozitif kesinliği üzerine bir soru neden konu dışı ? Kullanıcı, standart bir Faktör Analizi uygulamasının neden çalışmadığından endişe duymaktadır. İsterseniz daha fazla bilgi isteyin!
usεr11852

2
Lütfen örnek kovaryans matrisinin özdeğerlerini hesaplayabilir ve sunabilir misiniz? (ör. eig(cov(Z2))). Bazılarının çok küçük olduğundan şüpheleniyorum.
usεr11852

3
@ Usεr11852: Bir programlama sorusuna benziyordu, ama aslında mükemmel bir konu ve makul bir soru. Düzenledim ve yeniden açmaya oy verdim. Ne yazık ki OP kayboldu gibi görünüyor.
amip

3
Matlab topluluğunun yardım edemeyeceği bu sorunun istatistiksel içeriği olabileceğini iddia ediyorum. Z2Matrisinizi nasıl hesaplarsınız ? Verilerinizde eksik değerler varsa, bu matristeki farklı korelasyonlar verilerin farklı alt örnekleri kullanılarak hesaplandığında, ikili silme işlemi matrisi ters çevrilemez hale getirebilir.
StasK

Yanıtlar:


1

Korelasyon matrisini tanımlayalım . Pozitif yarı-tanımlı, ancak pozitif tanımlı olmadığından, spektral ayrışması gibi görünür burada sütunları ve nin ortonormal özvektörlerinden oluşur 0 \ end {pmatrix} , özvektörlere karşılık gelen özdeğerleri içeren çapraz bir matristir . Bunlardan bazılarıC

C=SDS-1,
SC
D=(λ1000λ2λn00000)
S0 . Dahası, , .nC

Olumlu kesinliği geri yüklemenin basit bir yolu, özdeğerlerini sayısal olarak sıfır olmayan bir değere ayarlamaktır , örneğinBu nedenle, burada Sonra,0

λn+1,λn+2,...=10-15.
C~=SD~S-1,
D~=(λ1000λ2λn10-1500010-15)

Matlab'da, komutunu kullanarak elde edilebilir :S,D

[Q,D] = eig(C)

Oluşturma o zaman sadece basit Matris manipülasyonlar olduğunu.C~

Not: Bunun faktör analizini nasıl etkilediğini söylemek zor olurdu; bu nedenle, muhtemelen bu yönteme dikkat edilmelidir. Dahası, bu bir bir korelasyon matrisi olmasına rağmen , iyi olmayabilir. Bu nedenle, girişlerin başka bir normalleştirilmesi gerekebilir.CC~


0

Matrisinizle ilgili sayısal sorunlarla karşılaşmanız mümkündür. Muhtemelen aslında pozitiftir, ancak sayısal hesaplama aksini söyler.

Bu durumda çok yaygın bir çözüm, tüm diyagonal elemanlara çok düşük bir değer (örneğin 1.E-10) eklemektir. Bu sorunu çözmezse, bu değeri aşamalı olarak artırmaya çalışın.


Diyagonal girişler zaten oldukça baskın görünüyor. Bunun yardımcı olacağını düşünüyor musunuz?
Jonas

8. ve 10. girişlerden endişeliyim, bazıları doğrusal olarak bağımlıysa, bu ikisi olmalı. Gerçek öz ayrışma hesaplaması hakkında yeterince bilgim yok, ama bu çözümün işe yarayabileceğini düşünüyorum: köşegenine 1e-10 eklenmesi doğrusal bağımlılık hakkında pek bir şey yapmaz, ancak sayısal olarak gerekli olan her şeyi ekleyebilir, böylece öz değerlerin hesaplanması sabittir (yani 0 öz değer yoktur). Ancak, çözümüm işe yaramazsa, sizinkini oldukça zarif buluyorum.
Romain Reboulleau

-2

FA verileriniz Gauss olduğunda en iyi sonucu verir, bu nedenle Gauss benzeri verilere sahip olmak için bazı ön işleme yaklaşımlarını denemek isteyebilirsiniz.


Bu cevap beni şaşırttı. İlişkisiz verilerin bir FA'sini yapmanın anlamı nedir?
ttnphns

@ttnphns Bence haklısın! Dekorla ilgili verilere FA uygulamak hiç mantıklı değil! Benim önerim, PCA'nın FA'dan uygulayacağınız verilerden vektör temsili oluşturma ön işleminde uygulandığı belirli bir FA türünden geliyor. Orijinal veriler genellikle vektör temsiline dönüştürülmeden önce PCA tarafından yansıtılır. Ve FA, PCA tarafından öngörülen verilere değil, vektör gösterimine uygulanır. Benim hatam! Cevabımı güncelleyeceğim. Her ne kadar bazı durumlarda FA modeli yakınsama başarısız olursa olasılıklı bir PCA FA kadar iyi çalışabilir. Kabul etmiyor musun?
PickleRick
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.