lmerTest:::anova использует ленивую загрузку наборов данных?

Столкнулся с этой проблемой, пытаясь получить эмпирическое распределение степеней свободы КР...

Это кажется довольно опасным поведением? Это ошибка?

Воспроизводимый пример:

## import lmerTest package
library(lmerTest)

## an object of class merModLmerTest
m <- lmer(Informed.liking ~ Gender+Information+Product +(1|Consumer), data=ham)

# simulate data from fitted model
simData=ham
simData$Informed.liking=unlist(simulate(m))
# fit model to simulated data
m1 <- lmer(Informed.liking ~ Gender+Information+Product +(1|Consumer), data=simData)
stats:::anova(m1)
lmerTest:::anova(m1)

# simulate again, WITHOUT refitting
simData$Informed.liking=unlist(simulate(m))
stats:::anova(m1) # same as before
lmerTest:::anova(m1) # not same as before!

1 ответ

Мой ответ не представляет собой твердый ответ, а скорее расширенный комментарий:
это выглядит довольно плохо - фактически я обнаружил сегодня, что почти все анализы, которые я провел в проекте, который находился на грани представления, должны быть переделаны из-за связанного поведения lmerTest,
Проблема, с которой я столкнулся, заключалась в том, что я использовал короткую функцию, которая соответствует модели с lmer а затем возвращается coef(summary(model)) простые вещи, две строки кода. Однако вход для этой функции был назван data и у меня также был датафрейм под названием data в рабочей области. Кажется, что хотя во время подгонки с lmer локальная переменная из области действия функции была правильно использована во время summary рабочее пространство data Была использована переменная (которая часто отличалась от того, какой кадр данных передавался в функцию), что приводило к неверным значениям t и степеням свободы, приводящим к неверным значениям p (однако оценки и их стандартная ошибка были в порядке).
Итак, отвечая на ваш вопрос:

Это кажется довольно опасным поведением? Это ошибка?

Это действительно опасно, и я бы определенно назвал это ошибкой.

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