Learn R Programming

bayesm (version 0.0-2)

rmnlIndepMetrop: MCMC Algorithm for Multinomial Logit Model

Description

rmnIndepMetrop implements Independence Metropolis for the MNL.

Usage

rmnlIndepMetrop(Data, Prior, Mcmc)

Arguments

Data
list(m,X,y)
Prior
list(A,betabar) optional
Mcmc
list(R,keep,nu)

Value

  • a list containing:
  • betadrawR/keep x nvar array of beta draws
  • acceptracceptance rate of Metropolis draws

concept

  • MCMC
  • multinomial logit
  • Metropolis algorithm
  • bayes

Details

Model: $Pr(y=j) = exp(x_j'beta)/\sum_k{e^{x_k'beta}}$. Prior: $beta$ $\sim$ $N(betabar,A^{-1})$ list arguments contain:
  • m
{number of alternatives} X{nobs*m x nvar matrix} y{ nobs vector of multinomial outcomes (1,..., m)} A{ nvar x nvar pds prior prec matrix (def: .01I)} betabar{ nvar x 1 prior mean (def: 0)} R{ number of MCMC draws} keep{ MCMC thinning parm: keep every keepth draw (def: 1)} nu{ degrees of freedom parameter for independence t density (def: 6) }

See Also

rhierMnlRwMixture

Examples

Run this code
##
if(nchar(Sys.getenv("LONG_TEST")) != 0) # set env var LONG_TEST to run
{

set.seed(66)
n=200; m=3; beta=c(1,-1,1.5,.5)
simout=simmnl(m,n,beta)
A=diag(c(rep(.01,length(beta)))); betabar=rep(0,length(beta))

R=2000
Data=list(y=simout$y,X=simout$X,m=m); Mcmc=list(R=R,keep=1) ; Prior=list(A=A,betabar=betabar)
out=rmnlIndepMetrop(Data=Data,Prior=Prior,Mcmc=Mcmc)
cat("Betadraws ",fill=TRUE)
mat=apply(out$betadraw,2,quantile,probs=c(.01,.05,.5,.95,.99))
mat=rbind(beta,mat); rownames(mat)[1]="beta"; print(mat)
}

Run the code above in your browser using DataLab