前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 使用Statsmodels回归分析

python 使用Statsmodels回归分析

作者头像
多凡
发布2019-11-01 09:17:15
2.1K0
发布2019-11-01 09:17:15
举报
文章被收录于专栏:sringbootsringboot

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_44580977/article/details/102214639

Statsmodels是Python中一个强大的统计分析包,包含了回归分析、时间序列分析、假设检验等等的功能。使用时需要导入Statsmodels库 需要注意的是OLS()未假设回归模型有常数项,需要通过sm.add_constant()在自变量x的左侧加上一列常量1。

使用matplotlib库结合Statsmodels库绘制收盘价曲线和回归直线

代码语言:javascript
复制
import pandas_datareader.data as web
import pandas as pd
import numpy as np
import datetime
import statsmodels.api as sm
from statsmodels import regression
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

df_stockload = web.DataReader("600797.SS", "yahoo", datetime.datetime(2018,10,1), datetime.datetime(2019,4,1))
df_stockload.fillna(method='bfill', inplace=True)  # 后一个数据填充NAN1
print(df_stockload.info())

y_arr = df_stockload.Close.values
x_arr = np.arange(0, len(y_arr))
x_b_arr = sm.add_constant(x_arr)  # 添加常数列1
model = regression.linear_model.OLS(y_arr, x_b_arr).fit()  # 使用OLS做拟合
rad = model.params[1]  # y = kx + b :params[1] = k
intercept = model.params[0]  # y = kx + b :params[0] = b
reg_y_fit = x_arr * rad + intercept
#matplotlib 绘制
plt.plot(x_arr, y_arr)
plt.plot(x_arr, reg_y_fit, 'r')
plt.title(u"浙大网新" + " y = "+ str(rad)+" * x +" + str(intercept))
plt.legend(['close', 'linear'], loc='best')

plt.show()

输出结果

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档