Stata论文复现:高维线性回归的变量筛选-baing-ocmt

发布时间:2022-01-31 阅读 1835

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:罗兰若 (中山大学)
邮箱luolr@mail2.sysu.edu.cn

编者按:本文主要摘译自下文,特此致谢!
Source:Núñez H M, Otero J. A one covariate at a time, multiple testing approach to variable selection in high‐dimensional linear regression models: A replication in a narrow sense[J]. Journal of Applied Econometrics, 2021, 36(6): 833-841. -PDF-


目录


1. 问题引入

OCMT (A One Covariate at A Time) 是在高维回归模型中,通过多重检验,选出最接近真实模型协变量的方法。它可以作为惩罚回归的替代方法,在一些实验当中,其性能优于 Lasso 和 Adaptive Lasso 等方法。

OCMT 由 Chudik 等 (2018) 提出。此后,Nunez 和 Otero (2021) 开发了 baingocmt 命令,并在 Stata 中复现了 Chudik 等 (2018) 的部分实证结果。本文的主要目的是对上述过程进行简要说明。

2. OCMT 原理介绍

简单而言,OCMT 的步骤是:

  • 将因变量对事先确定的解释变量 zt 和协变量 xi,t 进行线性回归,每次只放入 1 个 xi,t。然后考察其统计显著性,若高于事先设定的阈值则将其放入模型中;
  • 提高阈值,重复上述步骤,直到模型不再变化。

关于 OCMT 的理论基础和 ocmt 命令的用法介绍,请参考连享会推文「ocmt:高维固定效应模型的变量筛选问题」

3. Stata 实操

3.1 数据介绍

Chudik 等 (2018) 对美国 1960q1-2008q4 期间经济增长和通货膨胀的影响因素进行了研究。相关数据可从网站「Journal of Applied Econometrics Data Archive」或命令 lxhget ckp2018.zip, replace 获取。该数据主要包括以下 4 个 txt 文件:

  • empir_m.txt:包含 74 个月度变量的数据 (自变量);
  • cpi.txt:月度消费者价格指数 (CPI) 数据 (自变量);
  • empir_q.txt:35 个季度变量的数据 (因变量);
  • gdp.txt:季度国内生产总值的数据 (因变量)。

数据处理代码放在 Data_analysis.do 中,关键代码放在 Data_management.do 中,这里不详细展开。需要注意的是,月度变量通过对每个季度的第二个月依次取样转换成季度数据。由于取了两期滞后项,前两个观测值的丢失导致样本期从 1960q3 开始。

3.2 命令介绍

考虑以下模型:

其中,yt 是关注的解释变量,zt 为预先选定放入模型中的变量,xit 是待筛选的自变量,ut 是扰动项。zt 可以包括确定项 (如常数、虚拟变量和线性趋势) 和/或随机变量 (包括公共因素和解释变量 yt 的滞后值)。为了确定预选变量 zt,我们先对这一高维面板数据进行公共因素的提取。

Bai 和 Ng (2002) 提供了一个对高维面板数据 (N,T) 公共因素数量进行一致估计的方法,估计过程遵循信息标准 (Information Criteria,IC)。该估计方法遵循一个前提假设:当使用大量的预测因子进行预测时,它们所包含的信息可以由数量较少的估计因子充分地概括出来 (Stock 和 Watson,2002)。

基于这份研究,作者设计了 baing 命令。

* 命令安装
ssc install baing, replace

baing 用于时间序列数据,使用前需要先执行 tsset 命令。

* 命令语法
baing varlist [if] [in] [, options].

其中,varlist:待筛选的自变量。options 包括:

  • criteria(integer):表示运用 3 种信息标准 IC1、IC2、IC3 中的 1 种,默认选择 IC1;
  • maxpc(integer):规定公共因素数量的最大值,默认为 varlist 中的变量数;
  • stand:将数据进行标准化,通过减去每个变量的平均值再除以标准差;
  • prefix(string):将分析出的公共因素存储为变量 string1string2 等。如果不使用该选项,只保存公共因素的数量。

返回值 r(baing_ic) 储存提取的公共因素个数。

3.3 实际操作

实证分析过程采用滚动窗口回归,使用 74 个子样本,每个子样本由 120 个季度组成,即 1960q3-1990q2,1960q4-1990q3,以此类推至 1979q1-2008q4。在每个窗口中,使用因变量和待筛选的自变量来确定公共因素。

下面以第一个样本窗口 1960q3-1990q2 和 因变量 cpi 为例,介绍命令 baingocmt 在实际操作中的使用及相应结果。

3.3.1 baing 命令

基于 Bai 和 Ng (2002) 的 IC1 标准,最大因子数设定为 5。baing 命令如下:

qui baing cpi qv* mv*, max(5) stand prefix(myfactors) crit(1)

其中,qv*mv* 均为一系列自变量,分别有 35 个和 74 个;myfactors 指定生成的公共因素的命名形式,最终生成了 myfactors1myfactors2myfactors3myfactors4 共 4 个公共因素;numfactors 中存储提取的公共因素个数为 4。接下来,将提取的 4 个公共因素将作为 OCMT 的预选变量 zt 的一部分,加入到后续分析中。

3.3.2 ocmt 命令

qui ocmt cpi l1.qv* l1.mv* l(1/4).cpi , delta1(1) delta2(2) zvar(l1.factor*)

其中,qv*mv* 均为一系列自变量,分别有 35 个和 74 个;factor* 为通过 baing 命令分析得出的公共因素 myfactors* 的三期滞后项。

经过两个阶段后,OCMT 结果收敛,因此选取第二阶段得到的模型。需要注意的是,OCMT 执行过程中 Active set 是指待选择的自变量构成的集合。

. ocmt cpi l1.qv* l1.mv* l(1/4).cpi , delta1(1) delta2(2) zvar(l1.factor*)

Significance level not specified. Using default value
Dependent variable: cpi
Active set: L.qv1 L.qv2 L.qv3...L.cpi L2.cpi L3.cpi L4.cpi
Number of variables in active set = 113
Pvalue =         .05
delta_1 =       1
delta_2 =       2
Pvalue_1 =       .05
Pvalue_2 =       .00044248
t_threshold_1 = 3.5133598
t_threshold_2 = 4.6158056
Preselected variables (apart from constant): L.factors1 L.factors2 L.factors3
Variables chosen in stage 1
L.qv20 L.qv27 L.cpi L3.cpi
Variables chosen in stage 2
L.qv20 L.qv27 L.cpi L3.cpi L2.cpi
Variables chosen in stage 3
L.qv20 L.qv27 L.cpi L3.cpi L2.cpi
------------------------------------------------------------------------------
------------------------------------------------------------------------------
One Covariate at a Time Multiple Testing (OCMT)
Chosen model after 2 stages
------------------------------------------------------------------------------
      Source |       SS           df       MS      Number of obs   =       189
-------------+----------------------------------   F(8, 180)       =     18.94
       Model |  .002628647         8  .000328581   Prob > F        =    0.0000
    Residual |  .003122216       180  .000017346   R-squared       =    0.4571
-------------+----------------------------------   Adj R-squared   =    0.4330
       Total |  .005750864       188   .00003059   Root MSE        =    .00416
------------------------------------------------------------------------------
         cpi |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        qv20 |
         L1. |  -.0001378   .0064482    -0.02   0.983    -.0128617     .012586
             |
        qv27 |
         L1. |  -.1115361   .0845849    -1.32   0.189    -.2784416    .0553695
             |
         cpi |
         L1. |  -.6944746   .1054599    -6.59   0.000    -.9025714   -.4863779
         L3. |   .0167011   .0745922     0.22   0.823    -.1304865    .1638887
         L2. |  -.4719376    .088855    -5.31   0.000    -.6472691   -.2966061
             |
    factors1 |
         L1. |  -.0049336   .0007536    -6.55   0.000    -.0064206   -.0034466
             |
    factors2 |
         L1. |   .0010071   .0013829     0.73   0.467    -.0017217    .0037358
             |
    factors3 |
         L1. |  -.0017449   .0015739    -1.11   0.269    -.0048506    .0013609
             |
       _cons |   .0000975   .0003031     0.32   0.748    -.0005006    .0006956
------------------------------------------------------------------------------

3.3.3 结果汇总

经过对 74 个子样本重复进行上述操作,最终得出了在总体中被挑选频率最高的 5 个自变量,计算出自变量被挑选的相对频率 Select 的值,用以衡量自变量的相对重要程度:

最终结果如下表所示,这与 Chudik 等 (2018) 中的 Table III 结果完全一致。

target select vlabel
cpi 100 FIRST LAG OF CPI
cpi 78.378378 THIRD LAG OF CPI
cpi 71.621622 MZM (SA) FRB ST. LOUIS
cpi 45.945946 MONEY STOCK: M2
cpi 33.783784 RECREATION PRICE INDEX
gdp 47.297297 RESIDENTIAL PRICE INDEX
gdp 45.945946 FIRST LAG OF GDP
gdp 43.243243 INDUSTRIAL PRODUCTION INDEX - FUELS
gdp 37.837838 OUTPUT PER HOUR ALL PERSONS
gdp 27.027027 EMPLOYEES, NONFARM - MINING

4. 参考文献

  • Núñez H M, Otero J. A one covariate at a time, multiple testing approach to variable selection in high‐dimensional linear regression models: A replication in a narrow sense[J]. Journal of Applied Econometrics, 2021, 36(6): 833-841. -PDF-
  • Chudik A, Kapetanios G, Pesaran M H. A One Covariate at a Time, Multiple Testing Approach to Variable Selection in High‐Dimensional Linear Regression Models[J]. Econometrica, 2018, 86(4): 1479-1512. -PDF-
  • Bai J, Ng S. Determining the number of factors in approximate factor models[J]. Econometrica, 2002, 70(1): 191-221. -PDF-
  • Stock J H, Watson M W. Macroeconomic forecasting using diffusion indexes[J]. Journal of Business & Economic Statistics, 2002, 20(2): 147-162. -PDF-

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 变量筛选 lasso, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,400+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh