Menggunakan komponen PCA yang dirotasi oleh varimax sebagai prediktor dalam regresi linier

8

Setelah melakukan PCA, komponen pertama menjelaskan bagian terbesar dari variabilitas. Ini penting misalnya dalam studi pengukuran tubuh di mana umumnya dikenal (Jolliffe, 2002) bahwa sumbu PC1 menangkap variasi ukuran. Pertanyaan saya adalah apakah skor PCA setelah rotasi varimax mempertahankan sifat yang sama atau apakah mereka berbeda seperti yang disebutkan dalam topik ini ?

Karena saya memerlukan skor PCA untuk analisis statistik lebih lanjut, saya bertanya-tanya apakah varimax diperlukan dan apakah itu benar-benar mengganggu representasi variabilitas sampel nyata sehingga skor individu pada sumbu yang diputar tidak informatif atau menyebabkan kesalahan interpretasi terhadap kenyataan?

Dapatkah seseorang menyarankan beberapa referensi lain tentang topik ini?

Alur kerja di R:

  1. PCA ( FactoMineRatau prcomp) -> Ekstrak skor individual -> Masukkan skor dilm
  2. PCA ( FactoMineratau prcomp) -> Varimax pada memuat matriks -> menghitung skor individu -> masukkan skor dilm
  3. FA ( psych, metode ekstraksi varimax dan pca) -> ekstrak skor individual -> Masukkan skor dalamlm

Sekarang, tanpa rotasi (1.) persentase dari variabilitas yang dijelaskan adalah 29,32, 5,6, 3,2, pada tiga sumbu pertama. 2. dan 3. solusi menghasilkan persentase yang sama pada tiga faktor pertama yaitu 12.2, 12.1, 8.2. Tentu saja 1. solusi cenderung mendorong semua beban variabel tinggi pada sumbu pertama, sedangkan 2. dan 3. cenderung mendistribusikan beban antar sumbu (yang merupakan alasan untuk rotasi). Saya ingin tahu apakah ketiga alur kerja ini penting sama karena skor individu berbeda pada sumbu yang diputar vs yang tidak diputar?

Fedja Blagojevic
sumber
Tujuan rotasi adalah untuk membagikan variabilitas antar komponen, jadi itu tidak benar lagi. Saya tidak yakin apa yang Anda maksud dengan "mengganggu representasi variabilitas sampel nyata" tetapi rotasi tidak mengubah proporsi varian yang dijelaskan dalam setiap item oleh komponen.
Jeremy Miles
2
Rotasi dilakukan semata-mata demi interpretasi komponen. Interpretasi diperlukan semata-mata dalam konteks "model variabel laten", yaitu ketika Anda memperlakukan komponen sebagai faktor , = Anda mengambil PCA sebagai analisis Faktor [sebuah keputusan yang diizinkan meskipun keputusan kontroversial]. Apakah itu kasusmu?
ttnphns
1
Seperti yang dikutip dengan benar di sini , setelah komponen rotasi mungkin tidak lagi diatur secara hierarkis (1 adalah yang terkuat, 2 adalah di belakang ...). Namun secara keseluruhan (multivariat), tidak ada informasi yang hilang secara bergiliran; jadi skor semua komponen yang diekstraksi bersama sama berharganya setelah rotasi seperti sebelum rotasi.
ttnphns
Saya hanya perlu memastikan tentang sesuatu dan saya telah memposting alur kerja saya di R.
Fedja Blagojevic
Ya memang saya menggunakan PCA sebagai EFA, tetapi saya juga sudah mencoba dengan EFA.
Fedja Blagojevic

Jawaban:

7

Komponen utama standar (untuk unit varians) setelah rotasi ortogonal, seperti varimax, hanya diputar komponen utama standar (dengan "komponen utama" yang saya maksud skor PC). Dalam regresi linier, penskalaan masing-masing prediktor tidak memiliki efek dan mengganti prediktor dengan kombinasi liniernya (misalnya melalui rotasi) juga tidak berpengaruh. Ini berarti menggunakan salah satu dari yang berikut ini dalam regresi:

  • komponen utama "mentah" (proyeksi pada vektor eigen matriks kov),
  • komponen utama standar,
  • komponen utama [standar] yang diputar,
  • komponen utama [standar] yang diputar secara acak diputar,

akan mengarah ke model regresi yang sama persis dengan identik , daya prediksi, dll. (Koefisien regresi individu tentu saja akan tergantung pada normalisasi dan pilihan rotasi.)R2

Varians total yang ditangkap oleh PC mentah dan PC yang diputar adalah sama.

Ini menjawab pertanyaan utama Anda. Namun, Anda harus berhati-hati dengan alur kerja Anda, karena sangat mudah untuk menjadi bingung dan mengacaukan perhitungan. Cara paling sederhana untuk mendapatkan skor PC yang diputar standar adalah dengan menggunakan psych::principalfungsi:

 psych::principal(data, rotate="varimax", nfactors=k, scores=TRUE)

Alur kerja Anda # 2 bisa lebih rumit daripada yang Anda pikirkan, karena memuat setelah rotasi varimax tidak ortogonal, jadi untuk mendapatkan skor Anda tidak bisa hanya memproyeksikan data ke beban yang diputar. Lihat jawaban saya di sini untuk perincian:

Alur kerja Anda # 3 mungkin juga salah, setidaknya jika Anda merujuk ke psych::fafungsinya. Itu tidak melakukan PCA; yang fm="pa"metode ekstraksi mengacu pada metode "faktor utama" yang didasarkan pada PCA, tetapi tidak identik dengan PCA (itu adalah metode iterasi). Seperti yang saya tulis di atas, Anda perlu psych::principalmelakukan PCA.

Lihat jawaban saya di utas berikut untuk akun terperinci tentang PCA dan varimax:

amuba
sumber
Terima kasih atas kata-kata baiknya, @Cbhihe. Saya cukup yakin bahwa mod tidak dapat menandai jawaban apa pun yang diterima. Jika Anda ingin mencapai OP (Fedja), Anda harus berkomentar di bawah pertanyaannya dan bukan di bawah jawaban saya; maka dia akan mendapat pemberitahuan tentang komentar Anda. Sepertinya dia masih aktif di SE ("terakhir terlihat" di SO hari ini).
amoeba
@Mods, dapatkah Anda membuat jawaban ini "diterima" tanpa poin yang diperoleh OP (untuk ukuran yang baik, karena OP telah mengabaikannya)? Itu akan menjadi layanan bagi masyarakat. Jika tidak mungkin bagi mod untuk melakukan ini, saya akan memulai utas dalam meta untuk membahas situasi semacam ini di mana jawaban yang SANGAT bagus diabaikan oleh OP dan karenanya kurang terlihat. Last but not least: terima kasih, amuba. +1
Cbhihe
@ Cbhihe Ini benar-benar tidak mungkin. Jadi jika Anda ingin memulai utas Meta, Anda bisa melanjutkan, itu mungkin diskusi yang menarik.
amoeba
Anda benar tentang mod yang tidak siap untuk bertindak, bukan OP dalam kasus itu. Cukup banyak Meta-posting tentang topik itu dan masalah telah berlangsung selama SE telah ada, sejauh yang saya tahu. Masalah nyata tanpa solusi yang baik. Kasihan. Bersulang.
Cbhihe