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

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

[[377047]]

【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】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2022-09-27 14:46:03

网络安全计算机恶意软件

2009-02-04 10:30:47

2020-12-25 15:24:24

人工智能

2009-06-15 17:45:20

LINQ分组统计

2022-04-02 06:10:02

勒索软件PSRansom安全工具

2019-10-09 09:37:26

边缘计算物联网IOT

2024-01-09 16:02:11

数据库流服务大数据

2024-02-07 09:36:40

MySQL数据

2017-07-17 06:46:06

2015-08-19 09:40:51

统计分析

2021-07-19 10:35:48

云平台开源软件开发

2020-08-25 18:10:22

Python代码线性回归

2015-05-12 10:53:33

2022-07-05 13:49:38

勒索团伙QakBot银行木马

2012-11-14 15:38:23

统计教学医学统计学六西格玛

2009-07-04 21:19:04

2014-02-24 09:13:49

2010-11-17 10:07:28

无线入侵检测系统WIDSWLAN性能

2021-06-17 10:27:03

人工智能AI机器学习

2012-11-19 17:25:38

软件加密加密算法加密
点赞
收藏

51CTO技术栈公众号