
New! 搜推文,找资料,用
lianxh
命令:
安装:ssc install lianxh, replace
使用:lianxh 合成控制
lianxh DID + 多期, w


作者: 马英杰 (浙江大学)
邮箱: mayingjie@zju.edu.cn
- Title: 论文复现:合成控制法需要做哪些假设检验?
- Keywords: synth, synth2, 安慰剂检验, SCM, synth_runner, synthetic control method
推介文献:Reynaerts, J., J. Vanschoonbeek, 2022, The economics of state fragmentation: Assessing the economic impact of secession, Journal of Applied Econometrics, 37 (1): 82-115. -Link-, -PDF-, Replication
本论文的实证分析部分系统涵盖了合成控制法主流的检验方法,包括政策效果的标准误、p 值和置信区间的计算。此外,作者还详细展示了多案例合成控制法的实现过程,为相关实证研究提供了全面的参考范例。
1. 研究背景
成立新国家通常能够集聚特定区域内的资源禀赋。然而,自上个世纪以来,由于世界局势复杂多变,国家的分裂与独立变得非常频繁。在此背景下,评估国家分裂与独立对新独立国家 (newly independent countries) 所产生的经济影响十分重要。通过梳理文献,作者提出已有研究的两个理论不足:(1) 关于国家独立、国家规模和经济增长之间的关系的文献并未得出一致的结论,换言之,国家独立是否以及在多大程度上能够对新独立国家的经济前景产生显著影响仍然是不确定的;(2) 探究国家独立产生的经济影响的实证研究数量仍然很少。如果各国能够对国家分裂与独立的经济后果有更加清晰的认知,那么可能将有助于建立更加有效的民主决策机制。基于此,本文收集了 1940 - 2016 年间 204 个国家的面板数据来估计国家独立产生的收益与损失。
作者首先利用双重差分法对数据进行了探索性分析。如下图所示,横纵坐标分别表示新独立国家在宣布独立前和独立后各 10 年间的人均 GDP 与世界平均人均 GDP 的百分比差异,据此可以得到三个初步的结论:(1) 宣布独立的确会对新独立国家的经济产生影响;(2) 在独立后的 10 年间,新独立国家的净收益为负,人均收入下降了 36%;(3) 不同国家的经济所受到的影响具有异质性。

尽管运用双重差分法得出了初步的结论,但这些结论也可能是由其他被忽略的因素导致的,并对估计国家独立与经济下行之间的因果关系提出了挑战。具体而言包括以下五个因素:
- 遗漏变量偏差 (omitted variable bias) :新独立国家原本大多为经济较不发达的地区,与非独立国家相比,在独立之外可能还存在其他因素影响新独立国家的经济发展;
- 同时性 (simultaneity) :根据上面右图所示,新兴国家在独立前人均 GDP 增长率通常会急剧下降,这表明国家独立的选择可能存在内生性的影响;
- 预期效应 (anticipation effect) :结合第(2)点可知,在正式独立之前的几年里,国家分裂可能已经产生了经济影响,进而导致了国家的独立;
- 异质性 (effect heterogeneity) :宣布独立的经济影响可能因国家和时间而异;
- 模型不确定性 (model uncertainty) :待估参数可能对不同的函数形式的敏感性不同。
据此,作者运用合成控制法进行实证检验并得出结论:
- 平均而言,宣布独立降低了新独立国家的人均 GDP;
- 宣布独立产生的经济影响在国家之间存在异质性,个别的实例表明宣布独立也可能带来正收益;
- 宣布独立产生的经济影响在时间上同样存在异质性,大约 50% 的国家在独立后的 10 年内经历了显著的经济下行,而有 10% 的国家甚至经历了长达 30 年的下行压力。更进一步地,作者发现,宣布独立导致的负面经济影响在内陆国家中更加显著,而当贸易壁垒减少、民主制度改善或石油资源被更充分开发时,这种影响会得到缓解。
2. 数据集构建
首先,作者依据 Griffiths and Butcher (2013) 提出的关于独立国家的三条标准筛选样本国家:(1) 人口超过十万;(2) 在特定领土上行使自治权;(3) 主权得到相关国际主体承认。在排除二战期间对某些国家短暂的军事占领情况之后,作者得到了 204 个样本国家,,其中处理组包括 138 个在 1940 - 2016 年间新独立国家,对照组包括 66 个在 1940 年前已经成立的国家。
其次,由于时间周期较长,每个国家的数据不可避免地会出现缺失值。以被解释变量人均 GDP 为例,作者主要采用了两种方法来填补缺失值,第一种为线性插补法(linear interpolation),同时使用世界银行 2019 年报告的实际人均 GDP 增长率来扩展时间序列;第二种为代理变量法(proxy),分别利用三个和人均 GDP 相关的经济活动指标来预测缺失值,即(1) 世界银行报告的人均二氧化碳排放量( 2019 年);(2) CLIO Infra 报告的人均二氧化碳排放量( 2018 年);(3) Correlates of War Project 报告的人均一次能源消费量( 2012 年)。最终数据的构成如下表所示。

3. 合成控制法分析
3.1 分析策略
为了解决上文提到的五种因果估计所面临的挑战,作者选用了合成控制法来进行因果分析 (Abadie & Gardeazabal, 2003; Abadie et al., 2010, 2014)。为了估计事件的因果效应,最基本的是需要寻找在相同条件下如果事件未发生时的反事实对照组,合成控制法的核心思想是利用事件发生时除处理样本外其他所有满足条件的对照样本通过加权平均来“合成”一个更优的对照样本。该对照样本在事件发生前的变化趋势应当和处理样本的足够接近,而赋权的大小则是根据一组对结果变量有预测效力的变量来确定。
设数据集中有 J + 1 个样本,时间窗口为 T ,处理样本为 j ,结果变量为 。令一组可观测的协变量为 ,时变的、不可观测的协变量为 (其中包括国家层面的固定效应),年份固定效应为 ,则:
令权重向量为 ,在本研究中,其确定的标准有四条:
-
加权后控制组的可观测变量值等于处理样本的可观测变量值;
-
事件发生前合成控制组的结果变量值和处理样本相等;
-
获得正权重的对照国家在 j 国宣布独立时本身是独立的;
-
对照国家不能是在 j 国宣布独立前的 10 年中独立的。为了获得最优权重,每个合成控制组需要使得均方根预测误差(RMSPE)最小化。本研究中选择的用于构建合成控制组的变量包括人均 GDP、(对数)人口规模、预期寿命、受教育程度、贸易开放程度、战斗死亡人数和市场潜力。
之所以选用合成控制法,作者认为有四个原因:
- 该方法不对未观察到的特征施加条件,只要当事件发生前的时间窗口足够长且合成控制组匹配足够接近,就能排除未观察到的遗漏变量的混淆效应;
- 由于处理国家和合成控制的国家在事件发生前的趋势一致,因此排除了新独立国家在独立决策中的内生性和预期效应因素;
- 与面板回归框架相比,该方法还允许对特定国家和平均净独立效应进行估计,排除了异质性混淆因素;
- 该方法不需要正式建模,也不需要对任何总体参数进行估计,从而使其对模型不确定性更加稳健。
关于作者构建合成控制组以及进行全样本的参数估计的部分核心代码如下:
*- Perform simulation for this NIC
capture noi ///
synth baseline_gdpcap ///
baseline_gdpcap(`earliest_year_baseline_gdpcap'(1)`preindependence_year_1') ///
$SCM_covariates_1 , ///
mspeperiod(`earliest_year_baseline_gdpcap'/`preindependence_year_1') ///
resultsperiod(`earliest_year'/`last_year') ///
trunit(`NIC') ///
trperiod(`independence_year') ///
nested allopt
if _rc != 0 {
*- If no convergence is reached: apply the second-most accurate (nested) approach
cap synth baseline_gdpcap baseline_gdpcap(`earliest_year_baseline_gdpcap'(1)`preindependence_year_1') $SCM_covariates_1 , ///
mspeperiod(`earliest_year_baseline_gdpcap'/`preindependence_year_1') resultsperiod(`earliest_year'/`last_year') ///
trunit(`NIC') trperiod(`independence_year') nested
if _rc != 0 {
*If no convergence is reached: use the third-most accurate (regression-based) approach
cap synth baseline_gdpcap baseline_gdpcap(`earliest_year_baseline_gdpcap'(1)`preindependence_year_1') $SCM_covariates_1, ///
mspeperiod(`earliest_year_baseline_gdpcap'/`preindependence_year_1') resultsperiod(`earliest_year'/`last_year') ///
trunit(`NIC') trperiod(`independence_year')
}
}
else if _rc == 0 {
matrix cntry_weights = e(W_weights)
local check_weights = cntry_weights[1,2]
if `check_weights' == . {
noi di "missing weights, re-estimate"
cap synth baseline_gdpcap baseline_gdpcap(`earliest_year_baseline_gdpcap'(1)`preindependence_year_1') $SCM_covariates_1, ///
mspeperiod(`earliest_year_baseline_gdpcap'/`preindependence_year_1') resultsperiod(`earliest_year'/`last_year') ///
trunit(`NIC') trperiod(`independence_year') nested
}
}
* 2.1. Independence dividend
gen synth_lgdpcap_`cntry' = ln(synth_gdpcap_`cntry')
gen gap_`cntry' = baseline_gdpcap - synth_gdpcap_`cntry'
gen lgap_`cntry' = baseline_lgdpcap - synth_lgdpcap_`cntry'
replace IDD = lgap_`cntry' if cntrycode == `cntry'
* 2.2. Root Mean Squared Prediction Error (RMSPE)
levelsof cntrycode if lgap_`cntry' != ., local(placebo_countries)
foreach placebocntry of local placebo_countries {
scalar SPE_`placebocntry' = 0
scalar total_observations_`placebocntry' = 0
foreach year of numlist `start_RMSPE'/`stop_RMSPE' {
sum year if cntrycode == `cntry' & independence_years == `year' & year > $startyear
if `r(N)' != 0 {
sum lgap_`cntry' if cntrycode == `placebocntry' & year == `r(mean)'
if r(mean) != . {
scalar SPE_`placebocntry' = SPE_`placebocntry' + (r(mean^2))
scalar total_observations_`placebocntry' = total_observations_`placebocntry' + 1
}
}
}
scalar MSPE_`placebocntry' = SPE_`placebocntry'/total_observations_`placebocntry'
scalar RMSPE_`placebocntry' = sqrt(MSPE_`placebocntry')
replace rmspe = RMSPE_`placebocntry' if cntrycode == `placebocntry'
}
除了基本分析步骤外,作者还采用了一种偏差校正策略,来剔除由于合成控制组与处理样本事前匹配欠佳所带来的潜在偏差。作者假设,在独立前 10 年的时间窗口中,处理国家和合成国家之间的人均 GDP 差异分布可以用来反映其由于未观测到的异质性所产生的人均 GDP 差异,因此匹配欠佳所带来的影响是平稳的,这样它的平均效果和可变性就不会随着时间的推移而改变。作者将此称为 trend-demeaned 方法,具体表达式如下:
.
本部分的核心代码如下:
* Bootstrap placebo-estimates
cd ".\3. Intermediary results\3.4. Intermediaries"
foreach iteration of numlist 1/$firststepreps {
noi di `iteration', _continue
* All estimates
preserve
gen cntrycode_NIC = cntrycode if cntrycode < 400
replace cntrycode_NIC = round(cntrycode/1000) if cntrycode >400
bsample 1 if cntrycode > 400, ///
cluster(cntrycode) strat(cntrycode_NIC)
collapse (mean) bc_lgap [w=popshare], by(independence_years)
gen iteration = `iteration'
append using `bs', force
save `bs', replace
restore
* Statistically significant estimates
preserve
*drop if pvalue > .1
gen cntrycode_NIC = cntrycode if cntrycode < 400
replace cntrycode_NIC = round(cntrycode/1000) if cntrycode >400
bsample 1 if cntrycode > 400, cluster(cntrycode) strat(cntrycode_NIC)
collapse (mean) bc_lgap [w=popshare], by(independence_years)
gen iteration = `iteration'
append using `bs2', force
save `bs2', replace
restore
}
3.2 分析结果
作者首先以 1991 年宣布独立的乌克兰为例进行分析。在数据集中,在 1991 年独立且满足上一节中提到的筛选标准的国家除乌克兰外还有 142 个。最终实现最优匹配的合成控制国家中包括罗马尼亚 (0.556)、韩国 (0.271)、牙买加 (0.066)、智利 (0.058) 和日本 (0.049)。下表展示了乌克兰与合成控制国家以及全球平均水平之间在上一节中提到的七个变量上的差异,可以看到乌克兰与合成控制国家在独立前的差别非常小。进一步地,下图展示了乌克兰与合成控制国家在 1960 - 2011 年间人均 GDP 的变化趋势 (左图) 和二者之间的差值大小 (右图),可以发现乌克兰在独立后的20年中人均 GDP 始终低于合成控制国家。


由于乌克兰与合成控制国家在独立前的 RMSPE 接近于 0,表示其匹配良好,因此并未采用偏差校正策略。作者随后给出了中非共和国的例子,如下图 (左) 所示,中非共和国在独立前的人均 GDP 要高于合成控制国家,表明匹配欠佳。在校正偏差后,如下图 (右) 所示,尽管效应值有所降低,但中非共和国与合成控制国家之间的人均 GDP 差异仍然非常显著。

当然,个别国家的实例有可能是异常值,因此作者进一步估计了所有新独立国家的加权平均效应值。下图中灰线是每个新独立国家与对应的合成控制国家之间的人均 GDP 差异,黑线是每年的平均差异值,红线分别代表了独立前十年和后三十年整体的平均差异值。可以发现,(1) 人均 GDP 差异在国家之间存在异质性;(2) 总体而言,独立会导致新独立国家的人均 GDP 下降;(3) 独立带来的负面经济影响是长期的。

3.3 显著性检验
为了进一步检验效应值的显著性,作者分别计算了效应值的 p 值和置信区间。计算单个新独立国家效应值的 p 值的基本逻辑是,将它每个可能的对照国家都作为安慰剂来计算一个效应值,然后计算安慰剂效应值的分布与均值,再将其与新独立国家的效应值进行比较,如果后者落在前者分布 95% 置信区间外,则其 p 值小于 0.05 。新独立国家效应值的置信区间在 p 值的基础上计算得到,p 值和置信区间的具体计算公式如下:
p 值:,其中 B 为迭代抽样的次数
100(1-α) % 置信区间: confidence interval for
3.4 稳健性检验
第一个可能的混淆因素是制度转换成本,即原本为计划经济体制的国家在独立后向市场经济体制转换时本身就可能会给经济带来阵痛。估计转换成本所产生的影响可以参考 3.3 节中的思路,将那些在过去经历过制度转换并且满足 3.1 节中提到的其他筛选标准的国家作为安慰剂来计算其效应值的分布,然后再将其与处理国家的效应值进行比较。稳健性检验的结果表明,尽管减去转换成本之后独立带来的负面经济影响略有缓和,但并不影响之前所得到的结论。
第二个可能的混淆因素是独立因素。一方面,不同地域的差异可能会影响结论,于是作者将控制组国家的首都与新独立国家的首都之间的距离限制在 2000 公里以内,结果表明独立带来的负面经济影响整体上在中短期内程度更强,在独立十年后这种消极影响逐渐减少。另一方面,邻近的国家之间可能会有溢出效应,违背了 SUTVA 原则,因此作者将控制组国家的首都与新独立国家的首都之间的距离限制在 4000 公里以上,结果同样表明在中短期强烈的负面经济影响在长期式微。
第三个可能的混淆因素是控制组的构成。在之前的分析中,新独立国家也被纳入了控制组之中,因此作者将控制组的筛选口径进一步收窄,要求即使是新独立国家,也需要在其独立三十年后才能被纳入考量,并且排除了所有解体前的母国(例如南斯拉夫),此时结论依然稳健。
第四个可能的混淆因素是预期效应。作者的解决方案是,将所有新独立国家的独立年份前移 5 年,以此作为独立年份的安慰剂来进行估计。例如,乌克兰原本是在 1991 年宣布独立的,此时作者假设乌克兰的独立年份为 1986 年,原本选定的合成控制国家仍然不变(即罗马尼亚、韩国、牙买加、智利和日本),以此来估计效应值。结果表明,前述结论依然稳健,并且新独立国家和合成控制国家在安慰剂独立年份的前五年中趋势仍然基本匹配。
第五个考虑因素是权重的选择。作者提出在中短期所有新独立国家的加权平均效应值可能会受到权重选择的影响而产生偏差,因此作者重新给每个新独立国家的效应值赋予同样的权重进行平均,结论依然稳健,但平均效应在长期更加温和。第二种加权方式是 inverse RMSPE-weighted (Acemoglu et al., 2016),同样地,结果表明在中短期负面经济影响显著,但在长期逐渐变得不显著。
4. 机制分析
尽管前述分析表明,平均而言,独立在中短期内带来的经济影响是负面的,但这种影响可能因国家和时间而异,因此作者首先通过双变量的相关性分析(bivariate analysis)来检验不同的预测因素与独立经济效应之间的关系,再进一步通过多变量分析(multivariate analysis)来确定最主要的预测因素。
对于双变量分析,作者总共分析了 12 个潜在的影响因素,结论如下:
- 经济影响。独立后的经济表现与以下因素显著相关:
- 人口份额与独立经济效应负相关,表明独立后人口越少的国家经济发展相对更好;
- 贸易开放程度与独立经济效应正相关,表明贸易开放抵消了国内市场规模缩小的不利影响;
- 市场潜力与独立经济效应无显著相关,表明获得附近的市场准入并非万金油策略;
- 政策效果的异质性:
- 内陆国家在独立后的经济表现更差;
- 民主化程度越高的国家在独立后经济表现更好;
- 独立前较贫穷的国家在独立后经济发展更好;
- 独立后若发生军事暴力冲突,则经济表现更差;
- 金融危机不会削弱新独立国家的增长前景;
- 制度转换成本的确对独立后的经济发展有负面影响;
- 随着时间的推移,独立的负面经济影响逐渐减少。

双变量分析的核心代码如下所示:
twoway (scatter PTDIDD popshare if pvalue > .1, ///
mcolor(gs14) msize(small)) ///
(scatter PTDIDD popshare if pvalue > .05 & pvalue <= .1, ///
mcolor(gs12) msize(small)) ///
(scatter PTDIDD popshare if pvalue > .01 & pvalue <= .05, ///
mcolor(gs8) msize(small)) ///
(scatter PTDIDD popshare if pvalue <= .01, ///
mcolor(gs0) msize(small)) ///
(lfit PTDIDD popshare, ///
lcolor(gs8) lpattern(dash) lw(thick)) ///
(lfit PTDIDD popshare if pvalue <= .1, ///
lcolor(gs0) lw(thick)) ///
if popshare < 2, ///
xlab(-.5(.5)1.5) ///
xtitle("Standardized population share", size(large)) ///
ytitle("Standardized independence dividend", size(medlarge)) ///
xline(0, lcolor(red) lpattern(shortdash)) ///
graphregion(color(white)) ///
bgcolor(white) ///
legend(order(4 "p<.01" 3 "p<.05" 2 "p<.1" 1 "p>.1") ///
rows(1) size(medium) symxsize(small))
作者进一步进行了多变量分析,方程如下所示。值得注意的是,由于被解释变量本身也是估计值,因此作者采用了可行广义最小二乘法(feasible generalized least squares)来进行估计。作者首先对双变量分析中除时间外的变量进行回归,结论基本保持一致,并发现石油生产国有利于对冲独立带来的消极经济影响。除此之外,在进一步控制初始经济发展水平后,作者发现通过公投宣布独立可能有利于和平的政治解决,因此,成功的独立公投可能会缓和独立的部分经济成本。最后,作者还指出参加区域性组织会对独立后的经济发展产生显著影响。
5. 结论
本文利用合成控制法,在控制一系列混淆因素的基础上,估计了国家独立所产生的经济影响。尽管国家之间存在异质性,但平均而言,国家独立会显著负面影响经济增长。具体而言,在独立后的第 10 年,国家独立主要使人均 GDP 减少了约 24%。这种负面的经济影响对于近半数的国家而言仅持续十年左右,而大约 10% 的国家会经历长达三十年的经济衰退期。通过深入剖析其中的机制,作者表明这可能是由于国家独立使得很多内陆国家的边界发生变化,进而导致贸易和资源开发受到限制。独立国家原本的政治体制也可能产生影响。
在本文的基础上,未来的研究可以进一步探究两个问题:(1) 本文的研究结果是否可以推广到其他正在考虑独立的地区;(2) 这些发现是否可以推广到非经济领域。
6. 参考文献
- Abadie, A., Diamond, A., & Hainmueller, J. (2010). Synthetic control methods for comparative case studies: Estimating the effect of California’s tobacco control program. Journal of the American Statistical Association, 105(490), 493-505. -PDF-
- Abadie, A., Diamond, A., & Hainmueller, J. (2015). Comparative politics and the synthetic control method. American Journal of Political Science, 59(2), 495-510. -PDF-
- Abadie, A., & Gardeazabal, J. (2003). The economic costs of conflict: A case study of the Basque Country. American Economic Review, 93(1), 113-132. -PDF-
- Acemoglu, D., Johnson, S., Kermani, A., Kwak, J., & Mitton, T. (2016). The value of connections in turbulent times: Evidence from the United States. Journal of Financial Economics, 121(2), 368-391. -PDF-
- Griffiths, R. D., & Butcher, C. R. (2013). Introducing the International System (s) Dataset (ISD), 1816–2011. International Interactions, 39(5), 748-768. -PDF-
- Reynaerts, J., & Vanschoonbeek, J. (2022). The economics of state fragmentation: Assessing the economic impact of secession. Journal of Applied Econometrics, 37(1), 82-115. -PDF-
7. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh 合成控制, m
安装最新版lianxh
命令:
ssc install lianxh, replace
- 伍站锋, 2022, Stata:纠偏合成控制法介绍-allsynth, 连享会 No.854.
- 何庆红, 2020, Synth_Runner命令:合成控制法高效实现, 连享会 No.205.
- 何庆红, 2020, 合成控制法 (Synthetic Control Method) 及 Stata实现, 连享会 No.119.
- 周瑾, 2024, sdid_event命令:合成DID事件研究法, 连享会 No.1482.
- 李晶晶, 2022, 合成控制法简介, 连享会 No.910.
- 浦进博, 2024, Stata:非参数合成控制法命令—npsynth, 连享会 No.1458.
- 浦进博, 2024, 合成控制法最新进展!机器学习+SCM!-qcm, 连享会 No.1515.
- 连享会, 2020, Stata:合成控制法程序分享, 连享会 No.203.
- 郭盼亭, 2023, Stata:基于Lasso的合成控制法-scul, 连享会 No.1167.
- 陈勇吏, 2020, Stata:合成控制法-synth-命令无法加载-plugin-的解决办法, 连享会 No.204.
- 陈卓然, 2022, Stata+R:合成DID原理及实现-sdid, 连享会 No.970.
- 陈少廷, 2022, Stata:合成控制法介绍-synth2, 连享会 No.1133.
- 高净鹤, 2022, Stata:合成控制法的预测区间-scpi, 连享会 No.1096.


资源共享
- 连享会资料 ……
- 在线视频:lianxh-class.cn
- Stata 33 讲,100 万+ 播放,Stata 入门必备,公开课
- 直击面板数据模型,10 万+ 播放,白话面板模型,公开课
- … more …
- 论文复现和数据
- 主题分类
- 热门推文

尊敬的老师 / 亲爱的同学们:
连享会致力于不断优化和丰富课程内容,以确保每位学员都能获得最有价值的学习体验。为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。
请您在下面的问卷中,分享您 感兴趣的学习主题或您希望深入了解的知识领域 。您的每一条建议都是我们宝贵的资源,将直接影响到我们课程的改进和创新。
我们期待您的反馈,因为您的参与和支持是我们不断前进的动力。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!

关于我们
- Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。more……
- 扫码加入连享会微信群,提问交流更方便
