No BSD License  

Highlights from
Ordinal Data Modeling

image thumbnail
from Ordinal Data Modeling by Valen Johnson
Companion Software

example2.m
% example2.m

% prediction of essay scores from grammar attributes example

load grader.dat % loads matrix grader=[y x] for essay grader example

% first five rows of grader:
%   y    con    WL       SqW        PC        PS         PP     SL
%   8    1    4.7600   15.4600    0.0560    5.5490    0.0800  19.5270
%   7    1    4.2440    9.0550    0.0360    1.2690    0.0950  16.3760
%   2    1    4.0870   16.1860    0.0110    2.6080    0.1400  18.4330
%   5    1    4.3550    7.5500    0.0180    1.8080         0  14.6480
%   7    1    4.3060    9.6440    0.0230         0    0.1000  18.7210   
   
% mle fit using probit link

link='probit';      
K = 10;  % number of categories
[mle,cov,dev,devRes,fits] = ordinalMLE(grader,K,link);  
mle',sqrt(diag(cov))'

% plot deviance contributions against covariate 3

figure; plot(grader(:,4),devRes,'*')
xlabel('square root of number of words'); ylabel('deviance contribution')

% screening for important variables

drop_out_dev=zeros(6,1);
for i=1:6
   rmodel=grader; rmodel(:,2+i)=[];
   [mle1,cov1,dev1] = ordinalMLE(rmodel,K,link); 
   drop_out_dev(i)=dev1-dev;
end

drop_out_dev

% Bayesian fit using MCMC
% using mle as starting value, m iterations
m=1000; K = 10;
[sampleBeta, lat_resid, accept] = sampleOrdProb(grader,K,mle,m);

mean(sampleBeta),std(sampleBeta)  % computer posterior means and stand dev's

figure
norm_plot(lat_resid)  % constructs normal probability plot for latent residuals

% compute quartiles of posterior predictive residuals y - y*
% plots quartiles as function of observation number

quan=o_post_pred(grader,K,sampleBeta);

Contact us at files@mathworks.com