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)
ありがとう
ベストアンサー1
データが本当に周期的で、時系列にギャップがない場合は、pandas
頻度を推測できます。
推定された周波数が正しいと思われる場合は、次の回答に従って使用できます。pandas.tseries.index.DatetimeIndex.freq を 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
使用できます。missing="drop"
ARIMA