問題タブ [arima]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - R Arima は機能しますが、Python statsmodels SARIMAX は可逆性エラーをスローします
R (3.3.1) の予測パッケージ (7.3) と Python (3.5.2) の統計モデル (0.8) の間で SARIMAX フィッティング結果を比較しています。
Rコードは次のとおりです。
Python コードは次のとおりです。
次のエラーがスローされます: ValueError: Non-stationary starting autoregressive parameters found with enforce_stationarity
set to True.
enforce_stationarity (およびこれも必要な enforce_invertibility) を False に設定すると、モデルの適合は機能しますが、AIC は非常に貧弱です (>1400)。
ARIMA(0,1,1)(0,0,1)[12] など、同じデータに他のモデル パラメーターを使用すると、Python で定常性と可逆性のチェックを有効にして、R と Python から同じ結果を得ることができます。
私の主な質問は次のとおりです: 一部のモデル パラメーターの動作の違いは何によって説明されますか? statsmodels の可逆性チェックは、予測の Arima とは異なり、他の方法は「より正確」ですか?
また、statsmodels の可逆性計算バグの修正に関連するプル リクエストを見つけました: https://github.com/statsmodels/statsmodels/pull/3506
Github の最新のソース コードを使用して statsmodels を再インストールした後も、上記のコードで同じエラーが発生しますが、enforce_stationarity=False および enforce_invertibility=False を設定すると、R の場合よりも低い約 1010 の aic が得られます。しかし、モデルのパラメーターも大きく異なります。
r - ほとんどの手法でフラットな時系列予測が得られるのはなぜですか?
時系列の簡単な例があります:
データ:
次に、ホルト ウィンターズ スムージング、TBATS スムージング、ARIMA、AR ニューラル ネットの 4 つの異なる時系列予測モデルを次の関数で実行しました: HoltWinters()、tbats()、auto.arima()、nnetar()
36期間(3年)先を予測しました。以下の結果:
私の質問は、HoltWinters が唯一の有意義な予測であると思われる理由です。他のすべての予測でフラット ラインを取得するのは奇妙に思える十分なデータがあります。何かが壊れているか、何かを理解していないようです。特に、TBATS は Holt Winters の一般化された形式であるためです。そして、シリーズ ARIMA を見るだけで、単純な平均以上のものを出力する必要がありますか? 右?(1,1,1) は、違いを考慮に入れることを意味します。また、失敗してnullモデルを返すモデルはないようです。なぜこれらの結果が表示され、どのように解釈されるのか非常に興味深いです。
どんな助けや説明も大歓迎です!
ちなみに、需要はts
オブジェクトです。
以下は私のコードです: