ARIMA Python-预测函数未将日期作为输入

时间:2018-10-08 10:37:17

标签: machine-learning scikit-learn time-series arima

我有一个时间序列输入数据,其中时间是不规则的,如下所示:data_series_final是数据序列

Price      Date
9654    28.04.2013
10040   01.01.2014
10381   01.01.2017
10040   04.07.2016
11011   02.04.2018
10381   05.01.2018
10849   05.02.2018
11011   05.03.2018
11602   07.05.2018

案例1:我没有对间隔进行正则化,而是继续使用对数和差分方法对数据进行平稳处理

ds_log = np.log(data_series_final)
data_diff_log = ds_log.diff(periods=1)
data_diff_log =  data_diff_log.dropna()

data_diff_log_train = data_diff_log[0:5]
data_diff_log_test = data_diff_log[5:]

数据非常稳定,训练模型遵循ARIMA拟合模型。但是,当我在ARIMA上运行预测函数并将日期作为输入参数传递时,出现以下错误:

model_arima = ARIMA(data_diff_log_train, order=(0,0,2))
model_arima_fit = model_arima.fit()
predict_arima=[]
predict_arima = model_arima_fit.forecast(steps=2)[0]

predictions = model_arima_fit.predict(start='2020-01-01', end='2021-01-01')

KeyError:“ 2020-01-01”   TypeError:必须为整数

KeyError:'start参数无法与与数据索引相关的位置匹配。'

案例2:我试图通过填充数据来规范时间间隔

#
#Upsampling and Interpolating data 

data_upsampled = data_series_final.resample('D', convention='start').asfreq()
data_upsampled = upsampled.interpolate(method='linear')
#data_upsampled = data_series_final.resample('D', fill_method = 'ffill')

但是由于值出现峰值,因此我无法使数据平稳。另外,我遇​​到了与上述相同的错误,无法将datetime作为参数发送。

有人可以帮忙吗?

0 个答案:

没有答案