使用rstatix包构建ANOVA模型时如何指定不与因子交互的协变量
问题原因
调用rstatix::anova_test()时如果传入covariate参数,函数默认会构建包含所有协变量×被试内因子交互项的饱和模型,这就是RUN1结果中出现CV1:Date这类交互项的原因。
RUN2、RUN3写法未生效的核心原因是:只要同时指定了within、covariate两个快捷参数,函数就会自动按默认规则构建模型,直接覆盖手动传入的formula设置,不会按你写的无交互公式拟合。
正确实现方法
要拟合协变量仅作为主效应、不与被试内因子Date产生交互的重复测量ANCOVA,不要同时传入within和covariate参数,直接把完整的自定义公式传给formula参数,仅保留wid参数指定被试ID即可,代码如下:
# 加载依赖包 library(tidyverse) library(rstatix) # 拟合仅包含协变量主效应、无协变量×Date交互项的重复测量ANCOVA res.aov <- anova_test( data = MyData, dv = MeanValue, wid = ID, # 直接指定完整公式:协变量仅纳入主效应,不设置交互项,保留重复测量误差结构 formula = MeanValue ~ CV1 + CV2 + CV4 + CV5 + Date + Error(ID/Date) ) # 提取方差分析表 get_anova_table(res.aov)
运行上述代码输出的结果中,只会保留各协变量的主效应、Date的主效应,不会再出现你不需要的协变量与时间点的交互项。
注意事项
- 该写法对应标准重复测量ANCOVA的核心前提:协变量与被试内因子无交互作用(即回归斜率同质性假设成立),完全匹配你提到的「性别等不随测量时间变化的协变量不会和时间点产生交互」的理论设定。
- 如果需要验证斜率同质性假设是否成立,可以单独运行最初的RUN1代码拟合饱和模型,若协变量与
Date的交互项均不显著,就可以放心使用上述无交互模型的结果。
内容的提问来源于stack exchange,提问作者JoeyyyFunk
相关产品推荐
相关产品推荐

