Stata:自变量组合筛选-subset
👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:公开课-直播 | 计量专题 | 关于连享会
连享会课程 · 机制分析与政策优化
作者:梁宇超 (中国人民大学)
邮箱:liangyuchao1997@126.com
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
目录
1. 简介
2. 命令介绍
3. Stata 案例
4. 参考资料
5. 相关推文
1. 简介
在进行回归分析时,我们通常能够获得大量的自变量,而这些自变量并不全是有用的。比如,这其中存在着和因变量不相关或者相关性极小的变量。
针对这种情况,我们可以根据经验判断筛选对因变量有影响的自变量,比如工业生产对污染排放的影响。但有时,我们无法凭借经验和理论来判断哪些自变量对因变量有影响。此时,我们需要借助一定的算法和统计标准,来帮助我们选取最佳的自变量组合。其中,最优子集回归就是这样一种帮助我们筛选协变量的方法。
最优子集回归的基本思想是,当我们用比真实模型中的自变量更多的自变量时,所有这些自变量构成的集合中的一个子集一定和潜在的真实模型是一样的。如 m 个自变量会拟合 个子集回归方程,从这些模型中选择 RSS 最小或 最大的模型,然后用回归方程的统计量作准则 (如交叉验证误差、、、、调整 等指标)从中挑选最优的模型设定形式。
一般来说,在 R 中可以通过 regsubsets
函数来实现最优子集回归分析,根据一定的统计标准来选取最佳的协变量组合,本文主要介绍 Stata 中的 subset
命令。
subset
是 R 中函数 regsubsets
的 Stata 包装器,提供“最佳”、“向后”和“向前”的逐步子集协变量选择。这是一种机器学习方法,用于在具有许多协变量的监督线性学习方法 (即线性回归模型) 中选择最优数量的特征 (协变量)。
当协变量的数量大于样本大小时,也可以使用“正向选择”模型。该方法为模型的每个特定大小 (即 1 个协变量, 2 个协变量等) 提供了协变量的最优子集,也可以提供了总体最优子集组合。当提供最优子集组合时,主要使用三个标准作为验证方法,即调整后的 、 和 。
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_subset
,backward
,forward
。rversion(R_version)
:指定系统中所使用的 R 版本,典型的版本是 3.6.0。nvmax(number)
:指定需要展示的最佳变量集的最大阶数。index_values(filename)
:指定 .dta 文件的名称,该文件包含调整后的 、 和 用于寻找协变量的最终最优数量。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 打开后,可以看到展示出的在调整后的 , 准则, 准则下的最佳模型形式。
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
专题:Stata命令 Stata:控制变量组合的筛选-tuples 专题:回归分析 Stata论文复现:高维线性回归的变量筛选-baing-ocmt combinatorics:模型设定之自动筛选变量 gsreg:自动模型设定和变量筛选 专题:面板数据 ocmt:高维固定效应模型的变量筛选问题 专题:PSM-Matching Stata:psestimate-倾向得分匹配(PSM)中协变量的筛选 Stata:psestimate-倾向得分匹配(PSM)中匹配变量的筛选 专题:时间序列 vgets:VAR模型设定和筛选-T240 专题:机器学习 图解Lasso系列A:Lasso的变量筛选能力
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。