Saya mencoba melihat apakah akan menggunakan regresi ridge , LASSO , regresi komponen utama (PCR), atau Partial Least Squares (PLS) dalam situasi di mana ada sejumlah besar variabel / fitur ( ) dan jumlah sampel yang lebih kecil ( n < p ), dan tujuan saya adalah prediksi.
Ini pemahaman saya:
Regresi Ridge mengecilkan koefisien regresi, tetapi menggunakan semua koefisien tanpa membuatnya .
LASSO juga menyusutkan koefisien, tetapi juga membuatnya , artinya dapat melakukan pemilihan variabel juga.
Regresi komponen utama memotong komponen sehingga menjadi kurang dari n ; itu akan membuang komponen p - n .
Kuadrat terkecil parsial juga membangun satu set kombinasi linear dari input untuk regresi, tetapi tidak seperti PCR yang menggunakan (selain X ) untuk pengurangan dimensi. Perbedaan praktis utama antara PCR dan regresi PLS adalah bahwa PCR sering membutuhkan lebih banyak komponen daripada PLS untuk mencapai kesalahan prediksi yang sama ( lihat di sini ).
Pertimbangkan data dummy berikut (data aktual yang saya coba kerjakan serupa):
#random population of 200 subjects with 1000 variables
M <- matrix(rep(0,200*100),200,1000)
for (i in 1:200) {
set.seed(i)
M[i,] <- ifelse(runif(1000)<0.5,-1,1)
}
rownames(M) <- 1:200
#random yvars
set.seed(1234)
u <- rnorm(1000)
g <- as.vector(crossprod(t(M),u))
h2 <- 0.5
set.seed(234)
y <- g + rnorm(200,mean=0,sd=sqrt((1-h2)/h2*var(g)))
myd <- data.frame(y=y, M)
Implementasi empat metode:
require(glmnet)
# LASSO
fit1=glmnet(M,y, family="gaussian", alpha=1)
# Ridge
fit1=glmnet(M,y, family="gaussian", alpha=0)
# PLS
require(pls)
fit3 <- plsr(y ~ ., ncomp = 198, data = myd, validation = "LOO")
# taking 198 components and using leave-one-out cross validation
summary(fit3)
plot(RMSEP(fit3), legendpos = "topright")
# PCR
fit4 <- pcr(y ~ ., ncomp = 198, data = myd, validation = "LOO")
Deskripsi data terbaik adalah:
, sebagian besar kali p > 10 n ;
Variabel ( dan Y )berkorelasisatu sama lain dengan derajat yang berbeda.
Pertanyaan saya adalah strategi apa yang terbaik untuk situasi ini? Mengapa?
sumber
Jawaban:
Saya pikir tidak ada jawaban tunggal untuk pertanyaan Anda - itu tergantung pada banyak situasi, data, dan apa yang Anda coba lakukan. Beberapa modifikasi dapat atau harus dimodifikasi untuk mencapai tujuan. Namun, diskusi umum berikut dapat membantu.
Sebelum beralih ke metode yang lebih maju, mari kita bahas model dasar terlebih dahulu: regresi Least Squares (LS) . Ada dua alasan mengapa estimasi kuadrat terkecil dari parameter dalam model lengkap tidak memuaskan:
Kualitas prediksi: Estimasi kuadrat terkecil seringkali memiliki bias yang kecil tetapi varians yang tinggi. Kualitas prediksi kadang-kadang dapat ditingkatkan dengan menyusutnya koefisien regresi atau dengan menetapkan beberapa koefisien yang sama dengan nol. Dengan cara ini bias meningkat, tetapi varian prediksi berkurang secara signifikan yang mengarah pada prediksi keseluruhan yang lebih baik. Pertukaran antara bias dan varians ini dapat dengan mudah dilihat dengan mendekomposisi mean squared error (MSE). MSE yang lebih kecil mengarah pada prediksi nilai-nilai baru yang lebih baik.
Interpretabilitas : Jika banyak variabel prediktor tersedia, masuk akal untuk mengidentifikasi variabel yang memiliki pengaruh terbesar, dan menetapkan variabel ke nol yang tidak relevan dengan prediksi. Jadi kami menghilangkan variabel yang hanya akan menjelaskan beberapa detail, tetapi kami menjaga variabel yang memungkinkan penjelasan utama dari variabel respons.
Dalam banyak situasi kami memiliki sejumlah besar input (seperti milik Anda), seringkali sangat berkorelasi (seperti dalam kasus Anda). Dalam kasus regresi yang sangat berkorelasi, OLS mengarah ke parameter yang tidak stabil secara numerik , yaitu estimasi tidak dapat diandalkan . Untuk menghindari masalah ini, kami menggunakan metode yang menggunakan arah input yang diturunkan. Metode ini menghasilkan sejumlah kecil kombinasi linear z k , k = 1 , 2 , . . . ,β zk,k=1,2,...,q xj
Metode berbeda dalam bagaimana kombinasi linear dibangun. Regresi komponen utama (PCR) mencari transformasi dari data asli menjadi seperangkat variabel tidak berkorelasi baru yang disebut komponen utama .
The lasso adalah metode penyusutan seperti punggung, tetapi L1 norma daripada norma L2 digunakan dalam kendala. Fungsi kerugian norma-L1 juga dikenal sebagai setidaknya penyimpangan absolut (LAD) , kesalahan absolut terkecil (LAE). Ini pada dasarnya meminimalkan jumlah perbedaan absolut antara nilai target dan nilai estimasi. Fungsi kerugian norma-L2 juga dikenal sebagai kuadrat kesalahan terkecil (LSE).Yi ) dan nilai estimasi.Perbedaan antara L1 dan L2 hanya bahwa L2 adalah jumlah kuadrat dari bobot, sedangkan L1 hanya jumlah dari bobot. L1-norm cenderung menghasilkan koefisien jarang dan memiliki pemilihan fitur bawaan . L1-norm tidak memiliki solusi analitis, tetapi L2-norm tidak. Ini memungkinkan solusi norma-L2 dihitung secara efisien secara komputasi. L2-norm memiliki solusi unik sedangkan L1-norm tidak.
Analisis komponen utama adalah metode yang efektif untuk menemukan kombinasi linear fitur yang menunjukkan variasi besar dalam dataset. Tetapi yang kami cari di sini adalah kombinasi linear dengan varians tinggi dan korelasi signifikan dengan hasilnya. Karenanya kami ingin mendorong analisis komponen utama untuk menemukan kombinasi linear fitur yang memiliki korelasi tinggi dengan hasilnya - komponen utama yang diawasi (lihat halaman 678, Algoritma 18.1, dalam buku Elemen Pembelajaran Statistik ).
Paling tidak kuadrat turun bobot fitur bising, tetapi tidak membuangnya; akibatnya sejumlah besar fitur bising dapat mencemari prediksi. PLS yang mengalami ambang batas dapat dilihat sebagai versi bising dari komponen utama yang diawasi, dan karenanya kami mungkin tidak mengharapkannya berfungsi dengan baik dalam praktiknya.Komponen utama yang diawasi dapat menghasilkan kesalahan pengujian yang lebih rendah daripada Threshold PLS . Namun, itu tidak selalu menghasilkan model jarang yang hanya melibatkan sejumlah kecil fitur.
sumber