Имитация смешанной линейной модели и оценка ее с помощью 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 значения в модели.

Другие вопросы по тегам