Stata 数据处理:iefieldkit 命令介绍

发布时间:2021-10-17 阅读 2303

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:巴宁 (北京理工大学)
邮箱baningchina@163.com

编者按:本文主要摘译自下文,特此致谢!
Source:Bjärkefur K, de Andrade L C, Daniels B. iefieldkit: Commands for primary data collection and cleaning[J]. The Stata Journal, 2020, 20(4): 892-915. -PDF-


目录


1. 引言

iefieldkit 命令由世界银行 DIME (World Bank's Development Impact Evaluation Department) 小组的两位经济学家 Andrade 和 Bjarkefur,以及乔治城大学的 Daniels 教授共同编写的数据收集和清洗命令。该命令主要包含三个子功能,即前期问卷设计、数据的收集、数据清理和协同。

作者希望通过 iefieldkit 命令简化问卷数据搜集与处理过程中的流程,简化 do 文档,让 Stata 新手可以更快的加入整个工作流程并自动输出可视化的表格。本推文将介绍其中最重要的三个命令。

2. iefieldkit 主要功能

初次使用,需要通过 cnssc install iefieldkit, replace 安装命令。以下三个子命令分别适用于调查前、调查中、调查后三个阶段。

2.1 ietestform 命令

ietestform 命令为自动化的数据质量控制命令。虽然利用 ODK 软件搜集可以很容易做到无差错的数据搜集,但是由于 Stata 并不能直接处理 ODK 工具搜集到的数据,转化步骤费时且难度较大。因此 ietestform 工具需要达到以下目标:

  • 将所有的变量名 (variable name) 转化为满足 Stata 格式;
  • 为所有变量 (variables) 建立一个 Stata 标签,替代 (简化) 原有的问题;
  • 将所有的标签 (label) 都改为符合 Stata 格式;
  • 确保每条数据的完整性。

其中,Open Data Kit (ODK) 为世行 DIME 小组常用的初步数据搜集软件,详细介绍可参考「ODK 官网」

*命令语法
ietestform, surveyform("filename.xlsx") report("report.csv")

在命令执行后,该命令会生成如下图所示的一份 csv 格式的报告,用以标记数据编码中的错误,和需要人工审查的非严格错误。主要包括以下内容:

  • 是否将数据转为 csv 格式;
  • 用标签标记可能的错误;
  • 删除不必要空格;
  • 删除重复的变量、变量标签和未使用的标签。

2.2 ieduplicates 和 iecompdup 命令

ieduplicatesiecompdup 命令用于数据重复项识别和更新对比。DIME 小组的目标是建立一套标准化的流程,可以让没有 Stata 基础的小组成员快速上手操作。在完成初步的数据格式转化后,原始数据通常还是十分杂乱的 (有处理 WB 数据库经历的小伙伴一定感同身受),此时需要一套标准化的工作流程对原始数据进行实时的修整。

2.2.1 ieduplicates 命令:判定重复项

*命令语法
ieduplicates id_varname using "filename.xlsx"
     , uniquevars(varlist)

其中:

  • id_varname:必须是数据集中的唯一 ID 变量;
  • filename.xlsx:便于不了解 Stata 的团队成员也可以阅读报告并进行更正;
  • uniquevars():使用指定的一个或多个变量来唯一标识数据集中的每个观察值。

该命令需要作出判定:

  • 如果没有重复值,结束;
  • 如有有重复值,输出重复值 (iedupreport.xlsx),判定正确的结果。在判定结果后,在原文件位置保存同名结果;
  • 删除重复值,输出正确的结果数据。

作者在文中强调,需要对输出的新数据再次使用 ieduplicates 命令,此时已经做出的判定会生效。然后不断重复这一过程,ieduplicates 命令会记录每一次的修改内容,且不会影响原始数据。

2.2.2 iecompdup 命令:处理重复项

*命令语法
iecompdup idvariable, id(idvalue)

iecompdup 命令主要负责处理以下三种情况:

  • 观察对象重复,且数据重复,则仅保留一个;
  • 观察对象重复,但数据不重复,则返回并进行裁决;
  • 错误的 ID,则返回并修正 ID。

但是作者也承认该命令存在一些缺陷:

  • 只能进行两两比较;
  • 没有输出其他的文件,只能在 Stata 窗口进行展示。

2.3 iecodebook 命令

iecodebook 命令通过 Excel 修改变量信息。

*step 1:输出现有变量表
iecodebook template using "/path/to/codebook.xlsx"
*step 2:读取修改后的变量表
iecodebook apply using "/path/to/codebook.xlsx"	
    , [drop] [missingvalues(# "label" [# "label" ...])]

通过 “codebook” 这一名称,已经可以大致判断该命令的功能。iecodebook命令的主要功能:

  • 通过 Excel 对数据进行清洗;
  • 通过 Excel 对数据集进行合并;
  • 导出 Excel 文件展示数据集的基本情况 (变量名、标签等)。
sysuse auto.dta, clear
iecodebook template using "codebook.xlsx" //生成一个净化后的模板

此时将会输出一个表格,我们可以直接在表格中对变量名 (标签) 等信息进行修改。作为演示,将原数据的 foreign 改为 domestic。其原理也非常简单,将原有的 0-1 互换即可,如下图最后一行所示:

这一命令允许用户在 Stata 以外的环境下对变量进行编译,以实现 renamerecodelabel 等命令 (虽然这些命令很简单且所有用户都会),但是在面对变量个数较多的情况下,该命令可以避免此类重复的工作,在 Excel 里操作更加直观且高效,且有利于其他成员的查看。

在修改相关信息后,通过以下代码重新读取:

sysuse auto.dta, clear	
iecodebook apply using "codebook.xlsx" //读取新的变量名和标签名

此时原有的 foreign 变量已经被我们转化为 domeatic 变量 (0-1互换):

. tab foreign		//原始数据
   Car type |      Freq.     Percent        Cum.
------------+-----------------------------------
   Domestic |         52       70.27       70.27
    Foreign |         22       29.73      100.00
------------+-----------------------------------
      Total |         74      100.00

. tab domestic		//修改变量名后的数据
 Domestic Make |
     and Model |      Freq.     Percent        Cum.
---------------+-----------------------------------
            No |         22       29.73       29.73
           Yes |         52       70.27      100.00
---------------+-----------------------------------
         Total |         74      100.00

3. 总结

通过以上三个主要命令的介绍和展示,可以强烈感受到 iefieldkit 命令的作者始终以简化问卷数据搜集和处理的工作流为目标,通过将 Stata 数据转化为 Excel 软件可以查看和修改的方式,为非专业乃至不懂 Stata 软件操作的组员提供更多可以直观查看和修改的可能,为大型问卷的数据搜集和整理带来诸多便利。

4. 参考文献

  • 世界银行 ietoolkit 项目 wikis -Link-
  • ietoolkit 项目 GitHub 主页 -Link-
  • 项目介绍 PPT -PDF-

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 数据处理, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxhsongbl 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh