1\name{rivGibbs} 2\alias{rivGibbs} 3\concept{Instrumental Variables} 4\concept{Gibbs Sampler} 5\concept{bayes} 6\concept{endogeneity} 7\concept{simultaneity} 8\concept{MCMC} 9 10\title{Gibbs Sampler for Linear "IV" Model} 11 12\description{ 13\code{rivGibbs} is a Gibbs Sampler for a linear structural equation with an arbitrary number of instruments. 14} 15 16\usage{rivGibbs(Data, Prior, Mcmc)} 17 18\arguments{ 19 \item{Data }{list(y, x, w, z)} 20 \item{Prior}{list(md, Ad, mbg, Abg, nu, V)} 21 \item{Mcmc }{list(R, keep, nprint)} 22} 23 24\details{ 25\subsection{Model and Priors}{ 26 \eqn{x = z'\delta + e1} \cr 27 \eqn{y = \beta*x + w'\gamma + e2} \cr 28 \eqn{e1,e2} \eqn{\sim}{~} \eqn{N(0, \Sigma)} 29 30 Note: if intercepts are desired in either equation, include vector of ones in \eqn{z} or \eqn{w} 31 32 \eqn{\delta} \eqn{\sim}{~} \eqn{N(md, Ad^{-1})} \cr 33 \eqn{vec(\beta,\gamma)} \eqn{\sim}{~} \eqn{N(mbg, Abg^{-1})} \cr 34 \eqn{\Sigma} \eqn{\sim}{~} \eqn{IW(nu, V)} 35} 36\subsection{Argument Details}{ 37 \emph{\code{Data = list(y, x, w, z)}} 38 \tabular{ll}{ 39 \code{y: } \tab \eqn{n x 1} vector of obs on LHS variable in structural equation \cr 40 \code{x: } \tab \eqn{n x 1} vector of obs on "endogenous" variable in structural equation \cr 41 \code{w: } \tab \eqn{n x j} matrix of obs on "exogenous" variables in the structural equation \cr 42 \code{z: } \tab \eqn{n x p} matrix of obs on instruments 43 } 44 \emph{\code{Prior = list(md, Ad, mbg, Abg, nu, V)} [optional]} 45 \tabular{ll}{ 46 \code{md: } \tab \eqn{p}-length prior mean of delta (def: 0) \cr 47 \code{Ad: } \tab \eqn{p x p} PDS prior precision matrix for prior on delta (def: 0.01*I) \cr 48 \code{mbg: } \tab \eqn{(j+1)}-length prior mean vector for prior on beta,gamma (def: 0) \cr 49 \code{Abg: } \tab \eqn{(j+1)x(j+1)} PDS prior precision matrix for prior on beta,gamma (def: 0.01*I) \cr 50 \code{nu: } \tab d.f. parameter for Inverted Wishart prior on Sigma (def: 5) \cr 51 \code{V: } \tab \eqn{2 x 2} location matrix for Inverted Wishart prior on Sigma (def: nu*I) 52 } 53 \emph{\code{Mcmc = list(R, keep, nprint)} [only \code{R} required]} 54 \tabular{ll}{ 55 \code{R: } \tab number of MCMC draws \cr 56 \code{keep: } \tab MCMC thinning parameter: keep every \code{keep}th draw (def: 1) \cr 57 \code{nprint: } \tab print the estimated time remaining for every \code{nprint}'th draw (def: 100, set to 0 for no print) 58 } 59} 60} 61 62\value{ 63 A list containing: 64 \item{deltadraw }{ \eqn{R/keep x p} matrix of delta draws} 65 \item{betadraw }{ \eqn{R/keep x 1} vector of beta draws} 66 \item{gammadraw }{ \eqn{R/keep x j} matrix of gamma draws} 67 \item{Sigmadraw }{ \eqn{R/keep x 4} matrix of Sigma draws -- each row is the vector form of Sigma} 68} 69 70\author{Rob McCulloch and Peter Rossi, Anderson School, UCLA, \email{perossichi@gmail.com}.} 71 72\references{ For further discussion, see Chapter 5, \emph{Bayesian Statistics and Marketing} by Rossi, Allenby, and McCulloch. \cr \url{http://www.perossi.org/home/bsm-1}} 73 74\examples{ 75if(nchar(Sys.getenv("LONG_TEST")) != 0) {R=2000} else {R=10} 76set.seed(66) 77 78simIV = function(delta, beta, Sigma, n, z, w, gamma) { 79 eps = matrix(rnorm(2*n),ncol=2) \%*\% chol(Sigma) 80 x = z\%*\%delta + eps[,1] 81 y = beta*x + eps[,2] + w\%*\%gamma 82 list(x=as.vector(x), y=as.vector(y)) 83 } 84 85n = 200 86p=1 # number of instruments 87z = cbind(rep(1,n), matrix(runif(n*p),ncol=p)) 88w = matrix(1,n,1) 89rho = 0.8 90Sigma = matrix(c(1,rho,rho,1), ncol=2) 91delta = c(1,4) 92beta = 0.5 93gamma = c(1) 94simiv = simIV(delta, beta, Sigma, n, z, w, gamma) 95 96Data1 = list(); Data1$z = z; Data1$w=w; Data1$x=simiv$x; Data1$y=simiv$y 97Mcmc1=list(); Mcmc1$R = R; Mcmc1$keep=1 98 99out = rivGibbs(Data=Data1, Mcmc=Mcmc1) 100 101cat("Summary of Beta draws", fill=TRUE) 102summary(out$betadraw, tvalues=beta) 103 104cat("Summary of Sigma draws", fill=TRUE) 105summary(out$Sigmadraw, tvalues=as.vector(Sigma[upper.tri(Sigma,diag=TRUE)])) 106 107## plotting examples 108if(0){plot(out$betadraw)} 109} 110 111\keyword{models} 112