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

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

运行环境: win7、python3.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
==============================================================================
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • CentOS 7 常用软件安装汇总

    CentOS 7 常用软件安装汇总基本指令:cdabc->进入子目录cd/->进入根目录ll->显示当前路径文件(详细)ls->同上(简略)cp->拷贝mkdir->创建目录rm->删除文件或文件夹mv->移动文件或改名clear->清屏pwd->显示当前路径more->显示文本文档una……

    2022年7月15日
  • c# splitContainer控件

    c# splitContainer控件splitContainer可以把窗口拆分为两部分可以使用多个splitContainer常用属性(1).splitContainer不能被鼠标直接点击选中,可通过右击->选择splitContainer选中。(2).属性IsSplitterFixed用于设置拆分器能否移动。(3).属性FixedPanel若设置为Panel1(或Panel2),在调整窗

    2022年7月18日
  • 【Linux + Makefile】Makefile的高阶用法:解决C文件包含的头文件修改了,但C文件不重新编译的问题

    【Linux + Makefile】Makefile的高阶用法:解决C文件包含的头文件修改了,但C文件不重新编译的问题makefile的聪明之处。

    2022年6月12日
  • lombok插件失效原因_lombok插件下载

    lombok插件失效原因_lombok插件下载昨晚项目出了个小问题,lombok插件失效了。由于使用了lombok的@Data注解生成实体类的getter和setter,项目运行时所有的使用getter和setter方法的地方全都报错。看了网上的解决方案,一个一个试,发现没有一个能解决我的问题最后,我发现在pom.xml文件里面的<build></build>里面缺少了lombok的部分,把他加上即可<build><plugins><plugin

    2022年9月3日
  • redisson和jedis区别_java调用redis集群

    redisson和jedis区别_java调用redis集群Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和Zset(有序集合)。 redis与spring的整合一般分为spring-data-redis整合和jedis整合,先看看两者的区别1、引用的依赖不同:spring-data-redis使用的依赖如下:&lt;depen…

    2022年9月10日
  • SPSS 性别卡方分析[通俗易懂]

    SPSS 性别卡方分析[通俗易懂]1.新建数据集2.打开变量视图,分别输出group、sex和number其中标签是对数据的说明,值是spss中的显示,比如定义1=subject,则输入1就等价于subject变量视图:数据视图:3.数据分析:点击数据–个案加权–将人数加入个案加权系数否则结果一般有误4.卡方检验分析–描述统计–交叉表–统计–卡方检验确定结果输出:…

    2022年5月16日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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