Nama "trik perombakan" (secara acak permute dataset untuk memperkirakan bias dari estimator)


8

Apakah Anda tahu referensi atau nama untuk cara berikut untuk menyelidiki apakah teknik pemodelan yang kompleks T Apakah bias?

  1. Menerapkan Tke kumpulan data asli. Ukur kinerjanya (mis. R-kuadrat dalam pengaturan regresi).
  2. Secara acak mengubah variabel respons untuk mendapatkan kumpulan data baru. MenerapkanT dan mengukur kinerjanya P. [Jika pengamatannya tergantung, langkah ini lebih rumit.]

Jika P secara substansial berbeda dari kinerja nol, kami menyimpulkan T 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).


3
Pertanyaan ini tampaknya sangat relevan: stats.stackexchange.com/questions/192291/… dan referensi yang dikutip di dalamnya.
Flounderer

2
Penelusuran yang baik @Flounderer, saya telah menambahkan tautan ke pertanyaan ini ke jawaban saya untuk mereka yang ingin membaca lebih lanjut (dan mungkin mendapatkan jawaban amoeba, beberapa upvotes yang layak)
IWS

Jawaban:


15

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.


1
Jadi itu seperti tes permutasi dengan satu permutasi tunggal (karena Tmisalnya berjalan selama 10 hari) dan dengan fokus pada distribusi nol dari statistik kinerja (bukan nilai-p)?
Michael M

5
Kekuatan tes permutasi (dan metode resampling) terletak pada distribusi statistik uji yang Anda peroleh. Untuk menyatakan kembali itu, mendapatkan distribusi adalah wajib untuk ujian. Anda akan memahami bahwa jika Anda hanya melakukan ini sekali atau hanya beberapa kali, Anda tidak dapat membentuk distribusi yang tepat dari hasil ini. Jika pemodelanTsekali membutuhkan 10 hari runtime, tes permutasi yang tepat memang akan memakan waktu lama. Mungkin crossvalidation en.wikipedia.org/wiki/Cross-validation_(statistics) lebih berlaku?
IWS

1
@MichaelM Tes permutasi dan tes pengacakan adalah tes yang sama. Jika statistik membutuhkan waktu lama untuk dihitung, tes permutasi akan membutuhkan waktu yang SANGAT lama untuk dijalankan.
AdamO

@ AdamO: Sepenuhnya setuju tentang waktu. Tetapi teknik ini sama sekali tidak tentang menguji hipotesis. Ini tentang estimasi bias (yang lebih mengarah ke aplikasi bootstrap). Tapi itulah alasan mengapa saya mengajukan pertanyaan!
Michael M

2

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

  • Sangat sederhana
  • Anda selalu menggunakan set data lengkap

Kerugiannya termasuk

  • Perkiraan optimisme tampaknya tidak terlalu akurat
  • Metode ini tidak dikenal berbeda dengan validasi silang atau validasi bootstrap.

[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.


1
+1 Menarik, sepertinya saya telah melewatkan metode ini, sambil menikmati upvotes untuk jawaban saya tentang penjelasan umum tentang metode resampling. Jika Anda bisa menguraikan jawaban ini dengan cara metode permutasi tunggal ini bekerja, itu akan luar biasa.
IWS

Tidak perlu meminta maaf! Jawaban Anda selalu diterima. Sebenarnya tidak banyak yang harus dielaborasi, tetapi saya telah menambahkan beberapa info untuk jawabannya.
Michael M

Berdasarkan bacaan lebih lanjut, saya telah memodifikasi jawaban untuk menyoroti bahwa, berbeda dengan OP saya, biasanya beberapa permutasi dijalankan untuk menghitung optimisme dengan cukup presisi.
Michael M

Berikut ini adalah publikasi terbaru mengenai teknik ini: arxiv.org/abs/1801.01489
Michael M
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.