auto.arimaはstdエラーで生成されたNaNに警告します


9

私のデータは、雇用人口の時系列Lと期間、年です。

n.auto=auto.arima(log(L),xreg=year)
summary(n.auto)
Series: log(L) 
ARIMA(2,0,2) with non-zero mean 

Coefficients:
         ar1      ar2      ma1     ma2  intercept    year
      1.9122  -0.9567  -0.3082  0.0254    -3.5904  0.0074
s.e.     NaN      NaN      NaN     NaN     1.6058  0.0008

sigma^2 estimated as 1.503e-06:  log likelihood=107.55
AIC=-201.1   AICc=-192.49   BIC=-193.79

In-sample error measures:
           ME          RMSE           MAE           MPE          MAPE 
-7.285102e-06  1.225907e-03  9.234378e-04 -6.836173e-05  8.277295e-03 
         MASE 
 1.142899e-01 
Warning message:
In sqrt(diag(x$var.coef)) : NaNs produced

なぜこれが起こるのですか?なぜauto.arimaは、これらのar * ma *係数のstdエラーが数値ではない最良のモデルを選択するのですか?結局、この選択されたモデルは有効ですか?

私の目標は、モデルL = L_0 * exp(n * year)のパラメーターnを推定することです。より良いアプローチの提案はありますか?

TIA。

データ:

L <- structure(c(64749, 65491, 66152, 66808, 67455, 68065, 68950, 
69820, 70637, 71394, 72085, 72797, 73280, 73736, 74264, 74647, 
74978, 75321, 75564, 75828, 76105), .Tsp = c(1990, 2010, 1), class = "ts")
year <- structure(1990:2010, .Tsp = c(1990, 2010, 1), class = "ts")
L
Time Series:
Start = 1990 
End = 2010 
Frequency = 1 
 [1] 64749 65491 66152 66808 67455 68065 68950 69820 70637 71394 72085 72797
[13] 73280 73736 74264 74647 74978 75321 75564 75828 76105

問題を再現できるように、データを投稿できますか?
Rob Hyndman、2012

@RobHyndmanがデータを更新
Ivy Lee

dput(L)出力を入力して貼り付けてください。これにより、複製が非常に簡単になります。
ザック

回答:


11

L0

auto.arima()は、計算を高速化するためにいくつかのショートカットを使用します。疑わしいモデルが得られた場合は、それらのショートカットをオフにして、得られる結果を確認することをお勧めします。この場合:

> n.auto <- auto.arima(log(L),xreg=year,stepwise=FALSE,approx=FALSE)
> 
> n.auto
Series: log(L) 
ARIMA(2,0,0) with non-zero mean 

Coefficients:
         ar1      ar2  intercept    year
      1.8544  -0.9061    11.0776  0.0081
s.e.  0.0721   0.0714     0.0102  0.0008

sigma^2 estimated as 1.594e-06:  log likelihood=107.19
AIC=-204.38   AICc=-200.38   BIC=-199.15

このモデルは少し優れています(たとえば、AICが小さい)。


1
標準誤差を計算できず、モデルを予測に使用する必要がある場合はどうなりますか?これにより、予測に無効で非現実的な短い信頼区間が発生しますか?私の場合(長さ35の時系列)、係数のSEのNaNを使用しapproximation=FALSEstepwise=FALSEそれでも生成します。
ミハエル2017年

4

あなたの問題は過剰仕様から生じます。AR(1)の単純な最初の差分モデルで十分です。MA構造や電力変換は必要ありません。ar(1)係数が1.0に近いため、これを2番目の差分モデルとして単純にモデル化することもできます。実際/フィット/予測のここに画像の説明を入力してくださいプロットは 期間7で考えられる外れ値/インライア、方程式の残差プロットです!ここに画像の説明を入力してくださいここに画像の説明を入力してください要約すると、推定はモデル仕様の対象となります。この場合、["mene mene tekel upharsin"]が必要であることがわかります。真剣に、私はあなたがモデル同定戦略に慣れ親しんで、そして保証されていない構造であなたのモデルを台所に流そうとしないことを勧めます。時には少ない方がいいです!節約は目的です!。お役に立てれば !さらに質問に答えるには、「なぜauto.arimaはこれらのar * ma *係数のstdエラーがある最良のモデルを選択するのですか?数値ではありませんか?考えられる答えは、状態空間の解が、試した仮定モデルですが、それは私の推測です。失敗の真の原因は、log xformの仮定である可能性があります。変換はドラッグのようなものです。べき変換は、期待値を残差の標準偏差から切り離すためにのみ使用する必要があります。リンケージがある場合は、Box-Cox変換(ログを含む)が適切です。耳の後ろから変身を引くのは良い考えではないかもしれません。

結局、この選択されたモデルは有効ですか?絶対にありません !


0

私は同様の問題に直面しました。optim.controlとoptim.methodを試してみてください。これらのNaNは、ヘッセ行列の対角要素の負の値の平方です。ARIMA(2,0,2)の近似は非線形問題であり、optimは尤度最大値ではなく鞍点(勾配はゼロですが、ヘッセ行列は正に定義されていません)に収束したようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.