查看原文
其他

Stata前沿---基于Lasso的合成控制法

数量经济学 数量经济学 2023-02-21

Stata---基于Lasso的合成控制法

推荐阅读:基于Lasso(scul)的合成控制法(一)

1、简介

scul由Hollingsworth和Wing(2021)在Abadie(2003,2010,2021)描述的框架中改编自R代码,用于比较案例研究。它使用LASSO通过捐赠池的结果来了解治疗单元的干预前结果,然后投影反事实。

2、前提条件

运行scul需要满足如下条件

  • 需要一个xtset面板数据集才能使用它。
  • 此外,还需要安装如下包。需要使用tabstatmat (ssc inst tabstatmat, replace)、distinct (ssc inst distinct, replace)、greshape (ssc inst gtools, replace)、fplot} (ssc inst coefplot, replace)和cvlasso命令来使用scul。

3、下载安装

scul命令需要下载scul.ado和 scul.sthlp两个配套文件,可以输入如下命令进行下载和安装

net install scul

另外该命令配套的有如下数据,

scul_Taxes.dta
      scul_Stadium.dta
      scul_Reunification.dta
      scul_p99_region.dta
      scul_invasion.dta
      scul_bp.dta
      scul_basque.dta
      ../p/placebos_scul.dta
      ../g/GasHoliday.dta
      scultest.do


可以输入如下命令下载配套数据

net get scul

该命令语法格式为:

scul depvar, treated(variable) [ahead(number)] [placebos] [plat] [times(numlist)] [lambda(string)] [covs(varlist)] [cv(string)] [scheme(string)]  [rellab(numlist)] 
[obscol(string)] [cfcol(string)] [conf(string)] [legpos(integer)] [transform(string)] [q(real)] [donoradj(string)] [before(integer)] [after(integer)]

注意事项:

  • 默认情况下,该命令生成真实的与合成的图,以及差距图。

选项含义为:

  • depvar指定结果。此变量可能没有遗漏的观察值。
  • treatment指定处理变量。该变量可能没有缺失值,必须为0或1,并且在处理启动后必须始终为1。如果多于一个单元被处理,那么scul采用交错采用。
  • ahead指定用户希望在训练数据集中预测的提前周期数。有关此过程的详细信息,请参阅cvlasso的选项。
  • λ是可选的。根据Hastie等人(2019)第二章的讨论,用户可以指定lopt(最优lambda)或lse(标准错误规则)。
  • placebos是可选的。迭代地,使用用户指定的原始模型,将处理重新分配到整个供体单元池。这产生了一个这些估计的图表,以及95%的安慰剂置信区间。
  • x是可选的。用这些协变量来估计反事实。

案例应用

首先导入数据,对相关数据进行查看

. ed

. desc

Contains data from scul_p99_region.dta
 Observations:           279                  
    Variables:             4                  23 Jul 2022 09:07
-----------------------------------------------------------------------------------------------------------------------------
Variable      Storage   Display    Value
    name         type    format    label      Variable label
-----------------------------------------------------------------------------------------------------------------------------
region          byte    %18.0g     region     
year            int     %ty                   Year
cigsale         float   %9.0g                 (mean) Data_Value
treat           float   %9.0g                 
-----------------------------------------------------------------------------------------------------------------------------
Sorted by: region  year
     Note: Dataset has changed since last saved.

注意:需要将传统的加州禁烟数据转换为如下格式数据:

region表示地区,其中加州为California,在该数据中表示为3,year 表示年份,cigsale 表示香烟消费量, treat表示是否实行禁烟政策,只有加州在1989年及以后为1,其他全部为0

des2

File: scul_p99_region.dta
Date: 23 Jul 2022 09:07
obs:  279
vars: 4

variable name   type    format    value label   variable label
-----------------------------------------------------------------------------------------------------------------------------
region          byte    %18.0g    region        
year            int     %ty                     Year
cigsale         float   %9.0g                   (mean) Data_Value
treat           float   %9.0g                   

. tabulate region

            region |      Freq.     Percent        Cum.
-------------------+-----------------------------------
East South Central |         31       11.11       11.11
West South Central |         31       11.11       22.22
        California |         31       11.11       33.33
          Mountain |         31       11.11       44.44
       New England |         31       11.11       55.56
    South Atlantic |         31       11.11       66.67
East North Central |         31       11.11       77.78
West North Central |         31       11.11       88.89
   Middle Atlantic |         31       11.11      100.00
-------------------+-----------------------------------
             Total |        279      100.00

 label list region
region:
           1 East South Central
           2 West South Central
           3 California
           4 Mountain
           5 New England
           6 South Atlantic
           7 East North Central
           8 West North Central
           9 Middle Atlantic

下面进行Lasso合成控制法

cd C:\Users\Metrics\Desktop\scurldata
loc int_time = 1989

"scul_p99_region", clear
qui xtset
local lbl: value label `r(panelvar)'

loc unit ="California":`lbl'

qui xtset
g treat = cond(`r(panelvar)'==`unit' & `r(timevar)' >= `int_time',1,0)
cls

scul cigsale, ///
        ahead(1)  ///
        treated(treat) ///
        obscol(black) ///
        cfcol(blue) ///
        legpos(7) cv(adaptive)

结果为:

产生的结果图为:


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存