set.seed(53)

## generate some faked up dependent variables
nTrials <- 100
nSubjects <- 100
trials <- 1:nTrials
trial <- rep(trials, nSubjects)
## 100 subjects
subjects <- 1:nSubjects
subject <- rep(subjects, rep(nTrials, nSubjects))
## each with an iq score
iqs <- rnorm(nSubjects, mean=100, sd=15)
iq <- rep(iqs, rep(nTrials, nSubjects))
## and with a random baseline
baselines.rand <- as.numeric(scale(rnorm(nSubjects, mean=0, sd=20), scale=F))
baseline.rand <- rep(baselines.rand, rep(nTrials, nSubjects))
## or a baseline that varies with IQ
baselines.corr <- as.numeric(scale(rnorm(nSubjects, mean=0, sd=20) - iqs, scale=F))
baseline.corr <- rep(baselines.corr, rep(nTrials, nSubjects))
## and a categorical variable
conditions <- rep(c(0, 1), 50)
condition <- rep(conditions, rep(100, 100))
## and some random noise
noise <- rnorm(nTrials * nSubjects, mean=0, sd=5)


## independent variables are a function of the dependent variables
log.RT.1 <-
  ## speed up over trials
  -.5 * log(trial) +
  ## higher IQ is faster
  -.1 * iq +
  ## second condition is slower
  10 * condition + 
  ## baseline for each subject
  baseline.rand +
  ## random noise
  noise

log.RT.2 <-
  ## speed up over trials
  -.5 * log(trial) +
  ## higher IQ is faster
  -.1 * iq +
  ## second condition is slower
  10 * condition + 
  ## baseline for each subject
  baseline.corr +
  ## random noise
  noise

d <- data.frame(subject, trial, iq, condition, log.RT.1, log.RT.2, baseline.rand, baseline.corr, noise)

## library(lattice)
## histogram(~ log.RT.1 | subject)
## histogram(~ log.RT.2 | subject)

library(lme4)
lm.1 <- lm(log.RT.1 ~ iq + condition + log(trial), data = d)
lm.2 <- lm(log.RT.2 ~ iq + condition + log(trial), data = d)
lmer.1 <- lmer(log.RT.1 ~ iq + condition + log(trial) + (1 | subject), data = d)
lmer.2 <- lmer(log.RT.2 ~ iq + condition + log(trial) + (1 | subject), data = d)
