ARMS MH
ARMS stands for Adaptive Rejection Metropolis Sampling, and it is the generalization of ARS algorithm.

We can implement this algorithm with the following Julia program:
include("../GenRV/ars.jl")
using Main.corears
# ARMS
function arms(T, yfixed::Array)
x = ones(T+1)
for t = 1:T
# generate Y
while true
global y
y = gplus_sample(yfixed)
u = rand()
u <= exp(h(y)-hplus(y, yfixed)) && break
end
# accept or not
v = rand()
r = exp(h(y))*phi(x[t], yfixed)/(exp(h(x[t]))*phi(y, yfixed))
println(r)
if r >= 1
x[t+1] = y
else
if v <= r
x[t+1] = y
else
x[t+1] = x[t]
end
end
end
return(x)
endNow let's apply ARMS to poisson logistic model:

Last updated