python用线性回归预测股票价格的实现代码

yipeiwu_com6年前Python基础

线性回归在整个财务中广泛应用于众多应用程序中。在之前的教程中,我们使用普通最小二乘法(OLS)计算了公司的beta与相对索引的比较。现在,我们将使用线性回归来估计股票价格。

线性回归是一种用于模拟因变量(y)和自变量(x)之间关系的方法。通过简单的线性回归,只有一个自变量x。可能有许多独立变量属于多元线性回归的范畴。在这种情况下,我们只有一个自变量即日期。对于第一个日期上升到日期向量长度的整数,该日期将由1开始的整数表示,该日期可以根据时间序列数据而变化。当然,我们的因变量将是股票的价格。为了理解线性回归,您必须了解您可能在学校早期学到的相当基本的等式。

y = a + bx

  • Y =预测值或因变量
  • b =线的斜率
  • x =系数或自变量
  • a = y截距

从本质上讲,这将构成我们对数据的最佳拟合。在OLS过程中通过数据集绘制了大量线条。该过程的目标是找到最佳拟合线,最小化平方误差和(SSE)与股票价格(y)的实际值以及我们在数据集中所有点的预测股票价格。这由下图表示。对于绘制的每条线,数据集中的每个点与模型输出的相应预测值之间存在差异。将这些差异中的每一个加起来并平方以产生平方和。从列表中,我们采用最小值导致我们的最佳匹配线。考虑下图:

第一部分:获取数据:

from matplotlib import style
 
from sklearn.linear_model import LinearRegression
 
from sklearn.model_selection import train_test_split
 
import quandl
 
import datetime
 
style.use('ggplot')
 
#Dates
 
start_date = datetime.date(2017,1,3)
 
t_date=start_date, end_date=end_date, collapse="daily")
 
df = df.reset_index()
 
prices = np.reshape(prices, (len(prices), 1))

第二部分:创建一个回归对象:

', linewidth=3, label = 'Predicted Price') #plotting the line made by linear regression
 
plt.title('Linear Regression | Time vs. Price')
 
plt.legend()
 
predicted_price =regressor.predict(date)

输出:

预测日期输入价格:

创建训练/测试集

et
 
xtrain, x , ytrain)
 
#Train
 
plt.title('Linear Regression | Time vs. Price')
 
#Test Set Graph
 
plt.scatter(xtest, ytest, color='yellow', label= 'Actual Price') #plotting the initial datapoints
 
plt.plot(xtest, regressor.predict(xtest), color='blue', linewidth=3, label = 'Predicted Price') #plotting
 
plt.show()

输出:

测试集:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用Python制作微信跳一跳辅助

使用Python制作微信跳一跳辅助

1.  前言 微信的跳一跳相信大家都很熟悉了,而且现在各种外挂、辅助也是满天飞,反正本人的好友排行榜中已经是八九百都不足为奇了。某宝上一搜一堆结果,最低的居然只要3块多,想刷多...

python开启摄像头以及深度学习实现目标检测方法

最近想做实时目标检测,需要用到python开启摄像头,我手上只有两个uvc免驱的摄像头,性能一般。利用python开启摄像头费了一番功夫,主要原因是我的摄像头都不能用cv2的VideCa...

如何运行带参数的python脚本

如何运行带参数的python脚本

这篇文章主要介绍了如何运行带参数的python脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题描述: 要执行python脚本,...

在Django的模型中添加自定义方法的示例

为了给你的对像添加一个行级功能,那就定义一个自定义方法。 有鉴于manager经常被用来用一些整表操作(table-wide),模型方法应该只对特殊模型实例起作用。 这是一项在模型的一个...

用Python编写一个简单的FUSE文件系统的教程

如果你是我的长期读者,那么你应该知道我在寻找一个完美备份程序,最后我写了一个基于bup的我自己的加密层。 在写encbup的时候,我对仅仅恢复一个文件就必须要下载整个巨大的档案文件的做法...