Bagaimana cara menerapkan regresi pada komponen utama untuk memprediksi variabel output?


9

Saya membaca tentang dasar-dasar analisis komponen utama dari tutorial1 , link1 dan link2 .

Saya memiliki kumpulan data dari 100 variabel (termasuk variabel keluaran Y), saya ingin mengurangi variabel menjadi 40 oleh PCA, dan kemudian memprediksi variabel Y menggunakan 40 variabel tersebut.

Masalah 1: Setelah mendapatkan komponen utama dan memilih 40 komponen pertama, jika saya menerapkan regresi di atasnya saya mendapatkan beberapa fungsi yang sesuai dengan data. Tetapi bagaimana cara memprediksi beberapa variabel Y dari data asli? Untuk memprediksi variabel YI memiliki (100-1) variabel pada input, dan bagaimana saya tahu 40 variabel yang harus dipilih dari variabel 100-1 asli saya?

Masalah 2: Saya melakukan pembalikan PCA dan mendapatkan kembali data dari 40 komponen utama tersebut. Tetapi data diubah karena saya hanya memilih 40 komponen pertama. Apakah menerapkan regresi pada data ini masuk akal?

Saya menggunakan Matlab / Oktaf.


Untuk melakukan PCA, perangkat lunak atau program apa yang Anda gunakan? Misalnya dalam SPSS analisis ini dapat dilakukan dengan mudah dan Anda dapat mengatur jumlah komponen utama yang ingin Anda ekstrak dan Anda dapat melihat mana yang dipilih dalam output. Tentu saja menerapkan regresi dalam data ini masuk akal karena PCA hanya digunakan untuk pengurangan dimensi.
merveceng

1
Jika Anda hanya tertarik untuk membuat prediksi, Anda harus menyadari bahwa Hastie, Tibshirani, dan Friedman merekomendasikan regresi LASSO atas regresi komponen utama karena LASSO seharusnya melakukan hal yang sama (meningkatkan kemampuan prediksi dengan mengurangi jumlah variabel dalam model), tetapi lebih baik. LASSO juga tersedia secara luas saat ini dalam paket statistik.
shadowtalker

@ssdecontrol: Do Hastie et al. merekomendasikan secara khusus laso atas regresi komponen utama? PCR jauh lebih dekat terhubung ke regresi ridge daripada laso: itu tidak memaksakan kelangkaan (yaitu tidak melakukan pemilihan fitur, tidak seperti laso), itu agak menghukum semua bobot yang mirip dengan ridge. Mungkin mereka merekomendasikan jaring elastis di atas PCR, tapi itu laso plus punggungan.
amoeba

1
@amoeba Saya baru saja pergi dan memeriksa PDF online. Entah teksnya berubah, atau saya salah paham saat pertama kali membacanya. Kesimpulannya bukan bahwa "laso lebih unggul," tetapi bahwa "PCR, PLS, dan regresi ridge cenderung berperilaku sama," dan bahwa ridge mungkin lebih baik karena kontinu. Terima kasih telah membuat saya jujur!
shadowtalker

Jawaban:


7

Anda tidak memilih subset dari variabel asli 99 (100-1) Anda.

Masing-masing komponen utama adalah kombinasi linear dari semua 99 variabel prediktor (variabel x, IV, ...). Jika Anda menggunakan 40 komponen utama pertama, masing - masingnya adalah fungsi dari semua 99 variabel prediktor asli. (Setidaknya dengan PCA biasa - ada versi yang jarang / teratur seperti SPCA Zou, Hastie dan Tibshirani yang akan menghasilkan komponen berdasarkan variabel yang lebih sedikit.)

Pertimbangkan kasus sederhana dari dua variabel berkorelasi positif, yang untuk kesederhanaan kita asumsikan sama-sama variabel. Kemudian komponen utama pertama adalah kelipatan (fraksional) dari jumlah kedua variate dan yang kedua adalah kelipatan (pecahan) dari perbedaan kedua variate; jika keduanya tidak sama-sama variabel, komponen utama pertama akan lebih berat yang lebih-variabel satu lebih berat, tetapi masih akan melibatkan keduanya.

Jadi Anda mulai dengan 99 variabel-x Anda, dari mana Anda menghitung 40 komponen utama Anda dengan menerapkan bobot yang sesuai pada masing-masing variabel asli. [NB dalam diskusi saya, saya kiray dan XSudah terpusat.]

Anda kemudian menggunakan 40 variabel baru Anda seolah-olah mereka adalah prediktor dalam hak mereka sendiri, sama seperti yang Anda lakukan dengan masalah regresi berganda. (Dalam praktiknya, ada cara yang lebih efisien untuk mendapatkan taksiran, tetapi mari kita kesampingkan aspek komputasi dan hanya berurusan dengan ide dasar)

Sehubungan dengan pertanyaan kedua Anda, tidak jelas apa yang Anda maksud dengan "membalikkan PCA".

PC Anda adalah kombinasi linear dari varian asli. Katakanlah variasi asli Anda ada diX, dan Anda menghitung Z=XW (dimana X adalah n×99 dan W adalah 99×40 matriks yang berisi bobot komponen utama untuk 40 komponen yang Anda gunakan), lalu Anda perkirakan y^=Zβ^PC melalui regresi.

Maka Anda bisa menulis y^=Zβ^PC=XWβ^PC=Xβ^ katakan di mana β^=Wβ^PC, tentu saja), sehingga Anda dapat menuliskannya sebagai fungsi dari prediksi asli; Saya tidak tahu apakah itu yang Anda maksud dengan 'membalikkan', tapi itu cara yang berarti untuk melihat hubungan asli di antara keduanyay dan X. Itu tidak sama dengan koefisien yang Anda dapatkan dengan memperkirakan regresi pada X asli tentu saja - itu diatur dengan melakukan PCA; meskipun Anda akan mendapatkan koefisien untuk masing-masing X asli Anda dengan cara ini, mereka hanya memiliki df dari jumlah komponen yang Anda pas.

Lihat juga Wikipedia tentang regresi komponen utama .

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.