SuperAPI AI 工具集

stata-data-cleaning

数据与分析

查看项目

更新于 10-15 09:13

技能介绍

用途

该技能帮助经济学研究者在 Stata 中清洗、转换和准备用于分析的数据集。它强调可复现性、适当的文档记录,以及处理经济研究中常见的数据质量问题。

何时使用

  • 清洗原始调查或行政数据
  • 合并多个数据源
  • 处理缺失值、重复值和异常值
  • 创建可供分析的面板数据集
  • 为复现研究记录数据转换过程

使用方式

该技能按步骤引导用户完成数据清洗流程。

第 1 步:理解数据

在生成代码之前,先向用户询问:

  • 数据来源是什么?(调查、行政数据、API 等)
  • 观测单位是什么?
  • 分析所需的关键变量有哪些?
  • 是否存在已知需要处理的数据质量问题?

第 2 步:生成清洗流水线

创建一个 Stata do-file,其中包含:

  • 带有项目信息和日期的清晰文件头
  • 环境设置(clear all、set memory、log)
  • 加载并检查原始数据
  • 用注释记录每一步转换
  • 为最终数据集创建 codebook

第 3 步:遵循最佳实践

  • 使用 assert 语句验证数据完整性
  • 使用 label variable 创建带标签的变量
  • 为分类变量使用值标签
  • 生成日志文件以保证可复现性
  • 在适当的时候保存中间文件

示例输出

技能提供的示例 do-file 涵盖以下环节:

  1. 设置:clear all、set more off、关闭并开启日志、设置工作目录、定义路径全局宏。
  2. 加载并检查原始数据:use 命令加载数据,describe、summarize、codebook 进行基本检查,duplicates report 和 duplicates list 检查重复值。
  3. 变量清洗:重命名变量、用 mvdecode 将缺失值代码(-99、-88、-77)替换为 .、在 99 百分位截尾异常值、标准化字符串变量(如州名)、创建分类变量并添加值标签。
  4. 处理缺失数据:创建缺失指示变量、用 tab 记录缺失情况、用 rownonmiss 统计完整案例。
  5. 创建派生变量:生成年龄组、对数收入等。
  6. 数据校验:用 assert 检查预期范围、检查变量类型、用 isid 验证唯一标识符。
  7. 变量标签:用 label variable 为变量添加描述性标签。
  8. 最终检查与保存:保留相关变量、按逻辑排序、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:初始版本,包含全面的清洗模板。