Saya mencoba membangun sebuah model di mana responsnya adalah proporsi (sebenarnya itu adalah bagian dari suara yang didapat partai di daerah pemilihan). Distribusi tidak normal, jadi saya memutuskan untuk memodelkannya dengan distribusi beta. Saya juga punya beberapa prediktor.
Namun, saya tidak tahu bagaimana menulisnya dalam BUGS / JAGS / STAN (JAGS akan menjadi pilihan terbaik saya, tetapi itu tidak terlalu penting). Masalah saya adalah saya membuat sejumlah parameter oleh prediktor, tapi lalu apa yang bisa saya lakukan dengannya?
Kode akan menjadi seperti ini (dalam sintaks JAGS), tapi saya tidak tahu bagaimana "menghubungkan" parameter y_hat
dan y
.
for (i in 1:n) {
y[i] ~ dbeta(alpha, beta)
y_hat[i] <- a + b * x[i]
}
( y_hat
hanya produk-silang dari parameter dan prediktor, maka hubungan deterministik. a
dan b
merupakan koefisien yang saya coba perkirakan, x
menjadi prediktor).
Terima kasih atas saran Anda!
Jawaban:
Pendekatan regresi beta adalah reparameterisasi dalam hal dan ϕ . Di mana μ akan setara dengan apa yang Anda prediksi. Dalam parameterisasi ini Anda akan memiliki α = μ × ϕ dan β = ( 1 - μ ) × ϕ . Kemudian Anda dapat memodelkan μ sebagai logit dari kombinasi linear. ϕ dapat memiliki sebelumnya sendiri (harus lebih besar dari 0), atau dapat dimodelkan pada kovariat juga (pilih fungsi tautan untuk tetap lebih besar dari 0, seperti eksponensial).μ ϕ μ α = μ × ϕ β= ( 1 - μ ) × ϕ μ ϕ
Mungkin sesuatu seperti:
sumber
Greg Snow memberikan jawaban yang bagus. Untuk kelengkapan, berikut ini ekuivalen dalam sintaks Stan. Meskipun Stan memiliki distribusi beta yang dapat Anda gunakan, lebih cepat untuk mengerjakan sendiri logaritma kepadatan beta karena konstanta
log(y)
danlog(1-y)
dapat dihitung sekali pada permulaan (daripada setiap kaliy ~ beta(alpha,beta)
akan dipanggil). Dengan menambahlp__
variabel yang dipesan (lihat di bawah), Anda dapat menjumlahkan logaritma densitas beta di atas pengamatan dalam sampel Anda. Saya menggunakan label "gamma" untuk vektor parameter dalam prediktor linier.sumber