No BSD License  

Highlights from
Ordinal Data Modeling

image thumbnail
from Ordinal Data Modeling by Valen Johnson
Companion Software

[beta,var,lint]=cmp(data,mKx)
function [beta,var,lint]=cmp(data,mKx)
% CMP Computation of posterior mode and log integral using Laplace method.
%
%      [BETA,VAR,LINT]=cmp(DATA,MKX) returns the posterior mode BETA, associated
%      variance-covariance matrix VAR, and log integral LINT, where DATA =[y n x]
%      is the data matrix and MKX is the prior distribution matrix MKX = [m K x].

%-------------------------------------------------------------  
%  Jim Albert - May 15, 1998
%-------------------------------------------------------------

p=size(mKx,2);
m=mKx(:,1); K=mKx(:,2); x=mKx(:,3:p);

datan=[data;m K x]; 

[beta,var]=breg_mle(datan,'l');

lp=x*beta; p=exp(lp)./(1+exp(lp));

lprior=sum(K.*m.*log(p)+K.*(1-m).*log(1-p)-betaln(K.*m,K.*(1-m)));

lint=lprior+llogit(data,beta')+.5*log(det(var));

function val=llogit(data,beta)
% Binomial logistic loglikelihood

[npt,p]=size(beta);
y=data(:,1); n=data(:,2); x=data(:,3:(p+2));
lp=x*beta'; p=exp(lp)./(1+exp(lp));
yy=n.*y*ones(1,npt); nn=n*ones(1,npt);
val=sum(yy.*log(p)+(nn-yy).*log(1-p))';

Contact us at files@mathworks.com