Apa perbedaan antara objek ringkasan () dan pemuatan () untuk princomp () di R?


11

Kode contoh:

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

Saya mendapatkan output yang berbeda dari masing-masing, dan saya tidak yakin saya mengerti apa perbedaannya.

Berikut hasilnya:

> 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: bagaimana saya bisa mendapatkan akses ke tabel yang dibuat oleh ringkasan (pc.cr) ?? (Sepertinya saya tidak dapat menemukannya di str.)


Untuk pertanyaan ke-2, maksud Anda vektor eigen atau ringkasan pemuatan komponen?
chl

Hai chl - maksud saya keluaran dari "ringkasan (pc.cr)" - untuk beberapa alasan, saya tidak dapat menemukannya. (melakukan sesuatu seperti ringkasan (pc.cr) [[1]] hanya akan membuat saya menjadi bagian dari tabel)
Tal Galili

Mengapa Anda memiliki # inappropriatekomentar di baris pertama?
Amuba kata Reinstate Monica

@amoeba - Jujur saya tidak ingat. Saya menghapusnya. :)
Tal Galili

Jawaban:


4

Output pertama adalah yang benar dan paling bermanfaat. Memanggil loadings()objek Anda hanya mengembalikan ringkasan di mana SS selalu sama dengan 1, maka% varians hanya pemuatan SS dibagi dengan jumlah variabel. Masuk akal hanya ketika menggunakan Analisis Faktor (seperti dalam factanal). Saya tidak pernah menggunakan princompatau alternatif berbasis SVD nya ( prcomp), dan aku lebih suka FactoMineR atau ade4 paket yang jauh lebih kuat!

Tentang pertanyaan kedua Anda, summary()fungsi hanya mengembalikan SD untuk setiap komponen ( pc.cr$sdevdalam kasus Anda), dan sisa tabel tampaknya dihitung setelah itu (melalui metode printatau show, saya tidak menyelidiki ini secara detail).

> 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>

Apa yang princomp()dilakukannya dapat dilihat menggunakan getAnywhere("princomp.default").


+1 Saya juga menggunakan FactoMineR tapi saya ingat ketika saya mencoba metode PCA pada dataset yang sangat besar, saya tidak pernah mendapatkan hasil.
George Dontas

@ gd047 Gagal juga bagi saya, meskipun didasarkan pada SVD (mungkin dioptimalkan untuk menangani kumpulan data besar :)
chl
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.