m1 <- model.dmc(
p.map = list(a="1",v="1",z="1",d="1",sz="1",sv="1",t0="1",st0="1"),
match.map = list(M=list(s1="r1", s2="r2")),
factors = list(S=c("s1", "s2")),
constants = c(st0=0, d=0),
responses = c("r1","r2"),
type = "rd")
## Population distribution
pop.prior <- prior.p.dmc(
dists = rep("tnorm", 6),
p1 = c(a=2, v=2.5, z=.5, sz=.3, sv=1, t0=.3),
p2 = c(a=.5, v=.5, z=.1, sz=.1, sv=.3, t0=.05),
lower = c(0,-5, 0, 0, 0, 0),
upper = c(5, 7, 2, 2, 2, 2))
dat <- h.simulate.dmc(m1, nsim=30, p.prior=pop.prior, ns=8)
mdi <- data.model.dmc(dat, m1)
p.prior <- prior.p.dmc(
dists = rep("tnorm", 6),
p1 = c(a=2, v=2.5, z=.5, sz=.3, sv=1, t0=.3),
p2 = c(a=.5, v=.5, z=.1, sz=.1, sv=.3, t0=.05) * 5,
lower = c(0,-5, 0, 0, 0, 0),
upper = c(5, 7, 2, 2, 2, 2))
## Fixed-effect model
samplesInit <- h.samples.dmc(nmc=20, p.prior=p.prior, data=mdi, thin=1)
samples0 <- h.run.dmc(samples=samplesInit, report=10)
## Make a hyper-prior list
mu.prior <- prior.p.dmc(
dists = rep("tnorm", 6),
p1 = c(a=2, v=2.5, z=.5, sz=.3, sv=1, t0=.3),
p2 = c(a=.5, v=.5, z=.1, sz=.1, sv=.3, t0=.05) * 5,
lower = c(0,-5, 0, 0, 0, 0),
upper = c(5, 7, 2, 2, 2, 2))
sigma.prior <- prior.p.dmc(
dists = rep("beta", 6),
p1 = c(a=1, v=1, z=1, sz=1, sv=1, t0=1),
p2 = c(1,1,1,1,1,1),
upper = c(2,2,2,2,2,2))
pp.prior <- list(mu.prior, sigma.prior)
## Random-effect model
hsamplesInit <- h.samples.dmc(nmc=20, p.prior=p.prior, pp.prior=pp.prior,
data=mdi, thin=1)
hsamples0 <- h.run.dmc(samples=hsamplesInit, report=10, p.migrate=.05,
h.p.migrate=.05)
Run the code above in your browser using DataLab