function [log_scores,sz]=llatent(Mb,data)
% LLATENT logistic scores plot for latent residuals in logistic
% regression
%
% [LOG_SCORES,SZ]=llatent(MB,DATA) returns vector LOG_SCORES of logistic
% scores and vector SZ of posterior means of ordered latent residuals,
% where MB is matrix of simulated regression values and DATA is data
% matrix of form [y n x]. A logistic probability plot is displayed of
% the posterior means.
%-------------------------------------------------------------
% Jim Albert - May 15, 1998
%-------------------------------------------------------------
p=size(data,2); N=size(data,1);
y=data(:,1); n=data(:,2); x=data(:,3:p);
m=size(Mb,1); sz=zeros(N,1);
log_scores=Fi_logit(((1:N)-1/3)/(N+1/3));
for i=1:m
lp=x*Mb(i,:)';
bb=F_logit(-lp);
tt=(bb.*(1-y)+(1-bb).*y).*rand(N,1)+bb.*y;
z=Fi_logit(tt)+lp;
sz=sz+sort(z-lp);
end
sz=sz/m;
plot(log_scores,sort(sz),'o');hold on;plot([-4 4],[-4 4],':')
xlabel('Logistic scores'); ylabel('Mean latent residuals')
hold off
function val=F_logit(x)
val=exp(x)./(1+exp(x));
function val=Fi_logit(y);
val=log(y./(1-y));