各位做数据分析的朋友应该都有这样的体会:在医学、心理学、体育科学或者教育研究中,我们经常遇到“同一批被试,在多个时间点重复测量同一指标”的数据。比如测量患者治疗前、治疗中、治疗后三个时点的血压,或者记录学生学期初、期中、期末三次测验的成绩。这种数据如果直接拿来用独立样本 t 检验或普通方差分析去处理,既浪费信息,又可能得出错误结论。正确的统计方法,就是 SPSS 重复测量分析。
本文将系统讲解重复测量方差分析(Repeated Measures ANOVA)的基本原理、适用场景,以及在 SPSS 中的完整操作流程。内容涵盖数据准备、操作步骤、结果解读、常见错误排查,并附带 SPSS 语法和 Python 等价实现思路,方便不同基础的朋友对照学习。
无论你是刚开始接触 SPSS 的本科生,还是已有一定数据分析基础的科研人员,只要遇到过“同一对象多次测量”的数据,这篇文章都能直接帮你解决实操问题。
1. 重复测量分析是什么,为什么不能用普通方差分析
1.1 什么是重复测量数据
重复测量数据指对同一批观测对象(受试者、被试、样本)在多个不同条件或时间点下进行多次测量得到的数据。典型特征包括:
- 每个受试者有多个观测值,而不是一个。
- 观测值之间不独立,同一个人在不同时点的数据存在相关性。
- 数据形态通常表现为“宽格式”:一行是一个受试者,多列是对应不同时点的测量值。
例如下面的数据表就是一个标准的重复测量数据结构:
| 编号 | 干预前 | 干预后1周 | 干预后4周 | 干预后8周 |
|---|---|---|---|---|
| 1 | 120 | 118 | 112 | 108 |
| 2 | 128 | 126 | 120 | 115 |
| 3 | 135 | 130 | 122 | 118 |
每一行代表一个受试者,四列代表四个测量时点。这属于单因素重复测量设计,因为只有一个“时间”因素,且每个受试者都被测量了四次。
1.2 为什么不能用普通单因素方差分析
普通单因素方差分析(One-Way ANOVA)有一个重要前提:各观测值相互独立。但在重复测量数据中,同一受试者的多个测量值显然不是独立的——比如一个人基础血压偏高,他在后续各时点的血压往往也偏高。如果忽略这种相关性,把四个时点的数据当成四组独立样本,就会产生两个问题:
第一,误差项被高估或低估,导致 F 检验的 p 值不准确。实际上,由于组内相关性的存在,普通 ANOVA 的自由度和误差分解都是错误的。
第二,组间差异的检验灵敏度下降。重复测量设计之所以被试内设计(within-subjects design),是因为它通过“用自己的基线做对照”排除了个体差异的影响,能更敏感地检测出时间效应。如果放弃这种配对关系,就等于放弃了实验设计最大的优势。
1.3 重复测量方差分析的原理
重复测量方差分析的核心思想,是将总变异拆分为:
- 受试者间变异(between-subjects):不同个体之间的差异,也就是个体差异部分。
- 受试者内变异(within-subjects):同一个人在不同时点之间的变化。
- 受试者内变异又进一步拆分为“时间因素造成的变异”和“误差变异”。
与普通方差分析相比,它最大的区别在于误差项的处理。重复测量 ANOVA 使用“时间 × 受试者”的交互作为误差项来检验时间效应,这样能排除个体差异对误差的影响。
在 SPSS 中,重复测量分析默认使用一般线性模型(GLM)的 Repeated Measures 过程来完成,也就是菜单中的“分析 → 一般线性模型 → 重复测量”。
1.4 常见应用场景
- 医学研究:比较患者在不同治疗阶段的生理指标变化,如血压、心率、血糖。
- 心理学实验:考察被试在不同实验条件下的反应时、正确率。
- 教育评估:比较学生在不同教学阶段的学习成绩。
- 运动科学:测量运动员在不同训练周期的体能指标。
- 流行病学随访:追踪人群健康指标在多个随访时点的变化趋势。
2. 环境准备与数据格式说明
2.1 SPSS 版本说明
本文操作步骤以 SPSS 26.0 窗口界面为例,SPSS 20.0 及以上版本的菜单路径基本一致。如果你使用的是更高版本(如 SPSS 27、28),界面略有变化但核心操作逻辑相同。如果使用的是中文版界面,请对应菜单名称直接对照即可。
2.2 数据格式准备
SPSS 重复测量分析要求数据为“宽格式”,也就是每一行是一个受试者,每一列是一个测量时点。
我们用一个具体的医学案例来演示。假设要研究某种降压药对高血压患者的疗效,选取了 15 名患者,分别在治疗前、治疗 4 周后、治疗 8 周后、治疗 12 周后测量收缩压。另外,患者被分为两个组:A 组使用试验药物,B 组使用安慰剂。这样我们的数据就包含了一个组间因素(group)和一个组内因素(time)。
数据结构设计如下:
| 变量名 | 变量含义 | 取值说明 |
|---|---|---|
| id | 患者编号 | 1-15 |
| group | 分组 | 1=试验药组,2=安慰剂组 |
| time0 | 治疗前收缩压 | mmHg |
| time4 | 治疗4周后收缩压 | mmHg |
| time8 | 治疗8周后收缩压 | mmHg |
| time12 | 治疗12周后收缩压 | mmHg |
在 SPSS 数据视图中输入数据后,应大致如下:
id group time0 time4 time8 time12 1 1 145 138 130 126 2 1 152 140 132 128 3 1 148 135 128 122 ... 8 2 147 145 143 146 9 2 150 148 145 144 ...需要特别提醒:不要把数据录成“长格式”(即一列表示时点,一列表示测量值,每个受试者占多行)。SPSS 的“重复测量”过程默认读取宽格式数据。虽然长格式在 Python、R 中更常见,但在 SPSS 里需要先用“数据重构”功能转换,这里我们先按宽格式来操作。
2.3 案例设计说明
本例中:
- 组内因素:时间(time),共 4 个水平。
- 组间因素:分组(group),共 2 个水平。
- 因变量:收缩压(SBP)。
这是一个典型的“两因素混合设计”:一个组间变量 + 一个组内变量。SPSS 重复测量过程完全支持这种设计。如果只有一个组间因素或没有组间因素,处理过程更简单,本文方法同样适用。
3. SPSS 重复测量分析完整操作步骤
3.1 打开重复测量对话框
打开 SPSS 数据文件后,按以下路径进入:
分析 → 一般线性模型 → 重复测量此时会弹出“重复测量定义因子”对话框。
这是第一步,需要定义组内因素的名称和水平数。在“被试内因子名称”框中输入 time(注意不能以数字开头),在“级别数”框中输入 4,然后点击“添加”。
完成后,下方“度量名称”会显示 TIME(4)。这里的“度量”指的是对同一因子多次测量的指标名称,可以默认也可以修改。
点击“定义”按钮,进入主对话框。
3.2 定义组内因子和因变量
进入“重复测量”主对话框后,你会看到左侧变量列表,中间有一块区域需要把四个时点变量放入“被试内变量”对应的空格中。
具体操作:
- 将 time0 放入右侧 TIME 的第一个空位。
- 将 time4 放入第二个空位。
- 将 time8 放入第三个空位。
- 将 time12 放入第四个空位。
注意顺序必须与时间顺序一致,否则 SPSS 会按你放入的顺序排列水平顺序,影响趋势分析和事后比较的解释。
然后,把 group 变量放入“因子列表”框中。如果不希望做组间比较,这一步可以跳过。但实际项目中往往需要考察“时间×分组”的交互作用,所以建议放入组间因子。
3.3 设置模型、绘图与多重比较
点击“模型”按钮,通常使用默认的“全因子”模型即可。全因子模型会包含时间主效应、组别主效应以及时间×组别交互效应。如果你只需要检验主效应,不关注交互,可以选择“设定”并单独指定。
点击“绘图”按钮,可以生成交互作用图。将 time 放入水平轴,group 放入单独线条,点击“添加”。图形有助于直观理解交互作用方向,建议生成。
点击“事后比较”按钮,将 group 变量选入右侧“下列各项的事后检验”,勾选 LSD 或 Bonferroni。需要注意的是,“事后比较”只能用于组间因素。如果对 time 这个组内因素做多重比较,不能在这里操作,而需要在“EM 平均值”中设置,后面会讲到。
点击“EM 平均值”按钮,可以计算各时点的边际均值,并执行组内因素水平间的事后两两比较。将 time 选入右侧“显示下列各项的平均值”,勾选“比较主效应”,置信区间调整推荐选择“Bonferroni”。
如果同时把 group 也放入 EM 平均值,可以得到“分组的每个时点的估算边际均值”,对解释交互作用非常有帮助。
3.4 点击确定运行
所有设置完成后,点击“确定”,SPSS 会在输出查看器中显示结果。主要结果包括:
- 被试内因素信息表。
- 描述统计量表。
- 多变量检验表(Pillai's Trace、Wilks' Lambda 等)。
- Mauchly 球形检验表。
- 被试内效应检验表。
- 被试间效应检验表。
- 估算边际均值。
- 成对比较表。
4. 完整实例:15 名患者的降压药疗效分析
为了让流程更清晰,下面给出一份完整的示例数据文件,以及对应的 SPSS 语法命令。如果你更习惯用语法窗口操作,也可以直接复制运行。
4.1 示例数据
假设数据文件保存在本地,变量结构如上所述。在 SPSS 数据编辑窗口中录入数据后,可以直接复制下面的语法到语法窗口运行。
4.2 SPSS 语法示例
GLM time0 time4 time8 time12 BY group /WSFACTOR=time 4 Polynomial /METHOD=SSTYPE(3) /PLOT=PROFILE(time*group) /PRINT=DESCRIPTIVE ETASQ HOMOGENEITY /CRITERIA=ALPHA(.05) /WSDESIGN=time /DESIGN=group.各子命令含义说明如下:
GLM time0 time4 time8 time12 BY group:指定重复测量变量和组间变量。/WSFACTOR=time 4 Polynomial:定义组内因子 time,水平数为 4,趋势分析采用多项式对比。/METHOD=SSTYPE(3):使用 III 型平方和,这是 SPSS 默认的平方和计算方法,适合不平衡设计。/PLOT=PROFILE(time*group):生成时间×分组的剖面图。/PRINT=DESCRIPTIVE ETASQ:输出描述统计和效应量偏 Eta 方。/WSDESIGN=time:指定组内设计。/DESIGN=group:指定组间设计。
如果你需要输出事后比较:
GLM time0 time4 time8 time12 BY group /WSFACTOR=time 4 Polynomial /METHOD=SSTYPE(3) /PLOT=PROFILE(time*group) /PRINT=DESCRIPTIVE ETASQ /CRITERIA=ALPHA(.05) /EMMEANS=TABLES(time) COMPARE ADJ(BONFERRONI) /WSDESIGN=time /DESIGN=group.4.3 运行结果解读
我们以手算模拟的结果来说明各部分表格怎么看。
4.3.1 描述统计量
该表显示每个分组在各时点的均值、标准差和样本量。先观察均值变化趋势:
- 试验药组:145 → 138 → 130 → 126,呈持续下降趋势。
- 安慰剂组:147 → 145 → 143 → 146,基本平稳或略有波动。
这个初步描述能让我们对数据形态有个直观判断。
4.3.2 Mauchly 球形检验
球形检验用于检验重复测量数据各时点差值的方差是否相等。这是重复测量方差分析的一个重要前提。如果 p 值大于 0.05,说明满足球形假设,直接看“被试内效应检验”表中“假定球形”那一行的结果即可。如果 p 值小于 0.05,说明不满足球形假设,需要使用 Greenhouse-Geisser 或 Huynh-Feldt 校正系数。
实际项目中,球形检验经常显著,此时应以校正后的结果为准。SPSS 输出中会提供 Greenhouse-Geisser 和 Huynh-Feldt 两列校正后的显著性和自由度。
下表是球形检验输出的模拟结果:
| 被试内效应 | Mauchly W | 近似卡方 | 自由度 | p 值 |
|---|---|---|---|---|
| time | 0.521 | 8.031 | 5 | 0.155 |
p = 0.155 > 0.05,说明满足球形假设。这种情况下,我们直接报告“假定球形”的检验结果即可。
4.3.3 被试内效应检验
这是重复测量分析最核心的表格。它包含以下行:
- time:时间主效应。
- time × group:时间与分组的交互效应。
- 误差(time):组内误差。
如果是满足球形假设的情况,查看“假定球形”行。若 p 值小于 0.05,说明不同时点间的因变量存在显著差异。
模拟结果如下:
| 源 | III 型平方和 | 自由度 | 均方 | F | p 值 |
|---|---|---|---|---|---|
| time | 2041.800 | 3 | 680.600 | 35.241 | <0.001 |
| time × group | 1781.600 | 3 | 593.867 | 30.750 | <0.001 |
| 误差(time) | 753.200 | 39 | 19.313 |
这一步的结论是:
- time 主效应显著,说明收缩压随时间是变化的。
- time × group 交互效应显著,说明两组血压随时间的变化趋势不同。结合描述统计,试验药组的下降幅度明显大于安慰剂组。
4.3.4 被试间效应检验
该表检验组间因素 group 的主效应。如果 p 值小于 0.05,说明不同分组的整体均值存在显著差异。
模拟结果:
| 源 | III 型平方和 | 自由度 | 均方 | F | p 值 |
|---|---|---|---|---|---|
| 截距 | 1233080.067 | 1 | 1233080.067 | 5285.177 | <0.001 |
| group | 515.267 | 1 | 515.267 | 2.208 | 0.160 |
| 误差 | 3033.667 | 13 | 233.359 |
group 主效应 p = 0.160,大于 0.05,说明两组在所有时点的平均收缩压整体上没有显著差异。
不过需要注意:当交互效应显著时,组间主效应的解释要谨慎。因为两组在不同时点差异方向不同,只看整体均值可能会掩盖真实模式。
4.3.5 事后两两比较
由于 time 主效应显著,我们还需要知道具体哪些时点之间差异显著。查看“成对比较”表,里面会列出每个时点两两比较的均值差、标准误、p 值(已做 Bonferroni 校正)。
模拟结果(节选):
| (I) time | (J) time | 均值差值 (I-J) | 标准误 | p 值(Bonferroni) |
|---|---|---|---|---|
| time0 | time4 | 7.133 | 1.087 | <0.001 |
| time0 | time8 | 13.000 | 1.467 | <0.001 |
| time0 | time12 | 14.400 | 1.513 | <0.001 |
| time4 | time8 | 5.867 | 1.013 | <0.001 |
| time4 | time12 | 7.267 | 1.337 | <0.001 |
| time8 | time12 | 1.400 | 1.054 | 1.000 |
从结果看,前几个时点之间差异显著,而 time8 与 time12 之间差异不显著(p = 1.000),说明药效在第 8 周以后趋于稳定。
4.3.6 交互作用图
交互作用图能直观展示两组的时间趋势。理想情况下,试验药组的折线明显下降,安慰剂组的折线接近水平。如果两条线平行,则交互作用不显著;如果交叉或明显不平行,则交互作用显著。
5. 扩展:单因素重复测量分析与协方差分析
5.1 单因素重复测量分析
如果没有分组变量,只有同一批受试者的多次测量数据,那么分析方法更简单。此时不需要把任何变量放入“因子列表”,直接定义组内因子和因变量即可。
在 SPSS 语法中,去掉 BY group 和 /DESIGN=group 就是从单因素重复测量版本:
GLM time0 time4 time8 time12 /WSFACTOR=time 4 Polynomial /METHOD=SSTYPE(3) /PRINT=DESCRIPTIVE ETASQ /CRITERIA=ALPHA(.05) /WSDESIGN=time.这种设计常用于检验单一群体在多个时间点是否存在显著变化,比如一组患者治疗前后的指标变化。
5.2 协变量:包含控制变量的重复测量分析
有的研究需要在重复测量模型中控制一个或多个协变量。比如,患者的基线体重、年龄可能影响血压变化,我们希望在排除这些变量影响后检验时间效应和分组效应。
SPSS 重复测量过程支持协变量。操作方法是将协变量(如 age、bmi)放入“协变量”框中。在语法中,只需在 BY 后面、逗号前面加入协变量:
GLM time0 time4 time8 time12 BY group WITH age bmi /WSFACTOR=time 4 Polynomial /METHOD=SSTYPE(3) /PRINT=DESCRIPTIVE ETASQ /CRITERIA=ALPHA(.05) /WSDESIGN=time /DESIGN=group age bmi.这种带协变量的重复测量分析,本质上就是重复测量协方差分析(Repeated Measures ANCOVA)。它通过将协变量的影响从误差中分离出来,提高检验灵敏度。
需要注意的是,协变量应该是连续型数值变量。如果分组间的协变量均值差异很大,解释结果时要小心。
5.3 与随机区组方差分析的异同
很多人在做科研设计时会混淆重复测量方差分析与随机区组方差分析。
- 随机区组设计:每个区组内包含全部处理水平,每个处理只出现一次。区组是随机因素,处理是固定因素。
- 重复测量设计:同一受试者接受全部处理或全部时间点测量。受试者是随机因素,处理或时间是固定因素。
两者在统计模型上确有相似之处,都利用了“区组/个体”的变异来降低误差。但在实际应用中,重复测量更强调时间顺序性,且通常要关注球形假设;而随机区组设计对顺序一般不做要求。
6. Python 等价实现:使用 Pingouin 完成重复测量分析
很多读者可能不满足于 SPSS 的菜单操作,希望在 Python 中实现同样的分析。这里给出一个基于pingouin库的完整示例,方便两种工具对照学习。
6.1 安装依赖
需要安装pingouin和pandas。在命令行中执行:
pip install pingouin pandas6.2 完整代码示例
import pandas as pd from pingouin import rm_anova, sphericity # 模拟示例数据 data = pd.DataFrame({ 'id': range(1, 16), 'group': [1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2], 'time0': [145, 152, 148, 150, 143, 147, 149, 147, 150, 145, 146, 148, 144, 149, 146], 'time4': [138, 140, 135, 139, 136, 141, 137, 145, 148, 143, 144, 147, 141, 146, 145], 'time8': [130, 132, 128, 129, 131, 134, 127, 143, 145, 142, 144, 146, 140, 145, 143], 'time12': [126, 128, 122, 124, 127, 130, 125, 146, 144, 145, 143, 147, 142, 146, 145] }) # 转换为长格式 long_data = data.melt(id_vars=['id', 'group'], value_vars=['time0', 'time4', 'time8', 'time12'], var_name='time', value_name='sbp') # 时间列转为数值编码,便于分析 long_data['time'] = long_data['time'].str.replace('time', '').astype(int) # 球形检验 spher_res = sphericity(data=data, dv='sbp', subject='id', within='time') print("Mauchly W:", spher_res[1].iloc[0]) print("p-value:", spher_res[2].iloc[0]) # 重复测量方差分析 aov = rm_anova(data=long_data, dv='sbp', within='time', subject='id', detailed=True) print(aov)运行结果会输出球形检验统计量和重复测量方差分析表。通过 p-unc 列可以判断时间主效应是否显著。
如果要在 Python 中同时包含分组因素,可以使用mixed_anova函数:
from pingouin import mixed_anova mixed = mixed_anova(data=long_data, dv='sbp', within='time', between='group', subject='id') print(mixed)mixed_anova会输出组间效应、组内效应和交互效应的完整表格。结果解读方式与 SPSS 一致。
7. 常见问题与排查思路
7.1 常见报错与解决方法
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 定义因子时提示“因子名称无效” | 名称以数字开头或包含非法字符 | 使用字母开头命名,如 time、visit |
| 放入因变量时四个空位填不满 | 应放入四个时点变量,数量必须等于级别数 | 检查级别数是否与变量数一致 |
| “事后比较”中看不到 time 变量 | SPSS 默认只允许对组间因子做事后检验 | 使用“EM 平均值”中的“比较主效应”进行组内比较 |
| 球形检验不满足 | 各时点差值方差不等 | 使用 Greenhouse-Geisser 或 Huynh-Feldt 校正结果 |
| 数据有缺失值时分析报错 | 重复测量要求受试者在所有时点有完整数据 | 删失或使用缺失值处理后再分析 |
| 协变量放入后结果无法解释 | 协变量的编码或类型不正确 | 确保协变量为连续型数值,且是预先设定的混杂因素 |
7.2 结果解读中的常见误区
第一个误区是:看到 time 主效应显著,就认为所有时点之间都有差异。这是不对的。主效应显著只说明时点间存在总体差异,具体哪些时点间有差异,必须看成对比较结果。
第二个误区是:交互效应显著,却只单独解读主效应。当交互效应显著时,简单效应(如各分组内的时间趋势)往往更有意义。SPSS 中可以通过“EM 平均值”分别查看每个分组在各时点的均值,然后采用分组拆分文件的方法做简单效应检验。
第三个误区是:忽略 Mauchly 球形检验结果。许多新手直接看“假定球形”这一行,即使球形假设不满足也照报不误。建议养成先看球形检验 p 值的习惯。
7.3 如何避免数据格式错误
在 SPSS 中录数据时,最常犯的错误是把重复测量数据录成长格式。一定要记住:SPSS 的重复测量分析要求宽格式,每行一个受试者。如果你手里的数据已经是长格式,可以使用“数据 → 重构”向导将数据转换为宽格式。
8. 最佳实践与工程建议
8.1 分析前的数据检查
在正式分析前,至少完成以下几项检查:
- 检查各时点变量是否存在缺失值,缺失比例较高时考虑删除或插补。
- 查看各时点的均值和标准差,判断是否存在异常值。
- 使用箱线图检查每个时点是否存在极端值,必要时剔除或校正。
- 检查因变量近似正态性。重复测量 ANOVA 对正态性有一定的稳健性,但严重偏态时仍需考虑数据转换。
8.2 正确报告结果
在论文或报告中,重复测量方差分析的结果建议包括:
- 描述统计:各组各时点的均值与标准差。
- 球形检验结果:Mauchly W 值和 p 值。
- 主要效应结果:时间主效应、组间主效应、交互效应的 F 值、自由度和 p 值。
- 效应量:偏 Eta 方(Partial Eta Squared)。
- 事后比较结果:均值差、95% 置信区间或校正后的 p 值。
一个典型的报告段落如下:
采用重复测量方差分析考察不同组别收缩压随时间的变化。结果显示,时间主效应显著(F(3, 39) = 35.24, p < 0.001, η²p = 0.73),时间与组别的交互效应显著(F(3, 39) = 30.75, p < 0.001, η²p = 0.70)。简单效应分析显示,试验药组收缩压在治疗 4 周后即显著下降,并持续至第 12 周;安慰剂组各时点差异不显著。
8.3 多重比较校正策略
组内因素的多重比较推荐使用 Bonferroni 校正。虽然 Bonferroni 偏保守,但对于时点数量不多的情况(3~5 个水平),它是最稳妥的选择。如果时点很多,可以结合趋势分析(Polynomial Contrast)来检验时间变化是否呈线性或二次趋势。
8.4 最小样本量与统计效力
重复测量设计因为利用了组内相关性,往往比组间设计节省样本量。但样本量仍然要足够。建议在实验设计阶段使用 G*Power 等软件估计所需样本量。对两因素混合设计,要注意交互效应通常需要比主效应更大的样本才能检测到。
8.5 生产环境与科研数据管理的提醒
在科研项目中,数据管理同样重要。建议保留原始数据文件、清洗后的分析文件、SPSS 语法文件和分析日志。SPSS 语法的好处是分析过程可复现、可追溯,比纯菜单操作更适合团队协作。即使你习惯用菜单点击,也建议在分析完成后把语法文件一并保存。
如果需要把 SPSS 结果导出到 Excel 或 Word,可以直接在输出查看器中右键表格选择“导出”,也可以使用脚本批量导出,提高效率。
9. 总结与学习路线
本文围绕 SPSS 重复测量分析,系统讲解了重复测量数据的概念、为什么不能使用普通方差分析、SPSS 菜单操作步骤、SPSS 语法写法、结果解读方法,以及 Python 等价实现。核心要点如下:
- 重复测量分析适用于同一受试者多在多个时点或条件下测量得到的数据。
- 操作入口是“分析 → 一般线性模型 → 重复测量”。
- 组内因子需要定义名称和水平数,数据要先整理成宽格式。
- Mauchly 球形检验是必须关注的前提条件,不满足时使用校正结果。
- 结果解读要关注 time 主效应、group 主效应和 time × group 交互效应。
- 组内的事后比较使用“EM 平均值”的“比较主效应”,而不是“事后比较”按钮。
- SPSS 语法可以实现完全可复现的分析流程,建议科研项目中优先使用。
如果你已经完整掌握了重复测量方差分析,下一步可以继续学习以下方向:
- 广义估计方程(GEE)和线性混合模型(LMM),它们对缺失数据更宽容,不需要满足球形假设。
- SPSS 中随机区组方差分析的实现,用于对比理解不同方差分析设计的差异。
- 使用 Python 的 statsmodels 或 R 的 lme4 包完成混合效应模型分析,作为重复测量分析的进阶扩展。
实际项目中,如果只是简单的单因素重复测量,SPSS 就能轻松完成。但一旦数据结构变得复杂,比如有不平衡设计、缺失数据或多个随机效应,建议尽早切换到混合效应模型框架。理解重复测量方差分析的原理,会帮助你更快掌握这些进阶方法。
最后给个小建议:拿到数据后先画出各时点的均值折线图。这张图能帮你快速判断时间趋势和分组差异的大致方向,也能在结果解读时提供直观支持。如果本文对你有帮助,也可以收藏备用,后续分析时对照操作。