R语言:动态合成控制法DSC操作及应用

学术   2024-11-19 23:24   陕西  

R语言:动态合成控制法DSC操作及应用

摘要

合成控制(Synthetic controls,SCs)被广泛用于估计处理的因果效应。然而,它们并未考虑到不同单位对变化响应速度的差异。反应可能是无弹性的或“粘性”的,因此由于不同的监管、制度或政治环境而变得更慢。我们展示这些不同的反应速度可能导致因果效应估计的偏差。因此,我们引入了一种动态合成控制方法,该方法适应时间序列中的变化速度,从而改善了SC估计。我们将我们的方法应用于重新估计恐怖主义对收入的影响(Abadie和Gardeazabal [2003, American Economic Review 93, 113–132]),烟草法对消费的影响(Abadie, Diamond, 和 Hainmueller [2010, Journal of the American Statistical Association 105, 493–505]),以及德国统一对GDP的影响(Abadie, Diamond, 和 Hainmueller [2015, American Journal of Political Science 59, 495–510])。我们还使用蒙特卡洛模拟评估了该方法的性能。我们发现,与传统SCs相比,它将真实处理效应估计的误差降低了高达70%,提高了我们进行稳健推断的能力。提供了一个开源的R包dsc,以便于实施。


我们将动态合成控制(DSC)方法应用于三篇关于SCs的开创性文章的数据:

Abadie和Gardeazabal(2003年)关于恐怖袭击对GDP影响的数据;

Abadie等人(2010年)关于加利福尼亚州烟草消费变化的数据;

以及Abadie等人(2015年)对1990年德国统一的经济影响的研究。

在每种情况下,我们都证明了我们的安慰剂估计更加高效,以至于对处理效应的统计检验具有更大的统计功效。


我们现在回顾每组数据集以及使用每种方法得到的结果。

1 巴斯克地区的恐怖主义与人均GDP

Abadie和Gardeazabal(引用Abadie和Gardeazabal2003)发现,1960年代末恐怖主义的爆发显著影响了巴斯克地区的人均GDP。与没有遭受恐怖主义的合成控制区域相比,巴斯克地区的GDP下降了约10个百分点。

图 5

我们对巴斯克地区影响的估计与标准合成控制估计相似。然而,当我们为未处理的单位本身构建合成控制时,我们发现它们比标准合成控制更接近真实的轨迹。图5(顶部)显示了我们对所有未处理单位估计的处理效应分布。由于这些单位没有接受处理,我们的理想合成控制应该尽可能接近时间序列的后处理值。换句话说,后处理系列与合成控制之间的平均差异应尽可能接近零。从视觉上看,我们的方法的带宽比标准合成控制的带宽更窄。然而,这个图表并没有捕捉到真实改进的全部程度,因为我们应该比较每种算法的成对性能(而不是这里显示的汇总比较)。为了更正式地展示改进,我们计算了每个合成控制与感兴趣单位相比的均方误差(MSE)。然后我们计算了一个关于log(MSEdsc/MSEsc)的t检验 。负值表示我们的均方误差比标准方法得到的结果更小。我们发现情况确实如此。均方误差的对数比值显著小于零(t=−7.91,p<0.0001)。

就我们进行推断的能力而言,使用DSC方法时观察到的均方误差的降低表明其比传统合成控制方法具有更高的效率。简而言之,我们的DSC方法更接近真实处理效应,因此增强了我们因果推断的稳健性和可靠性。

2  第99号提案对加利福尼亚州烟草销售的影响

Abadie等人(引用Abadie, Diamond和Hainmueller2010)研究了1988年在加利福尼亚州实施的大规模烟草控制计划第99号提案的影响。他们表明,到2000年,加利福尼亚州的人均卷烟销售量比没有第99号提案时预期的少了26包。

我们的分析表明,实际效果可能更大,估计卷烟销售量减少了约31包。尽管由于真实处理效应未知,无法确定哪个估计更准确,但我们确实发现,我们对除加利福尼亚州以外的其他州的后处理行为的估计比标准合成控制更接近真实路径,均方误差比值更小(t=−4.88,p<0.001)。

3 德国统一对西德人均GDP的影响

最后,Abadie等人(引用Abadie, Diamond和Hainmueller2015)试图估计1990年德国统一对西德的经济影响。他们发现,1990年至2003年期间,西德的人均GDP平均每年减少了约1600美元,这大约是1990年水平的8%。在他们研究期的最后一年2003年,合成数据中估计的人均GDP比实际数据高出约12%。

在这次复制研究中,我们对西德的处理效应的估计与Abadie和Gardeazabal(引用Abadie和Gardeazabal2003)的估计相似,从视觉上看,两种合成控制方法对未处理国家估计的处理效应的95%分位数区域也很接近。但在成对比较中,我们发现DSC方法通常在估计控制国家的处理效应时展现出比标准合成控制方法更低的均方误差(MSE)(t=−4.15,p<0.001)。

总体而言,我们在所有三项实证研究中的发现表明,与标准合成控制方法相比,DSC方法提供了显著的优势。特别是,DSC能够更接近非处理单位的真实轨迹,这一点通过观察到的均方误差(MSE)的减少得到了证明。因此,DSC方法提供了对真实处理效应更准确的近似。它是一个更有效的处理效应估计器,并减轻了估计偏差的风险。


R语言操作应用

R 软件包可以来实现动态合成控制( 一种增强的合成控制方法),该方法考虑了不同单位和时间的不同速度。

安装

您可以使用以下方法直接从 GitHub 安装:dsc

devtools::install_github("conflictlab/dsc")

示例用法

下面是一个基本示例,可帮助您入门:

# Load the dsc package
library(dsc)

# Load the Basque dataset from the Synth package
data(basque, package = "Synth")
data <- basque

# Rename relevant columns for clarity
colnames(data)[1:4] <- c("id""unit""time""value")

# Compute additional variables
data$invest_ratio <- data$invest / data$value
data$value_raw <- data$value

# Define special predictors for the model
special_preds <- expression(list(
  list(dep.var, 1960:1969, c("mean")),
  list("invest_ratio", 1964:1969, c("mean")),
  list("popdens", 1969, c("mean")),
  list("sec.agriculture", 1961:1969, c("mean")),
  list("sec.energy", 1961:1969, c("mean")),
  list("sec.industry", 1961:1969, c("mean")),
  list("sec.construction", 1961:1969, c("mean")),
  list("sec.services.venta", 1961:1969, c("mean")),
  list("sec.services.nonventa", 1961:1969, c("mean")),
  list("school.illit", 1964:1969, c("mean")),
  list("school.prim", 1964:1969, c("mean")),
  list("school.med", 1964:1969, c("mean")),
  list("school.high", 1964:1969, c("mean")),
  list("school.post.high", 1964:1969, c("mean"))
))

# Execute the DSC analysis
result <- dsc(
  data = data,
  start.time = 1955,
  end.time = 1997,
  treat.time = 1970,
  dependent = "Basque Country (Pais Vasco)",
  predictors = NULL,
  parallel = TRUE,
  special.predictors = special_preds,
  time.predictors.prior = 1955:1969,
  time.optimize.ssr = 1955:1969
)



数量经济学
见证计量经济学发展,更懂计量更懂你!
 最新文章