# NOT RUN {
######################################################################
# Simulated Data:
# mu_i ~ 0.5 N(mub1,Sigmab1) + 0.5 N(mub2,Sigmab2)
# y_i ~ N(mu_i,Sigma_i)
# Sigma_1=...=Sigma_n=Sigma assumed to be known
######################################################################
nvar <- 2
nrec <- 100
Sigma <- matrix(c(0.25,0.15,0.15,0.25),nrow=nvar,ncol=nvar)
mub1 <- rep(-1.5,nvar)
mub2 <- rep( 0.5,nvar)
Sigmab1 <- matrix(c(0.25,-0.175,-0.175,0.25),nrow=nvar,ncol=nvar)
Sigmab2 <- matrix(c(0.25, 0.0875, 0.0875,0.25),nrow=nvar,ncol=nvar)
ind <- rbinom(nrec,1,0.5)
z1 <- mub1+matrix(rnorm(nvar*nrec),nrow=nrec,ncol=nvar)<!-- %*%chol(Sigmab1) -->
z2 <- mub2+matrix(rnorm(nvar*nrec),nrow=nrec,ncol=nvar)<!-- %*%chol(Sigmab2) -->
mu <- ind*z1+(1-ind)*z2
y <- NULL
for(i in 1:nrec)
{
z <- mu[i,]+matrix(rnorm(nvar),nrow=1,ncol=nvar)<!-- %*%chol(Sigma) -->
y <- rbind(y,z)
}
colnames(y) <- c("y1","y2")
######################################################################
# Asymptotic variance
######################################################################
z <- NULL
for(i in 1:nvar)
{
for(j in i:nvar)
{
z <- c(z,Sigma[i,j])
}
}
asymvar <- matrix(z,nrow=nrec,ncol=nvar*(nvar+1)/2,byrow=TRUE)
# Prior information
s2 <-diag(100,nvar)
m2 <-rep(0,nvar)
nu <- 4
psiinv <- diag(1,nvar)
prior<-list(a0=1,
b0=1/5,
nu=nu,
m2=m2,
s2=s2,
psiinv=psiinv)
# Initial state
state <- NULL
# MCMC parameters
nburn <- 500
nsave <- 1000
nskip <- 0
ndisplay <- 100
mcmc <- list(nburn=nburn,
nsave=nsave,
nskip=nskip,
ndisplay=ndisplay)
# Fitting the model
fit1 <- DPmultmeta(y=y,asymvar=asymvar,prior=prior,
mcmc=mcmc,state=state,status=TRUE)
# }
Run the code above in your browser using DataLab