Saya sedang melakukan studi simulasi yang memerlukan perkiraan bootstrap yang diperoleh dari model campuran linier umum (sebenarnya, produk dari dua perkiraan untuk efek tetap, satu dari GLMM dan satu dari LMM). Untuk melakukan penelitian dengan baik akan membutuhkan sekitar 1000 simulasi dengan 1000 atau 1500 replikasi bootstrap setiap kali. Ini membutuhkan banyak waktu di komputer saya (berhari-hari).
How can I speed up the computation of these fixed effects?
Untuk lebih spesifik, saya memiliki subjek yang diukur berulang kali dalam tiga cara, sehingga memunculkan variabel X, M, dan Y, di mana X dan M adalah kontinu dan Y adalah biner. Kami memiliki dua persamaan regresi mana Y adalah variabel laten yang mendasari berkelanjutan untuk dan kesalahan tidak iid. Statistik yang ingin kita bootstrap adalah . Jadi, setiap replikasi bootstrap membutuhkan pemasangan LMM dan GLMM. Kode R saya adalah (menggunakan lme4)
stat=function(dat){
a=fixef(lmer(M~X+(X|person),data=dat))["X"]
b=fixef(glmer(Y~X+M+(X+M|person),data=dat,family="binomial"))["M"]
return(a*b)
}
Saya menyadari bahwa saya mendapatkan taksiran yang sama untuk jika saya pas sebagai model linier, sehingga menghemat waktu, tetapi trik yang sama tidak berhasil untuk .β 2
Apakah saya hanya perlu membeli komputer yang lebih cepat? :)
sumber
Rprof
.Jawaban:
Seharusnya membantu menentukan nilai awal, meskipun sulit untuk mengetahui berapa banyak. Saat Anda melakukan simulasi dan bootstrap, Anda harus mengetahui nilai 'true' atau perkiraan un-bootstrap atau keduanya. Coba gunakan yang ada di
start =
opsiglmer
.Anda juga dapat mempertimbangkan untuk melihat apakah toleransi untuk menyatakan konvergensi lebih ketat dari yang Anda butuhkan. Saya tidak jelas bagaimana cara mengubahnya dari
lme4
dokumentasi.sumber
Dua kemungkinan lain juga dipertimbangkan, sebelum membeli komputer baru.
sumber
Ini mungkin komputer yang lebih cepat. Tapi di sini ada satu trik yang mungkin berhasil.
Menghasilkan simultation dari , tetapi hanya tergantung pada Y , kemudian hanya melakukan OLS atau LMM pada simulasi Y * nilai.Y∗ Y Y∗
Andaikan fungsi tautan Anda adalah . ini mengatakan bagaimana Anda dapatkan dari probabilitas Y = 1 ke Y * nilai, dan kemungkinan besar logistik fungsi g ( z ) = l o g ( zg( . ) Y= 1 Y∗ .g( z) = L o g( z1 - z)
Jadi jika Anda mengasumsikan distribusi sampel bernouli untuk , dan kemudian menggunakan jeffrey sebelum probabilitas, Anda mendapatkan beta posterior untuk p ∼ B e t a ( Y o b s + 1Y→ Y~ B e r n o u l l i ( p ) . Simulasi dari ini harus seperti pencahayaan, dan jika tidak, maka Anda memerlukan komputer yang lebih cepat. Selanjutnya, sampel independen, jadi tidak perlu memeriksa diagnostik "konvergensi" seperti di MCMC, dan Anda mungkin tidak perlu sampel sebanyak - 100 dapat bekerja dengan baik untuk kasus Anda. Jika Anda memiliki binomialY′s, maka ganti saja angka1di posterior di atas denganni, jumlah percobaan binomial untuk setiapYi.p ∼ B e t a ( Yo b s+ 12, 1 - Yo b s+ 12) Y′s 1 nsaya Ysaya
Beri tahu saya jika saya perlu menjelaskan sesuatu yang sedikit lebih jelas
sumber