为啥我的交互意义因模型而异?
Posted
技术标签:
【中文标题】为啥我的交互意义因模型而异?【英文标题】:Why is my interaction significance different depending on the model?为什么我的交互意义因模型而异? 【发布时间】:2022-01-13 18:17:55 【问题描述】:在这个最小的可重现示例中,有一个结果变量和两个预测变量(年龄和性别)。
outcome <- c(1, 2, 2, 3, 3, 4, 4, 4, 4, 5,
5, 5, 5, 5, 5, 6, 6, 7, 8, 9)
sex <- c("M","M","M","M","F","M","F","F","M","M",
"F","F","F","F","M","M","F","F","F","F")
age <- c("C","C","C","A","C","C","C","C","C","A",
"C","C","A","C","C","C","C","A","A","A")
dt <- data.frame(outcome = o, sex = as.factor(s), age = as.factor(a))
箱线图表明存在交互:
当我将交互作为模型的一部分进行检查时,我得到的统计显着性与我单独检查交互时不同。
anova(lm(outcome ~ sex + age + sex:age, dt))
anova(lm(outcome ~ sex:age, dt))
第一个给出交互项的 p 值为 0.187499,而第二个给出的 p 值为 0.007738。
有人能解释一下区别吗?
【问题讨论】:
【参考方案1】:测试进行了不同的比较。通常,anova()
中的测试将完整模型与未包含该术语的模型进行比较。 (编辑添加:尽管涉及交互时事情会更复杂;主效应测试就是一个例子。)在第一种情况下,完整的模型是
outcome ~ sex + age + sex:age
并忽略sex:age
给出
outcome ~ sex + age
主效应模型。因此,在这种情况下,您实际上是在测试交互,它并不重要:在图中,C
和 M
的值都低于另一个级别(分别为 A
和 F
)。
在第二种情况下,完整的模型是
outcome ~ sex:age
这里sex:age
是一个包含所有因子水平组合的 4 水平因子。离开它给了
outcome ~ 1
所以在这种情况下,测试是针对各组之间的任何类型的差异,显然有一些事情正在发生,所以结果很重要。
【讨论】:
让我看看我是否理解:在sex + age +sex:age 中,交互项本身并不显着,因为其他预测变量具有更强的影响,但sex:age 本身是显着的,因为它包括性别和年龄因素? 我会换一种说法,但你基本上是对的。我发现考虑正在测试的内容更有帮助:对四个组中的每一个具有单独效果的模型在这两种情况下都是完整模型,但比较模型是第一种情况下的主效应模型,并且是模型说在第二种情况下所有观察结果都是相同的。 谢谢,我已将其标记为正确。【参考方案2】:它们不同的原因是,在一个模型中您包含了主效应,而在另一个模型中您只包含了交互项。这将产生不同的 p 值。
这两个模型是一样的:
anova(lm(outcome ~ sex + age + sex:age, dt))
anova(lm(outcome ~ sex*age, dt))
注意模型中的*
符号表示它包括主效应和交互作用,而:
仅表示交互作用项。
【讨论】:
这是一个好的开始,但可以使用更多细节... 具有公式outcome ~ sex:age
的模型包括所有三个项,它们被视为一个 3 df 项,代表交互项的所有 4 个级别。与sex*age
或sex + age + sex:age
模型中的sex:age
不一样,它只代表与主效应无关的部分。
是的,我在问为什么与单独的交互相比,包含额外的项会给出不同的 p 值。谢谢。
我在回答中解释了这一点。以上是关于为啥我的交互意义因模型而异?的主要内容,如果未能解决你的问题,请参考以下文章
当您在情节提要中“因特性而异”时,为啥此自动布局扩展会失败?
为啥在 Tkinter 中计算的字符串的像素宽度和高度因平台而异?