Saya memiliki dataset besar dan saya ingin melakukan pengurangan dimensionalitas.
Sekarang di mana-mana saya membaca bahwa saya dapat menggunakan PCA untuk ini. Namun, saya masih belum mendapatkan apa yang harus dilakukan setelah menghitung / melakukan PCA. Dalam R ini mudah dilakukan dengan perintah princomp
.
Tetapi apa yang harus dilakukan setelah menghitung PCA? Jika saya memutuskan ingin menggunakan komponen utama pertama , bagaimana cara mengurangi dataset saya dengan tepat?
Jawaban:
Saya percaya apa yang Anda maksudkan dalam pertanyaan Anda berkaitan dengan pemotongan data menggunakan sejumlah kecil komponen utama (PC). Untuk operasi seperti itu, saya pikir fungsinya
prcomp
lebih ilustratif karena lebih mudah untuk memvisualisasikan perkalian matriks yang digunakan dalam rekonstruksi.Pertama, berikan dataset sintetis
Xt
,, Anda melakukan PCA (biasanya Anda akan memusatkan sampel untuk menggambarkan PC terkait dengan matriks kovarians:Di hasil atau
prcomp
, Anda dapat melihat PC (res$x
), nilai eigen (res$sdev
) yang memberikan informasi tentang besarnya masing-masing PC, dan pemuatan (res$rotation
).Dengan mengkuadratkan nilai eigen, Anda mendapatkan perbedaan yang dijelaskan oleh setiap PC:
Terakhir, Anda dapat membuat versi data terpotong dengan hanya menggunakan PC terkemuka (penting):
Anda dapat melihat bahwa hasilnya adalah matriks data yang sedikit lebih halus, dengan fitur skala kecil disaring:
Dan berikut ini adalah pendekatan yang sangat mendasar yang dapat Anda lakukan di luar fungsi prcomp:
Sekarang, memutuskan PC mana yang akan dipertahankan adalah pertanyaan terpisah - yang saya tertarik beberapa waktu lalu . Semoga itu bisa membantu.
sumber
prcomp
apakah itu untuk Anda. Lihatlahres$center
danres$scale
. IMHO, lebih sedikit kesalahan cenderung untuk menggunakan ini (tidak ada perbedaan tidak disengaja tentang pemusatan atau tidak / penskalaan atau tidak antara panggilan eksplisit kescale
danprcomp
panggilan).what to do after calculating the PCA
atauhow do I reduce my dataset exactly
? Mengingat bahwa OP telah melakukan PCA pada sampelnya, pertanyaannya adalah apa yang harus dilakukan dengannya, dan apa yang sebenarnya terjadi dengan subsampel ini; bukan bagaimana melakukan PCA. Kami mungkin juga mengusulkan melakukanE <- eigen(cov(Sample)); A<- scale(scale=F, Sample) %*% E$vectors
untuk mendapatkan cara lain untuk mendapatkan skor juga (yang sebenarnya apa yang dilakukanompompstats:::princomp.default
).Jawaban-jawaban lain ini sangat bagus dan terperinci, tetapi saya bertanya-tanya apakah Anda benar-benar mengajukan pertanyaan yang jauh lebih mendasar: apa yang Anda lakukan setelah memiliki PC?
Setiap PC hanya menjadi variabel baru. Katakanlah PC1 menyumbang 60% dari total variasi dan PC2 menyumbang 30%. Karena 90% dari total variasi yang dicatat, Anda bisa menggunakan dua variabel baru ini (PC) sebagai versi sederhana dari variabel asli Anda. Ini berarti menyesuaikannya dengan model, jika itu yang Anda minati. Ketika tiba saatnya untuk menginterpretasikan hasil Anda, Anda melakukannya dalam konteks variabel asli yang berkorelasi dengan setiap PC.
Maaf jika saya meremehkan ruang lingkup pertanyaan!
sumber
Praktis dengan PCA Anda menggunakan proyeksi PC ("skor") sebagai data pengganti untuk sampel asli Anda. Anda melakukan semua analisis Anda pada skor, dan setelah itu Anda merekonstruksi sampel asli Anda kembali menggunakan PC untuk mencari tahu apa yang terjadi pada ruang asli Anda (itu pada dasarnya Komponen Utama Regresi ). Jelas, jika Anda dapat menerjemahkan juru eigen Anda dengan bermakna ("memuat") maka Anda berada dalam posisi yang lebih baik: Anda dapat menggambarkan apa yang terjadi pada sampel Anda dalam mode variasi yang disajikan oleh pemuatan tersebut dengan melakukan inferensi pada pemuatan itu secara langsung dan sama sekali tidak peduli dengan rekonstruksi. :)
Secara umum apa yang Anda "setelah menghitung PCA" tergantung pada target analisis Anda. PCA hanya memberi Anda sub-sampel yang bebas linear dari data Anda yang optimal berdasarkan kriteria rekonstruksi RSS. Anda mungkin menggunakannya untuk klasifikasi, atau regresi, atau keduanya, atau seperti yang saya sebutkan, Anda mungkin ingin mengenali mode variasi ortogonal yang bermakna dalam sampel Anda.
Sebuah komentar : Saya pikir cara naif terbaik untuk memutuskan jumlah komponen yang akan dipertahankan adalah dengan mendasarkan estimasi Anda pada beberapa ambang batas variasi sampel yang ingin Anda pertahankan dalam sampel dimensi yang diperkecil daripada hanya beberapa nomor acak misalnya. 3, 100, 200. Seperti yang dijelaskan oleh user4959, Anda dapat memeriksa variasi kumulatif itu dengan memeriksa bidang yang relevan dari daftar di bawah
$loadings
bidang dalam objek daftar yang dihasilkan olehprincomp
.sumber
pls
princomp {stats}
Setelah melakukan PCA maka Anda dapat memilih dua komponen pertama dan plot .. Anda dapat melihat variasi komponen menggunakan plot scree di R. Juga menggunakan fungsi ringkasan dengan memuat = T Anda dapat membuat sirip variasi fitur dengan komponen.
Anda juga dapat melihat http://www.statmethods.net/advstats/factor.html ini dan http://statmath.wu.ac.at/~hornik/QFS1/principal_component-vignette.pdf
Cobalah untuk memikirkan apa yang Anda inginkan. Anda dapat menafsirkan banyak hal dari analisis PCA.
Abhik terbaik
sumber