Skip to content

第 23 课:数据清洗

🎯 核心实操目标

学习目标:掌握定量问卷数据进入统计分析前的标准清洗流程——剔除无效样本、处理缺失值、识别异常值(outlier)、反向题反向计分(reverse scoring)、计算量表均分(合成变量)。本课以课程主数据集 Case A(原始 N=540)逐步走完整套流程,最终得到 N=500 的可分析样本,并理解每一步“为什么这样做、漏做会怎样”。本模块的红线在本课同样适用:AI 只负责把你已经算出的结果翻译成学术语言,绝不替你计算或编造任何统计量。

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

工具/账号

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

数据/素材

应急通道

  • Jamovi 安装失败 → 用 SPSS 或 JASP 替代(同源、结果一致)
  • 数据量大卡顿 → 先按 Duration_Min 排序,剔除明显异常后再做后续步骤
  • 不确定哪几道是反向题 → 一律回到数据字典核对,不要凭题面语气自行猜测

场景导入:清洗不当,后续分析全部失真

在论文的数据分析阶段,一类反复出现的情况是:问卷如期回收、样本量看似充足,分析结果却异常——信度系数偏低、本应显著的关系不显著、或描述统计里出现不合常理的均值。回到原始数据复查,根源往往不在统计方法,而在进入分析之前的数据没有清洗干净

其中最高频的三类隐患是:

  1. 反向题未反向计分。量表中措辞相反的题目若不先反转,会与同维度其他题方向相悖,直接拉低信度系数 Cronbach's α,并扭曲变量的真实方向。
  2. 缺失值未声明就参与计算。若用 99 之类的数字编码缺失,而未在软件中声明为“缺失”,统计软件会把 99 当作真实分值计入均值,污染整列结果。
  3. 无效问卷未剔除。极短作答时间、连续同一选项等“无心作答”样本会引入随机噪声,抬高方差、稀释相关系数,使真实关系被淹没。

这三类问题有一个共同特征:它们不报错——软件照常出结果,错误却悄然进入了每一个统计量。本课要建立的,正是一套在分析之前系统排除这些隐患的标准流程,把 540 行原始数据整理为 500 行可信、可复现的分析样本。

原理:为什么必须先清洗——“垃圾进,垃圾出”

在套用任何清洗步骤之前,先理解一条贯穿全部数据分析的基本事实:统计方法本身不会判断数据的真假,它只会忠实地计算你喂给它的一切。 这就是计算领域常说的“垃圾进,垃圾出(garbage in, garbage out, GIGO)”——输入若含错误,输出必然含错误,而且错误会被统计运算放大并“洗白”成一串看似精确的数字。数据清洗的全部意义,就是在数据进入运算之前,把已知的错误尽量清除。

可以从三个角度理解“为什么不能跳过清洗”:

  1. 统计量是“全样本聚合”的,单点污染会扩散到整列。 均值、方差、相关、回归系数都是对整列数据的汇总。一个未声明的 99、一道未反转的反向题、几份乱填问卷,污染的不是一个格子,而是它参与的每一个统计量。错误一旦进入聚合,事后极难从结果里反推剔除。
  2. 错误“不报错”,因而最危险。 缺失值未声明、反向题未反转,软件都会照常给出结果——它无从知道 99 是“缺失”还是“99 分”,也无从知道某道题措辞是相反的。正因为没有红色警告,这类错误最容易被带进正文、骗过自己也骗过读者,直到盲审追问才暴露。
  3. 可复现性要求清洗有据可查。 规范研究要求他人能依你的步骤复现结果。哪些样本被删、为何删、反向题如何处理,都必须记录在案(本课最后的“清洗日志”即为此而设)。清洗不是“顺手删几行”,而是研究链条中可追溯的一环。

📐 大模型在数据清洗里“帮得上”与“替不了”的边界

清洗阶段,大模型能帮的是流程与操作:解释某一步为什么要做、给出 Jamovi/SPSS 的具体菜单路径、把你的清洗日志整理成规范文字、提示你“别忘了反向题”。这些都属于“把已知规则翻译成操作”。

但它替不了两件事:① 它看不到你本地的原始数据,无法替你判断“这一行到底该不该删”——那要你对照作答时长、规律性应答等证据亲自裁定;② 严守本模块红线——反转后的分值、清洗后的样本量、各变量的均值,必须由你在软件里真实跑出来,绝不能让模型“估一个”或“帮你算”。模型一旦开始报具体数字,几乎一定是在编造(hallucination)。清洗的判断权与计算权,都在你手里。

📘 关键术语(首次出现,先对齐定义)
  • 数据清洗(data cleaning):在统计分析之前,系统地检测并处理原始数据中的无效样本、缺失值、异常值与编码错误,使数据达到可分析、可复现状态的过程。
  • 缺失值(missing value):某个观测在某变量上没有有效取值(未作答、跳答、记录丢失等)。须在软件中显式声明为缺失,否则其占位编码(如 99、空格)可能被当作真实数值计入运算。
  • 异常值 / 离群值(outlier):在数值上明显偏离其余观测的取值。可能是录入错误(须修正或删除),也可能是真实但极端的个案(须谨慎判断是否保留)。异常 ≠ 错误,识别出来不等于必须删除。
  • 反向计分 / 反向题(reverse scoring / reverse-coded item):量表中措辞与该维度方向相反的题目。例如焦虑量表里“我能掌控 AI 工具”一题,得分越高反而代表越焦虑。计分前须按公式 反转值 = (量表最大值 + 最小值) − 原始值 重新编码(5 点量表即 6 − x),使其方向与同维度其他题一致。
  • 列表删除 / 成列删除(listwise deletion):只要某样本在所参与的任一变量上有缺失,就整行删除该样本。当缺失量小且近似随机时,是最简洁稳健的处理方式。
  • 合成变量 / 量表得分(composite score):把同一维度的多道题加总或求均值得到的变量(如 Anxiety_Mean),用于代表该构念的总体水平,是后续相关、回归、中介分析的输入。

🗺️ 数据清洗五步法:流程总览

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

Worked Example:用 Case A 走完整套清洗(Step 1–5)

下面以 Case A 心理问卷数据集 为对象,逐步演示标准五步。该数据集原始 N=540,含 6 个人口统计变量与三个量表(Anxiety_1..12 / Strategy_1..8 / Efficacy_1..7,5 点李克特量表),其中 3 道反向题。每一步都给出 Jamovi 操作路径与“预期看到什么”,请在自己机器上跑出结果再核对——本课的数字应由你亲手得到。

Step 1:剔除无效样本

打开 Jamovi → 导入 case_A_questionnaire.csv(应为 540 行)。无效样本指作答质量不可信、保留会引入噪声的问卷,常见判据有三类:

  1. 作答时间过短Duration_Min < 3 分钟(共 27 道题,3 分钟内难以认真读完作答)。
  2. 规律性应答(straight-lining):连续 10 题以上选同一选项,提示未逐题阅读。
  3. 反向题与正向题同向:理论上应相反的题作答方向一致,提示敷衍作答。

Jamovi 操作

  • Data 标签 → Filters → 新增过滤器:Duration_Min >= 3
  • 在 Case A 中,Duration_Min < 3 的样本共 35 份,过滤后剩余 505 行

💡 判据要写进日志,且“先标记、后删除”更稳妥

三类判据各删了多少,应逐条记入清洗日志。规律性应答与反向题同向的判定,建议先生成标记变量、人工抽看若干份确认,再决定是否剔除——避免误删真实但风格特殊的作答。本课为简洁起见,以 Duration_Min 为主判据演示。

Step 2:处理缺失值

缺失值处理没有“唯一正确答案”,取决于缺失比例缺失机制(是否随机)。常用策略按缺失量从小到大排列:

策略适用情形操作要点
列表删除 listwise(首选)缺失比例小(约 < 5%)且近似随机(MCAR)整行删除在任一所需变量上缺失的样本,简洁稳健
均值填补 mean imputation缺失约 5–10% 且近似随机用该变量均值替换缺失格;会人为压低方差,须谨慎
多重插补 MICE缺失约 10–20% 且非完全随机用 R/Python 的 mice 包多次插补再合并,保留不确定性
整行删除该样本单个样本缺失过多(如某行缺失率 > 20%)该样本信息量过低,保留意义不大

🔧 第一步永远是“声明缺失”,否则一切处理无从谈起

若数据用 99-1 或空格等占位编码标记缺失,必须先在软件里把它声明为缺失值,否则均值会被污染。Jamovi 操作:Data 标签 → 双击变量名进入 Setup → 在 “Missing values” 中填入占位编码(如 99)。声明之后,该值才会被排除在均值、相关等运算之外。

Case A 的实际处理(紧扣真实数据)

按数据字典与原始文件核对,Case A 在 35 份过短问卷之外,另有 5 行存在零星缺失(受访者编号 ID = 328、393、449、457、473),每行在 2–4 个量表题上空缺(例如 ID 457 缺 Anxiety_5 / Strategy_7 / Efficacy_1 / Efficacy_7)。这 5 行不在前述 35 份短作答之列,是另一批样本。

整体缺失比例很低(约 1%)且分布零散、近似随机,因此首选列表删除:直接删去这 5 行。删除后样本量为 505 − 5 = 500

💡 为什么这里用列表删除而非均值填补

缺失量这么小、又近似随机时,列表删除损失的信息可忽略,却能避免均值填补“人为压低方差、虚增一致性”的副作用。数据字典里也给出了更一般的阈值(缺失 < 5% 可填补、单行 > 20% 删样本)作为其他情形的参考——策略随缺失量与机制而变,不是死规则

Step 3:识别异常值

异常值(outlier)是数值上明显偏离其余观测的取值。识别它的目的,首先是“看见”而非“删除”——异常可能是录入错误(应修正或删除),也可能是真实但极端的个案(往往应保留)。两者要分开判断。

单变量异常(Z 分数法):把每个取值标准化为它偏离均值多少个标准差,

Z = (X − 该变量均值) / 该变量标准差
经验判据:|Z| > 3 视为候选异常值

Jamovi 操作:Exploration → Descriptives → 选入待查变量 → 勾选 “Z scores” / “Standardized” → 查看是否有 |Z| > 3 的样本。

多变量异常(马氏距离 Mahalanobis distance):单看每一题都正常、但题项组合模式异常的样本(如各题作答彼此矛盾),需用马氏距离在回归分析前检测。Jamovi 可在 Regression 模块的 Assumption Checks 中输出。

Case A 的处理:标记,但不删除

在 Case A 这样的 5 点李克特量表上,取值被限制在 1–5,单题的 |Z| 一般不超过约 2,因此几乎不会出现 |Z| > 3 的单变量异常值。这恰恰提醒我们:|Z| > 3 是针对连续、近似无界变量的经验阈值,有界量表不宜机械套用——更稳妥的做法是看直方图的分布形态(是否有孤立的远端柱),或在多变量层面用马氏距离(Mahalanobis distance)识别异常作答模式。若某受访者全程选 1 或全程选 5,多是真实的强烈态度而非录入错误,应只标记、不删除,保留它们参与后续分析,并在日志中注明。

🚫 异常值不可“为了好看”而删

删除异常值会改变样本构成、影响结论的外推,属于需要交代理由的操作。除非确认是录入/设备错误,否则不应仅因为它“拉低了显著性”或“不好看”就删——那已越过数据清洗,滑向操纵数据。

Step 4:反向题反向计分(本课重点)

这是本课最高频的踩坑点,单独展开。

⚠️ 反向题处理错误会让后续所有分析失真

  • 漏反转:反向题与同维度其他题方向相悖,信度系数 Cronbach's α 大幅下降(量级上可从约 .85 跌至 .4 一带),并扭曲变量方向,使本应负向的关系看起来变弱甚至变号。
  • 反转两次:等于没反转再被倒置,结果同样错误。
  • 结论:每道反向题有且仅反转一次,且要在计分前完成。

为什么是 6 − x:反向计分的通用公式是 反转值 = (量表最大值 + 最小值) − 原始值。Case A 是 5 点量表(最小 1、最大 5),故 5 + 1 = 6,公式即 6 − x。它把 1↔5、2↔4 对称翻转,3 不变,从而让“高分=更焦虑/策略更好/效能更高”的方向在全维度内统一。

Case A 的反向题(3 道,须核对数据字典)

反向题所在量表 / 维度题面含义(为何是反向)反转公式
Anxiety_4AI 焦虑 / 认知焦虑“我相信我能掌控 AI 工具”——得分越高越焦虑Anxiety_4_R = 6 − Anxiety_4
Strategy_8学习策略(单维)“遇到困难我倾向于放弃”——得分越高策略越Strategy_8_R = 6 − Strategy_8
Efficacy_7学业自我效能(单维)“我经常怀疑自己的学习能力”——得分越高效能越Efficacy_7_R = 6 − Efficacy_7

🔍 哪几道是反向题,以数据字典为准,不要凭语气猜

反向题由量表设计决定,必须查数据字典核对,不能靠读题面语气自行判断——有些反向题措辞隐蔽,漏判或误判都会破坏整列。Case A 恰好 3 道,分别在三个量表中各一道。

Jamovi 操作(新建变量,而非覆盖原列)

Data 标签 → Compute(计算新变量)→ 新变量名:Anxiety_4_R
Formula(公式):6 - Anxiety_4

对 Strategy_8、Efficacy_7 重复,分别生成 Strategy_8_R、Efficacy_7_R

建议生成 _R 新列而非直接改写原列:保留原始值便于核对、出错可回退,也符合“原始数据只读、清洗在副本上做”的规范。

反转后逐值自检(5 点量表):

原值 1 → 5      原值 2 → 4      原值 3 → 3      原值 4 → 2      原值 5 → 1

验证方法:反转正确的话,Anxiety_4_R 与同维度其他认知焦虑题(Anxiety_1/2/3)应呈正相关(约 +.3 以上)。若反转后仍与同维度题负相关,说明这一步出了错——这是判断反向题是否处理对的最直接证据。

Step 5:计算量表均分(合成变量)

把同一维度的题项求均值(或加总),得到代表该构念的合成变量。关键:参与计算的必须是反转后的版本——焦虑用 Anxiety_4_R、策略用 Strategy_8_R、效能用 Efficacy_7_R,绝不能再混入未反转的原列。

Anxiety_Mean  = (Anxiety_1 + Anxiety_2 + Anxiety_3 + Anxiety_4_R +
                 Anxiety_5 + … + Anxiety_12) / 12        # 用 4_R,不用 4
Strategy_Mean = (Strategy_1 + … + Strategy_7 + Strategy_8_R) / 8   # 用 8_R
Efficacy_Mean = (Efficacy_1 + … + Efficacy_6 + Efficacy_7_R) / 7   # 用 7_R

这三个合成变量(Anxiety_Mean 为中介路径的 X、Strategy_Mean 为中介 M、Efficacy_Mean 为因变量 Y)正是后续相关、回归、中介分析的直接输入。

💡 用总分还是均分?

  • 总分(sum):便于与采用总分报告的文献直接对照。
  • 均分(mean):保持原量表的 1–5 取值范围,量纲直观、跨研究可比性强;缺答时按有效题求均值也更稳健。
  • 本课推荐均分——报告时形如“某量表均分 M=3.2、SD=0.7”(落在 1–5 区间)比“总分 38.5”更易解读、也更便于跨研究比较;具体数值以你自己跑出的为准。均分与总分只是线性变换,统计推断结论一致。

AI 辅助:让模型当“清洗操作向导”,而非“代算员”

数据清洗里,大模型的恰当用法是指导操作流程:把每一步翻译成具体菜单路径、提醒易漏环节、说明“预期看到什么”。但要在提示词里明确划清红线——只要操作指导,绝不要它给出任何具体数字结果(样本量、均值、反转后的值都必须你自己跑)。下面这段提示词正是按此约束写成,可一键复制:

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

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

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

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

清洗日志(必做,是可复现性的凭据)

每次清洗都要留一份完整日志:哪一步、删/改了多少、剩余多少、为什么。它既方便日后复现,也是应对盲审“你的样本是怎么从 540 变成 500 的”这类追问的直接证据。Case A 的日志如下:

步骤操作删除/修改数剩余 N备注
初始导入原始数据540原始样本
Step 1剔除 Duration_Min < 3−3550535 份过短作答
Step 2列表删除含缺失的行−5500ID 328/393/449/457/473,与上一步不重叠
Step 3异常值识别0(标记不删)500有界量表 |Z|>3 基本不出现,改看分布形态/马氏距离,未触发删除
Step 4反向题反转—(新增 3 列)500生成 Anxiety_4_R / Strategy_8_R / Efficacy_7_R
Step 5计算量表均分—(新增 3 列)500Anxiety_Mean / Strategy_Mean / Efficacy_Mean
终态共删 40 行500可进入统计分析

注意 Step 1 与 Step 2 删除的是两批互不重叠的样本(35 份短作答 + 5 行零星缺失),故 540 − 35 − 5 = 500,加减得清清楚楚——日志里这种可对账的明细,正是盲审看重的。


逐环节对照:清洗“做对 vs 做砸”

清洗每一步都有“看起来做了、其实做砸了”的常见走样。下表把五步逐一拆开并排对照,帮你判断自己每一步是真做到位,还是只走了形式。

环节做砸 ❌做对 ✅为什么
无效样本一行不删,“样本越多越好”按作答时长、规律性应答等判据剔除并记录每条删了多少无心作答是随机噪声,留着会稀释真实关系,而非增加信息
缺失值99/空格直接计入均值先声明缺失,再按比例与机制选列表删除/填补未声明的占位编码会被当真实分值,污染整列统计量
异常值|Z|>3 一律删,把不显著的极端值删到“变显著”标记后判断是录入错误还是真实极端,无错误证据则保留异常≠错误;为结果好看而删属于操纵数据
反向题漏反转,或对原列反转两次,或凭语气猜哪道是反向题查字典确认 3 道、各 6−x 反转一次、生成 _R 新列并验证正相关反向题处理错会直接拉低 α、扭曲方向,是本课最致命的一步
合成变量求均分时仍混入未反转的原列_R 列与正向题一起求均分,量纲统一混入原列等于反转白做,合成分数方向被污染

💡 一句话判据

判断清洗是否到位,对每一步只问三件事:删改有没有依据?依据有没有记进日志?反向题与缺失值有没有先处理再计算? 三者齐备,数据才算干净。


跨案例迁移:把同一套清洗逻辑用到 Case B 经管面板

清洗五步不是问卷数据专属。换一个完全不同的学科与数据结构,“先识别错误、再决定处理、全程留痕” 的逻辑依然适用,只是每一步的具体判据随数据类型而变。下面用 Case B 经管面板数据 演示迁移。

Case B 是省级面板:30 省 × 10 年(2014—2023)= 300 个观测,列含数字经济指数 DigEcon_Index、每万人专科以上人力资本 HumanCap_per10k、创新指数 Innovation_Index、第三产业占比 IndustryStr_Tertiary。它没有反向题,但有面板数据特有的清洗关注点:

清洗环节问卷数据(Case A)怎么做面板数据(Case B)怎么做共同逻辑
无效/异常单元删过短、规律性应答问卷查某省某年是否有录入错误、口径突变(如指数突然跳零)先识别明显不可信的观测
缺失值5 行零星缺失,列表删除面板缺失更敏感:整行删会破坏“省×年”平衡,常按变量插值或保留非平衡面板处理前先判断缺失机制与对结构的影响
方向/编码统一反向题 6−x 反转无反向题;但需统一量纲与口径(如人均化、价格平减),并检查强相关变量让变量含义在全数据内一致、可比
多重共线性预检量表内题项高相关是正常的DigEcon↔HumanCap 相关高达 r≈0.86,须在回归前查 方差膨胀因子 VIF进分析前体检自变量之间的关系

🔍 Case B 的清洗重点:在回归前预检多重共线性

多重共线性(multicollinearity) 指自变量之间高度相关,会让回归系数的估计不稳、标准误虚高、符号易反常。Case B 中 DigEcon_IndexHumanCap_per10k 的相关高达 r≈0.86,对应的方差膨胀因子 VIF(HumanCap)≈8、VIF(DigEcon)≈5.5——按常见经验线(VIF>10 为严重、>5 需关注),这里需关注但尚未到严重档。这意味着把两者同时放进回归要谨慎解释系数,或考虑只保留其一、做稳健性检验。这一步属于“清洗后、建模前”的体检,与问卷数据的反向题处理同属“别带着隐患进分析”。

迁移要点:从 Case A 到 Case B,清洗的目标没变(让进入分析的数据干净、可信、可复现),变的只是判据——问卷重在反向题与无效作答,面板重在缺失对结构的影响与共线性预检。把“判据”换成你学科数据的特征即可。


常见误区与纠正

清洗阶段的错误高度集中在少数几类,且多半“不报错”。下表照着对号入座即可:

常见误区症状纠正方法
反向题漏反转 / 反转两次信度 α 异常偏低;本应负向的关系变弱或变号查字典确认反向题清单,各 6−x 反转一次、生成 _R 列,验证与同维度题正相关
缺失值未声明均值/方差被 99、空格污染,数值离谱先在软件里把占位编码声明为缺失,再做删除或填补
为显著性删异常值删了几个极端值后 p 值“变好看”异常值只在确认是错误时删;真实极端值标记保留,删除须写明理由
求均分混入原列反转白做,合成变量方向被污染计算时一律用 _R 列替换对应原列
凭题面语气猜反向题漏判或误判反向题,破坏整列反向题以数据字典/量表说明为准,不靠主观语感
不留清洗日志样本量来历说不清,盲审无法复现每步记录删改数、剩余 N 与原因,做到可对账
直接改写原始数据出错无法回退,原始值丢失原始数据只读,清洗在副本上做,新增 _R/均分列而非覆盖

输出/结果不理想?如何排查与迭代

清洗后若发现信度异常、描述统计离谱或下一步分析“怎么都不对”,先别怀疑统计方法,按下面顺序回溯——问题几乎都出在清洗某一步:

  1. 信度 α 异常低(如 < .5)→ 第一嫌疑是反向题。回到 Step 4,核对 3 道反向题是否都反转了、是否误反转了正向题、求均分时是否用了 _R 列。这是最高频的单一病因。
  2. 某变量均值离谱(如远超 5 或为负)→ 查缺失值声明。回到 Step 2,确认 99/空格已声明为缺失,没有被当作真实分值计入。
  3. 样本量对不上 / 盲审问起→ 查日志。把删除明细逐行对账(如 Case A 的 540 − 35 − 5 = 500),确认每一步删了哪批、有无重复计数。
  4. 回归系数符号反常、标准误异常大(多为面板/多自变量)→ 查共线性。如 Case B,回到建模前的 VIF 预检,考虑剔除高度相关的自变量之一。
  5. 让 AI 帮忙定位,但只让它“读你给的结果”。可以把你跑出的信度表、描述统计粘给模型请它解读异常成因,但仍不能让它替你重算——它没有你的原始数据,给出的任何数字都是编造。

一句话

结果不对,先回清洗、再怀疑方法。反向题 → 缺失声明 → 日志对账 → 共线性,四个回溯点覆盖了绝大多数“清洗后翻车”。


边界与局限:清洗能解决什么、不能解决什么

数据清洗是把已知错误清除干净的工序,但它有明确边界,越界使用反而有害。

边界 / 失效场景为什么会这样你应该怎么做
清洗修不了“数据本身的烂”样本有偏、测量工具差、问卷设计缺陷,清洗都救不回——它只能删错误,造不出有效信息。清洗前把好抽样与量表质量关;垃圾数据再清洗也是垃圾。
删样本会改变样本构成大量剔除(尤其按某变量取值删)可能引入选择偏差,损害结论外推。删除须有据、留痕、适度;交代删除对样本代表性的影响。
均值填补会“制造”确定性用均值补缺会人为压低方差、虚增一致性,让标准误偏小、显著性虚高。缺失小用列表删除;非随机缺失用多重插补保留不确定性,慎用单一均值填补。
异常值判据是经验而非真理|Z|>3 只是约定,有界量表、偏态分布下并不可靠。结合分布形态与实质判断,区分“录入错误”与“真实极端”。
AI 不能替你做清洗判断与计算模型看不到你的原始数据,对“删不删某行”“反转后是几分”只能猜或编(hallucination)。AI 只用于解释步骤、整理日志;删样本的裁定与所有统计量由你在软件里完成。

🚧 守住本模块红线

清洗的两项核心责任——“这一行/这个值该不该处理”的判断,与“反转后的分值、清洗后的样本量、各变量均值”的计算——都必须由研究者亲自完成。AI 可以告诉你“反向题要 6−x”,但反转后到底是几分、α 是多少、N 还剩几个,只能你在软件里跑出来。一旦模型开始报具体统计量,几乎一定在编造。


📦 本课交付物

按本节实操任务完成并提交以下内容(提交 AI 初审),按 Module_Rubrics.md 对应维度评分:

  • [ ] 清洗日志:完整 5 步操作的删除/修改数、各步剩余样本量与原因(可对账)
  • [ ] 反向题反转验证:截图证明 Anxiety_4_R 与其他认知焦虑题正相关
  • [ ] 清洗后描述统计:3 个均分变量(Anxiety_Mean/Strategy_Mean/Efficacy_Mean)的均值/SD/最小值/最大值
  • [ ] AI 协作日志:清洗向导提示词的“指令 → AI 操作指导 → 你跑出的真实结果”记录(注意 AI 不得给数字)
  • [ ] 保存清洗后数据:导出为 case_A_cleaned.csv 用于下一课,原始数据保留只读备份

🏁 本章小结

把本课凝练成可据以复习的几条要点:

  1. 核心理念:统计方法只忠实计算你喂给它的数据——“垃圾进,垃圾出(GIGO)”。清洗的意义,是在数据进入运算前清除已知错误,因为错误一旦进入聚合统计量就极难剔除,且这类错误通常不报错,最危险。
  2. 标准五步:剔除无效样本 → 处理缺失值 → 识别异常值 → 反向题反向计分 → 计算量表均分。Case A 由此从 540 行清洗为 500 行(540 − 35 − 5 = 500)。
  3. 本课重点(反向题):反向题须查数据字典确认,按 (最大值+最小值)−原始值(5 点量表即 6−x只反转一次,生成 _R 新列,并用“与同维度题正相关”验证。漏转或转两次都会大幅拉低 Cronbach's α 并扭曲方向。
  4. 缺失与异常的分寸:缺失先声明再处理,小且随机用列表删除;异常值先标记、不轻删,异常≠错误,为显著性删值属操纵数据。
  5. 全程留痕:清洗日志记录每步删改数、剩余 N 与原因,是可复现性与盲审应答的凭据。
  6. 可迁移:同一套“识别错误→决定处理→留痕”的逻辑适用于面板等其他数据,只是判据改变(如 Case B 在建模前需预检多重共线性 VIF)。
  7. 红线:AI 只解释步骤、整理日志;删样本的判断与所有统计量(反转值、样本量、均值、α)必须由你在软件里亲自跑出,模型报具体数字即为编造。

自测清单(可保留逐项打勾)

  • [ ] 我能用“垃圾进垃圾出”说清为什么必须先清洗,并指出这类错误“不报错”的危险性。
  • [ ] 我执行了完整 5 步清洗流程,Case A 剩余样本为 500 行,且能说清 540 − 35 − 5 的来历。
  • [ ] 反向题反转正确执行:对 Anxiety_4 / Strategy_8 / Efficacy_7 各做了一次 6−x 反转、生成 _R 列,并验证了与同维度题正相关。
  • [ ] 我能解释反向题漏转 / 转两次为何会拉低 α 并扭曲方向。
  • [ ] 我对缺失值先声明再处理,理解列表删除与均值填补各自的适用与代价。
  • [ ] 我把异常值“标记不轻删”,能区分录入错误与真实极端值。
  • [ ] 我用均分而非总分汇报,且参与计算的是 _R 列。
  • [ ] 我的清洗日志可对账,清洗后数据已另存(如 case_A_cleaned.csv),原始数据保留只读备份。

✍️ 思考与练习

下列练习用于把本节概念用起来(区别于“本课交付物”里的任务),建议写在你的本地笔记中。

练习 1(概念辨析)。 用“垃圾进,垃圾出(GIGO)”解释:为什么“反向题漏反转”比“代码写错语法”更危险?(提示:从“是否报错”和“错误进入哪一层”两个角度作答。)

好答案要点:语法错会立刻报错、逼你修;反向题漏转不报错,软件照常出结果,错误已混入信度、相关、回归等每一个聚合统计量,事后从结果里几乎无法反推剔除;因此“沉默的错误”比“吵闹的错误”更危险。

练习 2(反向题实操,紧扣 Case A)。 取 Case A,对反向题 Anxiety_4(题面“我相信我能掌控 AI 工具”)写出反转公式与逐值对照(1→? … 5→?),说明为什么用 6−x 而非别的常数,并给出一个反转正确的验证方法。

好答案要点:公式 Anxiety_4_R = 6 − Anxiety_4,因 5 点量表 最大5+最小1=6;1↔5、2↔4、3 不变;验证方法是检查 Anxiety_4_R 与同维度 Anxiety_1/2/3 是否转为正相关(约 +.3 以上),若仍负相关则反转出错。

练习 3(缺失与样本量,紧扣 Case A)。 Case A 原始 540 行,其中 35 份 Duration_Min < 3、另有 5 行(ID 328/393/449/457/473)存在零星缺失且与前 35 份不重叠。请写出清洗后样本量的算式,说明这 5 行为何选列表删除而非均值填补,并指出若它们恰好也在那 35 份里、算式会有何不同。

好答案要点:540 − 35 − 5 = 500;缺失量极小(约 1%)且近似随机时列表删除损失可忽略,又能避免均值填补压低方差;若 5 行与 35 份重叠,则不能简单再减 5(会重复计数),需按并集去重计算剩余样本。

练习 4(边界识别,紧扣红线)。 你把清洗后的 Case A 描述统计发给 AI,请它“顺便帮我把反向题反转后的 Cronbach's α 也算出来”。它很快回了一个“α = 0.86”。请指出这踩中了本课哪条边界,你会怎么处理。

好答案要点:AI 看不到你的原始数据,任何具体统计量都是编造(hallucination),违反“AI 只翻译已算出的结果、绝不代算”的红线;正确做法是自己在 Jamovi/SPSS 里跑出 α,再把真实结果交给 AI 翻译成学术语言,而非采信它“算”的数字。

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