Skip to content

第 23 课:数据清洗

🎯 核心实操目标

通关要求:执行数据清洗标准五步——剔除无效样本 / 处理缺失值 / 识别异常值 / 反向题反转(高频踩坑!)/ 计算量表总分。本课你将用 Case A 数据集(N=540)实际跑通完整清洗流程,最终得到约 500 行有效样本,为后续统计分析奠定基础。

📋 课前准备(5 分钟自检)

工具/账号

  • [ ] Jamovi 2.5+SPSS 29+(推荐 Jamovi,免费 + 操作直观)
  • [ ] Excel / WPS(辅助手动检查)

数据/素材

应急通道

  • Jamovi 安装失败 → 用 SPSS 或 JASP 替代
  • 数据量大卡顿 → 把 Duration_Min 字段先排序,剔除明显异常后再做后续

场景痛点破冰:清洗不当让你白做一场

"数据回收完,新手最容易犯的三个致命错误: ① 反向题忘记反转 → Cronbach's α 从 0.85 直接掉到 0.4 ② 缺失值没处理 → SPSS 把 99 当成 99 分计入均值 ③ 不剔除无效问卷 → 一群乱填的 30 秒满分党拉高方差,相关系数被噪声稀释

本课的目标只有一个:让你的数据从 540 行毛坯变成 500 行可分析的精装版。"

🗺️ 架构重组:数据清洗五步法

Step 1剔除无效样本Duration < 3 minStep 2处理缺失值缺失 > 20% 删行Step 3识别异常值|Z| > 3Step 4 ⚠️反向题反转高频踩坑!Step 5计算总分

🚀 拆解实战 A:Step 1 剔除无效样本

打开 Jamovi → 导入 case_A_questionnaire.csv(应有 540 行)。

剔除规则

  1. Duration_Min < 3 分钟(27 道题不可能 3 分钟答完)
  2. 连续 10+ 题选同一选项("满分党"或"乱填党")
  3. 反向题与正向题完全同向(不用心填答)

Jamovi 操作

  • Data 标签 → Filters → 添加过滤器:Duration_Min > 3
  • 数据样本量从 540 → 应该剩 505 左右

🚀 拆解实战 B:Step 2 处理缺失值

策略适用操作
列表删除(推荐)缺失 < 5% 时整行删除任何变量缺失的样本
均值填补缺失 5–10% 且 MCAR用该变量均值替换
多重插补 MICE缺失 10–20% 且非 MCAR用 R/Python mice 包
整行删除缺失 > 20%该行不可救药

Jamovi 中的操作

  • Data 标签 → 右键变量 → Setup → Missing values 中输入 99(如果用 99 标记缺失)

Case A 的实际处理

Case A 数据集本身只有 ~3% 随机缺失,可用列表删除法(删任何含缺失的行)。 预期剩余约 500 行。

🚀 拆解实战 C:Step 3 识别异常值

单变量异常(Z-score 法)

Z = (X - 均值) / 标准差
|Z| > 3 → 异常值

Jamovi 操作:

  • Exploration → Descriptives → 选所有量表题 → 勾选 Z scores → 检查输出

多变量异常(Mahalanobis 距离)

适用于回归分析前,检测整个题项模式异常的离群样本。 Jamovi 进阶轨可在 Regression 分析后查看。

🚀 拆解实战 D:⚠️ Step 4 反向题反转(高频踩坑!)

⚠️ 这一步出错会让所有后续分析报废

反向题不反转 → Cronbach's α 大幅下降(从 .85 → .4) 反向题反转两次 → 一切倒置 反转操作只做一次!

Case A 的反向题(3 道)

根据数据字典:

  • Anxiety_4_R(认知焦虑反向)
  • Strategy_8_R(学习策略反向)
  • Efficacy_7_R(自我效能反向)

Jamovi 操作(Compute 新变量)

Data 标签 → Compute → 新变量名: Anxiety_4_RECODED
Formula: 6 - Anxiety_4_R

(对 Strategy_8_R 和 Efficacy_7_R 重复同样操作)

反转验证

原值 1 → 反转为 5
原值 2 → 反转为 4
原值 3 → 反转为 3
原值 4 → 反转为 2
原值 5 → 反转为 1

验证方法:检查反转后变量与原维度其他题项的相关——应该都是正相关 +.3 以上。

🚀 拆解实战 E:Step 5 计算量表总分/均分

把同维度的题项加总(或求均值):

Anxiety_Total = Anxiety_1 + Anxiety_2 + Anxiety_3 + Anxiety_4_RECODED +
                Anxiety_5 + ... + Anxiety_12
Anxiety_Mean = Anxiety_Total / 12

(同样对 Strategy 和 Efficacy 做)

💡 总分还是均分?

  • 总分:方便与文献对比(如果文献用总分报告)
  • 均分:保持原量表的 1-5 范围,跨研究可比性强
  • 学术推荐用均分——M=3.21 比 "总分 38.5" 更有意义

🚀 拆解实战 F:完整清洗 Prompt(AI 辅助)

markdown
【Role】资深 Jamovi 数据清洗专家。

【任务】我刚导入 case_A_questionnaire.csv (540 行 × 33 列)。
请逐步指导我完成完整数据清洗,每步给出 Jamovi 具体菜单路径和参数:

1. 剔除 Duration_Min < 3 的样本
2. 列表删除任何核心量表题缺失的行
3. 用 Z-score 识别 |Z|>3 的异常值,标记但暂不删除
4. 反转 Anxiety_4_R / Strategy_8_R / Efficacy_7_R 三个反向题
   (公式: 6 - 原值)
5. 计算三个量表的均分:Anxiety_Mean / Strategy_Mean / Efficacy_Mean
6. 给出最终清洗后样本量和各变量描述统计

【约束】
- 严禁直接给我数字结果(我要自己跑出来验证)
- 严禁让我跳过任何步骤
- 每步操作完后告诉我"预期看到什么"以便我验证

🚀 拆解实战 G:清洗日志(必做)

每次清洗都要记录完整日志,方便未来复现 + 应对盲审追问:

步骤操作删除/修改数剩余备注
初始导入数据540原始数据
Step 1剔除 Duration < 3 min-3550535 个低质问卷
Step 2列表删除缺失-5500含缺失的行
Step 3异常值识别0(标记不删)5008 个 Z>3 但保留
Step 4反向题反转5003 道反向题完成
Step 5计算均分500三个量表均分生成
终态-40500可用于分析

📦 本课交付物(提交给 AI 初审/讲师抽检)

  • [ ] 清洗日志:完整 5 步操作的删除人数 + 剩余样本量
  • [ ] 反向题反转验证:截图证明 Anxiety_4_RECODED 与其他焦虑题正相关
  • [ ] 清洗后描述统计:3 个均分变量的均值/SD/最小值/最大值
  • [ ] 保存清洗后数据:导出为 case_A_cleaned.csv 用于下一课

🏁 小结与自测 (Milestone Checklist)

  • [ ] 我执行了完整 5 步清洗流程,剩余样本约 500 行
  • [ ] 反向题反转正确执行:Anxiety_4_R / Strategy_8_R / Efficacy_7_R 三个都做了 6-X 反转
  • [ ] 反转后我验证了与其他同维度题项正相关(避免反转错误)
  • [ ] 我的清洗日志详细记录每步的删除人数与原因
  • [ ] 我清楚反向题不反转会让 Cronbach's α 大幅下降
  • [ ] 我用均分而非总分(跨研究可比性强)
  • [ ] 清洗后数据已保存为单独文件,原始数据保留备份

助力学者在 AI 时代极速产出高质量学术成果 · 55 课时双轨制 · plan v3.3