lmerTest ::: anova使用延迟加载数据集?

时间:2017-03-15 09:25:28

标签: r lme4 lmertest

在尝试获得K-R自由度的经验分布时遇到这个问题......

这似乎是相当危险的行为?它是否构成错误?

可重复的例子:

## 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 个答案:

答案 0 :(得分:0)

我的回答并不是一个可靠的答案,而是一个延伸的评论:
这看起来非常糟糕 - 事实上我今天发现,由于lmerTest的相关行为,我在一个提交边缘的项目中进行的几乎所有分析都必须重做。 我遇到的问题是当我使用一个适合模型lmer的短函数然后返回coef(summary(model)) - 简单的东西,两行代码。但是,此函数的输入名为data,我在工作区中也有一个名为data的数据框。似乎虽然在使用lmer进行拟合时,正确使用了函数作用域中的局部变量,但在summary期间使用了工作空间data变量(通常与传递的数据帧不同)导致无效的t值和自由度导致不正确的p值(估计值和它们的标准误差是正确的)。
所以,回答你的问题:

  

这似乎是相当危险的行为?它是否构成错误?

这确实很危险,我肯定会称这是一个错误。