1. ホーム
  2. r

[解決済み] 精度機能

2022-02-18 11:50:01

質問事項

TS解析をしています。この2つの精度の違いは何ですか?

fit<-auto.arima(tsdata)
fcast<-forecast(fit,6)
accuracy(fcast)             #### First Accuracy

fit<-auto.arima(tsdata)
fcast<-forecast(fit,6)
accuracy(fcast,actual values)  #### Second Accuracy

のように、accuracy関数に実際の値を指定しない場合、accuracy関数はどのように動作するのでしょうか?

次に、精度を計算するための正しい方法を教えてください。

解答方法は?

この答えでは、あなたが関数を使用していることを想定しています。 forecast パッケージを使用します。 答えは accuracy の説明文があります。

RELEASE関数は、予測精度の要約尺度の範囲を返します。x が提供された場合、この関数は x-f に基づいてサンプル外(テスト集合)予測精度を測定します。x が提供されない場合、この関数は f["x"]-fitted(f) に基づく予測値のサンプル内(トレーニング集合)精度測定のみを生成する。すべての測定は,Hyndman and Koehler (2006)で定義され,議論されています.

あなたの場合 x は、関数の第2引数です。ということは、要するに accuracy(fcst) は、トレーニングセットに基づく予測誤差の推定値を提供する。

例えば、12ヶ月分のデータがあり、6ヶ月先を予測するとします。このとき accuracy(fcst) の場合、12ヶ月間のモデルの誤差(だけ)が得られます。

では、次のように仮定してみましょう。 x = 予測する6ヶ月間の実需。そして、このデータを使って有馬モデルを構築したわけではありません。この場合 accuracy(fcst, x) はテストセット誤差を示しますが、これは(訓練セット誤差と比較して)このモデルを使って将来何が得られるかを示すより良い指標となります。

ベストプラクティスはテストセット誤差を使用することです。なぜなら、この指標はバイアスがかかりにくいからです(トレーニングセットで"良い"予測結果を得て、次に"隠れ家的なテストセットで得られる可能性は高いですが、この結果は一種のオーバーフィッティングになってしまうでしょう)。テストセットがある場合は、第2引数としてテストセットを使用する必要があります。