全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅
2002 9
2023-04-22
悬赏 50 个论坛币 未解决
反向DID的代码,包括政策效应、平行趋势检验的代码,是怎么写的?求各位大佬帮忙解答。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2023-4-22 14:54:17
反向DID(Difference in differences in reverse),估计政策效应,是将一直受到政策处理的个体设置为对照组(treat=0),将一开始不受政策影响、后来受政策影响的个体设置为处理组(treat=1);将处理组受到政策影响前的年份设置为post=1,将处理组受到政策影响后的年份设置为post=0。然后生成treat*post,用reghdfe 命令进行回归吗?反向DID能不能像DID一样,用聚类稳健标准误,控制时间和个体固定效应?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-4-22 15:04:59
反向DID的平行趋势检验,能不能将时间倒转,比如2014-2016的数据,就生成一个新的年份变量,将2014年设置成2016年,将2015年还是设置成2015年,将2016年设置成2014年,之后用正常DID平行趋势检验的命令做?谢谢。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-4-22 15:39:34
反向DID(Difference-in-Differences)是一种常用的计量经济学方法,用于评估政策对某个结果变量的影响。反向DID的实现需要考虑政策效应和平行趋势检验两个方面。下面是一个简单的反向DID的代码示例,包括政策效应和平行趋势检验的代码:

```
# 导入所需的包
import pandas as pd
import numpy as np
import statsmodels.api as sm

# 读取数据
data = pd.read_csv('data.csv')

# 创建虚拟变量
data['treatment'] = np.where(data['time'] >= '2019-01-01', 1, 0)
data['post'] = np.where(data['time'] >= '2020-01-01', 1, 0)

# 进行反向DID分析
X = data[['treatment', 'post', 'other_control_variables']]
y = data['outcome_variable']
X = sm.add_constant(X)
model = sm.OLS(y, X).fit()

# 输出政策效应
treatment_effect = model.params['treatment']
print('Treatment effect:', treatment_effect)

# 进行平行趋势检验
data['time'] = pd.to_datetime(data['time'])
data['year'] = data['time'].dt.year
data['month'] = data['time'].dt.month
data['time_trend'] = (data['year'] - 2018) * 12 + data['month']
X_trend = data[['treatment', 'post', 'time_trend', 'other_control_variables']]
X_trend = sm.add_constant(X_trend)
model_trend = sm.OLS(y, X_trend).fit()

# 输出平行趋势检验结果
parallel_trend = model_trend.params['time_trend']
print('Parallel trend:', parallel_trend)
```

上述代码中,首先读取数据并创建虚拟变量,然后使用`statsmodels`包的`OLS`函数进行回归分析。在回归结果中,政策效应的系数即为政策的影响效应。接着,为了进行平行趋势检验,我们创建了一个时间趋势变量,并将其包含在回归模型中。在回归结果中,时间趋势变量的系数即为平行趋势的检验结果。需要注意的是,平行趋势检验的结果应该与实际情况相符,否则可能会导致误判。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-4-23 21:49:35
水业咨询 发表于 2023-5-23 16:00
反向DID(Difference-in-Differences)是一种常用的计量经济学方法,用于评估政策对某个结果变量的影响。反 ...
您好,问一下,这个是Python的代码吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-4-24 23:19:38
反向因果推断(Reverse Causal Inference)是一种统计学方法,用于从观察数据中估计因果效应,尤其是在存在潜在或未观察到的混淆变量(confounding variables)的情况下。DID(Difference in Difference)是其中一种常见的反向因果推断方法,通常用于评估政策或治疗的效果,在此基础上,可以通过引入平行趋势假设来进行分析。本文将介绍如何编写DID和平行趋势的代码。

DID
设有一个二元指示器D,表示一个个体是否接受了政策/治疗,在t时刻之前(即t-1时刻)和之后(即t时刻)分别测量了一个感兴趣的结果变量Y。这里我们假设有一个混淆变量X,它可能对Y产生影响,就是说,X可能同时影响D和Y。然而,在接受政策/治疗的那些个体中,我们预期X的分布不会随着时间发生显著变化。这意味着,如果我们比较接受政策/治疗的个体和不接受政策/治疗的个体在t-1时刻到t时刻之间Y的变化,我们就可以得到政策/治疗对Y的因果效应。

我们可以用以下公式来估计政策/治疗对Y的效应:


(

1
,



1
,


1


0
,

+

0
,


1


=
1
)


(

1
,



1
,


1


0
,

+

0
,


1


=
0
)
E(Y
1,t

−Y
1,t−1

−Y
0,t

+Y
0,t−1

∣D=1)−E(Y
1,t

−Y
1,t−1

−Y
0,t

+Y
0,t−1

∣D=0)

其中,Y1和Y0分别代表接受政策/治疗和不接受政策/治疗的结果变量。这里我们假设政策/治疗只有在t时刻才会影响Y,而不会在之前的任何时刻产生作用。通常情况下,上述公式是无法直接计算的,需要使用统计软件进行计算。

在R语言中,我们可以使用“lm”函数来进行DID分析。具体实现代码如下:
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群