SARIMAX прогнозируемый выход - PullRequest
0 голосов
/ 23 декабря 2018

Я использую SARIMAX для создания модели прогноза и хотел бы добавить заголовки столбцов к выходным данным, но у меня возникли проблемы.Я могу обойти это, выполнив .to_csv, а затем прочитав его обратно в качестве нового кадра данных, прежде чем добавлять метки, но я бы хотел сделать это за один шаг, а не записывать другой файл.

    mod = sm.tsa.statespace.SARIMAX(y,
                                order=(0, 1, 1),
                                seasonal_order=(0, 1, 1, 12),
                                enforce_stationarity=False,
                                enforce_invertibility=False)
    results = mod.fit()
    pred_uc = results.get_forecast(steps = 48)
    pred_ci = pred_uc.conf_int()

    forecast = pd.DataFrame(pred_uc.predicted_mean, columns = ['TIME', 'column_2'])

ValueError: неверное количество пропущенных элементов 1, размещение подразумевает 2

ValueError: форма пропущенных значений (1, 48), индексы подразумевают (2, 48)

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

После небольшого прочтения я в итоге нашел решение, которое подходит лучше всего, потому что это итерация и создание нового столбца для результатов каждый раз.

compiled_df[column_2] = forecast[0]
compiled_df.index.name = 'TIME'

Спасибо за вашу помощь

0 голосов
/ 27 декабря 2018

pred_uc.predicted_mean - это объект серии pandas, связанный с индексом (например, индексом даты).

Вы можете преобразовать его в DataFrame, например, pred_uc.predicted_mean.to_frame(), но он все равно будет иметь только одинстолбец и индекс.

Если по какой-то причине он должен быть в указанной вами форме, вы можете сделать, например, следующее:

pred_uc.predicted_mean.to_frame('column_2').rename_axis('time').reset_index()

, что даст что-то вроде:

    time  column_2
0 2009Q4  3.791093
1 2010Q1  1.864600
2 2010Q2  0.680030
3 2010Q3  2.299168
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...