値警告: 周波数情報が提供されていないため、推定周波数MSが使用されます 質問する

値警告: 周波数情報が提供されていないため、推定周波数MSが使用されます 質問する

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

おすすめ記事