Stata:自变量组合筛选-subset

发布时间:2023-06-18 阅读 1292

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下载 - 推文合集

作者:梁宇超 (中国人民大学)
邮箱liangyuchao1997@126.com


目录


1. 简介

在进行回归分析时,我们通常能够获得大量的自变量,而这些自变量并不全是有用的。比如,这其中存在着和因变量不相关或者相关性极小的变量。

针对这种情况,我们可以根据经验判断筛选对因变量有影响的自变量,比如工业生产对污染排放的影响。但有时,我们无法凭借经验和理论来判断哪些自变量对因变量有影响。此时,我们需要借助一定的算法和统计标准,来帮助我们选取最佳的自变量组合。其中,最优子集回归就是这样一种帮助我们筛选协变量的方法。

最优子集回归的基本思想是,当我们用比真实模型中的自变量更多的自变量时,所有这些自变量构成的集合中的一个子集一定和潜在的真实模型是一样的。如 m 个自变量会拟合 2m1 个子集回归方程,从这些模型中选择 RSS 最小或 R2 最大的模型,然后用回归方程的统计量作准则 (如交叉验证误差、CPBICAIC、调整 R2 等指标)从中挑选最优的模型设定形式。

一般来说,在 R 中可以通过 regsubsets 函数来实现最优子集回归分析,根据一定的统计标准来选取最佳的协变量组合,本文主要介绍 Stata 中的 subset 命令。

subset 是 R 中函数 regsubsets 的 Stata 包装器,提供“最佳”、“向后”和“向前”的逐步子集协变量选择。这是一种机器学习方法,用于在具有许多协变量的监督线性学习方法 (即线性回归模型) 中选择最优数量的特征 (协变量)。

当协变量的数量大于样本大小时,也可以使用“正向选择”模型。该方法为模型的每个特定大小 (即 1 个协变量, 2 个协变量等) 提供了协变量的最优子集,也可以提供了总体最优子集组合。当提供最优子集组合时,主要使用三个标准作为验证方法,即调整后的 R2CP 和 BIC

2. 命令介绍

命令安装:

. ssc install subset, replace

命令语法:

subset outcome [varlist] [if] [in], model(modeltype) rversion(R_version) 
[nvmax(number) index_values(filename) matrix_results(filename) optimal_vars(filename)]

其中,

  • model(modeltype):指定需要估计的模型形式,可供选择的模型形式有 best_subsetbackwardforward
  • rversion(R_version):指定系统中所使用的 R 版本,典型的版本是 3.6.0。
  • nvmax(number):指定需要展示的最佳变量集的最大阶数。
  • index_values(filename):指定 .dta 文件的名称,该文件包含调整后的 R2CP 和 BIC 用于寻找协变量的最终最优数量。
  • matrix_results(filename):指定包含结果矩阵的 .dta 文件的名称,即每个特定协变量模型数下的的最佳协变量数量。
  • optimal_vars(filename):指定 .dta 文件的名称,该文件包含每个协变量模型数的最优协变量名称。

3. Stata 案例

接下来我们将通过 Stata 系统自带的数据集 nlsw88.dta 来演示 subset 命令的基本操作。这份数据包含了 1988 年采集的 2246 个妇女信息,包含样本的年龄、种族、婚姻情况、学历工资等信息,被广泛用来研究影响女性工资的因素。值得注意的是,在运行该命令时,请注意已经安装了 subset 命令的最新版本,同时电脑中应安装了 R。

. sysuse nlsw88.dta
. sysdescribe nlsw88.dta

Contains data                                 NLSW, 1988 extract
 Observations:         2,246                  1 May 2020 22:52
    Variables:            17                  
--------------------------------------------------------------------
Variable  Storage  Display  Value
    name     type   format  label    Variable label
--------------------------------------------------------------------
idcode      int    %8.0g             NLS ID
age         byte   %8.0g             Age in current year
race        byte   %8.0g    racelbl  Race
married     byte   %8.0g    marlbl   Married
never_marr  byte   %16.0g   nev_mar  Never married
grade       byte   %8.0g             Current grade completed
collgrad    byte   %16.0g   gradlbl  College graduate
south       byte   %9.0g    southlbl Lives in the south
smsa        byte   %9.0g    smsalbl  Lives in SMSA
c_city      byte   %16.0g   ccitylbl Lives in a central city
industry    byte   %23.0g   indlbl   Industry
occupation  byte   %22.0g   occlbl   Occupation
union       byte   %8.0g    unionlbl Union worker
wage        float  %9.0g               Hourly wage
hours       byte   %8.0g               Usual hours worked
ttl_exp     float  %9.0g               Total work experience (years)
tenure      float  %9.0g               Job tenure (years)
--------------------------------------------------------------------
Sorted by: idcode  

打开该数据集,并查看主要变量的信息。我们演示年龄、婚否、大学学历、是否生活在南方、是否生活在中心城市、行业、职业因素对妇女小时工资的影响。选择的模型为最佳子集选择法,系统中安装的 R 版本为 4.2.1,允许的最大阶数为 3 阶,也就是模型中允许存在各个协变量之间的最高为 3 阶的交互项。

. subset wage age race married collgrad south c_city industry occupation, 
    model (best) rversion(4.2.1) nvmax(3) index_values("myindex") 
    matrix_results("myresults") optimal_vars("myvars")
D:\stata17\ado\personal
--> Beginning of R output from source file: mysubset.R
--> End of R output from source file: mysubset.R

运行上述命令后,会在 R 中通过 regsubsets 函数,按照选择项的要求来实现最优子集回归分析,筛选出最佳的协变量组合。相关的结果会在 Stata 的目录下生成一个名为 mysubset.R 的文件,将其用 R 打开后,可以看到展示出的在调整后的 R2CP 准则,BIC 准则下的最佳模型形式。

4. 参考资料

  • James, G., D. Witten, T. Hastie, R. Tibshirani. An introduction to statistical learning[M]. Springer, 2013. -PDF-
  • 特征选择方法——最佳子集回归、逐步回归 -Link
  • 变量筛选:逐步回归&最优子集 -Link-
  • R 语言统计—自变量筛选的标准、原则与方法 -Link-

5. 相关推文

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

相关课程

免费公开课

最新课程-直播课

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

课程主页

课程主页

关于我们

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

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

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

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

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