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

如何在Python中进行单组内+单组间因素的ANOVA分析?

模型因素输入验证与优化建议

你的模型公式设定是完全正确的,完美匹配了混合设计ANOVA的要求:

  • C(drug):对应组间主效应(药物/安慰剂两组的整体RMSSD差异),自由度1符合两组的设定,结果中p=0.0059提示该效应显著
  • C(segname):对应组内主效应(给药前后的整体RMSSD变化),自由度1符合两个时间点的设定,p=0.19提示无显著整体变化
  • C(drug):C(segname):对应交互效应(两组在时间点上的变化趋势是否不同),自由度1符合两因素交互的设定,p=0.98提示两组的时间变化完全一致

注意事项:OLS模型的局限性

你的研究设计是重复测量(同一受试者有给药前后两个数据点),但OLS模型默认所有观测独立,没有考虑同一受试者两次测量的相关性,可能导致标准误估计偏差。更严谨的做法是使用混合效应模型(随机效应模型)来控制受试者个体差异:

import statsmodels.api as sm
from statsmodels.regression.mixed_linear_model import MixedLM

# 假设数据中存在标识受试者的列名为subject_id
model = MixedLM.from_formula(
    'RMSSD ~ C(drug) + C(segname) + C(drug):C(segname)',
    data=df,
    groups=df['subject_id']
)
result = model.fit()
# 查看模型结果
print(result.summary())
# 生成ANOVA表
print(sm.stats.anova_lm(result, typ=2))

混合效应模型会把受试者的个体差异作为随机效应纳入,更符合重复测量设计的统计假设,能得到更可靠的效应检验结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:45:44