温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
胡文涛 (中国人民大学),hwtxwhr@163.com
王晗希 (中山大学),wanghx37@mail2.sysu.edu.cn
编者按:本文摘译自下文,特此致谢!
Source:Burlig F, Preonas L, Woerman M. Panel data and experimental design[J]. Journal of Development Economics, 2020, 144: 102458. -PDF-.
目录
随机对照实验 (RCT) 越来越多被用于研究变量间的因果关系。在设计随机对照实验时,研究者需要在样本量大小与统计准确性之间作出权衡,而事前的功效计算 (Power calculations) 为这种权衡提供了重要的参考。与此同时,由于同一个体多期观察数据相比于多个体一期观察数据更具研究价值,面板数据随机对照实验也越发的流行。面板数据中包含对同一个体多期的观察数据,这就可能隐含着序列相关的问题。对这一问题的忽视,可能造成两个问题:
接下来,我们将介绍面板数据的功效计算、稳健的序列相关功效计算框架、以及 pcanel
命令在 DID 功效计算中的应用与实现。其中,pcanel
命令实现了在任意序列相关的情况下,对面板数据的功效计算及相关检验。
在给定样本量和实验设计的情况下,功效计算 (Power calculations) 提供了一个对实验能够统计检测到的最小效应量 (the smallest effect size) 预先估计。不同于常见的
其中,在自变量
这些参数决定了最小可观测效应 (
考虑一个DID数据生成过程:
其稳健的序列相关功效计算公式为:
对于一个面板 DID 模型,当其个体接受处理是随机分配的时,并满足一系列假定前提条件下,即使存在任意的面板个体时序相关性,
如只是两期的短面板,则上述公式可简化为:
具体公式证明可参见 Burlig 等 (2020) 附录。
下面使用 Bloom 等 (2015) 的数据,展示考虑任意序列相关的 SCR 功效计算方法,与目前主要使用的 McKenzie (2012) 方法以及考虑误差项服从 AR(1) 过程 SCR 计算结果差异。其中,每条曲线基于不同的事前假设,并在特定的数量的事前与事后处理期数 (从 m=r=1 到 m=r=10) 下,根据一个DID实验可实现的功效值来绘制。
从下图可知,尽管 Bloom 等 (2015) 数据只是存在弱的序列相关性,但只有 SCR 公式非常稳健的实现了我们所需要的 80% 功效结果。
Stata 原有的 power
命令可以涵盖重复测量的 ANOVA (方差分析),但不能应用于经济学中标准面板数据研究设计,如 DID、ANCOVA。pcpanel
命令在考虑了任意的序列相关的情况下,可以实现面板数据的功效计算。该命令核心原理是上文提到的 SCR 计算框架,其实现和操作是基于用户对于序列相关结构的假设和基于自有数据集的方差、协方差参数的非参数估计。该程序包由三个功能构成,分别为 pc_dd_analytic
、pc_dd_covar
、pc_simulate
。
*安装 pcpanel
ssc install pcpanel, replace
在传统的DID模型中,我们通常假定误差项不相关,但事实上,误差项存在序列相关的可能。Burlig 等 (2020) 论证了功效 (power) 标准的计算工具忽略了面板数据中存在的非常数序列相关问题,进而导致 "power" 计算的严重错误。
pc_dd_analytic
命令可用于序列相关 DID 模型的功效分析 (analytic power) 的计算,它可以在结果变量中容纳任意序列相关,也可以直接估计现有数据集的相关结构。在 "power" 的计算中,假定以下模型:
其中,
pc_dd_analytic, [n(numlist) mde(numlist) power(numlist) options]
n(numlist)
:实验样本量列表 (随机分组所包含的横截面单元数),且必须是正整数,例如 n(50(10)150)
;mde(numlist)
:最小可检测效应大小的列表,以水平值 (非百分比) 表示,例如 mde(10 20 30)
;power(numlist)
:实验的期望统计力的列表,必须在 0 和 1 之间,默认为 power(0.80)
。在以上三个参数中,使用者应提供其中两个参数的准确值,以便 pc_dd_analytic
求解出剩下的参数。
另外,options
主要包括如下选项:
p(numlist)
:实验中随机分配到各处理组的单元所占比例;pre(numlist)
:实验前预处理周期的个数。如果没有指定,将默认为 pre(1)
;post(numlist)
:实验后处理周期的个数。如果没有指定,将默认为 post(1)
;alpha(#)
:指定一个类型I的错误率 (或错误发现率)。传统的显著性水平为 alpha(0.05)
,这也是默认值;depvar(depvar)
:被解释变量;i(panelvar)
和 t(timevar)
:分别为随机分组的横截面单元和时间变量,这两个选项必须与 depvar(depvar)
一同被指定;variance(numlist)
:允许使用者提供残差方差的列表。需要注意的是,该方差不是综合误差项的方差,而是除了单元和时间周期固定效应之外的特征误差项的方差 (即上述方程中的 depvar(depvar)
或 sd(numlist)
同时出现;sd(numlist)
:允许使用者提供残差标准差的列表。该选项不可与 depvar(depvar)
或 variance(numlist)
同时出现;ar1(numlist)
:允许使用者使用简单的 AR(1) 过程对序列相关的误差项建模。假定每个横截面单元的误差项会随着过程的发展而变化,variance(numlist)
或 sd(numlist)
同时出现;avgcov(pre post cross)
:允许使用者手动输入特殊误差的单元内协方差的平均值。这些项依次为,处理前的平均协方差、处理后的平均协方差、处理前后的平均协方差;avgcor(pre post cross)
:允许使用者手动输入特殊误差的单元内相关系数的平均值。
. *计算 mde
. pc_dd_analytic, n(80(20)160) pre(3) post(3) var(1) ar1(0.9)
Solving for minimum detectable effect, given sample size n={80 100 120 140 160} and power={.8}
DD power calc: n= 80 mde= 0.3794 power=.8 p=.5 pre=3 post=3 var=1 ar1=.9
DD power calc: n=100 mde= 0.3385 power=.8 p=.5 pre=3 post=3 var=1 ar1=.9
DD power calc: n=120 mde= 0.3085 power=.8 p=.5 pre=3 post=3 var=1 ar1=.9
DD power calc: n=140 mde= 0.2853 power=.8 p=.5 pre=3 post=3 var=1 ar1=.9
DD power calc: n=160 mde= 0.2666 power=.8 p=.5 pre=3 post=3 var=1 ar1=.9
. *计算 n
. webuse grunfeld, clear
. xtset company year
. pc_dd_analytic, mde(20) power(0.8) pre(1(3)10) post(1(4)9) p(0.5) depv(invest) i(company) t(year)
Solving for sample size, given minimum detectable effect mde={20} and power={.8}
DD power calc: n= 220 mde=20 power=.8 p=.5 pre= 1 post=1 depvar=invest
DD power calc: n= 271 mde=20 power=.8 p=.5 pre= 1 post=5 depvar=invest
DD power calc: n= 268 mde=20 power=.8 p=.5 pre= 1 post=9 depvar=invest
DD power calc: n= 492 mde=20 power=.8 p=.5 pre= 4 post=1 depvar=invest
DD power calc: n= 264 mde=20 power=.8 p=.5 pre= 4 post=5 depvar=invest
DD power calc: n= 142 mde=20 power=.8 p=.5 pre= 4 post=9 depvar=invest
DD power calc: n= 722 mde=20 power=.8 p=.5 pre= 7 post=1 depvar=invest
DD power calc: n= 303 mde=20 power=.8 p=.5 pre= 7 post=5 depvar=invest
DD power calc: n= 278 mde=20 power=.8 p=.5 pre= 7 post=9 depvar=invest
DD power calc: n=1017 mde=20 power=.8 p=.5 pre=10 post=1 depvar=invest
. *计算 power
. webuse grunfeld, clear
. pc_dd_analytic, n(50 60 70) mde(20 15) depv(invest) i(company) t(year)
Solving for power, given minimum detectable effect mde={15 20} and sample size n={50 60 70}
DD power calc: n=50 mde=15 power=0.1603 p=.5 pre=1 post=1 depvar=invest
DD power calc: n=50 mde=20 power=0.2537 p=.5 pre=1 post=1 depvar=invest
DD power calc: n=60 mde=15 power=0.1862 p=.5 pre=1 post=1 depvar=invest
DD power calc: n=60 mde=20 power=0.2985 p=.5 pre=1 post=1 depvar=invest
DD power calc: n=70 mde=15 power=0.2119 p=.5 pre=1 post=1 depvar=invest
DD power calc: n=70 mde=20 power=0.3422 p=.5 pre=1 post=1 depvar=invest
pc_dd_covar
命令用来估计 DID 模型中特殊残差的方差和平均协方差,并返回以下四个估计值:
pc_dd_covar
命令的结果会被储存到以下标量 (scalars) 中:
r(variance)
r(cov_pre)
r(cov_post)
r(cov_cross)
r(n_units)
其中,r(n_units)
为用于估计上述 4 项的平均横截面单元个数。
pc_dd_covar depvar [if] [in] , pre(#) post(#) [i(panelvar) t(timevar) display]
pre(#)
:处理前的期数,必须是正整数;post(#)
:处理后的期数,必须是正整数。i(panelvar)
:随机化的横截面单元,必须是一个数字。如果没有指定,将默认为储存到 r(panelvar)
;t(timevar)
:时间变量,必须是一个数字。如果没有指定,将默认为储存到 r(timevar)
;display
:将估计方差和平均协方差显示在 Stata 控制台。. webuse grunfeld, clear
. xtset company year
. pc_dd_covar invest, i(company) t(year) pre(1) post(2) display
Estimated variance-covariance structure of idiosyncractic residuals:
variance = 1246.285 (estimated residual variance)
cov_post = -220.920 (avg within-unit residual covariance in post-treatment periods)
cov_cross = -824.254 (avg within-unit residual covariance across pre/post-treatment periods)
. webuse grunfeld, clear
. xtset company year
. pc_dd_covar invest, i(company) t(year) pre(1) post(2)
. dis r(variance)
1246.2849
利用现有数据集,通过仿真模拟来计算 power。
pc_simulate depvar [if] [in] , model(model) mde(numlist) [options]
depvar
:被解释变量;model(model)
:估计的模型类型,有 ONESHOT、POST、DD、ANCOVA 四种;mde(numlist)
:最小可检测效应大小的列表,以水平值 (非百分比) 表示,例如 mde(10 20 30)
。另外,options
主要包括如下选项:
absorb(varlist)
:将固定效应纳入估计方程,变量必须以数字形式呈现。默认 absorb(panelvar timevar)
用于 DD 模型;controls(varlist)
:将控制变量纳入估计方程,变量必须以数字形式呈现;nsim(#)
:每组实验设计参数的模拟次数,默认是 nsim(500)
;stratify(varlist)
:允许使用者模拟分层随机化,其中随机化发生在由 egen cell = group(varlist)
定义的细胞内。对于 stratify(gender age_group)
,每个性别年龄组组合将代表一个单独的随机细胞,每个变量单元必须嵌套在单个单元格中;tstart(# [#])
:限制开始实验的时间范围。例如,tstart(4 7)
将模拟在 timevar={4,5,6,7}
时间段开始的实验,且它们的概率相等;weight(weight)
:允许使用三种 OLS 权重,即 fweights
,aweights
和 pweights
。webuse grunfeld, clear
xtset company year
gen value = int(mvalue) //取整
pc_simulate invest, model(ONESHOT) mde(1) weight(fw=value) n(2(1)10) vce(robust) nsim(50)
在进行随机对照实验设计时,选择适宜的样本量来达到可观测的效果是研究人员必须面对的问题,而事前的功效计算能够帮助我们对此进行决策。为此,本文介绍了考虑误差项结构中存在任意序列相关性的面板数据功效计算框架。该方法对可选的双重差分估计统计量、具有确定性时间冲击的 ANCOVA、以及真实世界的数据生成过程估计统计量都是稳健的。同时,本文也介绍了 pcpanel
命令,该命令既可以执行基于分析的功效计算,也可以执行基于模拟的功率计算。
Note:产生如下推文列表的 Stata 命令为:
lianxh did, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh