主题
1.3 数据分析软件
本节目标
读完本节后,你能根据研究问题、数据结构、团队能力和复现要求选择分析软件,并建立一套从原始数据到表图与报告都可追踪的项目流程。
1.3.1 先选工作流,再选软件
不存在对所有研究都“最强”的软件。选择时先回答四个问题:
- 主要模型是什么,软件能否直接估计并提供所需诊断?
- 数据有多大、是否需要清洗、文本处理或自动化?
- 合作者、导师和审稿人需要读取什么格式?
- 半年后能否从原始数据重新生成同一份结果?
| 工具 | 适合 | 优势 | 主要边界 |
|---|---|---|---|
| SPSS | 常规描述、差异、回归与教学 | 图形界面直观,社会科学团队常见 | 只保留点击记录难以审计;高级模型依模块和许可而异 |
| jamovi / JASP | 入门教学、常用检验、快速复核 | 免费、图形界面、输出清晰 | 模块覆盖和细节控制有限;复杂流程仍需代码 |
| R | 统计建模、可视化、可复现报告 | 统计生态完整,包与文档丰富 | 包版本、公式接口和数据类型需要主动管理 |
| Python | 数据清洗、自动化、文本、机器学习 | 通用编程生态,易接入数据管道 | 传统统计流程分散在多个包;默认输出未必包含完整推断信息 |
| Stata | 面板、调查、因果推断与计量工作流 | 命令体系稳定,结果管理成熟 | 商业许可;部分扩展命令需单独安装和记录版本 |
一个常见且实际的组合是:用 SPSS、jamovi 或 JASP 学会读输出;用 R 完成统计建模和作图;数据工程、文本或自动化任务再引入 Python。团队已有稳定的 Stata 工作流时,不必为了“更流行”强行迁移。
1.3.2 图形界面也要留下可重放记录
点击菜单本身不是问题,无法知道点过什么才是问题。
- SPSS 分析对话框尽量点击 Paste 保存 syntax,再运行语法;
- jamovi 与 JASP 保存完整项目文件,同时记录软件与模块版本;
- R、Python 与 Stata 把清洗、模型、表格和图形写进脚本;
- 不把复制到 Word 的最终表格当作唯一分析记录。
理想交付物不是“一个能打开的输出文件”,而是从只读原始数据到最终结果的完整路径。
1.3.3 建立最小可复现项目
推荐从下面的结构起步:
text
project/
README.md # 研究问题、运行顺序、软件版本
data-raw/ # 原始数据,只读,不手工覆盖
data-derived/ # 脚本生成的分析数据
code/ # 清洗、分析、作图脚本
output/ # 脚本生成的表、图与模型摘要
docs/ # 代码本、预注册、报告草稿最低规则有六条:
- 原始数据只读;清洗结果写入新文件;
- 每个变量在代码本中说明含义、取值、缺失编码和单位;
- 运行顺序写进 README 或单一入口脚本;
- 随机抽样、模拟和随机初始化显式设置随机种子;
- 记录软件、包、模块和操作系统版本;
- 表格与图形由脚本生成,不在导出后静默手改数值。
文件名使用稳定、可排序的规则,如 01_import、02_clean、03_model。路径使用项目相对路径,不写只在自己电脑成立的盘符和用户名。
1.3.4 环境与版本如何锁定
同一段代码在包版本变化后可能出现不同默认值、警告或输出格式。版本记录至少包括:
- R:R 版本、包版本;项目可用
renv保存依赖快照; - Python:Python 版本与环境依赖;可用
conda、venv配合锁定的依赖文件; - Stata:Stata 版本,并在 do-file 中使用适当的
version声明; - SPSS:产品版本、扩展模块,以及生成输出所用的 syntax;
- jamovi / JASP:应用版本、模块名称与版本。
环境文件不是装饰。换一台电脑或交给合作者时,应实际从空环境恢复一次。若依赖外部软件、私有数据或手工步骤,README 要写清获取方式和不可复现部分。
1.3.5 任何软件都不能替代统计判断
按按钮前,先写出分析对象:
| 要素 | 必须回答 |
|---|---|
| 研究问题 | 比较、关联、预测、测量还是因果效应? |
| 变量 | 结果、预测变量、处理、协变量各是什么类型? |
| 观测结构 | 独立、配对、重复测量、嵌套、聚类还是时间序列? |
| 估计目标 | 均值差、标准化差、相关、回归系数、比值比还是其他量? |
| 假设与边界 | 模型依赖哪些分布、独立性、线性、测量或设计条件? |
| 不确定性 | 标准误、置信/可信区间与样本量依据是什么? |
| 诊断 | 缺失、异常、残差、影响点、收敛和敏感性如何检查? |
软件给出的 p 值不会自动说明效应是否重要,也不会把观察性关联变成因果效应。报告时至少给出估计值或效应量、不确定性区间、关键诊断与适用边界;具体方法见 第 3 章统计。
1.3.6 新手的选择路径
从任务反推工具
- 只做常见检验且团队使用 SPSS:用 SPSS,但从第一天保存 syntax。
- 想用免费图形界面理解统计输出:从 jamovi 或 JASP 起步,并保留项目文件。
- 需要可复现统计、复杂模型或投稿级作图:优先学习 R。
- 需要文本、抓取、自动化或机器学习管道:在统计判断明确后使用 Python。
- 团队以面板、调查或计量分析为主且有许可:沿用 Stata 的 do-file 工作流。
- 无论选什么,用一份小型模拟数据跑通“导入—清洗—模型—表图—报告”后再上正式数据。
迁移软件时不要只比较“显著/不显著”。用同一份数据逐项比较样本量、缺失处理、对比编码、参考组、估计方法、自由度、标准误类型和区间。结果不同通常来自默认设置或数据处理差异,应先定位差异再解释模型。
1.3.7 交付前的复现检查
- 从项目副本或空环境按 README 重新运行;
- 确认脚本没有依赖临时对象、绝对路径或手工点击;
- 对照代码本检查样本筛选、反向计分和缺失编码;
- 确认正文中的样本量、效应量、区间和图表来自当前输出;
- 保存运行日志、警告与未解决的诊断,而不是只留“漂亮结果”;
- 删除或脱敏共享包中的个人信息、密钥和受限数据。
本页软件入口与官方文档核查日期为 2026-08-18。许可、模块和界面会更新,安装与功能范围以软件官方说明及本校许可为准。
资源与工具
R Project
免费统计计算环境
→
Python
数据处理与自动化生态
→
jamovi
免费图形界面统计工具
→
JASP
频率学派与贝叶斯图形界面
→
renv
R 项目依赖快照与恢复
→
Conda 环境
Python 环境创建与导出
→
延伸阅读
- Sandve, G. K., Nekrutenko, A., Taylor, J., & Hovig, E. (2013). Ten simple rules for reproducible computational research. PLOS Computational Biology, 9, e1003285. https://doi.org/10.1371/journal.pcbi.1003285
- Wilson, G., Bryan, J., Cranston, K., Kitzes, J., Nederbragt, L., & Teal, T. K. (2017). Good enough practices in scientific computing. PLOS Computational Biology, 13, e1005510. https://doi.org/10.1371/journal.pcbi.1005510
- IBM SPSS Statistics · Stata 官方产品与文档入口