微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

滚动OLS趋势预测

如何解决滚动OLS趋势预测

我正在尝试使用滚动 OLS 在移动的窗口框架上形成趋势。

看起来它正在做一些事情,但它超出了规模,所以我错过了一些东西。

数据是日期时间上浮点值('关闭')的数据框。

知道有什么问题吗?

代码如下:

import datetime
import matplotlib.pyplot as plt  
import pandas as pd  
from statsmodels.regression.rolling import RollingOLS

print("data:")
print(df['Close'])

def myTime(date_time_str):
    date_time_obj = datetime.datetime.strptime(date_time_str,'%Y-%m-%d %H:%M:%s')
    return (time.mktime(date_time_obj.timetuple()))

df['Time'] = [myTime(obs) for obs in df['datetime']]
rols = RollingOLS(df['Time'],df['Close'].astype(float),window=window_size* 7)
rres = rols.fit()
params = rres.params

print("prediction:")
print(params.head())
print(params.tail())

plt.plot(df['Close'])
plt.title = "data"

plt.plot(params['Close'])
plt.title = "rolling prediction"

这是第一个输出

data:

dtm
2020-07-01 09:00:00    181.593
2020-07-01 10:00:00    184.800
2020-07-01 11:00:00    183.478
2020-07-01 12:00:00    182.650
2020-07-01 13:00:00    182.643
                        ...   
2021-02-25 10:00:00    608.150
2021-02-25 11:00:00    587.051
2021-02-25 12:00:00    552.540
2021-02-25 13:00:00    563.070
2021-02-25 14:00:00    570.900
Name: Close,Length: 1119,dtype: float64


prediction:
                     Close
dtm                       
2020-07-01 09:00:00    NaN
2020-07-01 10:00:00    NaN
2020-07-01 11:00:00    NaN
2020-07-01 12:00:00    NaN
2020-07-01 13:00:00    NaN
                            Close
dtm                              
2021-02-25 10:00:00  3.073356e+06
2021-02-25 11:00:00  3.070888e+06
2021-02-25 12:00:00  3.068954e+06
2021-02-25 13:00:00  3.066877e+06
2021-02-25 14:00:00  3.064692e+06

data plot

rolling prediction plot

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。