วิธีปกติในการมองเห็นภาพความพอดีของโมเดลการถดถอยแบบโลจิสติกส์แบบเบย์กับตัวทำนายหนึ่งคือวางแผนการแจกแจงการทำนายพร้อมกับสัดส่วนที่สอดคล้องกัน (โปรดแจ้งให้เราทราบหากฉันเข้าใจคำถามของคุณ)
ตัวอย่างการใช้ชุดข้อมูล Bliss ยอดนิยม
รหัสด้านล่างใน R:
library(mcmc)
# Beetle data
ni = c(59, 60, 62, 56, 63, 59, 62, 60) # Number of individuals
no = c(6, 13, 18, 28, 52, 53, 61, 60) # Observed successes
dose = c(1.6907, 1.7242, 1.7552, 1.7842, 1.8113, 1.8369, 1.8610, 1.8839) # dose
dat = cbind(dose,ni,no)
ns = length(dat[,1])
# Log-posterior using a uniform prior on the parameters
logpost = function(par){
var = dat[,3]*log(plogis(par[1]+par[2]*dat[,1])) + (dat[,2]-dat[,3])*log(1-plogis(par[1]+par[2]*dat[,1]))
if( par[1]>-100000 ) return( sum(var) )
else return(-Inf)
}
# Metropolis-Hastings
N = 60000
samp <- metrop(logpost, scale = .35, initial = c(-60,33), nbatch = N)
samp$accept
burnin = 10000
thinning = 50
ind = seq(burnin,N,thinning)
mu1p = samp$batch[ , 1][ind]
mu2p = samp$batch[ , 2][ind]
# Visual tool
points = no/ni
# Predictive dose-response curve
DRL <- function(d) return(mean(plogis(mu1p+mu2p*d)))
DRLV = Vectorize(DRL)
v <- seq(1.55,2,length.out=55)
FL = DRLV(v)
plot(v,FL,type="l",xlab="dose",ylab="response")
points(dose,points,lwd=2)