Apakah Anda tahu referensi atau nama untuk cara berikut untuk menyelidiki apakah teknik pemodelan yang kompleks Apakah bias?
- Menerapkan ke kumpulan data asli. Ukur kinerjanya (mis. R-kuadrat dalam pengaturan regresi).
- Secara acak mengubah variabel respons untuk mendapatkan kumpulan data baru. Menerapkan dan mengukur kinerjanya . [Jika pengamatannya tergantung, langkah ini lebih rumit.]
Jika secara substansial berbeda dari kinerja nol, kami menyimpulkan bias.
Langkah 2 dapat diulang jika sumber daya memungkinkan, yang akan menyebabkan permutasi distribusi nol dari ukuran kinerja. Tetapi dalam aplikasi saya, saya tidak bisa melakukan ini karena masalah sumber daya.
Saya ingat dengan keliru bahwa trik "perombakan" ini digunakan oleh seseorang untuk menyelidiki bias dari validasi silang meninggalkan-satu-keluar (dalam beberapa situasi). Namun, saya tidak tahu apakah dia berada dalam situasi saya di mana dia dapat mengulangi seluruh proses hanya sekali.
Contoh dalam R yang menunjukkan "kekuatan" seleksi mundur naif:
# Generate random data set. Only random performance is expected.
n <- 100
p <- 30
set.seed(7567)
y <- rnorm(n)
X <- rnorm(n*p)
dim(X) <- c(n, p)
data <- data.frame(y, X)
# Modelling technique: backward selection with OLS
T <- function(data) {
step(lm(y ~ ., data = data), trace = 0)
}
# Performance: R-squared
P <- function(fit) {
summary(fit)$r.squared
}
# Step 1: Compute performance on original data. Happily publish high R-squared...
P(T(data)) # 0.240405
# Step 2: Your mean colleague reshuffles response and gets also R-squared far away from 0
data$y <- data$y[sample(n)]
P(T(data)) # 0.1925726
Kesimpulan pada contoh: Teknik pemodelan yang dipilih sangat rentan terhadap overfitting, setidaknya dalam pengaturan khusus ini.
Beberapa latar belakang
Saya pernah menggunakan trik perombakan ini untuk memeriksa apakah validasi silang dari beberapa proses pemodelan yang membosankan diterapkan dengan baik oleh saya. Di bawah permutasi acak, CV memberikan R-kuadrat dasarnya 0 (seperti yang diharapkan / diinginkan).
sumber
Jawaban:
Untuk menjawab pertanyaan dalam judul, AFAIK ini disebut tes permutasi . Jika ini memang yang Anda cari, itu tidak berfungsi seperti yang dijelaskan dalam pertanyaan.
Agar (agak) ringkas: tes permutasi memang bekerja dengan mengocok salah satu 'kolom' dan melakukan tes atau perhitungan bunga. Namun, triknya adalah melakukan ini berkali-kali , mengocok data setiap kali. Dalam dataset kecil bahkan mungkin untuk melakukan semua permutasi yang mungkin. Dalam kumpulan data besar Anda biasanya melakukan sejumlah permutasi yang dapat ditangani komputer Anda, tetapi yang cukup besar untuk mendapatkan distribusi statistik yang menarik .
Akhirnya, Anda menggunakan distribusi ini untuk memeriksa apakah, misalnya, perbedaan rata-rata antara dua kelompok adalah> 0 di 95% dari distribusi. Sederhananya, langkah terakhir ini memeriksa bagian mana dari distribusi di atas / di bawah nilai kritis tertentu adalah 'nilai-p' untuk tes hipotesis Anda.
Jika ini sangat berbeda dari nilai-p dalam sampel asli, saya tidak akan mengatakan ada yang salah dengan tes / statistik yang menarik, melainkan sampel Anda yang berisi titik data tertentu yang secara spesifik memengaruhi hasil tes. Ini mungkin bias (bias seleksi karena memasukkan beberapa kasus aneh; kesalahan pengukuran dalam kasus tertentu, dll), atau mungkin salah menggunakan tes (misalnya asumsi yang dilanggar).
Lihat https://en.wikipedia.org/wiki/Resampling_(statistics) untuk rincian lebih lanjut
Selain itu, lihat jawaban @amoeba untuk pertanyaan ini. Jika Anda ingin tahu lebih banyak tentang cara menggabungkan tes permutasi dengan pemilihan variabel.
sumber
Saya akhirnya menemukan jawabannya dalam buku Frank Harrell "Strategi Pemodelan Regresi" [1] di Bagian 5.2.4 (Perbaikan Pemisahan Data: Pengamplasan Ulang).
"Metode pengacakan" disajikan sebagai metode yang menarik untuk memperkirakan optimisme melalui permutasi acak dari respons, terutama dalam kombinasi dengan pemilihan variabel (seperti pada contoh dalam OP).
Dia merujuk, antara lain, ke [2] untuk ide-ide terkait.
Metode ini sangat sederhana: Katakanlah strategi pemodelan Anda yang rumit melibatkan pemilihan maju- / mundur (dan menyamping) dan kumpulan data Anda terlalu kecil untuk memiliki pemisahan kereta / validasi / uji bersih. Selain itu, Anda mungkin tidak sepenuhnya memercayai validasi silang karena selalu berarti membuang sebagian data tertentu dalam lipatan. Bagaimana Anda bisa menilai apakah R-kuadrat 0,7 Anda valid atau jika sebagian besar akibat overfitting? Metode pengacakan bekerja sebagai berikut (di sini kita berbicara tentang R-kuadrat tetapi dapat berupa ukuran kinerja yang menarik). Jika strategi Anda tidak bias, maka Anda akan mengharapkan R-squared mendekati 0 jika diulang pada set data dengan variabel respon yang diijinkan secara acak. Katakanlah Anda mendapatkan rata-rata R-kuadrat 0,6 bukannya 0 setelah 20 permutasi. Jadi, Anda tahu bahwa R-kuadrat asli 0. 7 mungkin tidak lebih dari hasil overfitting. Perkiraan yang lebih jujur dari "benar" R-kuadrat akan menjadi 0,7-0,6 = 0,1 (kecil). Jadi, Anda telah menunjukkan betapa buruknya strategi Anda.
Keuntungan dari metode ini
Kerugiannya termasuk
[1] Frank Harrell, "Strategi Pemodelan Regresi", 2001. Springer.
[2] R. Tibshirani dan K. Knight. Kriteria inflasi kovarians untuk pemilihan model adaptif. JRSS B, 61: 529-546, 1999.
sumber