R'deki princomp () nesnesi için abstract () ve loadings () arasındaki fark nedir?


11

Örnek kod:

(pc.cr <- princomp(USArrests))  
summary(pc.cr)
loadings(pc.cr)  ## note that blank entries are small but not zero

Her birinden farklı çıktılar alıyorum ve farkın ne olduğunu anladığımdan emin değilim.

İşte çıktı:

> summary(pc.cr)
Importance of components:
                           Comp.1      Comp.2      Comp.3       Comp.4
Standard deviation     82.8908472 14.06956001 6.424204055 2.4578367034
Proportion of Variance  0.9655342  0.02781734 0.005799535 0.0008489079
Cumulative Proportion   0.9655342  0.99335156 0.999151092 1.0000000000


> loadings(pc.cr)  ## note that blank entries are small but not zero

...

               Comp.1 Comp.2 Comp.3 Comp.4
SS loadings      1.00   1.00   1.00   1.00
Proportion Var   0.25   0.25   0.25   0.25
Cumulative Var   0.25   0.50   0.75   1.00

PS: özet (pc.cr) tarafından oluşturulan tabloya nasıl erişebilirim? (Str'de bulamıyorum.)


2. soru için özvektörler mi yoksa bileşen yükleme özeti mi demek istediniz?
chl

Merhaba chl - Ben "özet (pc.cr)" çıktı demek - bazı nedenlerden dolayı, bulamıyorum. (özet (pc.cr) gibi bir şey yapmak [[1]] bana masanın sadece bir kısmını alacak)
Tal Galili

Neden # inappropriateilk satırda yorumunuz var?
amip

@amoeba - Dürüst olmak gerekirse hatırlamıyorum. Kaldırdım. :)
Tal Galili

Yanıtlar:


4

İlk çıktı doğru ve en kullanışlı çıktıdır. loadings()Nesnenizi çağırmak , SS'nin her zaman 1'e eşit olduğu bir özet döndürür, bu nedenle% varyans, SS yüklerinin değişken sayısına bölünmesiyle elde edilir. Sadece Faktör Analizi (gibi factanal) kullanılırken mantıklıdır . Asla princompSVD tabanlı alternatifini ( prcomp) kullanmam ve çok daha güçlü olan FactoMineR veya ade4 paketini tercih ederim !

İkinci sorunuz hakkında, summary()işlev her bileşen için SD'yi döndürür ( pc.cr$sdevsizin durumunuzda) ve tablonun geri kalanı daha sonra hesaplanmış gibi görünüyor ( printveya showyöntemi aracılığıyla , bunu ayrıntılı olarak araştırmadım).

> getS3method("summary","princomp")
function (object, loadings = FALSE, cutoff = 0.1, ...)
{
    object$cutoff <- cutoff
    object$print.loadings <- loadings
    class(object) <- "summary.princomp"
    object
}
<environment: namespace:stats>

Ne princomp()kendisi yapar kullanılarak görülebilir getAnywhere("princomp.default").


+1 Ayrıca FactoMineR kullanıyorum ama PCA yöntemini gerçekten büyük bir veri kümesinde denediğimde, hiç sonuç almadığımı hatırlıyorum.
George Dontas

@ gd047 Bir SVD'ye dayalı olsa da benim için başarısız oldu (büyük veri kümesini işlemek için optimize edilebilir :)
chl
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.