|
|
|
|
公众号矩阵

如何利用统计软件Stata进行回归分析

数据挖掘和机器学习在如今的社会早已成为经典的流行技术。采用相关技术的企业不在少数,并且为社会产生了极大的效益。流行的数据挖掘软件非常多,比如 Scikit-Learn、Pandas、R、Spark MLLib 等等,极大的方便了广大从业者的日常开发和数据分析工作。

作者:汪昊来源:51CTO|2021-01-20 08:30

【51CTO.com原创稿件】数据挖掘和机器学习在如今的社会早已成为经典的流行技术。采用相关技术的企业不在少数,并且为社会产生了极大的效益。流行的数据挖掘软件非常多,比如 Scikit-Learn、Pandas、R、Spark MLLib 等等,极大的方便了广大从业者的日常开发和数据分析工作。

在开源软件流行的今天,传统付费软件经常被人们忽视,然而 Matlab、Mathematica、Maple 和 Stata 等数学和计算机软件给人们提供了非常大的便利,并且有许多开源软件不具备的功能,直至今日,仍然在各行各业中发挥着不可替代的作用。

Stata 作为一款有着30多年历史的优秀统计学习软件,为统计学习提供了强大的解决方案,目前版本已经更新到了 16.0。本文将带领读者一窥 Stata 的风采,介绍如何利用 Stata 进行回归分析。

首先下载 UCLA 大学的学校测评数据集合:

  1. use https://stats.idre.ucla.edu/stat/stata/webbooks/reg/elemapi 
  2. mkdir c:regstata  
  3. cd c:regstata  
  4. save elemapi  
  5. use elemapi 

得到数据集合之后, 如果需要进行回归分析,只需要简单的执行一下命令即可:

  1. regress api00 acs_k3 meals full  
  2.  
  3.       Source |       SS           df       MS      Number of obs   =       313 
  4. -------------+----------------------------------   F(3, 309)       =    213.41 
  5.        Model |  2634884.26         3  878294.754   Prob > F        =    0.0000 
  6.     Residual |  1271713.21       309  4115.57673   R-squared       =    0.6745 
  7. -------------+----------------------------------   Adj R-squared   =    0.6713 
  8.        Total |  3906597.47       312  12521.1457   Root MSE        =    64.153 
  9.  
  10. ------------------------------------------------------------------------------ 
  11.        api00 |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval] 
  12. -------------+---------------------------------------------------------------- 
  13.       acs_k3 |  -2.681508   1.393991    -1.92   0.055    -5.424424    .0614074 
  14.        meals |  -3.702419   .1540256   -24.04   0.000    -4.005491   -3.399348 
  15.         full |   .1086104    .090719     1.20   0.232    -.0698947    .2871154 
  16.        _cons |   906.7392   28.26505    32.08   0.000     851.1228    962.3555 
  17. ------------------------------------------------------------------------------ 

如果需要预测新的变量, 只需要执行以下命令:

  1. predict fv 

如果需要显示模型的残差, 则执行以下命令:

  1. predict fv, residual 

Stata 除了提供基本的回归分析的功能,最引人入胜之处在于其提供了独一无二的最优化参数选择功能. 我们知道在计算 Lasso Regression 或者 Ridge Regression 的时候, 最优化函数中有惩罚项。而惩罚项前面的系数如何选择是个困扰了数学界几十年,直到几年前才得到解决的难题。Stata 在这方面提供了两种算法,一种是 Plug-in Method, 而另一种是 Cross-Validation Method。

当采用 plug-in method 进行 Lasso Regression 的时候,只需要调用:

  1. lasso linear api00 acs_k3 meals full, selection(plugin) 

返回结果中可以看到参数值和残差。

  1. -------------------------------------------------------------------------- 
  2.          |                                Noof 
  3.          |                               nonzero    In-sample 
  4.       ID |     Description      lambda     coef.    R-squared          BIC 
  5. ---------+---------------------------------------------------------------- 
  6.      * 1 | selected lambda    .1715319         1       0.6610     3513.359 
  7. -------------------------------------------------------------------------- 

当采用 cross-validation method 进行 Lasso Regression 的时候,只需要调用:

  1. lasso linear api00 acs_k3 meals full, selection(cv) 

返回的结果中有如下一张表:

  1. -------------------------------------------------------------------------- 
  2.          |                                Noof      Out-of-      CV mean 
  3.          |                               nonzero       sample   prediction 
  4.       ID |     Description      lambda     coef.    R-squared        error 
  5. ---------+---------------------------------------------------------------- 
  6.        1 |    first lambda    91.43285         0       0.0017      12460.5 
  7.       37 |   lambda before    3.210383         3       0.6667     4159.559 
  8.     * 38 | selected lambda    2.925181         3       0.6667     4159.504 
  9.       39 |    lambda after    2.665316         3       0.6666     4160.824 
  10.       43 |     last lambda    1.837099         3       0.6657     4172.744 
  11. -------------------------------------------------------------------------- 

可以看到, Lasso Regression + Plug-in Method , Lasso Regression + Cross-validation Method 和传统的 OLS 的结果有所不同。由于 Stata 提供的上述参数选择方法是最近几年的最新研究成果,因此在免费的开源软件比如 R 和 Scikit-Learn 中都还没有得到应用, 这也是 Stata 的难能可贵之处。

Stata 提供了方便的编程接口,用于支持常见的各种数据分析和数据挖掘功能。另外,它也提供了用户图形界面, 用户可以很方便的通过点击按钮和选择下拉框等方式进行非常方便的各种操作。Stata 作为经济学领域的经典软件,也应该得到包括互联网企业在内的 IT 公司的关注。

作者介绍

汪昊,技术总监/架构师,美国犹他大学本科/硕士,对外经贸大学在职MBA。曾在百度,新浪,网易,豆瓣等公司有多年的研发和技术管理经验,擅长机器学习,大数据,推荐系统,社交网络分析等技术。在 TVCG 和 ASONAM 等国际会议和期刊发表论文 11 篇。国际学术会议 IEEE SMI 2008 和 ICBDT 2020 最佳论文奖。

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

【编辑推荐】

  1. Github Actions还是Jenkins?该怎么选?
  2. IT招聘中6个热门的趋势以及5个正在降温的趋势
  3. 应用在客户服务团队的人工智能和机器学习工具
  4. “大数据”行业风口来临,源于数据分析,终于产业效能提升
  5. 基于产品的IT:向业务价值的大胆转变
【责任编辑:华轩 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

数据湖与数据仓库的分析实践攻略

数据湖与数据仓库的分析实践攻略

助力现代化数据管理:数据湖与数据仓库的分析实践攻略
共3章 | 创世达人

3人订阅学习

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

30人订阅学习

数据中心和VPDN网络建设案例

数据中心和VPDN网络建设案例

漫画+案例
共20章 | 捷哥CCIE

210人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微