Validasi silang setelah LASSO dalam data survei yang kompleks

11

Saya mencoba melakukan pemilihan model pada beberapa kandidat yang menggunakan LASSO dengan hasil yang berkelanjutan. Tujuannya adalah untuk memilih model optimal dengan kinerja prediksi terbaik, yang biasanya dapat dilakukan dengan validasi silang K-fold setelah mendapatkan jalur solusi dari parameter tuning dari LASSO. Masalahnya di sini adalah bahwa data berasal dari desain survei multi-tahap yang kompleks (NHANES), dengan pengambilan sampel cluster dan stratifikasi. Bagian estimasi tidak sulit karena glmnetdi R dapat mengambil bobot sampel. Tetapi bagian validasi silang kurang jelas bagi saya karena pengamatan sekarang tidak iid lagi, dan bagaimana prosedur menjelaskan bobot sampel mewakili populasi yang terbatas?

Jadi pertanyaan saya adalah:

1) Bagaimana cara melakukan validasi silang K-fold dengan data survei yang kompleks untuk memilih parameter tuning yang optimal? Lebih khusus lagi, bagaimana cara mempartisi data sampel dengan tepat ke dalam set pelatihan dan validasi? Dan bagaimana cara menentukan estimasi kesalahan prediksi?

2) Apakah ada cara alternatif untuk memilih parameter tuning optimal?

aenima
sumber
Mungkin resampling (mis. Bootstrap) akan menjadi prosedur yang lebih tepat daripada k fold cv?
g3o2
Lumley memperingatkan bahwa "Teori untuk bootstrap dikembangkan hanya untuk situasi pengambilan sampel dengan probabilitas yang sama dalam setiap strata, tidak jelas seberapa baik kerjanya dengan probabilitas yang berubah-ubah." (28) Data NHANES tampaknya tidak memiliki sampling probabilitas-sama dalam strata.
Dan Hicks
akan menarik untuk mengetahui detail kecil ini dari OP. Tidak tahu apa yang akan begitu rumit tentang multistage cluster dan stratified sampling ...
g3o2
@Dan Hicks: Saya rasa itu tidak penting, ketika melakukan resampling, Anda mereplikasi beberapa contoh dari contoh rencana yang sama.
g3o2
Menggunakan sesuatu seperti metode yang dijelaskan di sini? amstat.tandfonline.com/doi/pdf/10.1080/01621459.1988.10478591 (Atau sesuatu yang lebih baru?) Jika Anda ingin menuliskan ide itu dengan sedikit lebih detail sebagai jawaban, saya akan memberikan hadiahnya.
Dan Hicks

Jawaban:

2

Saya tidak punya jawaban terperinci, hanya beberapa petunjuk untuk bekerja. Saya ingin membaca:

Anda bisa melihat McConville (2011) pada LASSO survei-kompleks, untuk memastikan penggunaan LASSO sesuai untuk data Anda. Tapi mungkin itu bukan masalah besar jika Anda melakukan LASSO hanya untuk pemilihan variabel, kemudian mencocokkan sesuatu yang lain dengan variabel yang tersisa.

Untuk validasi silang dengan data survei kompleks (meskipun bukan LASSO), McConville juga mengutip Opsomer & Miller (2005) dan You (2009). Tetapi metode mereka tampaknya menggunakan CV biarkan keluar, bukan K-fold.

Leave-one-out harus lebih sederhana untuk diterapkan dengan survei yang kompleks --- ada sedikit kekhawatiran tentang bagaimana mempartisi data dengan tepat. (Di sisi lain, ini bisa memakan waktu lebih lama daripada K-fold. Dan jika tujuan Anda adalah pemilihan model, diketahui bahwa meninggalkan-keluar-satu bisa lebih buruk daripada K-lipat untuk sampel besar.)

civilstat
sumber
0

EDIT oleh OP: Tidak berlaku untuk data survei yang kompleks.

Fungsi cv.glmet dapat membantu Anda untuk melakukan validasi silang yang diperlukan. Nilai lambda.min adalah nilai λ di mana kesalahan CV minimal. The lambda.1se mewakili nilai λ dalam pencarian yang lebih sederhana daripada model terbaik (lambda.min), tetapi yang memiliki kesalahan dalam 1 kesalahan standar dari model terbaik.

  1. Pilih kisi nilai yang dapat Anda pilih untuk alfa dan lambda

kisi <- expand.grid (.alpha = (1:10) * 0.1, .lambda = (1:10) * 0.1)

  1. Siapkan parameter kontrol model Anda. Kontrol kereta bawah ini diulangi selama 10 iterasi. Baca metode yang tersedia dan pilih metode yang sesuai dengan skenario Anda saat ini.

cv.glmmod <-cv.glmnet (xTrain, y = yTrain, alpha = kisi .lambda).alpha,>=T,lambda=grid

Nilai lambda.min dapat diakses dari model itu sendiri seperti yang ditunjukkan di bawah ini.

cv.glmmod $ lambda.min

karthikbharadwaj
sumber
1
Saya tahu bagaimana melakukan validasi silang untuk data iid menggunakan glmnet. Saya bertanya tentang data survei kompleks yang berkorelasi.
aenima