Bagaimana cara membandingkan lereng regresi bootstrap?

13

Mari kita asumsikan saya memiliki dua set data dengan n pengamatan pasangan data variabel independen x dan variabel dependen y masing-masing. Mari kita asumsikan lebih lanjut saya ingin menghasilkan distribusi kemiringan regresi untuk setiap set data dengan bootstrap pengamatan (dengan penggantian) N kali dan menghitung regresi y = a + bxsetiap kali. Bagaimana saya membandingkan kedua distribusi untuk mengatakan bahwa lerengnya berbeda secara signifikan? Tes-U untuk menguji perbedaan antara median distribusi akan sangat bergantung pada N, yaitu, semakin sering saya mengulangi bootstrap, semakin signifikan perbedaannya. Bagaimana saya harus menghitung tumpang tindih antara distribusi untuk menentukan perbedaan yang signifikan?

pengguna7417
sumber

Jawaban:

19

Bootstrap dilakukan untuk mendapatkan gambaran yang lebih kuat dari distribusi sampling daripada yang diasumsikan oleh teori sampel besar. Ketika Anda bootstrap, secara efektif tidak ada batasan jumlah `bootsamples 'yang Anda ambil; pada kenyataannya Anda mendapatkan perkiraan yang lebih baik untuk distribusi sampling, semakin banyak bootsamples yang Anda ambil. Adalah umum untuk menggunakan bootsamples, meskipun tidak ada yang ajaib tentang angka itu. Selain itu, Anda tidak menjalankan tes pada bootsamples; Anda memiliki perkiraan distribusi sampel - gunakan secara langsung. Berikut ini algoritma:B=10,000

  1. mengambil bootsample dari satu set data dengan sampel boot-pengamatan dengan penggantian. [Mengenai komentar di bawah ini, satu pertanyaan yang relevan adalah apa yang merupakan 'pengamatan-boot' yang valid untuk digunakan untuk bootample Anda. Bahkan, ada beberapa pendekatan yang sah; Saya akan menyebutkan dua yang kuat dan memungkinkan Anda untuk mencerminkan struktur data Anda: Ketika Anda memiliki data pengamatan (yaitu, data diambil sampelnya pada semua dimensi, pengamatan booting dapat berupa n-tuple yang dipesan (misalnya, satu baris dari kumpulan data Anda). Misalnya, jika Anda memiliki satu variabel prediktor dan satu variabel respons, Anda akan mengambil sampel n 1 ( x , y )n1n1 (x,y)pasangan yang dipesan. Di sisi lain, ketika bekerja dengan data eksperimen, nilai-nilai variabel prediktor tidak dijadikan sampel, tetapi unit-unit eksperimental ditugaskan ke level yang diinginkan dari setiap variabel prediktor. Dalam kasus seperti ini, Anda dapat mengambil sampel y nilai dari dalam setiap level j dari variabel prediktor Anda, lalu memasangkan y s dengan nilai yang sesuai dari level prediktor tersebut. Dengan cara ini, Anda tidak akan mengambil sampel lebih dari X. ]n1j yjyX
  2. cocok dengan model regresi dan menyimpan perkiraan kemiringan (menyebutnya ß 1 )β^1
  3. mengambil bootsample dari kumpulan data lainnya dengan sampling boot-pengamatan dengan penggantiann2
  4. sesuai dengan model regresi lain dan menyimpan perkiraan kemiringan (menyebutnya ß 2 )β^2
  5. membentuk statistik dari dua perkiraan (saran: menggunakan perbedaan kemiringan β 1 - β 2 )β^1β^2
  6. simpan statistik dan buang info lainnya agar tidak membuang-buang memori
  7. ulangi langkah 1 - 6, kaliB=10,000
  8. mengurutkan distribusi sampling bootstrap perbedaan lereng
  9. hitung% bsd yang tumpang tindih 0 (mana yang lebih kecil,% ekor kanan atau% ekor kiri)
  10. kalikan persentase ini dengan 2

Logika dari algoritma ini sebagai uji statistik pada dasarnya mirip dengan tes klasik (misalnya, uji-t) tetapi Anda tidak mengasumsikan data atau distribusi sampel yang dihasilkan memiliki distribusi tertentu. (Misalnya, Anda tidak berasumsi normal.) Asumsi utama yang Anda buat adalah bahwa data Anda mewakili populasi yang Anda sampel dari / yang ingin digeneralisasi. Artinya, distribusi sampel mirip dengan distribusi populasi. Perhatikan bahwa, jika data Anda tidak terkait dengan populasi yang Anda minati, Anda beruntung.

Beberapa orang khawatir tentang penggunaan, misalnya, model regresi untuk menentukan kemiringan jika Anda tidak mau menganggap normalitas. Namun, kekhawatiran ini keliru. Teorema Gauss-Markov memberi tahu kita bahwa estimasi tersebut tidak bias (yaitu, berpusat pada nilai sebenarnya), jadi tidak masalah. Kurangnya normalitas berarti bahwa distribusi sampling yang sebenarnya mungkin berbeda dari yang dinyatakan secara teoritis, sehingga nilai-p tidak valid. Prosedur bootstrap memberi Anda cara untuk mengatasi masalah ini.

Dua masalah lain tentang bootstrap: Jika asumsi klasik terpenuhi, bootstrap kurang efisien (yaitu, memiliki daya lebih kecil) daripada tes parametrik. Kedua, bootstrap bekerja paling baik ketika Anda menjelajahi dekat pusat distribusi: rata-rata dan median bagus, kuartil tidak begitu baik, bootstrap min atau maks tentu gagal. Mengenai poin pertama, Anda mungkin tidak perlu bootstrap dalam situasi Anda; mengenai poin kedua, bootstrap pada slope sangat baik.

gung - Pasang kembali Monica
sumber
Walaupun saya mungkin salah, saya pikir bootstrap dalam regresi harus pada residu daripada pada data mentah, harus divalidasi ...
Xi'an
@ Xi'an, saya sudah salah sebelumnya, tetapi saya tidak mengerti mengapa Anda berpikir hanya sisa bootstrap yang valid. Efron & Tibshirani (1994) bagian 9.5 mengatakan "Pasangan bootstrap kurang sensitif terhadap asumsi daripada residu bootstrap. Kesalahan standar yang diperoleh oleh pasangan bootstrap memberikan jawaban yang masuk akal bahkan jika [struktur probabilitas model linear] sepenuhnya salah." Implikasinya adalah bahwa aplikasi bootstrap lebih kuat, meskipun mereka menyiratkan itu bisa kurang efisien dalam beberapa kasus.
gung - Reinstate Monica
Kekhawatiran saya dengan bootstrap pada pasangan adalah bahwa Anda juga memasukkan distribusi prediktor, yang biasanya tertinggal di luar gambar dalam model linier biasa. Itu sebabnya saya selalu mengajar siswa saya untuk bootstrap hanya residu.
Xi'an
@ Xi'an, itu adalah poin yang masuk akal, saya kira saya mengasumsikan struktur data pengamatan. Saya telah mengedit jawaban saya untuk menambahkan lebih detail tentang masalah ini. Namun, saya tidak melihat bagaimana itu menyiratkan bahwa pasangan bootstrap tentu tidak valid.
gung - Reinstate Monica
Memaksa pasangan antara dua set data independen adalah buatan dan tidak efisien. Anda dapat melakukan jauh lebih baik dari itu!
whuber
4

si

yi=β0+β1xi+β2si+β3sixi+ϵi
β3
E[yix,si=1]=(β0+β2)+(β1+β3)xiE[yix,si=0]=β0+β1xi.
You can bootstrap the distribution of β3 if you want or just use standard testing procedures (normal/t). If using analytical solutions, you need to either assume homoskedasticity across groups or correct for heteroskedasticity. For bootstrapping to be robust to this, you need to choose n observations randomly among the first group and n among the second, rather than 2n from the whole population.

If you have correlation among the error terms, you may need to alter this procedure a bit, so write back if that is the case.

You can generalize this approach to the seemingly unrelated regressions (SUR) framework. This approach still allows the coefficients for the intercept and the slope to be arbitrarily different in the two data sets.

Charlie
sumber
1
It's a good idea. But doesn't this also assume the two regressions have iid errors?
whuber
1
Good point. It requires that there not be different variances for the errors by group and that the errors not be correlated in the different groups.
Charlie
0

Doing everything in one regression is neat, and the assumption of independence is important. But calculating the point estimates in this way does not require constant variance. Try this R code;

x <- rbinom(100, 1, 0.5)
z <- rnorm(100)
y <- rnorm(100)
coef(lm(y~x*z))
coef(lm(y~z, subset= x==1))[1] - coef(lm(y~z, subset= x==0))[1]
coef(lm(y~z, subset= x==1))[2] - coef(lm(y~z, subset= x==0))[2]

We get the same point estimate either way. Estimates of standard error may require constant variance (depending on which one you use) but the bootstrapping considered here doesn't use estimated standard errors.

guest
sumber
1
If you're going to test whether the difference of slopes is zero (as in @Charlie's reply, to which you seem to be following up), you need an accurate, valid estimate of standard errors. It doesn't matter whether you bootstrap that estimate or otherwise.
whuber