apakah akan mengubah indikator / biner / prediktor tiruan untuk LASSO

30

Untuk LASSO (dan prosedur pemilihan model lainnya), sangat penting untuk mengubah skala prediktor. The umum Rekomendasi saya tindak hanya menggunakan 0 berarti, 1 standar deviasi normalisasi untuk variabel kontinyu. Tapi apa yang harus dilakukan dengan boneka?

Misalnya beberapa contoh terapan dari sekolah musim panas yang sama (luar biasa) yang saya tautkan dengan menskala ulang variabel kontinu menjadi antara 0 dan 1 (meskipun tidak hebat dengan outlier), mungkin sebanding dengan boneka. Tetapi bahkan itu tidak menjamin bahwa koefisien harus urutan besarnya sama, dan dengan demikian dihukum sama, alasan utama untuk penyelamatan, bukan?

László
sumber
2
Jawaban singkat - tidak, jangan skala ulang boneka
Affine
4
Terkait dengan ini
Juli
@ Juliet, terima kasih banyak, beri tahu saya jika Anda menemukan jawaban sejak itu.
László

Jawaban:

27

Menurut Tibshirani ( METODE LASSO UNTUK PEMILIHAN VARIABEL DALAM MODEL COX, Statistics in Medicine, VOL. 16, 385-395 (1997) ), yang secara harfiah menulis buku tentang metode regularisasi, Anda harus menstandarisasi boneka. Namun, Anda kemudian kehilangan interpretasi langsung dari koefisien Anda. Jika tidak, variabel Anda tidak berada di lapangan yang sama. Anda pada dasarnya memberikan skala yang mendukung variabel kontinu Anda (kemungkinan besar). Jadi, jika tujuan utama Anda adalah pemilihan model maka ini adalah kesalahan yang mengerikan. Namun, jika Anda lebih tertarik pada interpretasi maka mungkin ini bukan ide terbaik.

Rekomendasi ada di halaman 394:

Metode laso membutuhkan standarisasi awal dari regressor, sehingga skema hukuman adil bagi semua regressor. Untuk regressor kategoris, satu kode regressor dengan variabel dummy dan kemudian membakukan variabel dummy. Akan tetapi, sebagaimana ditunjukkan oleh seorang wasit, penskalaan relatif antara variabel kontinu dan kategoris dalam skema ini bisa agak arbitrer.

rocrat
sumber
3
dapatkah Anda memberikan referensi yang tepat ke tempat Tibshirani menyarankan standarisasi boneka.
seanv507
@ seanv507 "... satu kode regressor dengan variabel dummy dan kemudian membakukan variabel dummy ". Saya pikir penjelasan rocrat benar: secara umum Anda ingin semua prediktor, termasuk boneka, memiliki skala dan varian yang sama agar hukuman menjadi adil.
Robert Kubrick
1
@RobertKubrick saya tidak setuju. Alasan mendasar untuk regularisasi adalah bahwa perubahan kecil harus memiliki efek kecil. Jadi kasus yang ideal adalah bahwa semua variabel Anda memiliki skala fisik alami dan variabel dependen Anda dan Anda tidak menormalkannya. Biasanya kami tidak tahu skala yang benar, jadi kami menggunakan normalisasi. Namun variabel kategori memiliki skala alami, yaitu probabilitas bahwa mereka adalah 0 atau 1: Saya berpendapat bahwa variabel yang sebagian besar waktu 0, kurang penting daripada variabel yang membalik antara 0/1. Sebaliknya jawaban Jeff sepertinya tepat.
seanv507
8

Posting blog Andrew Gelman, Kapan untuk membakukan input regresi dan kapan meninggalkannya sendirian , juga patut dilihat. Bagian ini khususnya relevan:

Untuk membandingkan koefisien untuk prediktor yang berbeda dalam suatu model, standardisasi mendapat anggukan. (Meskipun saya tidak membakukan input biner. Saya mengkodekannya sebagai 0/1, dan kemudian saya membakukan semua input numerik lainnya dengan membaginya dengan dua standar deviasi, sehingga menempatkannya pada skala yang kira-kira sama dengan variabel 0/1.)

Jeff
sumber
1
Dan ketika dia mengatakan "jangan menstandardisasi input biner" , dia tampaknya berarti kelompok variabel satu-panas, yaitu setiap boneka untuk variabel kategori?
smci
2
hal(1-hal)hal=0,50,25
x -> x / 2σ
tidak masalah, sepertinya semua dijelaskan di sini: stat.columbia.edu/ ~gelman
Alex
3

Ini lebih dari komentar, tetapi terlalu lama. Salah satu perangkat lunak yang paling sering digunakan untuk laso (dan teman) adalah R's glmnet. Dari halaman bantuan, dicetak oleh ?glmnet:

standarisasi: Bendera logis untuk x standardisasi variabel, sebelum menyesuaikan urutan model. Koefisien selalu dikembalikan pada skala asli. Default adalah 'standardize = TRUE'. Jika variabel sudah berada di unit yang sama, Anda mungkin tidak ingin membakukan. Lihat detail di bawah ini untuk standardisasi dengan 'family = "gaussian"'.

X

kjetil b halvorsen
sumber