Модель ARIMA с pandas кадром данных - PullRequest
0 голосов
/ 20 июня 2020

У меня есть следующий набор данных test_1

Date    Frequency
0   2020-01-20  10
1   2020-01-21  2
2   2020-01-22  1
3   2020-01-23  10
4   2020-01-24  6
... ... ...
74  2020-04-04  7
75  2020-04-05  9
76  2020-04-06  8
77  2020-04-07  6
78  2020-04-08  1

, где Frequency - это вычисляемый столбец с частотой пользователей по дате.

Я хотел бы предсказать будущие тенденции и для этого я рассматриваю модель ARIMA. Я использовал этот код

# fit model
model = ARIMA(test_1, order=(5,1,0))
model_fit = model.fit(disp=0)
print(model_fit.summary())
# plot residual errors
residuals = DataFrame(model_fit.resid)
residuals.plot()
pyplot.show()
residuals.plot(kind='kde')
pyplot.show()
print(residuals.describe())

, но у меня такая ошибка: ValueError: Pandas data cast to numpy dtype of object. Check input data with np.asarray(data).

из-за model = ARIMA(test_1, order=(5,1,0)).

Знаете ли вы, что это означает и как Я мог бы это исправить?

1 Ответ

1 голос
/ 20 июня 2020

В этой ошибке говорится, что ARIMA ожидает объект, подобный массиву, но вместо этого вы передали DataFrame.

Это можно решить, передав test_1["Frequency"] вместо test_1 . Также я исправлю некоторые другие вещи, с которыми я столкнулся в вашем коде:

import pandas as pd
from statsmodels.tsa.arima_model import ARIMA
import matplotlib.pyplot as pyplot

# fit model
model = ARIMA(test_1["Frequency"], order=(5,1,0)) #<--- change this
model_fit = model.fit(disp=0)
print(model_fit.summary())
# plot residual errors
residuals = pd.DataFrame(model_fit.resid)
residuals.plot(kind='kde')
print(residuals.describe())
pyplot.show()
...