## Set up a DDM Model, rate effect of factor F
m1 <- model.dmc(
p.map = list(a="1", v="F", 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"), F=c("f1","f2")),
constants = c(st0=0,d=0),
responses = c("r1","r2"),
type = "rd")
## Population distribution
p.mean <- c(a=2, v.f1=2.5, v.f2=1.5, z=0.5, sz=0.3, sv=1, t0=0.3)
p.scale <- c(a=0.5, v.f1=.5, v.f2=.5, z=0.1, sz=0.1, sv=.3, t0=0.05)
pop.prior <- prior.p.dmc(
dists = rep("tnorm",7),
p1 = p.mean,
p2 = p.scale,
lower = c(0,-5, -5, 0, 0, 0, 0),
upper = c(5, 7, 7, 2, 2, 2, 2))
## Check population distributions
plot_priors(pop.prior)
## Simulate some data
dat1 <- h.simulate.dmc(m1, nsim=20, ns=5, p.prior=pop.prior)
head(dat1)
## S F R RT
## 1 s1 f1 r1 0.9227881
## 2 s1 f1 r1 0.7878554
## 3 s1 f1 r1 0.4814711
## 4 s1 f1 r1 0.6864110
## 5 s1 f1 r1 0.5068179
## 6 s1 f1 r1 0.6356547
## Use LBA as an example
m2 <- model.dmc(
p.map = list(A="1", B="1", mean_v="M", sd_v="M", t0="1",
st0="1"),
match.map = list(M=list(s1=1, s2=2)),
factors = list(S=c("s1", "s2")),
constants = c(st0= 0, sd_v.false=1),
responses = c("r1", "r2"),
type = "norm")
## Population distribution
p.mean <- c(A=.4,B=.6,mean_v.true=1,mean_v.false=0,sd_v.true = .5,t0=.3)
p.scale <- c(A=.1,B=.1,mean_v.true=.2,mean_v.false=.2,sd_v.true = .1,
t0=.05)
pop.prior <- prior.p.dmc(
dists = c("tnorm","tnorm","tnorm","tnorm","tnorm","tnorm"),
p1=p.mean, p2=p.scale,
lower=c(0,0,NA,NA,0,.1),upper=c(NA,NA,NA,NA,NA,1))
## A data frame
dat2 <- h.simulate.dmc(m2, nsim=30, p.prior=pop.prior, ns=10) ##
## A 10-element list; each element is a participant
mdi2 <- data.model.dmc(dat2, m2)
head(mdi2[[1]]) ## Check the first participant (s1)
## S R RT
## 1 s1 r1 0.7793124
## 2 s1 r2 0.5736594
## 3 s1 r2 0.6900489
## 4 s1 r2 2.3713993
## 5 s1 r1 1.5139890
## 6 s1 r2 0.5649499
Run the code above in your browser using DataLab