你从问卷平台、医院系统或 Excel 里导出的原始数据,往往直接拿去跑模型会出问题:有人没填某题(缺失值)、有人填了 999 当作跳过(异常值)、量表里有反向题没有转换(重编码遗漏)、不同量纲的变量放在一起聚类(需要标准化)。
数据预处理就是在正式分析之前,把这些"坑"都填平,让数据的质量和格式满足统计方法的前提要求。这一步做不好,后面所有的 p 值、R² 都可能是错的。
以下是 chatspss 真实支持的操作,均通过对话指令完成,结果写回原始数据文件:
| 操作类型 | 能做什么 | 典型场景 |
|---|---|---|
| 缺失值 | 自动剔除 / 均值填充 / 众数填充 | 问卷中有人跳过某题 |
| 变量类型 | 识别并设置数值型、分类型、文本、日期;自动读取 SPSS/Stata 变量标签和值标签 | 上传 .sav 文件后变量名显示为中文标签 |
| 反向计分 | 李克特量表反向题重编码(支持5点、7点、10点预设,或自定义最大最小值) | "我对这项工作感到厌倦"需要反向 |
| 数据标准化 | Z-score 标准化、0-1 归一化、对数变换、平方根变换、Box-Cox 变换 | 聚类分析前消除量纲差异 |
| 变量编码 | 独热编码(One-Hot)、标签编码、序数编码;数值分箱(等宽/等频/自定义区间) | 把"教育程度"转为虚拟变量 |
| 异常值识别 | 数据验证(范围检查、唯一性检查、完整性检查),标记超出合理范围的值 | 检查"年龄"列是否有超出 0-120 的值 |
| 计算新列 | 均值/求和/最大最小值/中位数等聚合计算;交互项生成;条件赋值 | 把 Q1-Q6 汇总为"满意度维度均分" |
chatspss 支持上传 CSV、Excel(.xlsx/.xls)、SPSS(.sav)、Stata(.dta) 格式,上传后自动识别变量标签和值标签,列名模糊匹配,不需要对上精确的列名。
上传数据文件后,直接用自然语言告诉 chatspss 要做什么,它会自动调用对应的预处理工具并回写到你的数据文件:
Q:上传的数据有缺失值,chatspss 会自动处理吗?
A:会。chatspss 的所有分析工具在运行前都会自动剔除缺失值,并在结果中注明有效样本量 N。如果你需要用均值或众数填充缺失值,可以直接告诉 chatspss:"把收入列的缺失值用均值填充",它会用预处理工具完成操作并回写数据文件。
Q:异常值要不要删掉?
A:不一定。异常值有两种情况:一是录入错误(如满分5分的题出现了99),应当删除或修正;二是真实的极端数据,删除前需要说明理由。chatspss 可以通过数据验证功能帮你标记超出合理范围的值(例如"检查年龄列是否有超过120的值"),再由你决定如何处理,不会强制删除。
Q:问卷里有反向题,怎么重编码?
A:直接告诉 chatspss:"对 Q4 做5点量表反向计分",它会自动执行反向操作(新值 = 最大值 + 最小值 - 原值),生成 Q4_reverse 新列并回写到数据文件。支持5点、7点、10点量表预设,也可以自定义最大最小值。
Q:chatspss 支持 SPSS .sav 文件直接上传吗?
A:支持。chatspss 支持 CSV、Excel(.xlsx/.xls)、SPSS(.sav)和 Stata(.dta)格式直接上传。上传 .sav 文件后,系统会自动识别变量标签和值标签,分析结果中显示的是"满意度"等有意义的变量名,而不是 Q1、Q2 这样的编码。
Q:做回归之前需要对数据标准化吗?
A:通常不是必须的。以下情况建议标准化:变量量纲差异很大(如收入和年龄混在一起);做聚类分析时;需要比较不同变量的标准化系数 Beta 时。chatspss 支持 Z-score 标准化、0-1 归一化、对数变换等多种方式,一句话完成:"对收入和年龄列做Z-score标准化"。