2013-05-17 9 views
5

Rの将来の値を予測するために、予測パッケージのets()関数とauto.arima()関数を使用しています。これらの2つのモデル間で最適なモデルを選択するためにはどの基準を使用する必要がありますか?ets()とauto.arima()関数の中からR?

以下は、ets(data.ets)とauto.arima(data.ar)の精度の出力です。続き

> ETSfit$aic 
[1] 613.8103 
> ARIMAfit$aic 
[1] 422.5597 

を次のように

> accuracy(data.ets) 
    ME  RMSE  MAE  MPE  MAPE  MASE 
0.6995941 4.1325246 3.2634246 0.5402465 2.7777897 0.5573740 

> accuracy(data.ar) 
    ME  RMSE  MAE  MPE  MAPE  MASE 
-0.8215465 4.3640818 3.1070931 -0.7404200 2.5783128 0.5306735 

と各モデルのAICは、ETSとauto.arima両方の当てはめモデル

> ETSfit 
ETS(A,N,A) 

Call: 
ets(y = data.ts) 

Smoothing parameters: 
alpha = 0.5449 
gamma = 1e-04 

Initial states: 
l = 95.8994 
s=6.3817 -3.1792 6.8525 3.218 -3.4445 -1.2408 
     -4.5852 0.4434 1.7133 0.8123 -1.28 -5.6914 

sigma: 4.1325 

AIC  AICc  BIC 
613.8103 620.1740 647.3326 

> ARIMAfit 
Series: data.ts 
ARIMA(1,1,1)(0,1,1)[12]      

Coefficients: 
    ar1  ma1  sma1 
    0.3808 -0.7757 -0.7276 
s.e. 0.1679 0.1104 0.2675 

sigma^2 estimated as 22.68: log likelihood=-207.28 
AIC=422.56 AICc=423.19 BIC=431.44 

が親切に助けています。

答えて

11

各モデルにいくつのパラメータが含まれているかを知らなくても、比較するのは難しいサンプル内の精度測定値を表示しています。また、AIC値はこれらのモデルクラス間で比較できません。

最も簡単なアプローチは、モデルの選択や推定に使用されないテストセットを使用してから、テストセットの予測精度を比較することです。

より洗練されたバージョンは、http://otexts.com/fpp/2/5/で説明されているように、時系列相互検証を使用することです。

+0

ご返信ありがとうございます。私はあなたのウェブサイトを見ましたが、これはとても良いです。今、etsとauto.arimaの適合モデルを追加しました。素晴らしいリソースをリンクするためには – priyaj

+0

(+1)が役に立ちます。 – Nishanth