Эта ошибка была сгенерирована history.append(observed)
.
Справка:
Я передал в UDF doForecast данные о цене около 460 данных о ценах, называемые «панелями».
Я импортировал MSE (Sklearn), Arima (Statsmodel) и автокорреляцию (pandas.plotting) со следующими параметрами
- TRAIN_SIZE = 0,2
- FORECAST_STEPS = 20
Я запустил весь код, однако он останавливается после границ;
Вот ошибка;
(1) line 142, in downloadData
print ('date={0}, predicted={1}, expected={2}, error pct={3:.2f}%'.format(histPanelWeekly.keys()[len(history)-1],
(2) line 271, in __getitem__
val = getitem(key)
(3) line 271, in __getitem__
val = getitem(key)
IndexError: index 184 is out of bounds for axis 0 with size 95
> def doProjection(panel):
>
> closeDF = panel['Close']
> ts = closeDF['SPY']
> tsWeekly = ts.resample('W-MON').last()
> values = tsWeekly.tolist()
> trainSize = int(ts.size * TRAIN_SIZE)
train, test = values[0:trainSize], values[trainSize:ts.size]
history = train
predictions = list()
errorPcts = list()
for t in range(len(test)):
model = ARIMA(history, order=(2, 1, 0))
modelFit = model.fit(disp=0)
output = modelFit.forecast()
predicted = output[0][0]
predictions.append(predicted)
observed = test[t]
history.append(observed)
errorPct = (predicted-observed)/observed * 100
errorPcts.append(errorPct)
print ('date={0}, predicted={1}, expected={2}, error pct={3:.2f}%'.format(tsWeekly.keys()[len(history)-1],
predicted, observed, errorPct))
error = mean_squared_error(test, predictions)
print ('Test MSE: {0:.3f}'.format(error))
pyplot.subplot(211)
pyplot.title('Predicted vs Expected')
pyplot.plot(test)
def main():
doForecast(panel)
if __name__ == '__main__':
main()