2016-05-30 13 views
3

arimaモデル(Arima関数付き)に合わせてRパッケージ予測を使用して、適切なモデル(auto.arima関数)を自動的に選択しようとしています。私は自動的に、同じデータのための適切なモデルを選択する機能auto.arimaを用い、そしてRパッケージ予測のauto.arimaの奇妙な振る舞い

tt.1 <- Arima(x, order=c(1,0,1), seasonal=list(order=c(0,1,1)), 
       include.drift=F) 
tt.2 <- Arima(x, order=c(1,0,1), seasonal=list(order=c(0,1,0)), 
       include.drift=F) 

:私は、最初の関数有馬を有する2つの可能なモデルを推定しました。上記の2つのモデルと同じように、d = 0とD = 1を固定しました。さらに、他のすべてのパラメータで最大値を1に設定し、選択基準の近似値を使用せず、段階的な選択を使用しませんでした(ここで使用する設定は、私が本当に意図しているのではなく、つかいます)。私はモデルの選択の基準としてBICを使用しました。ここでは関数呼び出しは次のとおりです。今

tt.auto <- auto.arima(x, ic="bic", approximation=F, seasonal=T, stepwise=F, 
        max.p=1, max.q=1, max.P=1, max.Q=1, d=0, D=1, start.p=1, 
        start.q=1, start.P=1, start.Q=1, trace=T, 
        allowdrift=F) 

、私はauto.arimaは、上記の二つのモデルか有馬により、上記推定されたモデルから下BICとモデルを選択することを期待しているだろう。さらに、trace = Tのときにauto.arimaが生成する出力は、上記の2つのモデルでArimaが計算したBICとまったく同じであると予想していました。これは実際には第2のモデルでは当てはまるが、第1のモデルでは当てはまらない。最初のモデルでは、Arimaによって計算されたBICは10405.81ですが、モデル(1,0,1)(0,1,1)のauto.arimaの画面出力はInfです。結果的に、第2モデルはautoimaによって選択されるが、第1モデルはArimaによって推定された2つのモデルを比較するときより低いBICを有する。 Arimaによって計算されたBICが、最初のモデルの場合にauto.arimaによって計算されたBICに対応しない理由を誰かが知っていますか?ここで

はauto.arimaの画面出力です:

ARIMA(0,0,0)(0,1,0)[96]     : 11744.63 
ARIMA(0,0,0)(0,1,1)[96]     : Inf 
ARIMA(0,0,0)(1,1,0)[96]     : Inf 
ARIMA(0,0,0)(1,1,1)[96]     : Inf 
ARIMA(0,0,1)(0,1,0)[96]     : 11404.67 
ARIMA(0,0,1)(0,1,1)[96]     : Inf 
ARIMA(0,0,1)(1,1,0)[96]     : Inf 
ARIMA(0,0,1)(1,1,1)[96]     : Inf 
ARIMA(1,0,0)(0,1,0)[96]     : 11120.72 
ARIMA(1,0,0)(0,1,1)[96]     : Inf 
ARIMA(1,0,0)(1,1,0)[96]     : Inf 
ARIMA(1,0,0)(1,1,1)[96]     : Inf 
ARIMA(1,0,1)(0,1,0)[96]     : 10984.75 
ARIMA(1,0,1)(0,1,1)[96]     : Inf 
ARIMA(1,0,1)(1,1,0)[96]     : Inf 
ARIMA(1,0,1)(1,1,1)[96]     : Inf 

をそしてここで有馬で計算モデルの概要は以下のとおりです。

> summary(tt.1) 
Series: x 
ARIMA(1,0,1)(0,1,1)[96]      

Coefficients: 
     ar1  ma1  sma1 
     0.9273 -0.5620 -1.0000 
s.e. 0.0146 0.0309 0.0349 

sigma^2 estimated as 867.7: log likelihood=-5188.98 
AIC=10385.96 AICc=10386 BIC=10405.81 

Training set error measures: 
        ME  RMSE  MAE  MPE  MAPE  MASE  ACF1 
Training set 0.205128 28.16286 11.14871 -7.171098 18.42883 0.3612059 -0.03466711 
> summary(tt.2) 
Series: x 
ARIMA(1,0,1)(0,1,0)[96]      

Coefficients: 
     ar1  ma1 
     0.9148 -0.4967 
s.e. 0.0155 0.0320 

sigma^2 estimated as 1892: log likelihood=-5481.93 
AIC=10969.86 AICc=10969.89 BIC=10984.75 

Training set error measures: 
       ME  RMSE  MAE  MPE  MAPE MASE  ACF1 
Training set 0.1942746 41.61086 15.38138 -8.836059 24.55919 0.49834 -0.02253845 

注:私は、データを利用可能にすることは許されないのです。しかし、必要に応じて、より多くの出力を提供したり、関数の変更された呼び出しを実行したりすることができれば幸いです。

EDIT:auto.arimaのソースコードを見て、モデルがチェックに失敗した場合にモデルをInfに選択するために使用される情報基準を設定するルートのチェックによる動作であることがわかりました。 auto.arimaのヘルプに引用されている論文は、統計的ソフトウェアのジャーナル、26(3)、11ページ)を参照しています(Hyndman、RJ and Khandakar、Y.(2008)「自動時系列予測:Rの予測パッケージ」) 。申し訳ありません、私はここで質問をする前に、このペーパーを読んでいたはずです!

答えて

1

auto.arimaは、非定常性および非反転性境界に近いパラメータを持つモデルを避けて、いくつかの制約の対象となる最良のモデルを見つけようとします。

tt.1モデルでは、季節的MA(1)パラメータが-1であり、非反転性の境界にあります。したがって、数値的に不安定になるので、そのモデルを使用したくないです。季節差オペレータは、季節MAオペレータと混同される。

auto.arimaは、AIC/AICc/BICの値がInfで、選択を避けるために制約を満たしていないモデルに与えます。

+0

ありがとうございました!一番下にある質問(EDITの部分)に書いたように、私はauto.arimaのヘルプで言及されたソースコードと論文を見て、それを理解していました。助けに記載された論文を読む前に質問をしてくれて申し訳ありません!私はあなたの答えを受け入れた。 – Lila