Learn R Programming

bayesm (version 3.0-2)

rbprobitGibbs: Gibbs Sampler (Albert and Chib) for Binary Probit

Description

rbprobitGibbs implements the Albert and Chib Gibbs Sampler for the binary probit model.

Usage

rbprobitGibbs(Data, Prior, Mcmc)

Arguments

Data

list(X,y)

Prior

list(betabar,A)

Mcmc

list(R,keep,nprint)

Value

betadraw

R/keep x k array of betadraws

Details

Model: \(z = X\beta + e\). \(e\) \(\sim\) \(N(0,I)\). y=1, if z> 0.

Prior: \(\beta\) \(\sim\) \(N(betabar,A^{-1})\).

List arguments contain

X

Design Matrix

y

n x 1 vector of observations, (0 or 1)

betabar

k x 1 prior mean (def: 0)

A

k x k prior precision matrix (def: .01I)

R

number of MCMC draws

keep

thinning parameter - keep every keepth draw (def: 1)

nprint

print the estimated time remaining for every nprint'th draw (def: 100)

References

For further discussion, see Bayesian Statistics and Marketing by Rossi, Allenby and McCulloch, Chapter 3. http://www.perossi.org/home/bsm-1

See Also

rmnpGibbs

Examples

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

set.seed(66)
simbprobit=
function(X,beta) {
##  function to simulate from binary probit including x variable
y=ifelse((X%*%beta+rnorm(nrow(X)))<0,0,1)
list(X=X,y=y,beta=beta)
}

nobs=200
X=cbind(rep(1,nobs),runif(nobs),runif(nobs))
beta=c(0,1,-1)
nvar=ncol(X)
simout=simbprobit(X,beta)

Data1=list(X=simout$X,y=simout$y)
Mcmc1=list(R=R,keep=1)

out=rbprobitGibbs(Data=Data1,Mcmc=Mcmc1)

summary(out$betadraw,tvalues=beta)

if(0){
## plotting example
plot(out$betadraw,tvalues=beta)
}

Run the code above in your browser using DataLab