温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh
作者:黄涵麟 (中山大学)
邮箱:huanghlin5@mail2.sysu.edu.cn
编者按:本文摘译自下文,特此致谢!
Source: 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-
目录
OCMT (A One Covariate at A Time, Multiple Testing Approach to Variable Selection in High-Dimensional Linear Regression Models) 是在高维回归模型中,通过多重检验,选出最接近真实模型的协变量的方法。为此,本文将简要介绍 OCMT 方法的理论和 Stata 实现。
其中,Stata 实现的命令是 ocmt
。该命令可以在高维模型中替代惩罚回归进行模型筛选,并具有速度快、有效性强等特点。在一些实验当中,其性能优于 Lasso 和 Adaptive Lasso 等方法。
考虑以下模型:
其中:
将
OCMT 将用
其中:
当
OCMT 的变量选择方法侧重于以预选变量
其中,
为了简化表达,去掉下标
(I) 信号变量,拥有非零的净影响 | (II) 隐藏变量 | |
(III) 伪信号变量 | (IV) 噪声变量 |
情况 (II) 比较少见,但是伪信号情况 (III) 出现可能性较高,伪信号是模型选择策略中一个重要的考虑因素。
我们将只包含信号的模型叫做真实模型,把包含了伪信号变量,但不包含噪声变量的模型称为近似模型。
考虑
其中,
矩阵表示为:
其中:
得到最小二乘回归估计量
其中,
设置关键值函数为:
其中,
研究者需要根据情况设置关键值指数
在第一阶段中设置
第一阶段 (
若
后续阶段 (
其中,
后续阶段的选择指标为 (关键值函数采用
当在给定阶段没有选出信号变量和伪信号变量时,OCMT 过程终止。否则,
命令安装
ssc install ocmt, replace
命令语法
ocmt depvar [indepvars] [if] [in] [, options]
其中:
depvar
:因变量;indepvars
:解释变量;[, options]
:可以选择预选变量 数据生成和基本设定
clear
set obs 50
set seed 123
gen t = _n
gen x1 = rnormal()
gen x2 = rnormal()
gen x3 = rnormal()
gen x4 = rnormal()
gen x5 = rnormal()
gen x6 = rnormal()
gen x7 = rnormal()
gen x8 = rnormal()
gen x9 = rnormal()
gen x10 = rnormal()
gen z1 = rnormal()
gen w1 = rnormal()
gen y = 2 + 0.8*x1 + x2 - 3*x5 + x8 - 2*z1 + rnormal()
tsset t // 设定为时序数据
使用 ocmt
筛选变量
ocmt y x* w1 z1, sig(10) delta1(1) delta2(2)
Note:置信水平用整数表示,若想设置 sig(5)
,而非 sig(5%)
。
由于
ocmt y x* w1 z1, sig(10)
delta_1 and delta_2 not specified. Using default values
Dependent variable: y
Active set: x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 w1 z1
Number of variables in active set = 12
Pvalue = .1
delta_1 = 1
delta_2 = 2
Pvalue_1 = .1
Pvalue_2 = .00833333
t_threshold_1 = 2.6382573
t_threshold_2 = 3.3917631
Preselected variables: Constant
Variables chosen in stage 1
x5 z1
Variables chosen in stage 2
x5 z1 x1 x2 x8
Variables chosen in stage 3
x5 z1 x1 x2 x8
------------------------------------------------------------------------------
------------------------------------------------------------------------------
One Covariate at a Time Multiple Testing (OCMT)
Chosen model after 2 stages
------------------------------------------------------------------------------
Source | SS df MS Number of obs = 50
-------------+---------------------------------- F(5, 44) = 260.09
Model | 723.688421 5 144.737684 Prob > F = 0.0000
Residual | 24.4858298 44 .556496132 R-squared = 0.9673
-------------+---------------------------------- Adj R-squared = 0.9636
Total | 748.174251 49 15.2688623 Root MSE = .74599
------------------------------------------------------------------------------
y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x5 | -2.821 0.121 -23.31 0.000 -3.065 -2.577
z1 | -2.100 0.099 -21.17 0.000 -2.300 -1.900
x1 | 0.867 0.117 7.41 0.000 0.631 1.103
x2 | 0.888 0.099 8.94 0.000 0.688 1.089
x8 | 0.827 0.099 8.39 0.000 0.628 1.026
_cons | 2.309 0.108 21.42 0.000 2.091 2.526
------------------------------------------------------------------------------
其中:
在第一阶段的筛选中,选出了变量 x5 和变量 z1,第二阶段又将 x1、x2 和 x8 放入了索引集。第三阶段索引集中不再有新增的信号变量和伪信号变量,因此程序在第三阶段终止。我们经过两个阶段筛,选出了索引集中的变量,ocmt
命令会将 y 对索引集中的所有变量进行回归,并将结果附在最后。
加入预选变量
如果要加入预选变量 z(z1)
:
ocmt y x* w1, z(z1) sig(5) delta1(1) delta2(2)
上述命令等价于:
ocmt y x* w1, z(z1)
Significance level not specified. Using default value
delta_1 and delta_2 not specified. Using default values
Dependent variable: y
Active set: x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 w1
Number of variables in active set = 11
Pvalue = .05
delta_1 = 1
delta_2 = 2
Pvalue_1 = .05
Pvalue_2 = .00454545
t_threshold_1 = 2.8375969
t_threshold_2 = 3.5314915
Preselected variables (apart from constant): z1
Variables chosen in stage 1
x5
Variables chosen in stage 2
x5 x1 x2 x8
Variables chosen in stage 3
x5 x1 x2 x8
------------------------------------------------------------------------------
------------------------------------------------------------------------------
One Covariate at a Time Multiple Testing (OCMT)
Chosen model after 2 stages
------------------------------------------------------------------------------
Source | SS df MS Number of obs = 50
-------------+---------------------------------- F(5, 44) = 260.09
Model | 723.688421 5 144.737684 Prob > F = 0.0000
Residual | 24.4858298 44 .556496132 R-squared = 0.9673
-------------+---------------------------------- Adj R-squared = 0.9636
Total | 748.174251 49 15.2688623 Root MSE = .74599
------------------------------------------------------------------------------
y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x5 | -2.821 0.121 -23.31 0.000 -3.065 -2.577
x1 | 0.867 0.117 7.41 0.000 0.631 1.103
x2 | 0.888 0.099 8.94 0.000 0.688 1.089
x8 | 0.827 0.099 8.39 0.000 0.628 1.026
z1 | -2.100 0.099 -21.17 0.000 -2.300 -1.900
_cons | 2.309 0.108 21.42 0.000 2.091 2.526
------------------------------------------------------------------------------
加入滞后项
当然,也可以在命令中加入 x 的滞后项。
ocmt y x* L.x* w1, z(z1) delta1(1) delta2(2)
Significance level not specified. Using default value
Dependent variable: y
Active set: x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 L.x1 L.x2 L.x3 L.x4 L.x5 L.x6 L.x7 L.x8 L.x9 L.x10 w1
Number of variables in active set = 21
Pvalue = .05
delta_1 = 1
delta_2 = 2
Pvalue_1 = .05
Pvalue_2 = .00238095
t_threshold_1 = 3.0380743
t_threshold_2 = 3.860018
Preselected variables (apart from constant): z1
Variables chosen in stage 1
x5
Variables chosen in stage 2
x5 x1 x2 x8
Variables chosen in stage 3
x5 x1 x2 x8
------------------------------------------------------------------------------
------------------------------------------------------------------------------
One Covariate at a Time Multiple Testing (OCMT)
Chosen model after 2 stages
------------------------------------------------------------------------------
Source | SS df MS Number of obs = 49
-------------+---------------------------------- F(5, 43) = 254.83
Model | 712.075442 5 142.415088 Prob > F = 0.0000
Residual | 24.0308031 43 .558855885 R-squared = 0.9674
-------------+---------------------------------- Adj R-squared = 0.9636
Total | 736.106246 48 15.3355468 Root MSE = .74757
------------------------------------------------------------------------------
y | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x5 | -2.812 0.122 -23.10 0.000 -3.058 -2.567
x1 | 0.866 0.117 7.39 0.000 0.629 1.102
x2 | 0.885 0.100 8.88 0.000 0.684 1.086
x8 | 0.835 0.099 8.41 0.000 0.635 1.035
z1 | -2.130 0.105 -20.35 0.000 -2.341 -1.919
_cons | 2.297 0.109 21.12 0.000 2.078 2.516
------------------------------------------------------------------------------
存储的结果
除了通过 saving()
选项储存的结果之外,ocmt
还额外储存了过程的阶段数、关键值函数值和选出的回归元 (包含预选变量) 。
可以通过 display
命令将 ocmt
命令运行后储存的结果列出,例如:
ocmt y x* L.x* w1, z(z1) delta1(1) delta2(2)
return list // 列出所有返回值
scalars:
r(threshold2) = 3.860017974701531
r(threshold1) = 3.038074304924211
r(stages) = 2
macros:
r(regressors) : "x5 x1 x2 x8 z1"
本文主要从理论基础和 Stata 的实际操作两个方面介绍了 Stata 命令 ocmt
,它为我们提供了一种基于多重测试的、且计算简单、快速、有效的稀疏回归函数的替代方法。ocmt
的程序较为简单,但是其能力却十分强大,可谓短小精悍。
Note:产生如下推文列表的命令为:
lianxh 机器学习 lasso, m
安装最新版lianxh
命令:
ssc install lianxh, replace
连享会-直播课 上线了!
http://lianxh.duanshu.com
免费公开课:
直击面板数据模型 - 连玉君,时长:1小时40分钟,课程主页 Stata 33 讲 - 连玉君, 每讲 15 分钟. Stata 小白的取经之路 - 龙志能,时长:2 小时,课程主页 部分直播课 课程资料下载 (PPT,dofiles等)
支持回看
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 因果推断, 空间计量,寒暑假班等 | |
⭕ 数据清洗系列 | 游万海 | 直播, 88 元,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh