MCMC toolbox » Examples » Beetle
Beetle mortality data
From A. Dobson, An Introduction to Generalized Linear Models, Chapman & Hall/CRC, 2002. Binomial logistic regression example with dose-response data. See beetless.m for -2log(likelihood) function.
clear model data params options data = [ % dose n y 1.6907 59 6 1.7242 60 13 1.7552 62 18 1.7842 56 28 1.8113 63 52 1.8369 59 53 1.8610 62 61 1.8839 60 60 ]; global BEETLE_LINK BEETLE_LINK = 2; % 1=logit, 2=loglog, 3=probit % the "sum-of-squares" is now -2log(likelihood) of the binomial model model.ssfun = @beetless; % initial values and model function according to the link function switch BEETLE_LINK case 1 b = [ 60,-35]; % logit modelfun = @(d,th) 1./(1+exp(th(1)+th(2).*d)); label = 'Beetle data with logit link'; case 2 b = [-40, 22]; % logog modelfun = @(d,th) 1-exp(-exp(th(1)+th(2).*d)); label = 'Beetle data with loglog link'; case 3 b = [-35, 20]; % probit modelfun = @(d,th) nordf(th(1)+th(2).*d); label = 'Beetle data with probit link'; end % model parameters params = { {'b_0', b(1)} {'b_1', b(2)} }; options.nsimu = 5000; [res,chain] = mcmcrun(model,data,params, options); % plot the chain figure mcmcplot(chain,[],res) figure mcmcplot(chain,[],res,'pairs') % sample the predicted mean respose out = mcmcpred(res,chain,[],linspace(1.5,2)',modelfun,500); figure mcmcpredplot(out) hold on % add data points plot(data(:,1),data(:,3)./data(:,2),'ok') hold off title(label) ylabel('proportion killed') xlabel('log dose')
Sampling these parameters: name start [min,max] N(mu,s^2) b_0: -40 [-Inf,Inf] N(0,Inf) b_1: 22 [-Inf,Inf] N(0,Inf)