एक भविष्यवक्ता के साथ एक बायिसियन लॉजिस्टिक रिग्रेशन मॉडल के फिट की कल्पना करने का सामान्य तरीका यह है कि संबंधित समानुपात के साथ भविष्य कहनेवाला वितरण की साजिश रचें। (कृपया, मुझे बताएं कि क्या मुझे आपका प्रश्न समझ में आया)
लोकप्रिय ब्लिस के डेटा सेट का उपयोग करके एक उदाहरण।
आर में नीचे कोड:
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)