双重差分R与Stata

合集下载

双重差分模型stata命令

双重差分模型stata命令

双重差分模型stata命令一、什么是双重差分模型?双重差分模型(Double Difference Model)是一种常用的计量经济学方法,用于研究政策改变对个体或群体行为的影响。

该模型的特点是在研究中引入了时间和处理两个维度的差分,可以通过比较处理组和对照组在政策改变前后的差异,来分析政策改变对结果变量的影响。

双重差分模型的基本假设是平行趋势假设,即在政策改变前,处理组和对照组在趋势上是平行的,没有其他因素导致差异。

该模型适用于有处理组和对照组的面板数据,常用于实证研究、政策评估和计量经济学研究等领域。

二、如何实现双重差分模型?在Stata中,可以使用difference-in-differences命令来估计双重差分模型。

该命令结合了regress和xtreg两个命令,实现了对面板数据的估计。

1. 数据准备首先,需要准备好面板数据,包括观察单位的处理组与对照组的标识变量、时间变量和结果变量。

可以使用import delimited命令导入数据。

import delimited "data.csv", clear2. 生成虚拟变量根据处理组和对照组的标识变量,可以使用egen命令生成虚拟变量。

例如,处理组和对照组的标识变量分别为treatment和control,可以生成两个虚拟变量。

egen treat = group(treatment)egen ctrl = group(control)3. 估计双重差分模型利用difference-in-differences命令可以方便地估计双重差分模型。

difference-in-differences y treat ctrl, time(time) twoway其中,y是结果变量,treat和ctrl是处理组和对照组的虚拟变量,time是时间变量。

在这个命令中,需要指定time选项,以控制时间维度的差分。

twoway选项用于估计两路固定效应模型。

双重差分法的stata命令 -回复

双重差分法的stata命令 -回复

双重差分法的stata命令-回复双重差分法(Double Difference method)是一种在处理含有面板数据(Panel Data)的实证研究中常用的统计方法。

该方法通过观察同一实体在时间上的变化和不同实体之间的差异,来解决内生性(Endogeneity)的问题。

在Stata软件中,有一些常用的命令可以实施双重差分法分析,包括`xtreg`、`areg`和`reghdfe`等。

本文将一步一步地回答关于Stata命令的使用问题,并介绍其背后的原理。

首先,我们需要了解何时应该使用双重差分法。

双重差分法通常用于面板数据的因果推断分析,特别适用于研究政策决策对实体间变量的影响。

例如,假设我们想研究一项政策改革对不同地区的经济增长率的影响。

我们需要收集每个地区多年的经济增长数据,并观察政策改革前后的变化。

双重差分法将帮助我们控制因其他潜在因素带来的内生性问题,以更准确地评估政策改革的影响。

接下来,我们将介绍如何使用Stata的命令实施双重差分法分析。

首先,我们需要加载面板数据,并确保数据已经按照实体和时间进行排序。

statause "面板数据文件名.dta", clear然后,我们可以使用`xtreg`命令来运行双重差分法。

`xtreg`命令是Stata 中用于拟合面板数据固定效应模型的命令。

stataxtreg 因变量自变量1 自变量2 自变量3, fe vce(cluster 实体标识)在上述命令中,`因变量`代表面板数据中的被解释变量,`自变量1`至`自变量3`代表我们感兴趣的解释变量。

`fe`选项表示拟合固定效应模型,`vce(cluster 实体标识)`选项用于计算异方差稳健的标准误。

另外一种可看作是`xtreg`的替代命令是`areg`。

这两个命令的使用方法非常相似,但是它们处理固定效应模型的原理略有不同。

`areg`命令假设实体固定效应与时间固定效应被完全包含在因变量和解释变量中。

双重差分模型stata命令

双重差分模型stata命令

双重差分模型stata命令一、概述双重差分模型(Double Difference Model)是一种常用的计量经济学方法,用于评估政策或治理措施的效果。

它利用时间和空间的变化来估计政策对实验组和对照组之间的差异。

在Stata中,可以使用ddid命令实现双重差分模型。

二、数据准备在进行双重差分模型之前,需要准备好数据集。

数据集应包括两个时间点(前后)、两个组别(实验组和对照组)以及被观察变量(例如收入、就业率等)。

确保数据集中没有缺失值,并且变量类型正确。

三、双重差分模型基本原理双重差分模型的基本思想是通过比较实验组和对照组在政策实施前后的变化,来估计政策对两者之间差异的影响。

具体来说,假设我们有两个时间点t1和t2,以及两个组别A和B。

在t1时刻,我们将政策引入到实验组A中,并将B作为对照组。

在t2时刻,我们测量了所有人的被观察变量并比较了A和B之间的变化。

如果我们只比较A组内部和B组内部的变化,那么我们可能会受到其他因素(如季节性变化、经济周期等)的影响。

为了消除这些干扰因素,我们可以比较A组和B组之间的差异。

但是,这种方法也可能会受到政策实施前的差异的影响。

为了消除这种影响,我们可以使用双重差分模型。

具体来说,我们可以计算出实验组A和对照组B在政策实施前后的变化量,并计算出两者之间的差异(即“差分”)。

然后,在政策实施前后,我们可以比较这些差异之间的变化量(即“双重差分”)。

通过这种方式,我们可以估计政策对两个组别之间差异的影响。

四、Stata命令介绍Stata提供了ddid命令来实现双重差分模型。

ddid命令需要指定以下参数:1. timevar:时间变量名称。

2. groupvar:组别变量名称。

3. treated:被视为实验组的值。

4. control:被视为对照组的值。

5. depvar:被观察变量名称。

6. covars:控制变量列表。

7. absorb(timevar):吸收时间固定效应。

stata 双重差分法 导出回归结果

stata 双重差分法 导出回归结果

双重差分法(Double Difference, DID)是一种常见的计量经济学方法,常用于评估政策变革对个体、企业或地区经济行为的影响。

而Stata是一个常用的统计分析软件,提供了丰富的数据处理和回归分析功能,因此在Stata中进行双重差分法分析并导出回归结果是许多研究者的需求。

下面将依次介绍在Stata中进行双重差分法分析并导出回归结果的步骤:1. 数据准备在进行双重差分法分析之前,首先需要确保数据的质量和完整性。

将需要分析的数据导入Stata软件中,并对数据进行清洗和整理,包括缺失值处理、异常值处理、变量筛选等工作。

2. 双重差分法模型建立在数据准备工作完成后,需要建立双重差分法模型。

假设有两组实验对象(实验组和对照组),在某个时间点前后分别进行了政策变革,我们希望评估政策变革对实验组与对照组的影响。

双重差分法模型可以通过以下方程表示:Y_it = α + β_1*Post_t + β_2*Treat_i + β_3*(Post_t*Treat_i)+ ε_it 其中,Y_it表示个体i在时间点t的观测值,Post_t表示时间变量,Treat_i表示实验组变量,ε_it为误差项。

β_3即为我们所关心的政策效应参数。

3. 双重差分法回归分析建立好双重差分法模型后,可以使用Stata中的回归命令进行估计。

在Stata中,可以使用regress或者xtreg等命令进行双重差分法回归的估计。

在进行回归分析时,需要注意控制其他可能影响因变量的因素,以确保政策效应的准确估计。

4. 导出回归结果在进行双重差分法回归估计后,可以使用Stata中的estout或者outreg2等命令将回归结果导出为表格形式。

这些命令可以将回归系数、标准误、t值、p值等统计量整理成表格,并输出为Excel、Word 或者Latex等格式,以便于进一步的结果展示和分析。

通过以上几个步骤,我们可以在Stata中进行双重差分法分析并导出回归结果。

双重差分模型stata命令

双重差分模型stata命令

双重差分模型stata命令双重差分模型是一种用于处理因果推断的统计方法,旨在评估一项政策或干预对观察单位的影响。

这种模型通常用于处理面板数据,其中同一组观察单位在时间上接受不同的处理或干预。

在本文中,我们将探讨基于Stata命令的双重差分模型,并提供一些实际应用的示例。

1. 什么是双重差分模型?双重差分模型是一种在实证研究中广泛使用的分析方法,用于估计政策、干预或处理对实验组和对照组之间差异的影响。

它旨在消除个体固定效应和时间固定效应的潜在混淆,并提供因果推断的方法。

双重差分模型的核心思想是通过比较实验组和对照组在处理前后的差异来估计处理的效果。

通过引入时间维度和组别维度的差异,双重差分模型可以控制时间固定效应和个体固定效应,从而减少内生性的影响。

2. 如何使用Stata进行双重差分分析?要在Stata中运行双重差分模型,可以使用`xtreg`命令来估计面板数据模型,并通过引入交互项来实现差分。

以下是一个示例命令:```xtreg outcome treatment treated_time##after_control, fe```在这个命令中,`outcome`代表因变量,`treatment`代表处理变量,`treated_time`代表处理后的时间指示变量,`after_control`代表处理后的对照组指示变量。

通过使用`##`交互项运算符,我们可以实现处理前后和实验组对照组的双重差分估计。

`fe`选项表示使用固定效应模型。

3. 示例应用:教育政策对学生成绩的影响为了更好地理解双重差分模型的应用,我们将以教育政策对学生成绩的影响为例进行说明。

假设我们有一组学生,其中一部分接受了某项教育政策的干预,而另一部分则未接受干预。

我们需要收集关于学生的面板数据,包括学生的个人特征和学业成绩。

我们可以使用Stata进行双重差分分析来估计教育政策对学生成绩的影响。

下面是一些可能的Stata命令:xtset student_id yearxtreg grade policy treated_time##after_control, fe```在这个示例中,`student_id`代表学生的唯一标识符,`year`代表年份。

双重差分模型、相关方法及stata代码

双重差分模型、相关方法及stata代码

面板数据模型设定的不同会对回归结果产生较大的影响,因此需要进行相关检验确定具体设定为何种面板数据模型。

第一步:F检验。

将得到F统计量的值与临界值进行比较,确定选择混合估计模型还是变截距或变系数模型;第二步:Hausman检验。

判断是选择固定效应模型还是随机效应模型;第三步:时间效应检验。

判断在个体固定/随机效应中是否应加入时间固定效应。

F检验代码:xtreg y1 did size cash tar tq roa largest lev ret ,feHausman检验代码:xtset id yearxtreg y1 did size cash tar tq roa largest lev ret ,fe /个体固定效应回归/ esti store FE1 /存储为FE1/ xtreg y1 did size cash tar tq roa largest lev ret ,re /随机效应变截距模型/ esti store RE1 /存储为RE1/ hausman FE1 RE1, constant sigmamore得到的结果原假设则随机效应拒绝原假设固定效应时间效应检验代码:xtset id yeartab year, gen(year)xtreg y1 size cash tar tq roa largest lev ret year2-year16, fe restimates store FE_TWtest year2 year3 year4 year5 year6 year7 year8 year9 year10 year11 year12 year13 year14 year15 year16 /检验所有年度虚拟变量的联合显著性/ 得到的结果原假设为无时间效应拒绝原假设则认为模型中应包含时间效应个体固定效应+时间固定效应,即双向固定效应一、常用的两种双重差分模型:(一)传统DIDy it=α0+α1treated i+α2time t+α3treated i×time t+γx it+εit(1)treated i为实验组和控制组的分组变量。

stata双重差分回归结果解读

stata双重差分回归结果解读

stata双重差分回归结果解读
在进行Stata双重差分回归分析时,我们需要对结果进行正确解读。

双重差分回归分析是一种常用的计量经济学方法,用于评估政策或其
他干预对某一变量的影响。

下面将从回归结果的几个方面进行解读。

首先,我们需要看回归系数的符号和显著性水平。

回归系数的符号
表示自变量对因变量的影响方向,正值表示正向影响,负值表示负向
影响。

而回归系数的显著性水平则用P值来表示,P值越小说明结果越显著,通常当P值小于0.05时认为结果显著。

其次,我们还需要看回归系数的大小和置信区间。

回归系数的大小
表示自变量对因变量的影响程度,绝对值越大表示影响越显著。

而置
信区间则表示估计值的范围,置信区间越窄说明估计值越准确。

另外,我们还需要关注R方和调整R方。

R方表示模型对因变量变
异性的解释程度,值越接近1表示模型拟合度越好;而调整R方则考
虑了模型的自由度,用于调整R方的不准确性。

最后,我们需要进行结果的敏感性分析。

可以通过改变模型设定、
剔除异常值等方式来检验结果的稳健性,确保结果的可靠性。

在解读Stata双重差分回归结果时,需要综合考虑以上几个方面,
确保对结果的准确理解和科学判断。

愿以上解读能为您进行回归分析
提供一定帮助。

多时点双重差分模型中介效应stata代码

多时点双重差分模型中介效应stata代码

多时点双重差分模型中介效应stata代码多时点双重差分(Difference-in-Differences-in-Differences,简称DDD)模型是一种用于处理面板数据中的因果关系问题的方法。

它适用于具有多个时间点和多个处理组的情况。

在此模型中,我们旨在估计干预处理组对非处理组的影响,并且更进一步,探究这种关系是否受到中介效应的影响。

中介效应是指一个变量通过影响另一个变量来影响最终结果的情况。

在多时点双重差分模型中,我们通常将两个因果关系问题统一称为总效应和中介效应。

总效应是指处理组与非处理组之间的差异,而中介效应则是通过某个变量的中介作用来解释总效应的一部分。

为了进行多时点双重差分模型的分析,我们可以使用Stata进行操作。

下面是一个用于评估中介效应的示例代码:首先,我们需要导入面板数据并进行变量相关的操作。

```use panel_data.dta, clearsort id time```接下来,我们将创建一个新的变量来表示处理组和非处理组的唯一组别。

```egen group = group(treatment)```然后,我们将创建一个虚拟变量来表示处理组和非处理组。

```egen treated = group(treatment)```接下来,我们需要计算总效应和中介效应。

```//计算总效应xtreg outcome treated time, fe//计算中介效应xtreg mediator outcome treated time, fe```在Stata中,我们可以使用xtreg命令进行面板数据的最小二乘回归分析。

在这里,我们使用固定效应(fixed effects)模型来控制个体效应和时间效应。

通过添加treated和time作为独立变量,我们可以评估处理组与非处理组之间的差异。

然后,我们可以使用同样的方法来评估中介效应。

在分析完成之后,我们可以使用mediation命令来评估中介效应的大小。

【STATA教程】双重差分(DID)回归命令

【STATA教程】双重差分(DID)回归命令

【STATA教程】双重差分(DID)回归命令“社会科学中的数据可视化”第259篇推送双重差分(DID:Difference in Difference)是⼀种⽐较重要的计量研究设计,其常⽤在政策评估研究⽅⾯。

本⽂简单介绍三种DID回归设计的STATA命令(⼩编想起了孔⼄⼰:茴字有三种写法)。

现假设有⼀地区⾯板数据,其中,地区代码为1-7,时间跨度为1990-1999年。

在1994年,地区5-7实施⼀项政策(实验组),⽽地区1-4并未实施(控制组)。

此外,出于介绍⽅便,本⽂不考虑DID研究设计任何前提条件,具体命令格式如下:命令格式cd 'F:\Dropbox\stata13\graphics'///定义⼯作环境。

use panel101,clear///导⼊数据。

gen time = (year >= 1994) & !missing(year)///假设政策开始执⾏时间为1994年,则构建时序dummy:1994年之前为0(含1994年),之后为1。

gen treated = (country > 4) & !missing(country)///假设政策执⾏地⽅为5、6、7,则构建空间dummy:1-4为0,5-7为1。

gen did = time*treated///构建DID估计关键变量,时间空间交互项。

reg y did time treated,r///第⼀种DID回归设计。

reg y time##treated, r///第⼆种DID回归设计。

ssc install diffdiff y, t(treated) p(time)///第三种DID回归设计。

原⽂来源:Princeton University library DSS以及Stata帮助(Help)⽂件,部分⽂字进⾏删减。

注:操作版本为Stata13,原⽂请点击左下“阅读原⽂”。

分位数双重差分法的stata命令

分位数双重差分法的stata命令

分位数双重差分法的stata命令分位数双重差分法是一种常用的回归分析方法,可用于研究政策改变对个体或群体行为的影响。

这种方法的优势在于可以控制个体固定效应和时间固定效应,消除了可能存在的内生性问题,提高了研究的可信度。

为了使用分位数双重差分法,我们可以借助Stata软件提供的命令进行实施。

首先,我们需要使用"xtset"命令设置数据集的面板结构,以便正确地识别个体和时间。

然后,利用"areg"命令进行分位数双重差分估计。

下面我们以一个实际例子来解释分位数双重差分法的应用。

假设我们想研究教育政策改变对学生成绩的影响。

我们有一个包含学生个体信息和学校年度数据的面板数据集。

我们的目标是估计政策改变对学生成绩的效应。

首先,我们使用"xtset"命令设置数据集的面板结构。

假设个体变量为"student_id",时间变量为"year",则命令为:xtset student_id year接下来,我们将使用"areg"命令进行分位数双重差分估计。

假设我们想估计教育政策改变对学生成绩的影响,并将注意力放在学生成绩分布的中位数水平。

我们可以使用"areg"命令的"qreg"选项来实现。

具体命令如下:areg score policy_change, absorb(individual school)qreg(0.5)在这个命令中,"score"是学生成绩的因变量,"policy_change"是政策变量。

"absorb(individual school)"表示我们将控制个体和学校的固定效应。

"qreg(0.5)"表示我们将对学生成绩分布的中位数水平进行估计。

分位数双重差分估计的结果将提供政策变化对学生成绩的影响估计量以及对应的置信区间。

双重差分法的stata命令 -回复

双重差分法的stata命令 -回复

双重差分法的stata命令-回复[双重差分法的stata命令]是一种经济学和计量经济学中常用的统计方法,用于分析政策、制度或其他外部因素对两个或多个组之间的差异造成的影响。

本文将从介绍双重差分法的背景和原理开始,然后逐步展示如何使用stata命令来实施双重差分分析。

一、背景和原理双重差分法是一种强大的因果推断工具,用于解决计量经济学中的内生性问题。

在许多情况下,我们希望了解某种政策、制度或其他外部因素对组间差异的影响。

然而,由于内生性问题,这种差异可能不完全代表因果效应。

双重差分法通过比较处理组与对照组的变化量,消除了时间不变或组间不变的因素的影响,从而提供了更加可靠的因果效应估计。

二、使用stata命令进行双重差分分析以下是在stata中使用双重差分命令的步骤:# 步骤1:加载数据首先,我们需要使用stata的`use`命令加载数据。

假设我们有一个包含处理组和对照组的面板数据集。

命令的格式如下:statause "data.dta", clear# 步骤2:创建虚拟变量其次,我们需要创建一个虚拟变量来表示处理组和对照组。

通常,我们将处理组编码为1,对照组编码为0。

可以使用`egen`命令来创建虚拟变量。

假设数据集中有一个名为`group`的变量表示组别:stataegen treatment = group == 1# 步骤3:计算时间虚拟变量接下来,我们需要计算一个时间虚拟变量来控制时间趋势对结果的影响。

可以使用`egen`命令来创建时间虚拟变量。

假设数据集中有一个名为`time`的变量表示时间:stataegen year = group(time)# 步骤4:进行双重差分分析最后,我们可以使用`regress`命令进行双重差分分析。

假设我们想要估计处理组对结果变量`outcome`的因果效应:stataregress outcome treatment year该命令将输出处理组的因果效应估计值、标准误、t值和p值等统计信息。

双重差分事件研究法stata命令

双重差分事件研究法stata命令

双重差分事件研究法stata命令双重差分事件研究法(Double Difference Estimation)是一种常用的经济学研究方法,广泛应用于评估政策改革、项目实施等对经济和社会产生的影响。

本文将介绍如何使用Stata命令进行双重差分事件研究法的实施。

双重差分事件研究法的基本思想是通过比较两组单位之间的差异,消除时间不变的个体特征和时间不变的影响因素,从而更准确地评估政策改革等事件对个体产生的影响。

其主要步骤包括数据准备、模型建立、模型估计和结果分析。

需要准备好适用于双重差分事件研究法的面板数据。

面板数据通常包含两个维度,即个体(如企业、家庭)和时间。

个体维度是指研究对象的特征,时间维度是指研究对象在不同时间点的观测。

在Stata中,可以使用面板数据命令(如xtset)将数据设置为面板数据格式。

接下来,可以建立双重差分模型。

双重差分模型的基本形式如下:Y_it = β_0 + β_1*Treat_i + β_2*Post_t + β_3*(Treat_i * Post_t) + ε_it其中,Y_it表示个体i在时间t的观测结果,Treat_i表示个体i 是否接受了某种处理(如政策改革),Post_t表示时间t是否发生了某个事件(如政策改革),ε_it表示误差项。

模型中的β系数则表示政策改革对个体产生的影响。

在Stata中,可以使用面板数据回归命令(如xtreg)来估计双重差分模型。

具体命令如下:xtreg Y Treat Post (Treat*Post), fe其中,Y是因变量,Treat是处理变量,Post是时间变量,(Treat*Post)表示处理变量和时间变量的交互项,fe表示使用固定效应模型进行估计。

在估计完模型后,可以通过Stata的输出结果来分析双重差分模型的估计效果。

主要关注模型的系数估计值和统计显著性。

系数估计值表示政策改革对个体产生的实际影响,统计显著性则用于判断估计结果的可信度。

差分法在stata的应用新视角

差分法在stata的应用新视角

差分法在stata的应用新视角差分法在Stata的应用新视角导言:差分法是一种常用的统计分析方法,可以用来探究变量之间的因果关系。

在Stata软件中,差分法的应用非常广泛,尤其在经济学和社会科学领域。

本文将从深度和广度的角度,探讨差分法在Stata中的应用,并分享一些新的视角和观点。

一、差分法概述差分法,即差分估计方法,是基于时间序列数据中的差分,通过比较变量之间的变化,来分析变量之间的因果关系。

以面板数据为例,差分法通过对变量进行时间差分,消除不可观测的个体固定效应,从而更准确地评估变量之间的因果效应。

二、差分法在Stata中的应用1. 面板数据处理差分法在面板数据处理中有广泛的应用。

在Stata中,通过面板数据分析命令,如xtreg、xtreg2等,可以轻松实现面板数据的差分估计。

以xtreg命令为例,指定时间变量和个体变量,并加入差分估计方法,即可进行面板数据的差分分析。

2. 双差分法双差分法是差分法的一种扩展方法,可以进一步减少个体固定效应和时间固定效应的混合问题。

在Stata中,通过加入交互项,实现双差分模型的估计。

双差分法在评估政策效果、实验设计等方面具有重要的应用价值。

3. 差分法的稳健性检验在进行差分估计时,关注的一个重要问题是估计结果的稳健性。

Stata 提供了一系列的稳健性检验命令,如xtsuite、xtreg2等,可以对差分估计结果进行稳健性检验,以增强估计结果的可靠性和鲁棒性。

三、深入理解差分法1. 差分法的时间尺度差分法的时间尺度是指差分间隔的选择。

通常情况下,选择合适的差分间隔是差分法的关键。

在Stata中,可以通过改变差分间隔,来观察不同时间尺度下因果效应的变化,从而更全面地理解变量之间的因果关系。

2. 差分法的局限性差分法虽然在处理面板数据和因果推断方面具有重要的优势,但也存在一些局限性。

差分法无法解决遗漏变量和内生性等问题,需要结合其他方法进行补充分析。

在使用差分法时,需要注意这些局限性,并结合具体情况进行适当的修正和说明。

stata双重差分分组虚拟变量前系数解释

stata双重差分分组虚拟变量前系数解释

文章标题:深度解析stata双重差分分组虚拟变量前系数解释在统计学和经济学领域中,双重差分分析是一种常用的分析方法,用于评估政策或处理效果的影响。

而在stata中,使用虚拟变量进行分组的双重差分分析更是一种常见的做法。

本文将深入探讨stata双重差分分组虚拟变量前系数的解释,以帮助读者更全面、深入地理解这一分析方法。

1. 解释双重差分分析的基本原理双重差分分析是一种比较组内差异和组间差异的分析方法,通常用于评估政策或处理效果的影响。

在stata中,我们可以通过引入虚拟变量来进行分组,以更清晰地观察不同组别在政策或处理前后的变化情况。

而双重差分分析则是在此基础上,进一步对分组虚拟变量前系数进行解释,以评估政策或处理效果的准确性和显著性。

2. 使用stata进行双重差分分析在stata中,进行双重差分分析通常需要使用regress命令,并引入交互项虚拟变量。

在进行分组虚拟变量前系数解释时,我们可以通过引入交互项虚拟变量来观察不同组别在政策或处理前后的变化。

此时,我们需要关注虚拟变量前系数的显著性水平,以确定政策或处理效果的实质影响。

3. 虚拟变量前系数的解释在进行双重差分分组虚拟变量前系数解释时,我们首先需要考虑虚拟变量的选择和设置。

在stata中,我们可以通过dummy variable命令来为虚拟变量设置多个组别,并通过tab命令来查看各组别的统计特征。

之后,我们可以使用regress命令引入交互项虚拟变量,并通过t检验或F检验来评估虚拟变量前系数的显著性。

我们可以通过边际效应图来直观地展示虚拟变量前系数的变化情况,以帮助读者更好地理解分析结果。

4. 个人观点和理解在我的个人理解中,双重差分分组虚拟变量前系数的解释在评估政策或处理效果时起着至关重要的作用。

通过深入分析不同组别在政策或处理前后的变化情况,我们可以更准确地评估政策或处理的实质影响。

而stata作为一个强大的统计分析工具,提供了丰富的命令和功能,能够帮助我们更全面、深入地进行双重差分分析。

双重差分R与Stata

双重差分R与Stata

Differences Differences--in in--Differences estimation in R and Differences estimation in R and S tata StataStata { a.k.a. Difference { a.k.a. Difference--in in--Difference, Difference Difference, Difference--in in--Differences,DD, DID, D Differences,DD, DID, D--I -D. }D. }DID estimation uses four data points to deduce the impact of a policy change or some other shock (a.k.a. treatment) on the t other shock (a.k.a. treatment) on the treated population: reated population: the effect of the treatment on thetreated . T he structure of the experiment implies that the treatment group and control groupThe structure of the experiment implies that the treatment group and control group have similar characteristics and are trending in the same way over time. T his means that This means that the counterfactual the counterfactual (unobserved scenario) is that had the treated group (unobserved scenario) is that had the treated group not received treatment, its mean value would be the same distance from the control group in the second period. S ee the diagram below; the four data points are the observed mean (average) of See the diagram below; the four data points are the observed mean (average) of each group. T each group. These are the only data points necessary to calculate hese are the only data points necessary to calculate the effect of the treatmenton the treated . T he dotted lines represent the trend that is not observed by theThe dotted lines represent the trend that is not observed by the researcher. N otice that although the means are different, they both have the same time Notice that although the means are different, they both have the same time trend trend (i.e. slope). (i.e. slope). (i.e. slope).For a more thorough work through of the effect of the Earned Income Tax Credit on female employment, see an earlier post of mine: of mine:Calculate the D Calculate the D--I -D Estimate of the Treatment Effect D Estimate of the Treatment EffectWe will now use R and Stata to calculate the unconditional difference We will now use R and Stata to calculate the unconditional difference--in in--difference estimates of the effect of the 1993 EITC expansion on employment of single women.estimates of the effect of the 1993 EITC expansion on employment of single women.R:R:view source print print??01# Load the foreign packagen)require(foreign)02require(foreig0304# Import data from web site0506require(foreign)0708# update: first download the file eitc.dta from this link:en?id=0B0iAUHM7ljQ1cUZvRWxjUmpfVXM https:///open?id=0B0iAUHM7ljQ1cUZvRWxjUmpfVXM09# https:///op10# Then import from your hard drive:11eitc = read.dta("C:/link/to/my/download/folder/eitc.dta")1213# Create two additional dummy variables to indicate before/after 14# and treatment/control groups.1516# the EITC went into effect in the year 199417eitc$post93 = as.numeric(eitc$year >= 1994)1819# The EITC only affects women with at least one child, so the20 # treatment group will be all women with children. 21 eitc$anykid eitc$anykids = as.numeric(eitc$children >= 1) s = as.numeric(eitc$children >= 1) 2223 # Compute the four data points needed in the DID calculation: 24 a = sapply(subset(eitc, post93 == 0 & anykids == 0, select=work), mean) 25 select=work b = sapply(subset(eitc, post93 == 0 & anykids == 1, select=work), ), mean) 26 c = sapply(subset(eitc, post93 == 1 & anykids == 0, select=work), mean) 27 d = sapply(subset(eitc, post93 == 1 & anykids == 1, select=work), mean) 2829# Compute the effect of the EITC on the employment of women with children: 30 (d (d--c)c)--(b (b--a)The result is the width of the “shift” shown in the diagram above.The result is the width of the “shift” shown in the diagram above.STATA:STATA:cd "C:cd "C:\\DATA DATA\\Econ 562Econ 562\\homework"homework" use eitc, clear use eitc, cleargen anykids = (children >= 1)gen anykids = (children >= 1) gen post93 = (year >= 1994)gen post93 = (year >= 1994)mean work if post93==0 & anykids==0 /* value 1 */mean work if post93==0 & anykids==0 /* value 1 */ mean wo mean work if post93==0 & anykids==1 /* value 2 */rk if post93==0 & anykids==1 /* value 2 */rk if post93==0 & anykids==1 /* value 2 */ mean work if post93==1 & anykids==0 /* value 3 */mean work if post93==1 & anykids==0 /* value 3 */ mean work if post93==1 & anykids==1 /* value 4 */mean work if post93==1 & anykids==1 /* value 4 */Then you must do the calculation by hand (shown on the last line of the R code).Then you must do the calculation by hand (shown on the last line of the R code). (value 4 (value 4 –– value 3) value 3) –– (value 2 (value 2 –– value 1) value 1)Run a simple D Run a simple D--I -D Regression D RegressionNow we will run a regression to estimate the conditional difference Now we will run a regression to estimate the conditional difference--in in--difference estimate of the effect of the Earned Income Tax Credit on “work”, using all women with children as the treatment group. Th children as the treatment group. This is exactly the same as what we did manually above, is is exactly the same as what we did manually above, now using ordinary least squares. The regression equation is as follows:now using ordinary least squares. The regression equation is as follows:Where is the white noise error term, and is the effect of the treatment on the treated is the effect of the treatment on the treated —— the shift shown in the diagram. To be clear, the coefficient on is thevalue we are interested in (i.e., ).).R:R:view source print print??1eitc$p93kids.interaction = eitc$post93*eitc$anykidslm(work ~ post93 + anykids + p93kids.interaction, data = eitc) reg1 = lm(work ~ post93 + anykids + p93kids.interaction, data = eitc) 2reg1 =3summary(reg1)The coefficient estimate on p93kids.interaction should match the value calculated manually above.manually above.STATA:STATA:gen interaction = post93*anykidsgen interaction = post93*anykidsreg work post93 anykids interactionreg work post93 anykids interactionShare this:Share this:•Share•Like this:Like this:LikeOne blogger likes this.One blogger likes this.•RSS feed | | Respond |Trackback URL Posted on June 20, 2011 at 2:21 pm in Econometrics with R|R SS feedTags: R, STATA9 Comments to “Differences 9 Comments to “Differences--in in--Differences estimation in R and Differences estimation in R and S tata” Stata”1.Claudio GxpNovember 6, 2011 at 11:10 amDear Kevin Dear KevinThanks for this example, but be aware of some mistakes:Thanks for this example, but be aware of some mistakes:in Stata:in Stata:“use eitc, clear” instead of “insheet using eitc.dta, clear”“use eitc, clear” instead of “insheet using eitc.dta, clear”in R:in R:eitc$post93 = a eitc$post93 = as.numeric(eitc$year >= 1994)s.numeric(eitc$year >= 1994)s.numeric(eitc$year >= 1994) eitc$anykids = as.numeric(eitc$children >= 1)eitc$anykids = as.numeric(eitc$children >= 1) instead of instead ofeitc$post93 = as.numeric(year >= 1994)eitc$post93 = as.numeric(year >= 1994) eitc$anykids = as.numeric(children >= 0)eitc$anykids = as.numeric(children >= 0) Best Best Claudio ClaudioReplyoKevin GouldingNovember 6, 2011 at 11:22 amHi Claudio,Hi Claudio,Good catch; I’ve updated the code to reflect your changes. Thanks for reading. reading. --Kevin KevinReply2.Dan MJanuary 6, 2012 at 1:34 amHi Kevin Hi Kevin ––I have a question for you that you may or may not know t I have a question for you that you may or may not know the answer to. I’m he answer to. I’m trying to run a DID model in stata, only I’m first differencing my outcome variable, and some of the time variable, and some of the time--variant control variables, but not all of them. In particular, my program participation variable is not differenced (because I assum particular, my program participation variable is not differenced (because I assume e it to have effects over multiple years, not just in the first year). The second complication is that not all program participants enter the program in the same year, so that program participation occurs, for some in 2003, some in 2004, some in 2005, etc…2005, etc…. so that it is not possible to simply have a pre and post dummy . so that it is not possible to simply have a pre and post dummy variable to interact with the treatment / control variable.variable to interact with the treatment / control variable.How do I carry this out? My initial impression, and after reading some math for the past 6 hours, is that when I first difference, the past 6 hours, is that when I first difference, I simply am left with the program I simply am left with the program participation variable that indicates a 1 only after the program is initiated, and that there is no more interaction term. Is this correct? This is as opposed to if I did not difference, then I would need the pre/post vari difference, then I would need the pre/post variable, the treatment/control variable, able, the treatment/control variable, and the interaction of the two, which represents the affect of the treatment on the treated.treated.One last question / clarification. Assuming I’m correct that I simply have a variable in the regression that becomes a 1 for variable in the regression that becomes a 1 for the treatment once treatment the treatment once treatment begins… and I don’t difference it, but I do difference the outcome variable… is there anything wrong with this?there anything wrong with this?Any help / opinion you can offer would be appreciated.Any help / opinion you can offer would be appreciated.ReplyoKevin GouldingJuly 14, 2012 at 9:06 amHi Dan, what is your motivation for first differencing your data? It might be less complicated to not first be less complicated to not first--difference your data but instead include a set of individual specific dummy variables (i.e. fixed set of individual specific dummy variables (i.e. fixed effects) which will effects) which willaccomplish the same thing (control for between individual differences a.k.a. time invariant differences). From there you should be able to follow the model as above.model as above.It is perfectly fine to have the treatment dummy switch on (=1) at dif It is perfectly fine to have the treatment dummy switch on (=1) at different ferent time for different individuals. Interpretation is the same. Hope this helps. -Kevin KevinReply3.KarenMay 23, 2012 at 5:16 amHi Kevin,Hi Kevin,thanks for this example, really useful resource. Could you please also give STATA command if outcome v command if outcome variable is binary. ariable is binary.thanks thanksReplyoKevin GouldingJuly 14, 2012 at 8:28 amHi Karen, If the outcome variable is binary, you do not want to use this OLS model because of the inherent heteroskedas OLS model because of the inherent heteroskedasticity in a Linear ticity in a LinearProbability Model (it’s inefficient). Also, interpretation of coefficients becomes difficult when predicted values lie outside [0,1].becomes difficult when predicted values lie outside [0,1].If you can clearly state your research question I may be able to point you in the right direction in the right direction —— in in the meantime check out log it and probit models. the meantime check out log it and probit models. HTH. HTH. --Kevin KevinReply4.pythonscriptAugust 10, 2012 at 4:41 pmWhere can I find the data set you used? The link in your example is no longer funct functioning.ioning.ioning.ReplyoKevin GouldingAugust 10, 2012 at 5:14 pmI’ve now updated the code to show how to find the eitc.dta data set. It isnow available at this link:now available at this link:https:///open?id=0B0iAUHM7ljQ1cUZvRWxjUmpfVXMLet me know if this works. Cheers, KevinLet me know if this works. Cheers, KevinReply5.JohnAugust 10, 2012 at 9:18 pmWorks perfectly. Thank you for the quick response!Works perfectly. Thank you for the quick response!。

多期双重差分法(DID)的Stata操作

多期双重差分法(DID)的Stata操作

多期双重差分法(DID)的Stata操作如果政策实施时点⼀致的话,那么我们就可以使⽤标准DID愉快地玩耍了。

但是,更多情况下,政策实施时点是不⼀致的,这时候就该多期DID粉墨登场了。

在多期DID模型中,因为不同个体实施政策的时点(period)不同,所以政策分期变量会变成(注意下标)。

与标准DID⼀样,我们需要⽣成地区维度的政策分组变量treat和时间维度的政策分期变量period,交互项treat×period的系数反映的就是经过政策实施前后、处理组和控制组两次差分后所得到的政策效应。

那么,如何在Stata中实现多期DID的操作呢?让我们看⼀个经典的案例!数据说明贾瑞雪⽼师(2014)的论⽂《The Legacies of Forced Freedom: China’s Treaty Ports》是⼀篇经典的计量史学论⽂,《Review of Economics and Statistics》官⽹上公布了这篇论⽂的数据和代码,接下来我就使⽤作者公布的数据和代码跟⼤家分享⼀下多期DID的Stata操作。

Replication Data for: Ruixue Jia . The Legacies of Forced Freedom: China's Treaty Ports[J]. Review ofEconomics and Statistics, 2014, 96(4):596-608.建议⼤家在看下⾯的内容之前,最好先看⼀下“殖民的遗产:通商⼝岸给近现代中国带来了什么?”这篇推⽂,这样可能理解起来更加顺畅。

识别策略清朝末期,清政府与西⽅列强签订了⼀系列不平等条约,开放沿江沿海等城市作为通商⼝岸即是不平等条约的主要内容之⼀。

贾瑞雪⽼师(2014)将近代通商⼝岸的设置作为⼀项准⾃然实验,评估了通商⼝岸对中国近现代⼈⼝和经济发展的长期影响。

从1840年⾄1910年,中国⼀共被迫开放了40多个通商⼝岸。

stata操作:双重差分流程及代码

stata操作:双重差分流程及代码

stata操作:双重差分流程及代码一、简介现代计量经济学和统计学的发展为我们的研究提供了可行的工具。

倍差法来源于计量经济学的综列数据模型,是政策分析和工程评估中广为使用的一种计量经济方法。

主要是应用于在混合截面数据集中,评价某一事件或政策的影响程度。

该方法的基本思路是将调查样本分为两组,一组是政策或工程作用对象即“作用组”,一组是非政策或工程作用对象即“对照组”。

根据作用组和对照组在政策或工程实施前后的相关信息,可以计算作用组在政策或工程实施前后某个指标(如收入)的变化量(收入增长量),同时计算对照组在政策或工程实施前后同一指标的变化量。

然后计算上述两个变化量的差值(即所谓的“倍差值”)。

这就是所谓的双重差分估计量(Difference in Differences,简记DD或DID),因为它是处理组差分与控制组差分之差。

该法最早由Ashenfelter(1978)引入经济学,而国内最早的应用或为周黎安、陈烨(2005)。

常用的倍差法主要包括双重倍差法和三重倍差法。

双重差分法(Difference-in-difference,DID)有几种其他的称谓:倍差法、差分再差分等。

该方法的原理非常简单,它要求数据期至少有两期,所有的样本被分为两类:实验组和控制组,其中实验组在第一期是没有受到政策影响,此后政策开始实施,第二期就是政策实施后的结果,控制组由于一直没有受政策干预,因此其第一期和第二期都是没有政策干预的结果。

双重差分方法的测算也非常简单,两次差分的效应就是政策效应。

双重差分法的假定,为了使用OLS一致地估计方程,需要作以下两个假定。

假定1:此模型设定正确。

特别地,无论处理组还是控制组,其时间趋势项都是。

此假定即“平行趋势假定”(parallel trend assumption)。

DID最为重要和关键的前提条件:共同趋势(Common Trends)双重差分法并不要求实验组和控制组是完全一致的,两组之间可以存在一定的差异,但是双重差分方法要求这种差异不随着时间产生变化,也就是说,处理组和对照组在政策实施之前必须具有相同的发展趋势。

双重差分法(DID)平行趋势检验的Stata操作

双重差分法(DID)平行趋势检验的Stata操作

双重差分法(DID)平行趋势检验的Stata操作双重差分法(DID)有一个重要的前提假设——平行趋势假定,即处理组如果没有受到政策干预,其时间趋势应与控制组一样。

很多人不重视平行趋势检验,认为随便跑几个DID回归就完事了,事实上,平行趋势检验是DID的规定动作,规范地对平行趋势假定进行检验是一篇DID论文中至关重要的部分。

如果不满足平行趋势假定,那么两次差分得出的政策效应就不完全是真实的政策效应,其中有一部分是由处理组和控制组本身的差异所带来的。

数据来源石大千老师等(2018)发表在《中国工业经济》的论文《智慧城市建设能否降低环境污染》使用DID方法评估了智慧城市建设对城市环境污染的影响,《中国工业经济》期刊官网公布了这篇论文使用的数据和代码。

接下来,我就使用这篇论文的数据,给大家分享一下双重差分法(DID)平行趋势检验的Stata操作。

原文信息石大千,丁海,卫平,刘建江.智慧城市建设能否降低环境污染[J].中国工业经济,2018(06):117-135.时间趋势图平行趋势检验的第一种方法是绘制时间趋势图。

通过绘制处理组和控制组的被解释变量随时间变化的平均值,我们可以粗糙地判断处理组和控制组的时间趋势是否存在差异。

egen mean_y=mean(lnrso), by(year du)graph twoway (connect mean_y year if du==1,sort msize(s mall)) (connect mean_y year if du==0,sort lpattern(dash) msize( small)), ///xline(2012,lpattern(dash) lcolor(gray)) ///ytitle('lnrso') xtitle('Year') ///ylabel(,angle(0) labsize(*0.75)) xlabel(,labsize(*0.75)) ///legend(label(1 '处理组') label( 2 '控制组')) ///图例xlabel(2005(1)2015) graphregion(color(white)) //白底在Stata 17中,我们可以使用xtdidregress + estat trendplots 命令轻松绘制出处理组和控制组的时间趋势图,这方便了许多。

双重差分固定效应stata命令

双重差分固定效应stata命令

在Stata中,进行双重差分固定效应模型的命令有很多种,下面是一种常用的命令:
```stata
xtset panelvar timevar
xtreg y x1 x2, fe
```
其中,`panelvar`是你的面板数据中的个体标识符,`timevar`是你的面板数据中的时间标识符。

`y`是你的因变量,`x1`和`x2`是你的自变量。

`fe`表示固定效应模型。

如果你想进行双重差分固定效应模型,你还需要有一个处理组和对照组的比较。

这可以通过加入一个交互项来实现,命令如下:
```stata
gen treat = (group == "treatment")
gen交互项= treat*post
xtset panelvar timevar
xtreg y x1 x2交互项, fe
```
其中,`group`是一个指示处理组和对照组的变量,`post`是一个指示时间之后的变量。

这个命令会创建一个交互项(`交互项`),它会在处理组中为时间之后的观测值赋值为1,否则为0。

然后,这个交互项会被加入到回归模型中,从而实现双重差分固定效应模型。

开学礼包:如何使用双重差分法的交叉项(迄今最全攻略)

开学礼包:如何使用双重差分法的交叉项(迄今最全攻略)

开学礼包:如何使用双重差分法的交叉项(迄今最全攻略)秋风送爽,学期伊始。

本号为计量小伙伴们送上一个开学小礼包:如何使用双重差分法的交叉项(迄今最全攻略)。

双重差分法(Difference-in-differences,简记DID)无疑是实证研究中最常用的计量方法之一,而交互项则是DID的灵魂。

在计量实践中,取决于数据的类型与性质,DID的交互项有着不同的形式。

灵活地使用DID的交互项,是实证研究的一项重要技能。

为此,本文全面地梳理了文献中关于DID交互项的各种形式,包括(1)传统DID;(2)经典DID;(3)异时DID;(4)广义DID;以及(5)异质性DID。

传统DID双重差分法是研究“处理效应”(treatment effects)的流行方法。

一般来说,DID的使用场景为,在面板数据中,个体可分为两类,即受到政策冲击的“处理组”(treatment group)与未受政策影响的“控制组”(control group)。

为此,引入处理组虚拟变量:然而,处理组的个体也只有到了处理期才会受到政策冲击(之前未受冲击),故引入处理期虚拟变量:传统DID的模型设定为其中,处理组虚拟变量捕捉了处理组的组别效应(处理组与控制组的固有差别),处理期虚拟变量控制了处理期的时间效应(处理期前后的固有时间趋势),为其他控制变量,而交互项则代表了处理组在处理期的真正效应,其系数正是我们关心的处理效应。

然后进行OLS估计即可。

经典DIDDID使用了面板数据,而估计面板模型的标准方法为“双向固定效应模型”(two-way fixed effects),它既控制了“个体固定效应”(individual fixed effects),也控制了“时间固定效应”(time fixed effects)。

研究者后来发现,虽然传统DID控制了处理组的组别效应()与处理期的时间效应();但其实还可以做得更好,干脆引入双向固定效应模型,我们称之为“经典DID”:其中,为个体固定效应(在回归时加入个体虚拟变量即可),为时间固定效应(在回归时加入时间虚拟变量即可),而交互项之前的系数依然是我们感兴趣的处理效应。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Differences Differences--in in--Differences estimation in R and Differences estimation in R and S tata StataStata { a.k.a. Difference { a.k.a. Difference--in in--Difference, Difference Difference, Difference--in in--Differences,DD, DID, D Differences,DD, DID, D--I -D. }D. }DID estimation uses four data points to deduce the impact of a policy change or some other shock (a.k.a. treatment) on the t other shock (a.k.a. treatment) on the treated population: reated population: the effect of the treatment on thetreated . T he structure of the experiment implies that the treatment group and control groupThe structure of the experiment implies that the treatment group and control group have similar characteristics and are trending in the same way over time. T his means that This means that the counterfactual the counterfactual (unobserved scenario) is that had the treated group (unobserved scenario) is that had the treated group not received treatment, its mean value would be the same distance from the control group in the second period. S ee the diagram below; the four data points are the observed mean (average) of See the diagram below; the four data points are the observed mean (average) of each group. T each group. These are the only data points necessary to calculate hese are the only data points necessary to calculate the effect of the treatmenton the treated . T he dotted lines represent the trend that is not observed by theThe dotted lines represent the trend that is not observed by the researcher. N otice that although the means are different, they both have the same time Notice that although the means are different, they both have the same time trend trend (i.e. slope). (i.e. slope). (i.e. slope).For a more thorough work through of the effect of the Earned Income Tax Credit on female employment, see an earlier post of mine: of mine:Calculate the D Calculate the D--I -D Estimate of the Treatment Effect D Estimate of the Treatment EffectWe will now use R and Stata to calculate the unconditional difference We will now use R and Stata to calculate the unconditional difference--in in--difference estimates of the effect of the 1993 EITC expansion on employment of single women.estimates of the effect of the 1993 EITC expansion on employment of single women.R:R:view source print print??01# Load the foreign packagen)require(foreign)02require(foreig0304# Import data from web site0506require(foreign)0708# update: first download the file eitc.dta from this link:en?id=0B0iAUHM7ljQ1cUZvRWxjUmpfVXM https:///open?id=0B0iAUHM7ljQ1cUZvRWxjUmpfVXM09# https:///op10# Then import from your hard drive:11eitc = read.dta("C:/link/to/my/download/folder/eitc.dta")1213# Create two additional dummy variables to indicate before/after 14# and treatment/control groups.1516# the EITC went into effect in the year 199417eitc$post93 = as.numeric(eitc$year >= 1994)1819# The EITC only affects women with at least one child, so the20 # treatment group will be all women with children. 21 eitc$anykid eitc$anykids = as.numeric(eitc$children >= 1) s = as.numeric(eitc$children >= 1) 2223 # Compute the four data points needed in the DID calculation: 24 a = sapply(subset(eitc, post93 == 0 & anykids == 0, select=work), mean) 25 select=work b = sapply(subset(eitc, post93 == 0 & anykids == 1, select=work), ), mean) 26 c = sapply(subset(eitc, post93 == 1 & anykids == 0, select=work), mean) 27 d = sapply(subset(eitc, post93 == 1 & anykids == 1, select=work), mean) 2829# Compute the effect of the EITC on the employment of women with children: 30 (d (d--c)c)--(b (b--a)The result is the width of the “shift” shown in the diagram above.The result is the width of the “shift” shown in the diagram above.STATA:STATA:cd "C:cd "C:\\DATA DATA\\Econ 562Econ 562\\homework"homework" use eitc, clear use eitc, cleargen anykids = (children >= 1)gen anykids = (children >= 1) gen post93 = (year >= 1994)gen post93 = (year >= 1994)mean work if post93==0 & anykids==0 /* value 1 */mean work if post93==0 & anykids==0 /* value 1 */ mean wo mean work if post93==0 & anykids==1 /* value 2 */rk if post93==0 & anykids==1 /* value 2 */rk if post93==0 & anykids==1 /* value 2 */ mean work if post93==1 & anykids==0 /* value 3 */mean work if post93==1 & anykids==0 /* value 3 */ mean work if post93==1 & anykids==1 /* value 4 */mean work if post93==1 & anykids==1 /* value 4 */Then you must do the calculation by hand (shown on the last line of the R code).Then you must do the calculation by hand (shown on the last line of the R code). (value 4 (value 4 –– value 3) value 3) –– (value 2 (value 2 –– value 1) value 1)Run a simple D Run a simple D--I -D Regression D RegressionNow we will run a regression to estimate the conditional difference Now we will run a regression to estimate the conditional difference--in in--difference estimate of the effect of the Earned Income Tax Credit on “work”, using all women with children as the treatment group. Th children as the treatment group. This is exactly the same as what we did manually above, is is exactly the same as what we did manually above, now using ordinary least squares. The regression equation is as follows:now using ordinary least squares. The regression equation is as follows:Where is the white noise error term, and is the effect of the treatment on the treated is the effect of the treatment on the treated —— the shift shown in the diagram. To be clear, the coefficient on is thevalue we are interested in (i.e., ).).R:R:view source print print??1eitc$p93kids.interaction = eitc$post93*eitc$anykidslm(work ~ post93 + anykids + p93kids.interaction, data = eitc) reg1 = lm(work ~ post93 + anykids + p93kids.interaction, data = eitc) 2reg1 =3summary(reg1)The coefficient estimate on p93kids.interaction should match the value calculated manually above.manually above.STATA:STATA:gen interaction = post93*anykidsgen interaction = post93*anykidsreg work post93 anykids interactionreg work post93 anykids interactionShare this:Share this:•Share•Like this:Like this:LikeOne blogger likes this.One blogger likes this.•RSS feed | | Respond |Trackback URL Posted on June 20, 2011 at 2:21 pm in Econometrics with R|R SS feedTags: R, STATA9 Comments to “Differences 9 Comments to “Differences--in in--Differences estimation in R and Differences estimation in R and S tata” Stata”1.Claudio GxpNovember 6, 2011 at 11:10 amDear Kevin Dear KevinThanks for this example, but be aware of some mistakes:Thanks for this example, but be aware of some mistakes:in Stata:in Stata:“use eitc, clear” instead of “insheet using eitc.dta, clear”“use eitc, clear” instead of “insheet using eitc.dta, clear”in R:in R:eitc$post93 = a eitc$post93 = as.numeric(eitc$year >= 1994)s.numeric(eitc$year >= 1994)s.numeric(eitc$year >= 1994) eitc$anykids = as.numeric(eitc$children >= 1)eitc$anykids = as.numeric(eitc$children >= 1) instead of instead ofeitc$post93 = as.numeric(year >= 1994)eitc$post93 = as.numeric(year >= 1994) eitc$anykids = as.numeric(children >= 0)eitc$anykids = as.numeric(children >= 0) Best Best Claudio ClaudioReplyoKevin GouldingNovember 6, 2011 at 11:22 amHi Claudio,Hi Claudio,Good catch; I’ve updated the code to reflect your changes. Thanks for reading. reading. --Kevin KevinReply2.Dan MJanuary 6, 2012 at 1:34 amHi Kevin Hi Kevin ––I have a question for you that you may or may not know t I have a question for you that you may or may not know the answer to. I’m he answer to. I’m trying to run a DID model in stata, only I’m first differencing my outcome variable, and some of the time variable, and some of the time--variant control variables, but not all of them. In particular, my program participation variable is not differenced (because I assum particular, my program participation variable is not differenced (because I assume e it to have effects over multiple years, not just in the first year). The second complication is that not all program participants enter the program in the same year, so that program participation occurs, for some in 2003, some in 2004, some in 2005, etc…2005, etc…. so that it is not possible to simply have a pre and post dummy . so that it is not possible to simply have a pre and post dummy variable to interact with the treatment / control variable.variable to interact with the treatment / control variable.How do I carry this out? My initial impression, and after reading some math for the past 6 hours, is that when I first difference, the past 6 hours, is that when I first difference, I simply am left with the program I simply am left with the program participation variable that indicates a 1 only after the program is initiated, and that there is no more interaction term. Is this correct? This is as opposed to if I did not difference, then I would need the pre/post vari difference, then I would need the pre/post variable, the treatment/control variable, able, the treatment/control variable, and the interaction of the two, which represents the affect of the treatment on the treated.treated.One last question / clarification. Assuming I’m correct that I simply have a variable in the regression that becomes a 1 for variable in the regression that becomes a 1 for the treatment once treatment the treatment once treatment begins… and I don’t difference it, but I do difference the outcome variable… is there anything wrong with this?there anything wrong with this?Any help / opinion you can offer would be appreciated.Any help / opinion you can offer would be appreciated.ReplyoKevin GouldingJuly 14, 2012 at 9:06 amHi Dan, what is your motivation for first differencing your data? It might be less complicated to not first be less complicated to not first--difference your data but instead include a set of individual specific dummy variables (i.e. fixed set of individual specific dummy variables (i.e. fixed effects) which will effects) which willaccomplish the same thing (control for between individual differences a.k.a. time invariant differences). From there you should be able to follow the model as above.model as above.It is perfectly fine to have the treatment dummy switch on (=1) at dif It is perfectly fine to have the treatment dummy switch on (=1) at different ferent time for different individuals. Interpretation is the same. Hope this helps. -Kevin KevinReply3.KarenMay 23, 2012 at 5:16 amHi Kevin,Hi Kevin,thanks for this example, really useful resource. Could you please also give STATA command if outcome v command if outcome variable is binary. ariable is binary.thanks thanksReplyoKevin GouldingJuly 14, 2012 at 8:28 amHi Karen, If the outcome variable is binary, you do not want to use this OLS model because of the inherent heteroskedas OLS model because of the inherent heteroskedasticity in a Linear ticity in a LinearProbability Model (it’s inefficient). Also, interpretation of coefficients becomes difficult when predicted values lie outside [0,1].becomes difficult when predicted values lie outside [0,1].If you can clearly state your research question I may be able to point you in the right direction in the right direction —— in in the meantime check out log it and probit models. the meantime check out log it and probit models. HTH. HTH. --Kevin KevinReply4.pythonscriptAugust 10, 2012 at 4:41 pmWhere can I find the data set you used? The link in your example is no longer funct functioning.ioning.ioning.ReplyoKevin GouldingAugust 10, 2012 at 5:14 pmI’ve now updated the code to show how to find the eitc.dta data set. It isnow available at this link:now available at this link:https:///open?id=0B0iAUHM7ljQ1cUZvRWxjUmpfVXMLet me know if this works. Cheers, KevinLet me know if this works. Cheers, KevinReply5.JohnAugust 10, 2012 at 9:18 pmWorks perfectly. Thank you for the quick response!Works perfectly. Thank you for the quick response!。

相关文档
最新文档