用途
该技能帮助经济学研究者在 Stata 中清洗、转换和准备用于分析的数据集。它强调可复现性、适当的文档记录,以及处理经济研究中常见的数据质量问题。
何时使用
- 清洗原始调查或行政数据
- 合并多个数据源
- 处理缺失值、重复值和异常值
- 创建可供分析的面板数据集
- 为复现研究记录数据转换过程
使用方式
该技能按步骤引导用户完成数据清洗流程。
第 1 步:理解数据
在生成代码之前,先向用户询问:
- 数据来源是什么?(调查、行政数据、API 等)
- 观测单位是什么?
- 分析所需的关键变量有哪些?
- 是否存在已知需要处理的数据质量问题?
第 2 步:生成清洗流水线
创建一个 Stata do-file,其中包含:
- 带有项目信息和日期的清晰文件头
- 环境设置(clear all、set memory、log)
- 加载并检查原始数据
- 用注释记录每一步转换
- 为最终数据集创建 codebook
第 3 步:遵循最佳实践
- 使用 assert 语句验证数据完整性
- 使用 label variable 创建带标签的变量
- 为分类变量使用值标签
- 生成日志文件以保证可复现性
- 在适当的时候保存中间文件
示例输出
技能提供的示例 do-file 涵盖以下环节:
- 设置:clear all、set more off、关闭并开启日志、设置工作目录、定义路径全局宏。
- 加载并检查原始数据:use 命令加载数据,describe、summarize、codebook 进行基本检查,duplicates report 和 duplicates list 检查重复值。
- 变量清洗:重命名变量、用 mvdecode 将缺失值代码(-99、-88、-77)替换为 .、在 99 百分位截尾异常值、标准化字符串变量(如州名)、创建分类变量并添加值标签。
- 处理缺失数据:创建缺失指示变量、用 tab 记录缺失情况、用 rownonmiss 统计完整案例。
- 创建派生变量:生成年龄组、对数收入等。
- 数据校验:用 assert 检查预期范围、检查变量类型、用 isid 验证唯一标识符。
- 变量标签:用 label variable 为变量添加描述性标签。
- 最终检查与保存:保留相关变量、按逻辑排序、compress 压缩、保存清洗后数据、创建 codebook、关闭日志。
要求
软件
- Stata 15+(部分命令需要更新版本)
推荐的用户自写命令
ssc install unique // 用于唯一值检查
ssc install mdesc // 用于缺失数据模式
ssc install labutil // 用于标签操作
最佳实践
- 始终以 clear all 开始,确保环境干净
- 使用日志文件记录所有转换
- 大量注释——解释为什么,而不仅仅是什么
- 使用 assert 语句尽早捕获数据错误
- 在清洗后的数据旁创建数据字典
- 对 do-file 和数据集进行版本管理
常见陷阱
- 合并前未检查重复值
- 忘记处理缺失值代码(-99、-88 等)
- 未给变量和值添加标签
- 覆盖原始数据文件
- 未记录数据转换过程
参考资料
- Stata Data Management Manual
- Gentzkow & Shapiro (2014) Code and Data for the Social Sciences
- DIME Analytics Data Handbook
更新日志
- v1.0.0:初始版本,包含全面的清洗模板。