合成控制法进展:机器学习中随机森林+SCM!分位数控制法

学术   2024-12-19 15:44   陕西  

合成控制法进展:机器学习中随机森林+SCM!分位数控制法-qcm
分位数控制法及Stata应用

qcm 是一个用于在 Stata 中实现分位数控制方法(Quantile Control Method,QCM)的命令。该方法通过随机森林构建置信区间,以评估单个处理单元在面板数据中的处理效应。QCM 对异方差、自相关和模型设定错误具有鲁棒性,并能轻松处理高维数据。

输入ssc new ,可以看到最近分位数控制法命令qcm已经可以通过ssc 下载,下面介绍一下该命令。


1、简介

qcm通过随机森林实现了分位数控制方法(Quantile Control Method, QCM)(Chen, Xiao和Yao, 2024),它使用分位数随机森林(Quantile Random Forest, QRF;Meinshausen)构建了单个处理单元的面板数据中处理效果的置信区间。作为一种非参数集成机器学习方法,QRF对异方差性、自相关和模型设定错误具有鲁棒性,并且能够轻松处理高维数据。

Chen, Xiao和Yao (2024)的模拟表明,QCM置信区间在有限样本中表现优异。特别是,对于95%的名义置信水平,如果处理前周期数大于或等于20,控制单元数大于或等于10,QCM置信区间的经验覆盖率可以达到90%以上或接近90%。此外,可以使用额外的协变量来帮助预测处理单元的反事实结果。

请注意,qcm完全用Stata和Mata代码编写,没有引用任何外部环境,如Python或Java。此外,qcm需要安装moremata,该程序可从SSC获取。

数据预处理:QCM的一个关键假设是数据(包括结果变量和其他可用的协变量)是平稳的。对于非平稳数据,在应用QCM之前强烈建议将其转换为平稳数据。


语法:

qcm depvar [indepvars], trunit(#) trperiod(#) [options]
  • depvar:因变量。
  • indepvars:自变量,可选。
  • trunit(#):指定处理单元的标识符(即接受处理或干预的单元)。
  • trperiod(#):指定处理或干预开始的时间点。
  • [options]:其他可选参数,用于模型设置、优化和报告等。

选项:

  • 模型相关:

    • counit(numlist):指定作为对照组的控制单元列表。
    • preperiod(numlist):指定干预前的时间段。
    • postperiod(numlist):指定干预后的时间段。
  • 优化相关:

    • ntrees(int):设置随机森林中树的数量,默认为 500。
    • mtry(int):每个节点随机选择的候选分裂变量数,默认为预测变量数的三分之一。
    • maxdepth(int):树的最大深度,默认不限。
    • minlsize(int):每个终端节点所需的最小观测数,默认为 5。
    • minssize(int):分裂内部节点所需的最小观测数,默认为 10。
    • fill(fil_method):填充缺失值的方法,可选 mean(均值)或 linear(线性插值)。
  • 报告相关:

    • cilevel(#_c):设置置信水平,默认为 95%。
    • cistyle([1|2|3]):设置置信区间的显示样式,默认为样式 1。
    • qtype(qdef):指定分位数定义,默认为 10。
    • frame(framename):创建一个 Stata 框架,存储生成的宽格式变量。
    • show(#_s):在条形图中显示的最大条数,按降序排列。
    • noimportance:不显示变量重要性。
    • nofigure:不显示图形。
    • savegraph([prefix], [asis replace]):将生成的图形保存到当前路径。

注意事项:

  • 在使用 qcm 之前,必须使用 xtset 命令声明一个(严格平衡的)面板数据集。

  • depvarindepvars 必须是数值型变量,不允许使用缩写。

  • QCM 假设数据是平稳的。对于非平稳数据,建议在应用 QCM 之前对其进行平稳化处理,例如对存在单位根的差分平稳数据进行差分处理,或对具有指数趋势的 GDP 数据计算其增长率。


3、Stata案例

示例 1(无协变量)

使用示例数据集growth.dta进行演示

命令qcm的基本句型

display tq(2004q1) 

qcm gdp, trunit(9) trperiod(176)  importance

其中:

  • 必选项trunit()指定处理单位 (treated unit)
  • trperiod()指定处理期 (treatment period,必须为整数)
  • 选择项 importance计算变量重要性
. use growth, clear
. xtset region time

* 显示香港的单元编号和处理时期
. label list
. di tq(2004q1)

* 实施分位数控制方法
set seed 1
. qcm gdp, trunit(9) trperiod(176)

* 使用不同的置信区间样式
set seed 1
. qui qcm gdp, trunit(9) trperiod(176) cistyle(2)

* 使用另一种置信区间样式,保存生成的图形并存储结果
set seed 1
. qui qcm gdp, trunit(9) trperiod(176) cistyle(3) savegraph(growth, replace) frame(growth)

* 切换到 "growth" 框架,描述数据
. frame change growth
. describe

* 切换回默认框架
. frame change default

复刻结果为:

结果为:


       . xtset region time
       panel variable:  region (strongly balanced)
        time variable:  time, 1993q1 to 2008q1
                delta:  1 quarter


end of do-file

do "C:\Users\Metrics\AppData\Local\Temp\STD20b54_000000.tmp"

.         . label list
region:
           1 Australia
           2 Austria
           3 Canada
           4 China
           5 Denmark
           6 Finland
           7 France
           8 Germany
           9 HongKong
          10 Indonesia
          11 Italy
          12 Japan
          13 Korea
          14 Malaysia
          15 Mexico
          16 Netherlands
          17 NewZealand
          18 Norway
          19 Philippines
          20 Singapore
          21 Switzerland
          22 Taiwan
          23 Thailand
          24 UnitedKingdom
          25 UnitedStates

.         . di tq(2004q1)
176


end of do-file

do "C:\Users\Metrics\AppData\Local\Temp\STD20b54_000000.tmp"

.         . set seed 1

.         . qcm gdp, trunit(9) trperiod(176)

Parameters of random forest:
------------------------------------------------------------------------------
> -
 Number of trees to grow                                                =  500
 Maximum depth of the trees                                             =    .
 Minimum number of obs required at each terminal node                   =    5
 Minimum number of obs required to split an internal node               =   10
 Number of candidate splitting variables randomly selected at each node =    8
------------------------------------------------------------------------------
> -

Fitting results in the pretreatment periods:
-----------------------------------------------------------------------------
 Treated Unit           :  HongKong    Treatment Time            =     2004q1
-----------------------------------------------------------------------------
 Number of Observations =        44    Root Mean Squared Error   =    0.00998
 Number of Predictors   =        24    R-squared                 =    0.94022
-----------------------------------------------------------------------------

Variable Importance:
----------------------------
      Unit     |  Importance
---------------+------------
      Malaysia |     0.2106 
     Singapore |     0.1438 
         Korea |     0.1247 
        Norway |     0.0925 
      Thailand |     0.0704 
        Mexico |     0.0434 
     Indonesia |     0.0412 
  UnitedStates |     0.0356 
        Canada |     0.0311 
         China |     0.0275 
         Japan |     0.0248 
       Finland |     0.0248 
       Austria |     0.0220 
   Philippines |     0.0209 
        Taiwan |     0.0203 
        France |     0.0191 
   Switzerland |     0.0166 
   Netherlands |     0.0100 
         Italy |     0.0090 
       Germany |     0.0055 
    NewZealand |     0.0026 
     Australia |     0.0015 
 UnitedKingdom |     0.0012 
       Denmark |     0.0007 
---------------+------------
     Total     |     1.0000 
----------------------------

Prediction results in the posttreatment periods:
-------------------------------------------------------------------------
  Time  | Actual Outcome   Predicted Outcome   [95% Confidence  Interval]     
>  
--------+----------------------------------------------------------------
 2004q1 |      0.0770           0.0545          -0.0193           0.1033 
 2004q2 |      0.1200           0.0621          -0.0161           0.1041 
 2004q3 |      0.0660           0.0509          -0.0192           0.1023 
 2004q4 |      0.0790           0.0567          -0.0208           0.1040 
 2005q1 |      0.0620           0.0328          -0.0728           0.0988 
 2005q2 |      0.0710           0.0260          -0.0734           0.0991 
 2005q3 |      0.0810           0.0346          -0.0731           0.1030 
 2005q4 |      0.0690           0.0637          -0.0195           0.1049 
 2006q1 |      0.0900           0.0709          -0.0169           0.1053 
 2006q2 |      0.0620           0.0651          -0.0205           0.1051 
 2006q3 |      0.0640           0.0491          -0.0227           0.1031 
 2006q4 |      0.0660           0.0338          -0.0731           0.1025 
 2007q1 |      0.0550           0.0229          -0.0690           0.0995 
 2007q2 |      0.0620           0.0561          -0.0213           0.1038 
 2007q3 |      0.0680           0.0531          -0.0222           0.1035 
 2007q4 |      0.0690           0.0503          -0.0223           0.1028 
 2008q1 |      0.0730           0.0507          -0.0223           0.1030 
-------------------------------------------------------------------------

Estimation results in the posttreatment periods:
--------------------------------------------------------
  Time  | Treatment Effect     [95% Confidence Interval]       
--------+-----------------------------------------------
 2004q1 |      0.0225          -0.0263           0.0963 
 2004q2 |      0.0579           0.0159           0.1361 
 2004q3 |      0.0151          -0.0363           0.0852 
 2004q4 |      0.0223          -0.0250           0.0998 
 2005q1 |      0.0292          -0.0368           0.1348 
 2005q2 |      0.0450          -0.0281           0.1444 
 2005q3 |      0.0464          -0.0220           0.1541 
 2005q4 |      0.0053          -0.0359           0.0885 
 2006q1 |      0.0191          -0.0153           0.1069 
 2006q2 |     -0.0031          -0.0431           0.0825 
 2006q3 |      0.0149          -0.0391           0.0867 
 2006q4 |      0.0322          -0.0365           0.1391 
 2007q1 |      0.0321          -0.0445           0.1240 
 2007q2 |      0.0059          -0.0418           0.0833 
 2007q3 |      0.0149          -0.0355           0.0902 
 2007q4 |      0.0187          -0.0338           0.0913 
 2008q1 |      0.0223          -0.0300           0.0953 
--------+-----------------------------------------------
  Mean  |      0.0236          -0.0302           0.1081 
--------------------------------------------------------
Note: The average treatment effect over the posttreatment periods is 0.0236.

Finished.




案例2:Examples 2 (with covariates): effect of carbon taxes in Sweden on CO2 emissions (Andersson, 2019)

. use carbontaxgr, clear
. xtset country year

* 显示瑞典的单元编号
. label list

* 实施分位数控制方法,仅在条形图中显示最多 20 个条
set seed 1
. qcm CO2 GDP gas vehicles urban pop, trunit(13) trperiod(1990) show(20)

复刻结果为:





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