【问题标题】:LMEM: Chi-square = 0 , prob = 1 - what's wrong with my code?LMEM:卡方 = 0 ,概率 = 1 - 我的代码有什么问题?
【发布时间】:2017-04-03 10:10:32
【问题描述】:

我正在对一些数据运行 LMEM(线性混合效应模型),并将模型(成对)与 anova 函数进行比较。但是,在特定的数据子集上,我得到了无意义的结果。

这是我的完整模型:

m3_full <- lmer(totfix ~ psource + cond + psource:cond + 
  1 + cond | subj) + (1 + psource + cond | object), data, REML=FALSE)

这是我要与之比较的模型:(基本上放弃了主要影响之一)

m3_psource <- lmer (totfix ~ psource + cond + psource:cond - 
 psource + (1 + cond | subj) + (1 + psource + cond | object), 
  data, REML=FALSE)

运行anova() 函数(anova(m3_full, m3_psource) 返回 Chisq = 0, pr>(Chisq) = 1

我正在对其他几个 LMEM 做同样的事情,一切似乎都很好,只是这个特殊的响应值给了我奇怪的卡方值和概率值。任何人都知道为什么以及如何解决它?任何帮助将不胜感激!

【问题讨论】:

    标签: r anova lme4


    【解决方案1】:

    这并不是一个真正的混合模型特定问题:相反,它与 R 从公式构造模型矩阵的方式有关(并且可能与模型比较的逻辑有关)。

    让我们把范围缩小到之间的比较

    form1 <- ~ psource + cond + psource:cond
    

    form2 <- ~ psource + cond + psource:cond - psource
    

    (相当于~cond + psource:cond)。这两个公式给出了等效模型矩阵,即具有相同列数、跨越相同设计空间并给出相同整体拟合优度的模型矩阵。

    组成一个最小的数据集进行探索:

    dd <- expand.grid(psource=c("A","B"),cond=c("a","b"))
    

    每个公式都有哪些构造变量?

    colnames(model.matrix(form1,data=dd))
    ## [1] "(Intercept)"    "psourceB"       "condb"          "psourceB:condb"
    
    colnames(model.matrix(form2,data=dd))
    ## [1] "(Intercept)"    "condb"          "psourceB:conda" "psourceB:condb"
    

    我们得到相同数量的对比。

    这个问题有两种可能的反应。

    1. 有一种思想流派(以 Nelder、Venables 等为代表:例如,参见 Venables 的著名 (?) 但未发表的 exegeses on linear models,第 5 节或维基百科上的 principle of marginality)说在存在交互项的情况下尝试测试主效应是没有意义的,而这正是您正在尝试做的。

    2. 存在 偶尔 的情况(例如,在控制和影响之间的“之前”差异由于实验协议而已知为零的前后控制影响设计中),其中你真的想做这个比较。在这种情况下,您必须制作自己的虚拟变量并将它们添加到您的数据中,例如

    ## set up model matrix and drop intercept and "psourceB" column
    dummies <- model.matrix(form1,data=dd)[,-(1:2)]
    ## d='dummy': avoid colons in column names
    colnames(dummies) <- c("d_cond","d_source_by_cond")
    colnames(model.matrix(~d_cond+d_source_by_cond,data.frame(dd,dummies)))
    ## [1] "(Intercept)"      "d_cond"           "d_source_by_cond"
    

    这很麻烦。我猜测这很困难的原因是 R 和 S 在它之前的原始作者来自思想流派 #1,并且认为通常当人们试图这样做时这是一个错误;他们并没有让它变得不可能,但他们并没有竭尽全力让它变得容易。

    【讨论】:

    • 谢谢!当我比较来自同一数据集的不同响应变量的其他两个模型(没有一个主效应与完整一个)时,我没有遇到同样的问题(chisq 和概率是正常的)。当我取出任何主效应时,我得到 chisq=0 和 prob=1,当与只有随机效应的模型进行比较时,并且只针对响应变量“totfix”。我还应该补充一点,我已经对“psource”和“cond”因素进行了偏差编码(不知道这有多相关)。知道为什么会这样吗?不过,我会尝试虚拟编码,希望它能解决问题!
    • 嗯,不详细说明就不确定了。不过,您评论的第一句话有些令人惊讶……根据我的论点,应该仅取决于预测变量(数字与因子,主要与交互)。 如果你手动编码你的交互,或者基于数字输入变量,我认为它应该可以工作。 (但请记住上面第 1 点中概述的想法......)
    猜你喜欢
    • 2021-06-11
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 2011-07-28
    相关资源
    最近更新 更多