Saya melakukan analisis komponen utama (PCA) dengan R menggunakan dua fungsi yang berbeda ( prcomp
dan princomp
) dan mengamati bahwa skor PCA berbeda dalam tanda. Bagaimana bisa?
Pertimbangkan ini:
set.seed(999)
prcomp(data.frame(1:10,rnorm(10)))$x
PC1 PC2
[1,] -4.508620 -0.2567655
[2,] -3.373772 -1.1369417
[3,] -2.679669 1.0903445
[4,] -1.615837 0.7108631
[5,] -0.548879 0.3093389
[6,] 0.481756 0.1639112
[7,] 1.656178 -0.9952875
[8,] 2.560345 -0.2490548
[9,] 3.508442 0.1874520
[10,] 4.520055 0.1761397
set.seed(999)
princomp(data.frame(1:10,rnorm(10)))$scores
Comp.1 Comp.2
[1,] 4.508620 0.2567655
[2,] 3.373772 1.1369417
[3,] 2.679669 -1.0903445
[4,] 1.615837 -0.7108631
[5,] 0.548879 -0.3093389
[6,] -0.481756 -0.1639112
[7,] -1.656178 0.9952875
[8,] -2.560345 0.2490548
[9,] -3.508442 -0.1874520
[10,] -4.520055 -0.1761397
Mengapa tanda-tanda ( +/-
) berbeda untuk kedua analisis? Jika saya kemudian menggunakan komponen utama PC1
dan PC2
sebagai prediktor dalam regresi, yaitu lm(y ~ PC1 + PC2)
, ini akan benar-benar mengubah pemahaman saya tentang efek dari dua variabel y
tergantung pada metode yang saya gunakan! Bagaimana saya dapat mengatakan bahwa PC1
misalnya memiliki efek positif y
dan PC2
misalnya memiliki efek negatif y
?
Selain itu: Jika tanda komponen PCA tidak ada artinya, apakah ini juga berlaku untuk analisis faktor (FA)? Apakah bisa membalik (membalikkan) tanda skor komponen PCA / FA individu (atau memuat, sebagai kolom matriks pemuatan)?
sumber
Jawaban:
PCA adalah transformasi matematika sederhana. Jika Anda mengubah tanda-tanda komponen, Anda tidak mengubah varians yang terkandung dalam komponen pertama. Selain itu, ketika Anda mengubah tanda, bobot (
prcomp( ... )$rotation
) juga mengubah tanda, sehingga interpretasinya tetap sama persis:menunjukkan
dan
pca2$loadings
tunjukkanJadi, mengapa interpretasinya tetap sama?
Anda melakukan regresi PCA
y
pada komponen 1. Pada versi pertama (prcomp
), katakan koefisiennya positif: semakin besar komponen 1, semakin besar y. Apa artinya itu ketika datang ke variabel asli? Karena bobot variabel 1 (1:10
dalam a) positif, yang menunjukkan bahwa semakin besar variabel 1, semakin besar y.Sekarang gunakan versi kedua (
princomp
). Karena komponen memiliki tanda yang diubah, semakin besar y, semakin kecil komponen 1 - koefisien y <lebih dari PC1 sekarang negatif. Namun demikian, memuat variabel 1; itu berarti, semakin besar variabel 1, semakin kecil komponen 1, semakin besar y - interpretasinya sama.Mungkin, cara termudah untuk melihat itu adalah dengan menggunakan biplot.
menunjukkan
Biplot yang sama untuk varian kedua menunjukkan
Seperti yang Anda lihat, gambar diputar oleh 180 °. Namun, hubungan antara bobot / pemuatan (panah merah) dan titik data (titik hitam) persis sama; dengan demikian, interpretasi komponen tidak berubah.
sumber
princomp
. Jadi selama proyeksi, data yang diproyeksikan saya juga terbalik dalam beberapa dimensi. Tujuan saya adalah melakukan klasifikasi pada koefisien. Tandanya masih tidak penting di sini?Pertanyaan ini banyak ditanyakan di forum ini, jadi saya ingin menambahkan jawaban luar biasa @ Januari dengan pertimbangan yang lebih umum.
Kesimpulannya adalah bahwa untuk setiap komponen PCA atau FA, tanda nilai dan muatannya arbitrer dan tidak berarti. Itu bisa dibalik, tetapi hanya jika tanda skor dan pemuatan dibalik pada saat yang sama.
sumber
princomp
. Jadi selama proyeksi, data yang diproyeksikan saya juga terbalik dalam beberapa dimensi. Tujuan saya adalah melakukan klasifikasi pada koefisien. Tandanya masih tidak penting di sini?sumber