如何测试随机效应是否显着?


34

我试图了解何时使用随机效果以及何时不必要。有人告诉我一个经验法则,就是我是否有4个或更多的小组/个人(15个驼鹿)。其中的一些麋鹿经过2到3次实验,共进行了29次试验。我想知道当它们处于较高风险环境时,它们的行为是否有所不同。因此,我认为我会将个人设为随机效果。但是,现在我被告知,没有必要将个人作为随机效应包括在内,因为他们的反应变化不大。我无法弄清楚的是,在将个人设为随机效果时,如何测试是否确实需要考虑某些因素。也许最初的问题是:如果个人是一个很好的解释变量,并且应该是固定的效果-qq图,我可以做哪些测试/诊断?直方图?散点图?我会在这些模式中寻找什么。

我使用个体作为随机效果运行模型,不使用个体运行,但是随后我阅读了http://glmm.wikidot.com/faq,其中指出:

不要将lmer模型与相应的lm拟合或glmer / glm进行比较;对数似然不相称(即,它们包括不同的加法项)

在这里,我认为这意味着您无法在具有或没有随机效应的模型之间进行比较。但是我真的不知道该如何比较它们。

在具有随机效应的模型中,我还试图查看输出以查看RE具有什么样的证据或意义。

lmer(Velocity ~ D.CPC.min + FD.CPC + (1|ID), REML = FALSE, family = gaussian, data = tv)

Linear mixed model fit by maximum likelihood 
Formula: Velocity ~ D.CPC.min + FD.CPC + (1 | ID) 
   Data: tv 
    AIC    BIC logLik deviance REMLdev
 -13.92 -7.087  11.96   -23.92   15.39
Random effects:
 Groups   Name        Variance Std.Dev.
 ID       (Intercept) 0.00000  0.00000 
 Residual             0.02566  0.16019 
Number of obs: 29, groups: ID, 15

Fixed effects:
              Estimate Std. Error t value
(Intercept)  3.287e-01  5.070e-02   6.483
D.CPC.min   -1.539e-03  3.546e-04  -4.341
FD.CPC       1.153e-04  1.789e-05   6.446

Correlation of Fixed Effects:
          (Intr) D.CPC.
D.CPC.min -0.010       
FD.CPC    -0.724 -0.437

您会看到我的方差和SD来自各个ID的随机效应=0。这怎么可能?0是什么意思?那正确吗?那么我的朋友说“因为没有使用ID的变化,因为不需要随机效应”是正确的吗?那么,我会把它用作固定效果吗?但是,事实是变化很小就意味着它不会告诉我们太多吗?


关于获得随机效应的精确0方差,请参见stats.stackexchange.com/questions/115090
变形虫说恢复莫妮卡

Answers:


21

估计值ID的方差= 0,表示组间差异水平不足以保证在模型中纳入随机效应;即。您的模型退化了。

当您正确识别自己的身份时:很可能是的;ID因为随机效果是不必要的。几乎没有什么东西可以检验这个假设:

  1. 您可以比较(REML = F始终使用)模型在具有和不具有随机效应的模型之间的AIC(或您通常喜欢的IC),并观察其运行情况。
  2. 您将查看anova()两个模型的输出。
  3. 您可以使用原始模型定义的后验分布进行参数引导。

请注意,选择1和2有一个问题:您正在检查是否存在于参数空间的边界上,因此实际上它们在技术上并不合理。话虽如此,我认为您不会从中得到错误的见解,而很多人会使用它们(例如,lme4的开发人员之一道格拉斯·贝茨(Douglas Bates)在他的书中使用了它们,但明确指出了有关要测试的参数值的警告)在一组可能值的边界上)。选择3是3中最乏味的选择,但实际上可以为您提供有关发生情况的最佳想法。有些人也很想使用非参数引导程序,但我认为鉴于您在开始进行参数假设时不妨使用它们。


6
RLRsim软件包是使用基于仿真的似然比测试来测试随机效果的一种非常便捷的方法。
atrichornis 2013年

@atrichornis:+1。有趣的包装;我不知道。我只是看了一下它的代码,我可能会说得很简单。我希望他们将它(或类似的东西)结合到lme4现在特别是现在mcmcsamp()已经坏掉的情况中,并且人们只剩下他们自己的临时自举实现来获得一些不错的p值等。
usεr11852恢复单胞菌说,

确实,混合模型在R中不是简单明了。很多近似和替代方法...尽管我收集了SAS等,只是掩盖了某些相同的不确定性?Ben Bolker是这两个软件包的合著者,他可能有理由不合并。大概时间!
atrichornis

4
参数空间边界上的引导程序具有其自身的一系列问题,这些问题导致不一致。引导程序不是万能药,如果能够解决所有问题,则不要将其轻易丢入包中。
StasK 2013年

2
看看,论点很微妙。据我所知,可以归结为您正在从不同于null的发行版中进行引导。并且考虑到在边界上获得的非标准分布,违反了规则性条件,并且自举分布不会收敛到目标。我认为仍然可以通过去除残差的组均值来构造非参数引导程序。但是,由于违反了各组之间观察的独立性,可能会引起另一层并发症。
StasK 2013年

3

我不确定我要建议的方法是否合理,因此如果我错了,那些对这一主题了解更多的人会纠正我。

我的建议是在数据中创建一个附加列,其常数值为1:

IDconst <- factor(rep(1, each = length(tv$Velocity)))

然后,您可以创建一个使用此列作为随机效果的模型:

fm1 <- lmer(Velocity ~ D.CPC.min + FD.CPC + (1|IDconst), 
  REML = FALSE, family = gaussian, data = tv)

此时,您可以将(AIC)具有随机效果的原始模型ID(称为fm0)与未考虑到的新模型进行比较,ID因为IDconst所有数据都相同。

anova(fm0,fm1)

更新资料

user11852要求提供示例,因为他/她认为上述方法甚至无法执行。相反,我可以证明该方法有效(至少与lme4_0.999999-0我当前正在使用的方法一样)。

set.seed(101)
dataset <- expand.grid(id = factor(seq_len(10)), fac1 = factor(c("A", "B"),
  levels = c("A", "B")), trial = seq_len(10))
dataset$value <- rnorm(nrow(dataset), sd = 0.5) +
      with(dataset, rnorm(length(levels(id)), sd = 0.5)[id] +
      ifelse(fac1 == "B", 1.0, 0)) + rnorm(1,.5)
    dataset$idconst <- factor(rep(1, each = length(dataset$value)))

library(lme4)
fm0 <- lmer(value~fac1+(1|id), data = dataset)
fm1 <- lmer(value~fac1+(1|idconst), data = dataset)

anova(fm1,fm0)

输出:

  Data: dataset
  Models:
  fm1: value ~ fac1 + (1 | idconst)
  fm0: value ~ fac1 + (1 | id)

      Df    AIC    BIC  logLik  Chisq Chi Df Pr(>Chisq)
  fm1  4 370.72 383.92 -181.36                      
  fm0  4 309.79 322.98 -150.89 60.936      0  < 2.2e-16 ***

根据最后一个测试,由于fm0模型具有最低的AIC和BIC ,因此我们应保持随机效应。

更新2

顺便说一下,NW Galwey在第213-214页的“混合建模简介:超越回归和方差分析”中提出了相同的方法。


你测试过你的想法了吗?请证明我错了,但我认为您的想法甚至无法执行。如果IDconst所有数据都相同,那么您将没有任何分组。您需要一个分组因子,以至少拥有一个抽样水平,而建立模型的方式则没有任何抽样水平。我也许可以相信使用“随机分组”的理由,但是那是完全不同的局面。用一些虚拟数据测试您的方法。我坚信建议的设置lmer()将无法运行。(我用的lme4_0.99999911-1
usεr11852恢复单胞菌说,

@ user11852,请查看我的更新,并告诉我们这种方法是否也适用lme4_0.99999911-1
VLC 2013年


3
是的,我按照您的建议做了;它不会工作/计算。Error in lFormula(formula = value ~ fac1 + (1 | idconst), data = dataset) : grouping factors must have at least 1 sampled level。正如我所说,从概念上讲这是错误的。欺骗软件以给出一些数字不是问题,而是您所说的合理吗?您没有第二个混合模型可以与该模型中的随机效应通过构造一个常数进行比较。您最好将其排除,然后尝试使用线性模型。
usεr11852恢复单胞菌说,

1
更新协调一致以在中定义单个组随机变量lme4。如果您设置以下选项,则可以完成此操作control=lmerControl(check.nlev.gtr.1="ignore")。Ben Bolker在这里提到了它:github.com/lme4/lme4/issues/411
罗宾·博蒙特

1

我想回答更“初始”的问题。

如果您怀疑由于某些因素而导致因变量之间存在某种形式的异质性,则应继续使用散点图和箱形图绘制数据。一些常见的模式需要检查,我将此列表从网上的各种来源下面列出。

异方差模式

此外,按因子/治疗组绘制因变量,以查看是否存在恒定方差。如果没有,您可能想探索随机效应或加权回归。例如。下图是我的治疗组中漏斗状变化的示例。因此,我选择采用随机效果并测试对斜率和截距的影响。

箱图检查异方差

从这里开始,上面的答案满足了您的主要问题。也有检查异方差的测试,这里是一个测试-https: //dergipark.org.tr/download/article-file/94971。但是我不确定是否存在任何检测组级异方差性的测试。


请仅使用“您的答案”字段来提供OP的问题的答案。简历是一个严格的问答网站,而不是讨论论坛。您帖子的后一个粗体部分是一个新问题,而不是该问题的答案。如果您有新问题,请单击ASK QUESTION顶部的灰色并在此处提问。由于您是新来的,您可能想参加我们的游览,其中包含有关新用户的信息。
gung-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.