Regresi LASSO menyusutkan koefisien ke nol, sehingga memberikan pemilihan model yang efektif. Saya percaya bahwa dalam data saya ada interaksi yang bermakna antara kovariat nominal dan kontinu. Namun tidak harus, 'efek utama' dari model yang sebenarnya bermakna (bukan nol). Tentu saja saya tidak tahu ini karena model yang sebenarnya tidak diketahui. Tujuan saya adalah menemukan model yang benar dan memprediksi hasilnya sedekat mungkin.
Saya telah belajar bahwa pendekatan klasik untuk membangun model akan selalu menyertakan efek utama sebelum interaksi dimasukkan. Jadi tidak mungkin ada model tanpa efek utama dari dua kovariat dan jika ada interaksi kovariat dalam model yang sama. The fungsi dalam akibatnya hati-hati menyeleksi hal Model (misalnya berdasarkan mundur atau maju AIC) taat aturan ini.step
R
LASSO tampaknya bekerja secara berbeda. Karena semua parameter dikenakan sanksi, maka tanpa ragu-ragu dapat terjadi bahwa efek utama menyusut ke nol sedangkan interaksi model terbaik (misalnya lintas-divalidasi) adalah tidak-nol. Ini saya menemukan khususnya untuk data saya ketika menggunakan R
's glmnet
paket.
Saya menerima kritik berdasarkan aturan pertama yang dikutip di atas, yaitu model Lasso yang divalidasi silang akhir saya tidak termasuk persyaratan efek utama yang sesuai dari beberapa interaksi yang tidak nol. Namun aturan ini agaknya aneh dalam konteks ini. Apa yang menjadi pertanyaan adalah apakah parameter dalam model yang benar adalah nol. Mari kita asumsikan itu tetapi interaksi itu bukan nol, maka LASSO akan mengidentifikasi ini mungkin, sehingga menemukan model yang benar. Bahkan nampaknya prediksi dari model ini akan lebih tepat karena model tersebut tidak mengandung efek utama true-zero, yang secara efektif merupakan variabel noise.
Bolehkah saya membantah kritik berdasarkan alasan ini atau haruskah saya berhati-hati agar LASSO memasukkan efek utama sebelum masa interaksi?
Jawaban:
Salah satu kesulitan dalam menjawab pertanyaan ini adalah sulit untuk mendamaikan LASSO dengan gagasan model "benar" di sebagian besar aplikasi dunia nyata, yang biasanya memiliki korelasi yang tidak dapat diabaikan di antara variabel prediktor. Dalam hal itu, seperti halnya dengan teknik pemilihan variabel, prediktor khusus yang dikembalikan dengan koefisien nol oleh LASSO akan tergantung pada keanehan pengambilan sampel dari populasi yang mendasarinya. Anda dapat memeriksanya dengan melakukan LASSO pada beberapa sampel bootstrap dari set data yang sama dan membandingkan set variabel prediktor yang dikembalikan.
Selanjutnya, seperti yang dicatat oleh @AndrewM dalam komentar, bias estimasi yang diberikan oleh LASSO berarti bahwa Anda tidak akan memprediksi hasil "sedekat mungkin." Sebaliknya, Anda memprediksi hasil yang didasarkan pada pilihan tertentu dari bias-varians tradeoff yang tidak dapat dihindari.
Jadi, mengingat kesulitan-kesulitan itu, saya berharap Anda ingin tahu sendiri, tidak hanya untuk memuaskan seorang kritikus, besarnya efek-efek utama dari variabel-variabel yang berkontribusi pada interaksi. Ada paket yang tersedia di R, glinternet , yang tampaknya melakukan persis apa yang Anda butuhkan (walaupun saya tidak punya pengalaman dengannya):
Sebagai alternatif, jika Anda tidak memiliki terlalu banyak prediktor, Anda dapat mempertimbangkan ridge regression sebagai gantinya, yang akan mengembalikan koefisien untuk semua variabel yang mungkin jauh lebih tidak bergantung pada keanehan sampel data khusus Anda.
sumber
Saya terlambat ke pesta, tapi di sini ada beberapa pemikiran saya tentang masalah Anda.
laso memilih apa yang informatif. Mari kita pertimbangkan laso sebagai metode untuk mendapatkan kinerja prediktif tertinggi dengan jumlah fitur terkecil. Benar-benar baik bahwa dalam beberapa kasus, laso memilih interaksi dan bukan efek utama. Itu hanya berarti bahwa efek utama tidak informatif, tetapi interaksinya.
Anda hanya melaporkan, apa yang Anda temukan. Anda menggunakan beberapa metode dan menghasilkan beberapa hasil. Anda melaporkannya secara transparan yang memungkinkan reproduksibilitas. Menurut pendapat saya, pekerjaan Anda sudah selesai. Hasilnya objektif, Anda menemukan apa yang Anda temukan dan bukan tugas Anda untuk membenarkan, mengapa Anda tidak menemukan sesuatu yang lain.
Semua unit arbitrer. Interaksi hanyalah unit. Katakanlah Anda mempelajari warna. Warna dapat dimasukkan dalam model Anda sebagai panjang gelombang, atau panjang gelombang log, atau sebagai 3 variabel RGB, atau sebagai interaksi rona dan rona, dan sebagainya. Tidak ada representasi warna yang benar atau salah. Anda akan memilih salah satu yang paling masuk akal untuk masalah Anda. Interaksi juga hanya unit yang dapat Anda gunakan secara sewenang-wenang. Area jendela, apakah hanya interaksi tinggi dan lebarnya, haruskah Anda memasukkan tinggi dan lebar jendela dalam model Anda? Kecepatan hanyalah interaksi massa dan kecepatan. Dan Kecepatan hanyalah interaksi waktu dan jarak. Manhours hanyalah interaksi waktu dan jumlah orang yang bekerja. Dosis perlakuan matematis * usia sama dengan tinggi * lebar. Perkataan "Anda harus selalu memasukkan efek utama" terlalu dilebih-lebihkan.
laso tidak mendekati model nyata, itu tidak dimaksudkan untuk inferensi dan variabel yang dipilih tidak stabil. Jika Anda memiliki prediktor informatif berkorelasi, laso cenderung memilih satu dan mendorong yang lain ke 0, karena itu model Anda akan menghilangkan proporsi signifikan dari variabel informatif. Juga, seperti yang ditunjukkan dalam komentar, jika Anda menemukan lambda terbaik dalam crossvalidation, laso akan memilih lebih banyak variabel daripada model nyata. Masalah lainnya adalah, bahwa pilihan dari laso tidak stabil. Jadi jika Anda menjalankan laso lagi pada sampel yang berbeda dari suatu populasi, Anda akan berakhir dengan serangkaian variabel terpilih yang berbeda. Oleh karena itu, jangan terlalu membebani variabel mana yang dipilih. Juga, beta bias, dan karenanya tidak dapat digunakan untuk pengujian hipotesis parametrik klasik. Namun, ada cara mengatasinya (titik berikutnya)
inferensi dengan laso. Lasso dapat digunakan untuk membuat inferensi pada prediktor. Cara termudah adalah dengan mem-bootstrapnya dan menghitung berapa kali setiap variabel dipilih, dibagi dengan jumlah sampel, dan Anda memiliki nilai-p Anda. P dalam kasus itu adalah probabilitas suatu variabel dipilih oleh laso. Anda masih dapat berakhir dengan efek interaksi yang signifikan dan efek utama yang tidak signifikan, tetapi itu bukan masalah, itu dapat terjadi dengan pengujian hipotesis normal juga. Perawatan hebat dari topik ini ada di Hastie et. Al. buku gratis: Pembelajaran Statistik Dengan Sparsity, bab 6 http://web.stanford.edu/~hastie/StatLearnSparsity/Bootstrap dapat dilakukan untuk seluruh rentang nilai lambda yang akan menghasilkan jalur stabilitas untuk semua variabel. Ini dapat diperpanjang dengan pendekatan pemilihan stabilitas untuk menemukan satu set variabel signifikan dikoreksi untuk kesalahan bijaksana keluarga. http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9868.2010.00740.x/abstract Ada juga beberapa metode lain untuk inferensi dengan laso, yang mungkin berguna. Yaitu laso adaptif atau laso desparsified. Tinjauan dengan implementasi R di sini DOI: 10.1214 / 15-STS527 atau penjelasan lebih mudah diakses IMO di Buhlmanm, van de Geer Book: Statistik untuk Data Dimensi Tinggi http://www.springer.com/la/book/9783642201912
Hal-hal terkait laso lainnya yang harus diperhatikan. Sejauh yang saya tahu punggungan atau jaring elastis cenderung mengungguli laso. Jika ada pengetahuan domain tentang variabel, laso kelompok atau laso kelompok jarang dapat digunakan untuk memaksa laso baik menyimpan atau membuang seluruh kelompok prediktor alih-alih memperlakukan mereka secara individual (misalnya jalur gen, variabel faktor kode dummy). Untuk data spasial atau data, laso leburan dapat digunakan. Laso acak, diperkenalkan dalam makalah seleksi stabilitas yang disebutkan di atas, cenderung menghasilkan model sparser dengan kinerja yang sama dengan laso standar.
sumber
Saya memiliki aplikasi di mana saya secara khusus ingin sejumlah kecil efek utama tidak dihukum. Biarkan Y = X.main beta + X.inter beta.inter + eps
a) fit.Y = OLS (X.main, Y). Biarkan tilde.Y = Y - prediksi (fit.Y, X.main) b) cocok [, j] = OLS (X.main, X.inter [, j]) untuk j = 1 ... k. Biarkan tilde.X.inter [, j] = X.inter [, j] - prediksi (fit.j, X.main) c) fit = Lasso (tilde.X.inter, tilde.y). Koefisien pada efek utama sama dengan fit.Y - coef (fit) * fit [, 1: dim (X.inter) [2]]. Koefisien pada efek interaksi sama dengan koefisien (kecocokan)
Pada langkah a dan b, tidak perlu melakukan pemisahan sampel. Itu berhasil untuk saya!
sumber