Cách thông thường để hình dung sự phù hợp của mô hình hồi quy logistic Bayes với một yếu tố dự đoán là vẽ sơ đồ phân phối dự báo cùng với tỷ lệ tương ứng. (Xin vui lòng, cho tôi biết nếu tôi hiểu câu hỏi của bạn)
Một ví dụ sử dụng tập dữ liệu phổ biến của Bliss.
Mã dưới đây trong 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)