No BSD License  

Highlights from
Ordinal Data Modeling

image thumbnail
from Ordinal Data Modeling by Valen Johnson
Companion Software

[v_th,arate]=metrop(logpost,th_0,m,scale,par)
function [v_th,arate]=metrop(logpost,th_0,m,scale,par)
% METROP - simulates from a 1-parameter posterior using Metropolis algorithm
%	V_TH=METROP(LOGPOST,TH_0,M,SCALE,PAR) returns a vector V_TH of simulated
%	values from the posterior distribution, where LOGPOST is a function
%	containing the definition of the log posterior, TH_0 is the starting
%	value, M is the number of values to simulate, SCALE is the
%	value of the standard deviation used in the steps of the random walk 
%	Metropolis algorithm, and PAR is vector of parameter values.

if nargin<4, scale=1; end
if nargin<3, m=1000; end
v_th=zeros(m,1);
f0=feval(logpost,th_0,par);
arate=0;
for i=1:m
  th_1=th_0+randn*scale;
  f1=feval(logpost,th_1,par);
  u=rand<exp(f1-f0);
  th_0=th_1*(u==1)+th_0*(u==0);
  f0=f1*(u==1)+f0*(u==0);
  v_th(i)=th_0; arate=arate+u;
end
arate=arate/m;

Contact us at files@mathworks.com