问题描述
我正在尝试使用滚动 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
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)