专栏首页一点ECONSTATA Tidbits I:识别政策变动

STATA Tidbits I:识别政策变动

前言

STATA Tidbits 将讨论STATA使用中的一些小技巧。

智库工作中常常需要分析某一类型的政策变动带来的影响。这一工作的前提就是从数据中找出政策改变的年份。下图为中国各省高考录取制度的数据库,其中的e变量代表了高考志愿填报中每个考生可以填报的平行志愿的数量。在2003年之前,各省只允许每个考生填写一个志愿,而从2003年开始,各省纷纷开始对这一政策进行改革,逐渐增加了平行志愿的数量。如果我们想要知道各省都是在哪些年份进行的改革,以及进行过几次改革,该如何在Stata里面实现呢?本文将提供一个使用STATA的 _n operator的解决方案。

STATA _n operator

找到政策开始变动年份

_n_N 是STATA系统自带的变量, _n代表的是目前这个观测值的排位,而N代表的是数据中的观测值的总数。我们经常使用n来找出靠近的观察值,例如 gen gdp_lag=gdp[_n-1]可以得到前一个观察值的GDP。

而我们可以把 bysort_n结合在一起使用,来达到识别政策变动的目的。我们只需要规定,在每个省内,按照年份排序后,当前观察值和前一个观察值的平行志愿数量不同时,我们即认为改革在该年份开始。

bysort provid (wave):
gen matching_policy_change = (e[_n] != e[_n-1])

通过上述代码,我们发现,总计有54次改革发生。然而,这样的计算结果是错误的。原因在于,STATA对于缺失值的处理。当我们在检查每个省份内的第一个变量时,即 _n==1时,前一个观察值并不存在,因此STATA认为 e[0]=.,因此 e[1]!=e[0],从而错误地将每一个省份的第一个观察值认为是改革开始的年份。我们只需要简单地修改上述代码即可得到正确的结果:

bysort provid (wave):gen matching_policy_change = 
(e[_n] != e[_n-1]) & e[_n-1]!=.

正确的改革次数因为24次。然而,这并不意味着有24个省份进行了改革,有些省份可能进行了多次改革,而我们的程序允许这种情况的出现。

Reference:

Cox, N. J. (2007). Speaking stata: Identifying spells. Stata Journal, 7(2), 249-265.

本文分享自微信公众号 - 一点ECON(little_econ),作者:宋彦

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python安装麻烦?试试Google推出的colab

    刚开始用Python的时候,总会在安装Python环境中遇到不少问题。比如说,安装之后怎么使用,新的package怎么安装等。今天发现了一款解决这些入门问题的黑...

    宋彦
  • Sublime 教程 for Economists

    随着大数据时代的到来,工作中对数据处理能力的要求越来越高。而不管我们使用何种软件,Python, Stata或是R,都要花大量的时间和编辑器打交道。一个好的编辑...

    宋彦
  • STATA教程之一:自动化输出回归表格 Estout

    STATA是回归分析的最常用的工具。当我们进行了大量的回归分析之后通常需要解决三个问题。怎样才能直观的展示需要关注的系数?如何才能方便的对比不同回归中的系数?怎...

    宋彦
  • 简单的国际化i18n

    ydymz
  • 想写个小游戏,需要学到什么程度?

    疑惑一 如何设计自己的自学路线? 很多小伙伴问,我准备自学,该怎么制定自己的计划,其实大家不要觉得自学就没有什么门槛,其实在学校里面有自学的习惯,切入到编程自学...

    程序员互动联盟
  • MockJs使用分享

      在前后端分离的时代,项目开发测试中我们常常因为前后端完成模块功能时间不一致而导致开发效率的降低,尤其是需要接口对接之时。鉴于此, MockJs应时而生,对此...

    流眸
  • python内置模块之base64

    用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二...

    菲宇
  • 使用jquery的tmpl构建复杂表格

    Tmpl提供了几种tag: ${}:等同于{{=}},是输出变量,通过了html编码的。 {{html}}:输出变量html,但是没有html编码,适合输出ht...

    一笠风雨任生平
  • 前端基础-HTML基础(三)

    table标签caption标签th/tr/td标签表格的删除与合并表格行列的删除表格行列的合并参考

    efonfighting
  • 前端学习笔记之HTML body内常用标签

    body中的标签是会显示到浏览器窗口中的,body内的标签只有一个作用就是用来标记语义的,语义指的是从字面意思就可以理解被标记的内容是用来做什么的

    Jetpropelledsnake21

扫码关注云+社区

领取腾讯云代金券