使用Python的statsmodels模块进行多元线性回归分析

使用Python的statsmodels模块进行多元线性回归分析

运行环境: win7python3.6
实现功能: 对多个参数进行回归分析,得出回归方程,回归统计量P值等


代码:

创建statsmodels_test.py
将下面代码复制到该py文件

from pandas import DataFrame
import statsmodels.api as sm
#import statsmodels.regression.linear_model as sm
import pandas as pd

'''
# 测试集
Stock_Market = {'Year': [2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2017,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016,2016],
                'Month': [12, 11,10,9,8,7,6,5,4,3,2,1,12,11,10,9,8,7,6,5,4,3,2,1],
                'Interest_Rate': [2.75,2.5,2.5,2.5,2.5,2.5,2.5,2.25,2.25,2.25,2,2,2,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75,1.75],
                'Unemployment_Rate': [5.3,5.3,5.3,5.3,5.4,5.6,5.5,5.5,5.5,5.6,5.7,5.9,6,5.9,5.8,6.1,6.2,6.1,6.1,6.1,5.9,6.2,6.2,6.1],
                'Stock_Index_Price': [1464,1394,1357,1293,1256,1254,1234,1195,1159,1167,1130,1075,1047,965,943,958,971,949,884,866,876,822,704,719]        
                }

df = DataFrame(Stock_Market,columns=['Year','Month','Interest_Rate','Unemployment_Rate','Stock_Index_Price']) 

X = df[['Interest_Rate','Unemployment_Rate']] # here we have 2 variables for multiple regression. If you just want to use one variable for simple linear regression, then use X = df['Interest_Rate'] for example.Alternatively, you may add additional variables within the brackets
Y = df['Stock_Index_Price']

X = sm.add_constant(X) # adding a constant

model = sm.OLS(Y, X).fit()
predictions = model.predict(X) 

print_model = model.summary()
print(print_model)
'''


#读取文件
datafile = u'cig_data.xlsx'#文件所在位置,u为防止路径中有中文名称,此处没有,可以省略
data = pd.read_excel(datafile)#datafile是excel文件,所以用read_excel,如果是csv文件则用read_csv
examDf = DataFrame(data)
print("GOOD")
new_examDf = examDf.ix[1:, 1:]
X = new_examDf.ix[:,:4]
Y = new_examDf.ix[:,4]


X = sm.add_constant(X) # adding a constant

model = sm.OLS(Y, X).fit()
predictions = model.predict(X) 

print_model = model.summary()
print(print_model)

读取的data.xlsx文件:传送门

运行结果:

                  OLS Regression Results
==============================================================================
Dep. Variable:                Day_abs   R-squared:                       0.056
Model:                            OLS   Adj. R-squared:                  0.039
Method:                 Least Squares   F-statistic:                     3.238
Date:                Mon, 15 Jun 2020   Prob (F-statistic):             0.0132
Time:                        00:54:57   Log-Likelihood:                -1392.7
No. Observations:                 223   AIC:                             2795.
Df Residuals:                     218   BIC:                             2812.
Df Model:                           4
Covariance Type:            nonrobust
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         62.1170     85.299      0.728      0.467    -105.999     230.233
Age            0.1967      0.692      0.284      0.777      -1.168       1.561
Cig_Day        1.3202      0.705      1.873      0.062      -0.069       2.710
CO            -0.2645      0.103     -2.566      0.011      -0.468      -0.061
LogCOadj       0.0313      0.069      0.458      0.648      -0.104       0.166
==============================================================================
Omnibus:                       54.065   Durbin-Watson:                   1.813
Prob(Omnibus):                  0.000   Jarque-Bera (JB):               86.116
Skew:                           1.475   Prob(JB):                     2.00e-19
Kurtosis:                       3.756   Cond. No.                     1.45e+04
==============================================================================
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/2153.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • GNU Autoconf Introduction

    GNU Autoconf Introduction下载地址:https://www.gnu.org/software/autoconf/manual/autoconf.pdfAutoconfisatoolforproducingshellscriptsthatautomaticallyconfiguresoftwaresourcecodepackagestoadapttomanykindsofPo

  • java中byte的用法_nt宫颈长度多少是正常

    java中byte的用法_nt宫颈长度多少是正常1.概念JavaNIOAPI自带的缓冲区类功能相当有限,没有经过优化,使用JDK的ByteBuffer操作更复杂。故而Netty的作者TrustinLee为了实现高效率的网络传输,重新造轮子,Netty中的ByteBuf实际上就相当于JDK中的ByteBuffer,其作用是在Netty中通过Channel传输数据。2.优势可以自定义缓冲类型;通过内置的复合缓冲类型,实现透明的零拷贝(ze…

  • LAMP环境搭建

    LAMP环境搭建

  • 关于大学毕业 总结的文章2000_如何写大学学期总结

    关于大学毕业 总结的文章2000_如何写大学学期总结本文十天后设置为粉丝可见,喜欢的提前关注不要白嫖请点赞不要白嫖请点赞不要白嫖请点赞文中提到的书我都有电子版,可以评论邮箱发给你。文中提到的书我都有电子版,可以评论邮箱发给你。文中提到的书我都有电子版,可以评论邮箱发给你。本篇文章应该算是Java后端开发技术栈的,但是大部分是基础知识,所以我觉得对任何方向都是有用的。1、数据结构数据结构是计算机存储、…

  • mysql第一二三范式_第一范式、第二范式、第三范式[通俗易懂]

    mysql第一二三范式_第一范式、第二范式、第三范式[通俗易懂]第一范式、第二范式、第三范式第一范式如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF(即R符合第一范式)。两点:一、每个字段都只能存放单一值课程有两个值,不符合第一范式,可改为如下二、每笔记录都要能利用一个惟一的主键来加以识别第一范式、第二范式、第三范式第一范式如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF(即R符合第一范式)。两点:一、每个字段都只能存…

  • poe交换机是干什么用的_poe交换机

    poe交换机是干什么用的_poe交换机供电用的交换机,比如安装网络监控时不方便给摄像头拉电线,就可以使用PoE交换机供电,还有弄无线网络时也可以给AP供电,主要方便,关于怎么使用,如果那些需要供电的设备支持PoE直接连接就行了。那么,什么叫POE交换机?POE交换机怎么使用呢?接下来我们就跟随飞畅科技的小编一起来详细了解下吧!交换机操作步骤:第一步:将ADSL猫的网线连接到以太网交换机任意一个口;第二步:设置笔记本的其中一台,IP(也可以是其他的),然后设置子网掩码,默认即可,其他信息一概不填;第三步:用系统自带的宽带连接建立好

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号