Apakah ada nilai dalam pengurangan dimensionalitas dari set data di mana semua variabel mendekati ortogonal?


Jawaban:


8

Saya ingin mengklarifikasi komentar yang saya tinggalkan di bawah jawaban @ Peter-Flom tetapi mungkin layak dituliskan dalam jawaban. Sejauh mana Anda dapat mengurangi dimensi dengan menjalankan PCA pada data yang hampir ortogonal? Jawabannya adalah "itu tergantung" pada apakah Anda melakukan PCA pada matriks korelasi atau kovarian .

Jika Anda menggunakan PCA pada matriks korelasi, maka karena ini hanya akan sedikit berbeda dari matriks identitas, ada simetri bola yang menjadikan semua arah "sama informatif". Mengubah varian variabel Anda menjadi satu sebelum PCA adalah pendekatan yang setara secara matematis yang akan menghasilkan hasil yang sama. Sementara output PCA akan mengidentifikasi beberapa komponen dengan varians yang sedikit lebih rendah daripada yang lain, ini dapat dikaitkan (jika kita mengasumsikan nol korelasi dalam populasi) dengan tidak lebih dari variasi kebetulan dalam sampel, jadi tidak akan menjadi alasan yang baik untuk membuang ini komponen. Faktanya, perbedaan antara standar deviasi komponen harus dikurangi dalam besarnya ketika kita meningkatkan ukuran sampel. Kami dapat mengkonfirmasi ini dalam simulasi.

set.seed(123)
princompn <- function(n, sd1=1, sd2=1, sd3=1, sd4=1, cor=TRUE) {
    x1 <- rnorm(n, mean=0, sd=sd1)
    x2 <- rnorm(n, mean=0, sd=sd2)
    x3 <- rnorm(n, mean=0, sd=sd3)
    x4 <- rnorm(n, mean=0, sd=sd4)
    prcomp(cbind(x1,x2,x3,x4), scale.=cor)
}

Keluaran:

> pc100 <- princompn(100)
> summary(pc100)
Importance of components:
                          PC1    PC2    PC3    PC4
Standard deviation     1.0736 1.0243 0.9762 0.9193
Proportion of Variance 0.2882 0.2623 0.2382 0.2113
Cumulative Proportion  0.2882 0.5505 0.7887 1.0000
> 
> pc1m <- princompn(1e6)
> summary(pc1m)
Importance of components:
                          PC1    PC2    PC3    PC4
Standard deviation     1.0008 1.0004 0.9998 0.9990
Proportion of Variance 0.2504 0.2502 0.2499 0.2495
Cumulative Proportion  0.2504 0.5006 0.7505 1.0000

Namun, jika Anda melakukan PCA menggunakan matriks kovarians alih-alih matriks korelasi (ekuivalen: jika kami tidak menskalakan standar deviasi ke 1 sebelum menerapkan PCA), maka jawabannya tergantung pada penyebaran variabel Anda. Jika variabel Anda memiliki varian yang sama maka kami masih memiliki simetri bola, sehingga tidak ada "arah istimewa" dan pengurangan dimensi tidak dapat dicapai.

> pcEqual <- princompn(n=1e6, sd1=4, sd2=4, sd3=4, sd4=4, cor=FALSE)
> summary(pcEqual)
Importance of components:
                          PC1    PC2    PC3    PC4
Standard deviation     4.0056 4.0010 3.9986 3.9936
Proportion of Variance 0.2507 0.2502 0.2499 0.2492
Cumulative Proportion  0.2507 0.5009 0.7508 1.0000

Dengan campuran variabel varians tinggi dan rendah, simetri lebih seperti ellipsoid dengan beberapa kapak lebar dan lainnya tipis. Dalam situasi ini akan ada komponen varians tinggi memuat pada variabel varians tinggi (di mana ellipsoid lebar) dan komponen varians rendah memuat pada variabel varians rendah (di mana arah ellipsoid sempit).

> pcHiLo <- princompn(n=1e6, sd1=4, sd2=4, sd3=1, sd4=1, cor=FALSE)
> summary(pcHiLo)
Importance of components:
                          PC1    PC2    PC3     PC4
Standard deviation     4.0018 3.9985 1.0016 1.00005
Proportion of Variance 0.4709 0.4702 0.0295 0.02941
Cumulative Proportion  0.4709 0.9411 0.9706 1.00000
> round(pcHiLo$rotation, 3)
      PC1   PC2    PC3    PC4
x1  0.460 0.888  0.000  0.000
x2 -0.888 0.460  0.000  0.000
x3  0.000 0.000 -0.747 -0.664
x4  0.000 0.000  0.664 -0.747

Jika variabel memiliki varians yang sangat berbeda (geometris ellipsoid lagi tetapi dengan semua sumbu berbeda), maka ortogonalitas memungkinkan PC pertama memuat sangat banyak pada variabel varians tertinggi dan seterusnya.

> pc1234 <-  princompn(n=1e6, sd1=1, sd2=2, sd3=3, sd4=4, cor=FALSE)
> summary(pc1234)
Importance of components:
                          PC1    PC2    PC3     PC4
Standard deviation     3.9981 3.0031 1.9993 1.00033
Proportion of Variance 0.5328 0.3006 0.1332 0.03335
Cumulative Proportion  0.5328 0.8334 0.9667 1.00000
> round(pc1234$rotation, 3)
     PC1    PC2    PC3   PC4
x1 0.000  0.000 -0.001 1.000
x2 0.001 -0.001  1.000 0.001
x3 0.003 -1.000 -0.001 0.000
x4 1.000  0.003 -0.001 0.000

Dalam dua kasus terakhir ada komponen varians rendah Anda mungkin mempertimbangkan membuang untuk mencapai pengurangan dimensi, tetapi melakukannya persis sama dengan membuang variabel varians terendah di tempat pertama . Pada dasarnya, ortogonalitas memungkinkan Anda untuk mengidentifikasi komponen varians rendah dengan variabel varians rendah, jadi jika Anda bermaksud mengurangi dimensi dengan cara ini, tidak jelas Anda akan mendapat manfaat dari menggunakan PCA untuk melakukannya.

Nota bene: lamanya waktu yang dihabiskan untuk membahas kasus di mana variabel tidak diubah kembali ke varians unit - yaitu menggunakan kovarians daripada matriks korelasi - tidak boleh dianggap sebagai indikasi bahwa pendekatan ini entah bagaimana lebih penting, dan tentu saja bukan karena itu lebih baik". Simetri situasi hanya lebih halus sehingga memerlukan diskusi lebih lama.


Jawaban saya mungkin paling baik menjawab masalah yang ditimbulkan oleh poster asli (yang tentang apa yang bisa atau tidak bisa dicapai oleh PCA), yang saya duga menjelaskan tanda centang hijau! Tetapi saya mendesak pembaca untuk melihat jawaban @ RyanBressler, yang memberikan solusi alternatif .
Silverfish

11

Anda dapat mencoba metode pembelajaran manifold reduksi dimensi nonlinier yang lebih umum seperti penyisipan linear lokal, pemetaan eigen laplacian atau t-SNE.

Sangat mungkin untuk ada subruang dimensi yang lebih rendah (manifold) dalam data Anda dengan cara yang meninggalkan 0 korelasi antara dimensi berbasis-N. Misalnya lingkaran titik tentang asal atau bentuk gelombang seperti yang terlihat di sini . PCA tidak akan mengambil ini tetapi metode lain akan melakukannya.

Melihat metode seperti itu sangat menarik dan umum untuk visualisasi dan analisis data eksplorasi. Untuk digunakan dalam classifier atau model lain, Anda harus membatasi diri pada metode yang sesuai untuk pelatihan dan diterapkan pada tes yang mengecualikan banyak metode ini. Jika ini adalah minat utama Anda, Anda juga harus melihat metode untuk rekayasa fitur pretraining dan diawasi yang tidak diawasi.


6

Jika semua variabel N kira-kira ortogonal maka pengurangan dimensi akan melakukan pengurangan yang relatif sedikit. Misalnya diR

set.seed(123)
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- rnorm(100)
x4 <- rnorm(100)
x5 <- rnorm(100)
x6 <- rnorm(100)
x7 <- rnorm(100)
x8 <- rnorm(100)
x9 <- rnorm(100)
x10 <- rnorm(100)

df1 <- cbind(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)

pcsol <- princomp(df1)
loadings(pcsol)

Intinya, "ortogonal" menyiratkan "sudah pada ukuran terkecil".


2
Anda memiliki kesalahan ketik kecil di "orthongonal"
Silverfish

6
@Silverfish, orthon adalah "humanoid sedang-tinggi dengan rambut pirang panjang dan kulit kecokelatan memakai sepatu cokelat kemerahan". Meskipun Anda mungkin benar dalam arti bahwa Peter berbeda.
ttnphns

4
Apakah perlu menunjukkan jawaban ini tergantung pada bagaimana variabel diskalakan? Jika ada variabel varians tinggi dan rendah dan kami melakukan PCA pada matriks kovarians bukan korelasi, maka akan ada komponen varians rendah yang dapat dihapus (ortogonalitas hanya berarti bebannya sangat mengidentifikasi mereka dengan masing-masing variabel varians rendah). Buat sedikit perubahan berikut: x1<-rnorm(100, sd=0.1)dan pcsol <- princomp(df1, cor=FALSE)dan ada perbedaan, terutama jika kita melihatnya summary(pcsol). (Saya tidak menyarankan cov adalah pendekatan yang lebih baik daripada cor, hanya saja itu mungkin.)
Silverfish

Saya memperbaiki kesalahan ketik, terima kasih. Juga, poin bagus tentang penskalaan.
Peter Flom - Reinstate Monica

2
Bukankah ini hanya berlaku untuk pengurangan dimensi yang bergantung pada kovarians? Mengapa, katakanlah, penskalaan multidimensi tidak mengurangi di sini?
shadowtalker
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.