rordprobitGibbs            package:bayesm            R Documentation

_G_i_b_b_s _S_a_m_p_l_e_r _f_o_r _O_r_d_e_r_e_d _P_r_o_b_i_t

_D_e_s_c_r_i_p_t_i_o_n:

     'rordprobitGibbs' implements a Gibbs Sampler for the ordered
     probit model.

_U_s_a_g_e:

     rordprobitGibbs(Data, Prior, Mcmc)

_A_r_g_u_m_e_n_t_s:

    Data: list(X, y, k)

   Prior: list(betabar, A, dstarbar, Ad)

    Mcmc: list(R, keep, s, change, draw)  

_D_e_t_a_i_l_s:

     Model: z = Xbeta + e.  e ~ N(0,I).  y=1,..,k. cutoff=c( c [1] ,..c
     [k+1] ).   
       y=k, if c [k] <= z < c [k+1] .     

     Prior:  beta ~ N(betabar,A^{-1}).  dstar ~ N(dstarbar,Ad^{-1}).

     List arguments contain  

     '_X' n x nvar Design Matrix

     '_y' n x 1 vector of observations, (1,...,k) 

     '_k' the largest possible value of y 

     '_b_e_t_a_b_a_r' nvar x 1 prior mean (def: 0)

     '_A' nvar x nvar prior precision matrix (def: .01I) 

     '_d_s_t_a_r_b_a_r' ndstar x 1 prior mean, ndstar=k-2 (def: 0)

     '_A_d' ndstar x ndstar prior precision matrix (def:I) 

     '_s' scaling parm for RW Metropolis (def: 2.93/sqrt(nvar))

     '_R' number of MCMC draws 

     '_k_e_e_p' thinning parameter - keep every keepth draw (def: 1)

_V_a_l_u_e:

betadraw : R/keep x k matrix of betadraws

cutdraw : R/keep x (k-1) matrix of cutdraws

dstardraw : R/keep x (k-2) matrix of dstardraws

 accept : a value of acceptance rate in RW Metropolis

_N_o_t_e:

     set c[1]=-100. c[k+1]=100. c[2] is set to 0 for identification.   

     The relationship between cut-offs and dstar is    
      c[3] = exp(dstar[1]), c[4]=c[3]+exp(dstar[2]),..., c[k] = c[k-1]
     + exp(datsr[k-2])              

     Be careful in assessing prior parameter, Ad.  .1 is too small for
     many applications.

_A_u_t_h_o_r(_s):

     Peter Rossi, Graduate School of Business, University of Chicago,
     Peter.Rossi@ChicagoGsb.edu.

_R_e_f_e_r_e_n_c_e_s:

     _Bayesian Statistics and Marketing_ by Rossi, Allenby and
     McCulloch
      <URL:
     http://faculty.chicagogsb.edu/peter.rossi/research/bsm.html>

_S_e_e _A_l_s_o:

     'rbprobitGibbs'

_E_x_a_m_p_l_e_s:

     ##
     ## rordprobitGibbs example
     ##
     if(nchar(Sys.getenv("LONG_TEST")) != 0) {R=2000} else {R=10}

     ## simulate data for ordered probit model

        simordprobit=function(X, betas, cutoff){
         z = X%*%betas + rnorm(nobs)   
         y = cut(z, br = cutoff, right=TRUE, include.lowest = TRUE, labels = FALSE)  
         return(list(y = y, X = X, k=(length(cutoff)-1), betas= betas, cutoff=cutoff ))
        }

        set.seed(66)  
        nobs=300 
        X=cbind(rep(1,nobs),runif(nobs, min=0, max=5),runif(nobs,min=0, max=5))
        k=5
        betas=c(0.5, 1, -0.5)       
        cutoff=c(-100, 0, 1.0, 1.8, 3.2,  100)
        simout=simordprobit(X, betas, cutoff)   
        Data=list(X=simout$X,y=simout$y, k=k)

     ## set Mcmc for ordered probit model
        
        Mcmc=list(R=R)   
        out=rordprobitGibbs(Data=Data,Mcmc=Mcmc)
       
        cat(" ", fill=TRUE)
        cat("acceptance rate= ",accept=out$accept,fill=TRUE)
      
     ## outputs of betadraw and cut-off draws
       
        cat(" Summary of betadraws",fill=TRUE)
        summary(out$betadraw,tvalues=betas)
        cat(" Summary of cut-off draws",fill=TRUE) 
        summary(out$cutdraw,tvalues=cutoff[2:k])

     if(0){
     ## plotting examples
     plot(out$cutdraw)
     }

