我想使用 pvals.fnc() 来获取 lmer() 模型的 p 值,但不能摆脱随机因素之间的相关性

机器算法验证 r 假设检验 混合模式 p 值 lme4-nlme
2022-04-06 04:45:13

我的问题可以很简单地概括为:我正在使用线性混合效应模型,并且我正在尝试使用pvals.fnc(). 问题是这个函数似乎很难直接从与模型系数相关的 t 值估计 p 值(Baayen 等人,2008 年),而且我不知道我这样做的方式出了什么问题(即根据我所阅读的内容,它应该可以工作)。所以,我在下面解释我的模型,如果你能指出我做错了什么并提出修改建议,我将不胜感激!

描述:我有一个 2×2 的学科设计,完全跨越两个分类因素,“克”和“数字”,每个都有两个级别。这是我用来运行模型的命令:

>m <- lmer(RT ~ Gram*Number + (1|Subject) + (0+Gram+Number|Subject) + (1|Item),data= data)

如果我理解这段代码,我将获得两个固定效应(克和数字)及其交互作用的系数,并且我正在拟合一个模型,该模型具有两个固定效应的按主题截距和斜率,以及逐项截距为他们。继 Barr 等人之后。(2013),我认为这段代码摆脱了相关参数。我不想估计相关性,因为我想使用 pvals.fnc () 获取 p 值,并且我读到如果模型中存在相关性,此函数将不起作用。

该命令似乎有效:

>m
Linear mixed model fit by REML 
Formula: RT ~ Gram * Number + (1 | Subject) + (0 + Gram + Number | Subject) + (1 |Item) 
   Data: mverb[mverb$Region == "06v1", ] 
   AIC   BIC logLik deviance REMLdev
 20134 20204 -10054    20138   20108
Random effects:
 Groups      Name        Variance  Std.Dev. Corr          
 Item       (Intercept)   273.508  16.5381               
 Subject     Gramgram        0.000   0.0000               
             Gramungram   3717.213  60.9689    NaN        
             Number1        59.361   7.7046    NaN -1.000 
 Subject     (Intercept) 14075.240 118.6391               
 Residual                35758.311 189.0987               
Number of obs: 1502, groups: Item, 48; Subject, 32

Fixed effects:
             Estimate Std. Error  t value
(Intercept)    402.520     22.321  18.033
Gram1          -57.788     14.545  -3.973
Number1         -4.191      9.858  -0.425
Gram1:Number1   15.693     19.527   0.804

Correlation of Fixed Effects:
            (Intr) Gram1  Numbr1
Gram1       -0.181              
Number1     -0.034  0.104       
Gram1:Nmbr1  0.000 -0.002 -0.011

但是,当我尝试计算 p 值时,我仍然收到一条错误消息:

>pvals.fnc(m, withMCMC=T)$fixed
Error in pvals.fnc(m, withMCMC = T) : 
MCMC sampling is not implemented in recent versions of lme4
  for models with random correlation parameters

当我指定我的模型时,我犯了错误吗?pvals.fnc()如果我删除了相关性,不应该工作吗?

2个回答

斜体代表更正的文本

鉴于您所说的,您在模型规范中犯了“错误”。

Random effects:
 Groups      Name        Variance  Std.Dev. Corr          
 Item       (Intercept)   273.508  16.5381               
 Subject     Gramgram        0.000   0.0000               
             Gramungram   3717.213  60.9689    NaN        
             Number1        59.361   7.7046    NaN -1.000 

您看到 Corr for Subject 下的数字了吗?这表明您正在按学科估计 Gramgungram 和 Gramgram、Number1 和 Gramgram以及Number1 和 Gramungram 的随机斜率之间的相关性。如果 Gram 是numeric,您可以使用以下指定的模型消除 Gram 和 Number1 之间的随机相关性:

m <- lmer(RT ~ Gram*Number + (1|Subject) + (0+Gram|Subject) (0+Number|Subject) + (1|Item),data= data)

您会注意到,在同一组括号中指定的任何随机效应都会产生随机效应相关性。至少对于没有 / 符号的模型来说是这样,我对 lmer 的概念并不熟悉。

但是,鉴于我们从您估计此参数的模型中看到的情况,我建议您谨慎行事。此外,您可能会注意到我上面的代码对您不起作用。

编辑

对于那些刚刚加入我们计划的人...对于这些示例,我将primingHeid像 OP 在评论中所做的那样引用这些示例,该数据集可以在languageR.

library(languageR)
library(lme4)
data(primingHeid)

为什么我的代码不起作用?它不起作用,因为 Gram 是一个因素。想一想……看看你的固定效果。如果一个因素有两个水平,你必须估计多少个参数来解释它的影响?二。当然,您估计的参数之一是截距。截距的解释将取决于您的因子是如何编码的。在治疗编码(R 中的默认值)中,截距表示所有变量都处于 1 级的情况的值(参见回归教科书了解其他对比的详细信息)。无论您的对比如何,都会为一个因子的两个水平估计两个参数。我认为正在发生的事情是,当您未能指定截距时,R 会保护您免受自己的伤害并继续估计两个参数。尝试summary(lm(RT ~ 0 + Condition,data=primingHeid))你会看到它继续前进并估计了两个参数。所以,回到 lmer 的上下文......如果你有一个具有两个级别的因子,R 将很乐意估计两个参数,然后在引擎盖下将它们全部关联起来。再次回到您的评论...估计lmer(RT ~ Condition +(0+Condition|Subject),data=primingHeid)并查看ranef该模型的值,您将再次看到这正是 R 所做的。

如果您想强制 R 停止该操作,则必须通过将 Condition 转换为数字来手动进行因子编码。当 Condition 处于您编码为 0 的级别时,您必须对 RT 的平均值做出的假设可能是站不住脚的(即 RT 实际上是 0)。我不会排除这样一种可能性,即通过仔细考虑,DV 的转换(以您设置为等于 0 的条件的平均值为中心?),以及良好的模型规范,您可能会在某个有意义的地方工作......但是,那将是一个完全不同的问题,我现在不能说话。

\编辑

我认为您可能应该退后一步,多考虑一下您的模型结构(这确实是 Barr 等人,2013 年的重要信息之一)。项目是否与克和数字交叉?每个主题的克数和克数的独特排列中有多少项目?

现在更普遍的问题...

非常尊重巴尔(这并不奇怪)。然而,在与拟合此类模型相关的问题上,他并不完全是主流。这不是一件坏事……但时间会证明他对这些模型的方法是否会成为下一件大事。如果您的数据能够容忍它,我毫不怀疑“保持最大”是很好的。但有时不会。他发表的涉及使用非收敛模型的反向选择过程有点出乎意料。然而,我现在不得不承认,我已经看过他的附录,我对这个想法的看法比我第一次阅读它时要少一些。尽管如此,我希望看到它得到更多的审查。

您会注意到 Barr 特别不将 pvals.fnc() 用于具有随机相关性的模型。所以,只浏览了他论文的已发表版本,我猜你只能在他的方法下使用它,如果你可以倒退到你没有任何论文的地步。

现在与其他统计专家一起参加我的培训,我不得不说,几乎所有这些担忧都是对 p 值拜物教的一种练习,这可能完全是错误的——特别是如果你认为这种嵌套决策水平产生的测试具有一个很难定义的定义

Luke (2016) 在 R 中评估线性混合效应模型的显着性报告说,最佳(当然是最保守的)检验是基于自由度(in )的 Kenward-Roger 近似的plmer值。对于大样本,基于似然比(通过)的panova()值同样好。