Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:梁宇超 (中国人民大学)
邮箱:liangyuchao1997@126.com
目录
在进行回归分析时,我们通常能够获得大量的自变量,而这些自变量并不全是有用的。比如,这其中存在着和因变量不相关或者相关性极小的变量。
针对这种情况,我们可以根据经验判断筛选对因变量有影响的自变量,比如工业生产对污染排放的影响。但有时,我们无法凭借经验和理论来判断哪些自变量对因变量有影响。此时,我们需要借助一定的算法和统计标准,来帮助我们选取最佳的自变量组合。其中,最优子集回归就是这样一种帮助我们筛选协变量的方法。
最优子集回归的基本思想是,当我们用比真实模型中的自变量更多的自变量时,所有这些自变量构成的集合中的一个子集一定和潜在的真实模型是一样的。如 m 个自变量会拟合
一般来说,在 R 中可以通过 regsubsets
函数来实现最优子集回归分析,根据一定的统计标准来选取最佳的协变量组合,本文主要介绍 Stata 中的 subset
命令。
subset
是 R 中函数 regsubsets
的 Stata 包装器,提供“最佳”、“向后”和“向前”的逐步子集协变量选择。这是一种机器学习方法,用于在具有许多协变量的监督线性学习方法 (即线性回归模型) 中选择最优数量的特征 (协变量)。
当协变量的数量大于样本大小时,也可以使用“正向选择”模型。该方法为模型的每个特定大小 (即 1 个协变量, 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 文件的名称,该文件包含每个协变量模型数的最优协变量名称。
接下来我们将通过 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 打开后,可以看到展示出的在调整后的
Note:产生如下推文列表的 Stata 命令为:
lianxh 筛选, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
和songbl
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh