Tutulacak ana bileşen sayısını seçme


10

Bana önerilen bir yöntem, bir eğri çizgi grafiğine bakmak ve kullanılacak doğru PC sayısını belirlemek için "dirsek" olup olmadığını kontrol etmektir. Ancak grafik net değilse, R'nin sayıyı belirlemek için bir hesaplaması var mı?

fit <- princomp(mydata, cor=TRUE)

3
Bildiğimden değil. İlk olarak, "1 başparmak-kuralının üstündeki özdeğer" veya Kayser kuralına atıfta bulunursanız, muhtemelen bunu karşılayan PC sayısını bulacaksınız (bunun genellikle boyut sayısını abarttığını unutmayın) daha doğrusu dağ eteğindeki arsada. İkincisi, paralel analiz bileşenlerin sayısını belirlemenin daha iyi bir yoludur; Bileşen ve Faktör Sayısını Belirlemek için R ve SPSS, SAS ve MATLAB Programlarındakipsy veya psychpaketine bakın . Paralel Analiz ve Velicer'in MAP Testini daha genel olarak kullanmak.
chl

Yanıtlar:


10

Aşağıdaki makale: Cangelosi ve Goriely tarafından cDNA mikrodizi verisine uygulama ile temel bileşen analizinde bileşen tutulması , bir çalışmadaki bileşen sayısını tespit etmek için standart başparmak kuralına oldukça iyi bir genel bakış sağlar. (Scree grafiği, Açıklanan toplam varyansın oranı, Ortalama özdeğer kuralı, Log-özdeğer diyagramı, vb.) Çoğu R'de uygulanması oldukça kolaydır.

Eğer dağ eteğindeki arsa çok sonuçsuz ise, o zaman sadece "zehirini seç" gerekir. Gerçekte kullanılacak PC sayısı aslında sorunu anlamanıza bağlı olduğundan, herhangi bir veri için mutlak doğru veya yanlış yoktur. Boyutunu "gerçekten" bilen tek veri seti, kendi oluşturduğunuz veri setidir. :-) Günün sonunda Temel Bileşenler, verilerin bir RSS metriği altında en uygun şekilde ayrıştırılmasını sağlar (bir yan ürün olarak, her bir bileşenin temel bir varyasyon modunu temsil etmesini sağlarsınız) ve belirli sayıda bileşeni dahil eder veya hariç tutar probleminizin boyutsallığı hakkındaki algınızı belirler.

Kişisel tercih olarak, Minka'nın PCA için olasılıksal bir yorumuna dayanan bu otomatik boyutsallık seçimi konusundaki yaklaşımını seviyorum, ancak daha sonra, belirli bir boyutsallık için verilerinizin olasılığını modellemeye çalışma oyununa girersiniz. (Bu mantığı takip etmek istiyorsanız bağlantı Matlab kodunu sağlar.)

Verilerinizi daha iyi anlamaya çalışın. Örneğin. Veri kümenizin varyasyonunun% 99,99'unun modelinizin ortak değişkenlerinden kaynaklandığına gerçekten inanıyor musunuz? Büyük olasılıkla değilse, muhtemelen toplam varyansın bu kadar küçük bir oranını gösteren boyutları eklemenize gerek yoktur. Gerçekte bir bileşenin sadece fark edilebilir farklar eşiğinin altındaki varyasyonu yansıttığını düşünüyor musunuz? Bu yine muhtemelen bu bileşeni analizinize dahil etmede çok az alaka düzeyi olduğu anlamına gelir.

Her durumda, iyi şanslar ve verilerinizi dikkatlice kontrol edin. (Onları çizmek de mucizeler yaratır.)


Matlab kodunu gösterebilir misin, bulamıyorum.
mrgloom

tr

Yeap! Bahsettiğim bağlantı buydu.
usεr11852

Acaba Minka'nın yaklaşımı şimdiye kadar R'de uygulanıyor mu? Bir çalışmada en önemli PC'lerin farklı yöntemlerle belirlendiğini, bunların verilerin sinyal kısmı olması gerektiğini biliyoruz. Bu bilgisayarların açıkladığı% varyansta herhangi bir sınırlama olup olmadığını tesadüfen biliyor musunuz, aşağıda daha fazla analize No-Go olarak kabul edilir mi? herhangi bir referans çok takdir edilecektir.
doktora

6

Bu sorunun asıl sorulup yanıtlanmasından bu yana, son birkaç yıldır bu sorun üzerinde çok güzel çalışmalar yapılmıştır. Gavish ve Donoho'nun şu makalelerini şiddetle tavsiye ederim: Tekil Değerler için Optimal Sert Eşik 4 / sqrt (3)

Sonuçları asimptotik analize dayanır (yani veri matrisiniz sonsuz derecede büyüdükçe iyi tanımlanmış bir optimal çözüm vardır), ancak farklı gürültü altında bile küçük ve gerçekçi boyutlardaki veri kümeleri için asimptotik olarak en uygun prosedürün çalıştığını gösteren etkileyici sayısal sonuçlar gösterirler. modelleri.

Esasen, optimum prosedür matrisin her bir elemanına eklenen gürültüsünü tahmin etmek için kaynar . Buna dayanarak bir eşik hesaplar ve tekil değeri eşiğin altına düşen temel bileşenleri kaldırırsınız. Kare matrisi için, başlıkta önerildiği gibi 4 / sqrt (3) orantı sabiti görünür:σn×n

λ=4σn3

Ayrıca makalede kare olmayan durumu açıklarlar. Burada güzel bir kod ekleri var (MATLAB'da), ancak algoritmalar R'de veya başka bir yerde uygulamak kolay olurdu: https://purl.stanford.edu/vg705qn9070

Uyarılar:

  • Eksik verileriniz varsa, bunun işe yarayacağından emin değilim
  • Veri kümenizdeki her özelliğin farklı gürültü büyüklükleri varsa, bunun işe yarayacağından emin değilim (beyazlatma muhtemelen bazı varsayımlar altında bu sorunu çözebilir)
  • Benzer sonuçların diğer düşük dereceli matris çarpanlarına ayırma (örneğin, negatif olmayan matris çarpanına ayırma) için de geçerli olup olmadığını görmek ilginç olacaktır.

+1, vay bu yazı çok ilginç görünüyor. Bahsettiğiniz için çok teşekkürler.
amip

4

Kaiser ölçütüyle ilgili sorun (birden fazla tüm özdeğerler), çıkarılan faktör sayısının, ek faktörlerin çoğunun gürültü olup olmadığına bakılmaksızın, genellikle pildeki öğe veya ölçek sayısının yaklaşık üçte biri olmasıdır. Paralel analiz ve dağ etüt kriteri genellikle çıkarılacak faktörlerin sayısını belirlemek için daha doğru prosedürlerdir (Harmon ve Ledyard Tucker'ın klasik metinlerine ve Wayne Velicer'ın daha yeni çalışmalarına göre).

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.