私はsm.tsa.statespace.SARIMAXによる自己回帰に適合させようとします。しかし、私は警告に出会ったので、このモデルの周波数情報を設定したいと思います。誰がそれに会ったのか、助けてくれませんか?
fit1 = sm.tsa.statespace.SARIMAX(train.Demand, order=(1, 0, 0),
enforce_stationarity=False,
enforce_invertibility=False).fit()
y_hat['AR'] = fit1.predict(start="1975-01-01", end="1975-12-01", dynamic=True)
plt.figure(figsize=(16,8))
plt.plot( train['Demand'], label='Train')
plt.plot(test['Demand'], label='Test')
plt.plot(y_hat_avg['AR'], label='AR')
plt.legend(loc='best')
plt.show()
C:\Users\thach.le\Anaconda3\lib\site-packages\statsmodels-0.8.0-py3.6-win-
AMD64.Egg\statsmodels\tsa\base\tsa_model.py:165: ValueWarning: No frequency
information was provided, so inferred frequency MS will be used.
% freq, ValueWarning)
ありがとう
データが本当に周期的で、時系列にギャップがない場合、pandas
は頻度を推測できます。
推測された頻度が正しいように見える場合は、 Set pandas.tseries.index.DatetimeIndex.freq with inferred_freq の回答に従ってください。
例えば
train.index = pd.DatetimeIndex(train.index.values,
freq=train.index.inferred_freq)
fit1 = sm.tsa.statespace.SARIMAX(...)
ただし、データが本当に周期的でない場合、これにより、DatetimeIndex
の頻度がNone
になります。
たとえば、毎日のデータがあり、1日が欠落している場合、inferred_freq
はNone
になり、freq="D"
を渡そうとするとValueError
例外が発生します。この場合、DataFrame
を作成して、すべての日付が存在し、予測する列の値がそれらの日付のNone
になるようにしてください。その後、ARIMA
モデルでmissing="drop"
(またはその他)を使用できます。