lmer 中被试间因素的自由度错误
Wrong degree of freedom for between-subject factor in lmer
我正在测试视觉视角(1,完全是第一人称 -> 11,完全是第三人称)如何随着文化(AA、EA)、效价(正面、负面)和事件类型(记忆)的变化而变化,想象力)同时控制年龄(连续)、性别(男、女)和社会经济地位(连续)并允许个体差异。
这是一个不平衡的设计,因为我们给参与者 10 个提示,但参与者可以选择回忆或想象相关事件。因此,每个参与者可以有多少个记忆(不超过10个)和多少个想象(不超过10个)。我们总共有 363 名参与者。
我的数据集如下所示:
我拟合的模型看起来像
VP.full.lm <- lmer(Visual.Perspective ~ Culture * Event.Type * Valence +
Sex + Age + SES +
(1|Participant.Number),
data=VP_Long)
当我运行anova()
函数查看所有变量的效果时,这里是输出:
Type III Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
Culture 30.73 30.73 1 859.1 4.9732 0.0260008 *
Valence 6.38 6.38 1 3360.3 1.0322 0.3097185
Event.Type 1088.61 1088.61 1 3385.9 176.1759 < 2.2e-16 ***
Sex 45.12 45.12 1 358.1 7.3014 0.0072181 **
Age 7.95 7.95 1 358.1 1.2869 0.2573719
SES 6.06 6.06 1 358.7 0.9807 0.3226824
Culture:Valence 6.39 6.39 1 3364.6 1.0348 0.3091004
Culture:Event.Type 71.53 71.53 1 3389.7 11.5766 0.0006756 ***
Valence:Event.Type 2.89 2.89 1 3385.4 0.4682 0.4938573
Culture:Valence:Event.Type 3.47 3.47 1 3390.6 0.5617 0.4536399
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
如您所见,文化影响的 DF 已关闭 -- 由于文化是主体间因素,因此其 DF 不能大于我们的样本量。我已经尝试使用 ddf = Roger-Kenward
并使用 emmeans::test(contrast(emmeans(VP.full.lm,c("Culture")), "trt.vs.ctrl"), joint = T)
测试了文化的效果,但是 none 这些方法解决了自由度问题。
我还想到,也许那些没有同时提供记忆和想象的参与者混淆了 lmer 模型,所以我将我的数据子集化为只包括提供两种类型事件的参与者。然而,自由度问题仍然存在。还值得一提的是,一旦我去除了 Culture 和 Event.Type 之间的交互,自由度就变得合理了。
我想知道是否有人知道这里发生了什么,我们该如何解决这个问题?或者我们有什么办法可以解释这个奇怪的问题...?
提前致谢!
这个问题可能更适合 CrossValidated ...
不是一个完整的解决方案,但有一些想法:
- 从实用的角度来看,363(甚至 350)分母 df 和 859 ddf 之间的差异非常小:基于 4.9732 的 F 统计量的手动 p 值计算得出
pf(4.9732,1,350,lower.tail=FALSE)
=0.0264,与您的值 0.260 几乎没有区别。
- 由于您正在拟合一个简单模型(LMM 而不是 GLMM,只有一个简单的随机效应等),您可以在
lme
中重新拟合您的模型(来自 nlme
package): 它使用更简单的 df 计算,在这种情况下可能会给你 'right' 答案。或者,您可以从 here 获取代码,该代码实现了 lme
. 算法的(稍微扩展的)版本
- 因为你在做 III 型方差分析,你应该非常小心模型中的 parameterization/contrasts:如果你没有使用居中(总和为零)对比,你的结果可能不是你想的那样(
afex::mixed()
函数会做一些检查以确保这是真的)。可以想象(虽然我对此表示怀疑)对比也会抛出你的 ddf 计算。
- 不清楚你是如何衡量的"visual perspective",但如果它是评级量表,你可能最好使用有序响应模型...
我正在测试视觉视角(1,完全是第一人称 -> 11,完全是第三人称)如何随着文化(AA、EA)、效价(正面、负面)和事件类型(记忆)的变化而变化,想象力)同时控制年龄(连续)、性别(男、女)和社会经济地位(连续)并允许个体差异。
这是一个不平衡的设计,因为我们给参与者 10 个提示,但参与者可以选择回忆或想象相关事件。因此,每个参与者可以有多少个记忆(不超过10个)和多少个想象(不超过10个)。我们总共有 363 名参与者。
我的数据集如下所示:
我拟合的模型看起来像
VP.full.lm <- lmer(Visual.Perspective ~ Culture * Event.Type * Valence +
Sex + Age + SES +
(1|Participant.Number),
data=VP_Long)
当我运行anova()
函数查看所有变量的效果时,这里是输出:
Type III Analysis of Variance Table with Satterthwaite's method
Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
Culture 30.73 30.73 1 859.1 4.9732 0.0260008 *
Valence 6.38 6.38 1 3360.3 1.0322 0.3097185
Event.Type 1088.61 1088.61 1 3385.9 176.1759 < 2.2e-16 ***
Sex 45.12 45.12 1 358.1 7.3014 0.0072181 **
Age 7.95 7.95 1 358.1 1.2869 0.2573719
SES 6.06 6.06 1 358.7 0.9807 0.3226824
Culture:Valence 6.39 6.39 1 3364.6 1.0348 0.3091004
Culture:Event.Type 71.53 71.53 1 3389.7 11.5766 0.0006756 ***
Valence:Event.Type 2.89 2.89 1 3385.4 0.4682 0.4938573
Culture:Valence:Event.Type 3.47 3.47 1 3390.6 0.5617 0.4536399
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
如您所见,文化影响的 DF 已关闭 -- 由于文化是主体间因素,因此其 DF 不能大于我们的样本量。我已经尝试使用 ddf = Roger-Kenward
并使用 emmeans::test(contrast(emmeans(VP.full.lm,c("Culture")), "trt.vs.ctrl"), joint = T)
测试了文化的效果,但是 none 这些方法解决了自由度问题。
我还想到,也许那些没有同时提供记忆和想象的参与者混淆了 lmer 模型,所以我将我的数据子集化为只包括提供两种类型事件的参与者。然而,自由度问题仍然存在。还值得一提的是,一旦我去除了 Culture 和 Event.Type 之间的交互,自由度就变得合理了。
我想知道是否有人知道这里发生了什么,我们该如何解决这个问题?或者我们有什么办法可以解释这个奇怪的问题...?
提前致谢!
这个问题可能更适合 CrossValidated ...
不是一个完整的解决方案,但有一些想法:
- 从实用的角度来看,363(甚至 350)分母 df 和 859 ddf 之间的差异非常小:基于 4.9732 的 F 统计量的手动 p 值计算得出
pf(4.9732,1,350,lower.tail=FALSE)
=0.0264,与您的值 0.260 几乎没有区别。 - 由于您正在拟合一个简单模型(LMM 而不是 GLMM,只有一个简单的随机效应等),您可以在
lme
中重新拟合您的模型(来自nlme
package): 它使用更简单的 df 计算,在这种情况下可能会给你 'right' 答案。或者,您可以从 here 获取代码,该代码实现了lme
. 算法的(稍微扩展的)版本
- 因为你在做 III 型方差分析,你应该非常小心模型中的 parameterization/contrasts:如果你没有使用居中(总和为零)对比,你的结果可能不是你想的那样(
afex::mixed()
函数会做一些检查以确保这是真的)。可以想象(虽然我对此表示怀疑)对比也会抛出你的 ddf 计算。 - 不清楚你是如何衡量的"visual perspective",但如果它是评级量表,你可能最好使用有序响应模型...