You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R的aov()函数完成重复测量析因ANOVA后,如何获取偏η²

获取重复测量析因ANOVA的偏η²(Partial eta squared)方法

R基础包的aov()函数默认不会输出偏η²,以下是几种可靠的获取方式:

1. 使用ez包的ezANOVA()

ez包专门针对重复测量设计,可直接输出偏η²:

  • 先安装加载包:
install.packages("ez")
library(ez)
  • 示例代码(假设数据为长格式,包含被试IDsubject、两个重复测量因子factor1/factor2、因变量dv):
anova_result <- ezANOVA(
    data = your_data,
    dv = .(dv),
    wid = .(subject),
    within = .(factor1, factor2),
    type = 3,  # 重复测量推荐使用III型平方和
    detailed = TRUE
)
  • 查看结果时,anova_result$ANOVA中的p2列就是偏η²。

2. 使用afex包的aov_car()

afex包简化了复杂ANOVA的操作,支持直接指定输出效应量:

  • 安装加载包:
install.packages("afex")
library(afex)
  • 拟合模型并输出偏η²:
fit <- aov_car(
    dv ~ factor1*factor2 + Error(subject/(factor1*factor2)),
    data = your_data
)
anova(fit, es = "pes")  # "pes"即partial eta squared
  • 输出表格中的pes列即为所求统计量。

3. 手动计算(无需额外包)

如果不想安装新包,可从aov()的结果中提取平方和自行计算,公式为:

偏η² = SS效应 / (SS效应 + SS误差)

示例代码:

# 先拟合重复测量ANOVA
fit <- aov(dv ~ factor1*factor2 + Error(subject/(factor1*factor2)), data = your_data)
# 提取效应和误差的平方和(需根据你的模型结构调整索引)
sum_table <- summary(fit)[[2]]  # 假设重复测量的效应/误差在第二个汇总表中
ss_effect <- sum_table[1, 2]  # 第一个效应的平方和
ss_error <- sum_table[2, 2]   # 对应误差项的平方和
# 计算偏η²
partial_eta_sq <- ss_effect / (ss_effect + ss_error)

注意:不同模型结构下,summary(fit)的列表元素位置可能不同,需要自行确认效应和误差项的位置。

内容的提问来源于stack exchange,提问作者Paul D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 22:44:51