Stata数据处理:iebaltab和ieddtab命令介绍

🍎 连享会主页:lianxh.cn

「十年口碑,桃李三千」
🎦 2021 Stata 暑期班
📅 2021 年 7 月 20-30 日
🔑 连玉君(中山大学);江艇 (中国人民大学)
🍓 课程主页https://gitee.com/lianxh/PX

作者:葛佳敏 (厦门大学)
邮箱:gejiamin616@126.com


目录

  • 1. iebaltab 命令

    • 1.1 命令介绍

    • 1.2 具体示例

    • 1.3 Stata 实操

  • 2. ieddtab 命令

    • 2.1 命令介绍

    • 2.2 Stata 实操

  • 3. 相关资料

  • 4. 相关推文


温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

ietoolkit 软件包是由世界银行发展影响评估部门 (Development Impact Evaluation, DIME) 开发,用于简化数据管理和分析过程。本推文是系列推文中的第一篇,整体介绍 ietoolkit 命令组。本文介绍命令组中的核心命令 iebaltabieddtab。在正式使用前,仍需通过以下命令语句进行安装:

ssc install ietoolkit, replace

1. iebaltab 命令

1.1 命令介绍

iebaltab 命令可以生成带有多个组或处理分支的平衡表 (Note: 该命令是 balance table 的简写)。该命令语法如下,

iebaltab balancevarlist [if] [in] [weight] , grpvar(varname) { save(         filename) | savetex(filename) | browse } [ column_options         label_options stats_options ftest_options display_options         export_options ]

其中,balancevarlist 是一个或多个变量 (此处称为平衡变量),iebaltab 命令将根据 grpvar(varname) 中类别变量检验上述变量组别差异。关于该命令更多详细用法,请参考 help ieddtab。另外,iebaltab 命令主要实现以下功能:

  • 分组均值和分组标准误
reg balancevarname if groupvar = groupcode

其中,balancevarnamebalancevarlist 中的变量,groupvar 指的是选项 grpvar(varname)groupcode 是分组变量。在返回结果中,_b[cons] 是组平均值,_se [cons] 是组平均值中的标准误差。

  • 检验
reg balancevarname testgroupdummytest testgroupdummy

其中,testgroupdummy 是一个虚拟变量,处理组为 1,控制组为 0。根据 starlevels() 中的阈值,将代表显著性水平的星号添加到表中时,需要使用返回结果 r(p)

  • 检验
reg testgroupdummy balancevarlisttestparm balancevarlist

其中,balancevarlist 是为该命令指定的所有 balancevars 列表。

  • 包含固定效应
xi : reg balancevarname testgroupdummy i.fixedtest testgroupdummyxi : reg testgroupdummy balancevarlist i.fixedtestparm balancevarlist

其中,fixed 是选项 fixeffects() 中的固定效应包含的变量。

  • 包含协变量
reg balancevarname testgroupdummy covariatesvarlisttest testgroupdummyreg testgroupdummy balancevarlist covariatesvarlisttestparm balancevarlist

其中,covariatesvarlist 是包含在选项 covariates() 中的控制变量。

  • 包括非默认方差估计量。
reg balancevarname testgroupdummy, vce(vcetype)test testgroupdummyreg testgroupdummy balancevarlist, vce(vcetype)testparm balancevarlist
  • 包含所有选项
xi : reg balancevarname testgroupdummy i.fixed covariatesvarlist, vce(vcetype)test testgroupdummy

1.2 具体示例

  • Example 1
iebaltab outcome_variable, grpvar(treatment_variable) browse

其中,treatment_variable 为处理变量,即处理组,该变量取值为 1,反之为 0。该命令将分别显示处理组和控制组的 outcome_variable 平均值和标准误差,以及二者差异和显著性。

  • Example 2
 global project_folder "C:\Users\project\baseline\results"        iebaltab outcome_variable, grpvar(treatment_variable)        save("$project_folder\balancetable.xlsx")

在这里,表被保存到文件中,而不像 Example 1 一样在浏览器窗口中显示。

  • Example 3
iebaltab outcome1 outcome2 outcome3, grpvar(treatment_variable)        save("$project_folder\balancetable.xlsx") rowvarlabels        rowlabels("outcome1 Outcome variable 1 @ outcome2 Second outcome        variable")

其中,rowlabels() 使得行标题将分别显示为 Outcome variable 1Second outcome variable,而不是 outcome1outcome2。由于未在 rowlabels() 中指定 outcome3,因此将默认使用 outcome3 的变量名作为行标题。

1.3 Stata 实操

. sysuse census.dta, clear

*-计算数据的相对比率 . replace death = 100 * death / pop . replace marriage = 100 * marriage / pop. replace divorce = 100 * divorce / pop. gen treatment = (runiform()<.5) //随机生成处理组的虚拟变量. iebaltab marriage divorce death, grpvar(treatment) browse //浏览. iebaltab marriage divorce death, grpvar(treatment) save(table01) //输出 Excel 表格

上述命令的结果会呈现在 Stata 数据编辑器里,如下图所示。若使用 save(filename) 或是 savetex(filename) 可以将结果保存在 Excel 或 Tex 文件里。

    (1)   (2)    t-test    0   1    DifferenceVariable N Mean/SE  N Mean/SE  (1)-(2)marriage 29  1.102  21  1.651  -0.549    [0.041]   [0.633]  divorce  29  0.553  21  0.585  -0.032    [0.027]   [0.067]  death  29  0.830  21 0.862  -0.031    [0.029]   [0.019] 

The value displayed for t-tests are the differences in the means across the groups.

***, **, and * indicate significance at the 1, 5, and 10 percent critical level. 
. iebaltab marriage divorce death, grpvar(treatment) save("balancetable.xlsx")

上述命令将结果保存在名为 balancetable 的表格中,结果表格如下图所示。

2. ieddtab 命令

2.1 命令介绍

ieddtab 命令可以运行双重差分模型,同时报告基础结果。其语法如下,

ieddtab varlist [if] [in] [weight], time(varname) treatment(varname)        [ covariates(varlist) starlevels(numlist) stardrop        errortype(string) rowlabtype(string) rowlabtext(label_string)        format(%fmt) replace savetex(filepath) onerow nonumbers nonotes        addnotes(string) texdocument texcaption(string) texlabel(string)        texnotewidth(numlist) texvspace(string) ]

其中,varlist 是双重差分模型中的因变量。关于该命令更多详细介绍,请参考 help ieddtabieddtab 工作原理以下命令语句所示,其中 time 为时间变量,treat 为处理组虚拟变量。

generate interact = time * treat //创建一个交互变量regress varA time treat interact //计算双重差分结果,ieddtab 表中显示交互项的系数generate sample = e(sample)      //指示回归中包含哪些观测值regress varA time if treat == 0 & sample == 1 regress varA time if treat == 1 & sample == 1 mean varA if time == 0 & treat == 0 & sample == 1mean varA if time == 0 & treat == 1 & sample == 1

2.2 Stata 实操

sysuse census.dta, clear

*计算数据的相对比率 replace death = 100 * death / pop replace marriage = 100 * marriage / popreplace divorce = 100 * divorce / pop

*随机生成时间和处理组的虚拟变量gen time = (runiform()<.5)gen treatment = (runiform()<.5)
  • Example 1
. ieddtab death marriage divorce , t(time) treatment(treatment)(0 observations deleted)+------------------------------------------------------------------------------+|          |         Control       |          Treatment          |Difference-in||          | Baseline | Difference |  Baseline  |   Difference   | -difference ||          |   Mean   |   Coef.    |    Mean    |     Coef.      |   Coef.     ||          |  (SE)    |  (SE)      |   (SE)     |    (SE)        |  (SE)       || Variable |   N      |   N        |    N       |     N          |   N         ||----------+----------+------------+------------+----------------+-------------|| death    |     0.81 |    0.04    |      0.86  |       -0.00    |    -0.05    ||          |    (0.04)|   (0.06)   |     (0.03) |       (0.04)   |    (0.08)   ||          |       13 |      29    |         7  |          21    |       50    || marriage |     1.16 |   -0.10    |      1.04  |        0.91    |     1.01    ||          |    (0.07)|   (0.08)   |     (0.07) |       (1.36)   |    (1.13)   ||          |       13 |      29    |         7  |          21    |       50    || divorce  |     0.54 |    0.03    |      0.53  |        0.09    |     0.06    ||          |    (0.04)|   (0.06)   |     (0.05) |       (0.14)   |    (0.14)   ||          |       13 |      29    |         7  |          21    |       50    |+------------------------------------------------------------------------------+The baseline means only include observations not omitted in the 1st and 2nd differences.The number of observations in the 1st and 2nd differences includes both baseline and follow-up observations. ***, **, and * indicate significance at the .01, .05, and .1 percent critical level.
  • Example 2
. ieddtab death marriage divorce , t(time) treatment(treatment)  ///>         rowlabtext("death Death Rate @@ divorce Divorce Rate") ///>         rowlabtype("varlab")(0 observations deleted)+-------------------------------------------------------------------------+|            |       Control        |      Treatment      | Difference-in ||            | Baseline | Difference| Baseline |Difference|  -difference  ||            |   Mean   |   Coef.   |   Mean   |  Coef.   |    Coef.      ||            |  (SE)    |   (SE)    |  (SE)    | (SE)     |   (SE)        || Variable   |   N      |    N      |   N      |  N       |    N          ||------------+----------+-----------+----------+----------+---------------||Death Rate  |    0.81  |   0.04    |    0.86  |  -0.00   |      -0.05    ||            |   (0.04) |  (0.06)   |   (0.03) |  (0.04)  |      (0.08)   ||            |      13  |     29    |       7  |    21    |         50    ||Number of   |    1.16  |  -0.10    |    1.04  |   0.91   |       1.01    ||marriages   |   (0.07) |  (0.08)   |   (0.07) | (1.36)   |      (1.13)   ||            |      13  |     29    |       7  |    21    |         50    ||Divorce Rate|    0.54  |   0.03    |    0.53  |  0.09    |       0.06    ||            |   (0.04) |  (0.06)   |   (0.05) | (0.14)   |      (0.14)   ||            |      13  |     29    |       7  |    21    |         50    |+-------------------------------------------------------------------------+The baseline means only include observations not omitted in the 1st and 2nd differences. The number of observations in the 1st and 2nd differences includes both baseline and follow-up observations. ***, **, and * indicate significance at the .01, .05, and .1 percent critical level.

示例 2 生成的表将具有与示例 1 相同的统计信息,但手动输入了变量  deathdivorce 的行标题,以及将结婚的行标题设置为变量标签。

  • Example 3
. ieddtab death marriage divorce , t(time) treatment(treatment) ///>         rowlabtype("varlab") savetex("DID table.tex") replace(0 observations deleted)+-------------------------------------------------------------------+|           |      Control      |    Treatment        |Difference-in||           |Baseline|Difference|Baseline| Difference | -difference ||           |  Mean  |   Coef.  |  Mean  |   Coef.    |   Coef.     ||           | (SE)   |  (SE)    | (SE)   |  (SE)      |  (SE)       || Variable  |  N     |   N      |  N     |   N        |   N         ||-----------+--------+----------+--------+------------+-------------||Number of  |  0.81  |  0.04    |  0.86  |   -0.00    |    -0.05    ||deaths     | (0.04) | (0.06)   | (0.03) |   (0.04)   |    (0.08)   ||           |    13  |    29    |     7  |      21    |       50    ||Number of  |  1.16  | -0.10    |  1.04  |    0.91    |     1.01    ||marriages  | (0.07) | (0.08)   | (0.07) |   (1.36)   |    (1.13)   ||           |    13  |    29    |     7  |      21    |       50    ||Number of  |  0.54  |  0.03    |  0.53  |    0.09    |     0.06    ||divorces   | (0.04) | (0.06)   | (0.05) |   (0.14)   |    (0.14)   ||           |    13  |    29    |     7  |      21    |       50    |+-------------------------------------------------------------------+The baseline means only include observations not omitted in the 1st and 2nd differences. The number of observations in the 1st and 2nd differences includes both baseline and follow-up observations. ***, **, and * indicate significance at the .01, .05, and .1 percent critical level.Balance table saved to: DID table.tex

示例 3 具有与示例 1 和示例 2 相同的统计信息,并将行标题设置为变量标签,最后将该表将保存在当前目录下,名称为 "DID table.tex"。

3. 相关资料

  • ietoolkit 项目主页 -Link-
  • ietoolkit 项目介绍 -Link-
  • ietoolkit 幻灯片 -Link-

4. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 差异 DID, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:数据处理
    • Stata:多变量均值和中位数差异检验
  • 专题:回归分析
    • 一组显著、一组不显著:二者有差异吗?
    • Stata: 如何检验分组回归后的组间系数差异?
  • 专题:倍分法DID
    • 队列DID:以知识青年“上山下乡”为例-T401
    • DID功效计算中的序列相关问题-T407
    • 多期DID文献解读:含铅汽油与死亡率和社会成本
    • DID陷阱解析-L111
    • 面板PSM+DID如何做匹配?
    • 倍分法:DID是否需要随机分组?
    • Fuzzy DID:模糊倍分法
    • DID:仅有几个实验组样本的倍分法 (双重差分)
    • 考虑溢出效应的倍分法:spillover-robust DID
    • tfdiff:多期DID的估计及图示
    • 倍分法DID:一组参考文献
    • Stata:双重差分的固定效应模型-(DID)
    • 倍分法(DID)的标准误:不能忽略空间相关性
    • 多期DID之安慰剂检验、平行趋势检验
    • DID边际分析:让政策评价结果更加丰满
    • Big Bad Banks:多期 DID 经典论文介绍
    • 多期DID:平行趋势检验图示
    • Stata:多期倍分法 (DID) 详解及其图示
    • 倍分法DID详解 (二):多时点 DID (渐进DID)
    • 倍分法DID详解 (一):传统 DID
    • 倍分法DID详解 (三):多时点 DID (渐进DID) 的进一步分析

🍎 🍏 🍎 🍏
🎧 暑期 空间计量专题
📅 2021 年 8 月 21-24 日
🔑 范巧 (兰州大学);杨海生 (中山大学)
🍓 课程主页https://gitee.com/lianxh/SP

关于我们

  • 🍎 连享会 ( 主页:lianxh.cn ) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 👉 直达连享会:百度一下:连享会】即可直达连享会主页。亦可进一步添加 主页,知乎,面板数据,研究设计 等关键词细化搜索。
连享会主页  lianxh.cn

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

(0)

相关推荐