Имитация смешанной линейной модели и оценка ее с помощью lmerTest в R
Я пытаюсь понять, как использовать смешанные линейные модели для анализа моих данных путем имитации модели, но я не могу воспроизвести входные параметры. Что мне не хватает?
Я хочу начать моделирование модели со случайным перехватом для каждого предмета. Вот формула того, что я хочу смоделировать и воспроизвести:
Если бета1 (<11) мала, я нахожу gamma00 в качестве перехвата в фиксированной секции, но я полностью неспособен получить наклон (бета1). Кроме того, линейный эффект не является значительным. Где моя концептуальная ошибка?
library(lmerTest)
# Generating data set
# General values and variables
numObj <- 20
numSub <- 100
e <- rnorm(numObj * numSub, mean = 0, sd = 0.1)
x <- scale(runif(numObj * numSub, min = -100, max = 100))
y <- c()
index <- 1
# Coefficients
gamma00 <- 18
gamma01 <- 0.5
beta1 <- -100
w <- runif(numSub, min = -3, max = 3)
uo <- rnorm(numSub, mean = 0, sd = 0.1)
meanBeta0 <- mean(gamma00 + gamma01*w + uo) # I should be able to retrieve that parameter.
for(j in 1:numSub){
for(i in 1:numObj){
y[index] <- gamma00 + gamma01*w[j]+ uo[j] + beta1*x[i] + e[index]
index <- index + 1
}
}
dataFrame2 <- data.frame(y = y, x = x, subNo = factor(rep(1:numSub, each = numObj)), objNum = factor(rep(1:numObj, numSub)))
model2 <- lmer(y ~ x +
(1 | subNo), data = dataFrame2)
summary(model2)
anova(model2)
1 ответ
Здесь нет концептуальной ошибки, просто перепутано значение индекса: вы должны использовать index
скорее, чем i
индексировать x
в вашем цикле генерации данных.
В основном из-за путаницы вы использовали первый предмет x
значения для создания данных для всех субъектов, но с использованием индивидуального x
значения в модели.