arima python - ошибка на этапе прогнозирования
Нужно спрогнозировать значения временного ряда. Исходные данные в excel-формате со следующими столбцами: дата, группа1, группа2, группа3. Нужно для каждой группы предсказать значения. Я начинала с того, что отделила первую группу данные в отдельный df. Признак "дата" перевела в соответствующий формат и назначила индексом. Модель не принимает df, перевела в asarray. Модель строится, но дальше в предикте ничего не получается. Не могу найти в чем дело. Может данные не в таком виде нужно передать или признаки в предикт не правильно передаю, код ниже. Данные по которым нужно сделать прогноз после кода.
import pandas as pd
from datetime import datetime
import numpy as np
custom_datetime = lambda x: datetime.strptime(x, '%m.%Y')
df = pd.read_excel('datasetDM2.xlsx', parse_dates=['Дата'], date_parser=custom_datetime)
df = df.dropna(axis=0)
df.columns = ['date', 'группа1', 'группа2', 'группа3']
group1 = pd.Series(df['группа1'])
data = pd.Series(df['date'])
data = pd.to_datetime(data)
group1.index = data
group1_np = np.asarray(group1)
from statsmodels.tsa.arima_model import ARIMA
p1, d1, q1 = 1, 1, 1
model = ARIMA(group1_np, order=(p1,d1,q1)).fit()
from sklearn.metrics import r2_score
pred = model.predict(group1_np, '2019-08-01', '2019-10-01')
r2 = r2_score(group1_np[:-3], pred)
Ошибка выдается следующая:
KeyError: 'The start argument could not be matched to a location related to the index of the data.'
| Дата | Группа1 | Группа2 | Группа3 |
|---|---|---|---|
| 01.2017 | 33100 | 38000 | 38000 |
| 02.2017 | 31000 | 38000 | 38000 |
| 03.2017 | 29800 | 38300 | 38300 |
| 04.2017 | 27900 | 37800 | 38100 |
| 05.2017 | 26700 | 36900 | 38400 |
| 06.2017 | 27400 | 36500 | 38800 |
| 07.2017 | 29100 | 37400 | 39000 |
| 08.2017 | 33000 | 41000 | 42000 |
| 09.2017 | 36000 | 44000 | 45900 |
| 10.2017 | 33500 | 43800 | 49000 |
| 11.2017 | 31800 | 42000 | 49200 |
| 12.2017 | 33400 | 41300 | 48000 |
| 1,2018 | 35200 | 42000 | 48200 |
| 2,2018 | 33000 | 43000 | 48500 |
| 3,2018 | 34100 | 43200 | 49300 |
| 4,2018 | 36300 | 43500 | 51400 |
| 5,2018 | 38100 | 43800 | 51400 |
| 6,2018 | 36600 | 43700 | 51000 |
| 7,2018 | 37200 | 43200 | 50000 |
| 8,2018 | 41000 | 42000 | 50000 |
| 9,2018 | 39200 | 42000 | 50200 |
| 10,2018 | 37400 | 41700 | 49000 |
| 11,2018 | 36200 | 41400 | 46100 |
| 12,2018 | 36000 | 40500 | 45000 |
| 1,2019 | 34300 | 40000 | 44400 |
| 2,2019 | 36100 | 39800 | 43500 |
| 3,2019 | 40000 | 40000 | 44000 |
| 4,2019 | 39000 | 40100 | 43800 |
| 5,2019 | 39100 | 40000 | 43600 |
| 6,2019 | 40200 | 40300 | 43900 |
| 7,2019 | 39500 | 41800 | 44000 |
| 8,2019 | 37600 | 43000 | 45000 |
| 9,2019 | 36100 | 42100 | 43600 |
| 10,2019 | 33000 | 39500 | 41000 |
| 11,2019 | |||
| 12,2019 |