我有一些价格的时间序列数据,正在尝试进行线性回归。然而,我觉得我的方法可能不对,希望有人能指导我正确的方向。
我的数据如下所示:
date Close2017-05-10 0.125122017-05-11 0.123532017-05-12 -0.35235...2019-01-10 0.87890
Close
指的是每天的收盘价,并被缩放到 (-1, 1) 范围内。
我尝试使用 sklearn.linear_model.LinearRegression
库进行线性回归。当我最初运行它来拟合数据时,date
是字符串类型,因此程序提醒我无法处理字符串数据。所以我简单地删除了日期列,只在训练和测试集中使用了 Close
值。
我的直觉告诉我这不是正确的做法。根据这个回答,NumPy 中有名为 Polyfit 的东西。使用我现有的数据,是否无法使用标准的 Scikit-Learn 线性回归?
回答:
LinearRegression 不是时间序列的解决方案
在统计学的背景下,线性回归是通过最大化模型线性基础的误差符合正态分布均值的可能性来解决的。在最大化过程中,我们假设观测值是独立且相同分布的,这显然不是时间序列数据的合理假设。
对于时间序列问题,解决方案有很多种,这取决于你的具体问题。http://www.statsoft.com/textbook/time-series-analysis
如果你想预测下一个值,我基本建议使用 RNN
。