我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

如何用Python进行回归分析与相关分析

这篇文章主要介绍了如何用Python进行回归分析与相关分析,这两部分内容会放在一起讲解,文中提供了解决思路以及部分实现代码,需要的朋友可以参考下
2023-03-22

如何利用沙箱进行恶意软件分析?

根据 Malwarebytes 的 2022 年威胁评估结果,2021 年检测到 4000 万台 Windows 商用计算机的威胁。为了对抗和避免此类攻击,恶意软件分析必不可少。

如何使用PSRansom进行勒索软件安全分析

该工具可以帮助广大研究人员模拟针对任何操作系统平台的通用勒索软件数据加密过程。

如何利用进行JARVIS美团即时物流的分布式系统架构设计

这期内容当中小编将会给大家带来有关如何利用进行JARVIS美团即时物流的分布式系统架构设计,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 背景美团外卖已经发展了五年,即时物流探索也经历了 3 年多的时间,
2023-06-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录