ARMAを使用した非定常プロセスのモデリングの結果は?


23

非定常時系列のモデリングにはARIMAを使用する必要があることを理解しています。また、ARMAは定常時系列にのみ使用されるべきだと私が読んだことすべてがあります。

私が理解しようとしているのは、モデルを誤分類し、d = 0非定常の時系列を仮定したときに実際に何が起こるかです。例えば:

controlData <- arima.sim(list(order = c(1,1,1), ar = .5, ma = .5), n = 44)

制御データは次のようになります。

 [1]   0.0000000   0.1240838  -1.4544087  -3.1943094  -5.6205257
 [6]  -8.5636126 -10.1573548  -9.2822666 -10.0174493 -11.0105225
[11] -11.4726127 -13.8827001 -16.6040541 -19.1966633 -22.0543414
[16] -24.8542959 -25.2883155 -23.6519271 -21.8270981 -21.4351267
[21] -22.6155812 -21.9189036 -20.2064343 -18.2516852 -15.5822178
[26] -13.2248230 -13.4220158 -13.8823855 -14.6122867 -16.4143756
[31] -16.8726071 -15.8499558 -14.0805114 -11.4016515  -9.3330560
[36]  -7.5676563  -6.3691600  -6.8471371  -7.5982880  -8.9692152
[41] -10.6733419 -11.6865440 -12.2503202 -13.5314306 -13.4654890

データが知らなかったと仮定して、私はARIMA(1,1,1)見るかもしれませんpacf(controlData)

pacf(controlData)

次に、Dickey-Fullerを使用して、データが非定常かどうかを確認します。

require('tseries')
adf.test(controlData)

# Augmented Dickey-Fuller Test
#
# data:  controlData
# Dickey-Fuller = -2.4133, Lag order = 3, p-value = 0.4099
# alternative hypothesis: stationary

adf.test(controlData, k = 1)

# Augmented Dickey-Fuller Test
#
#data:  controlData
# Dickey-Fuller = -3.1469, Lag order = 1, p-value = 0.1188
# alternative hypothesis: stationary

したがって、データがARIMA(2,0、*)であると仮定する場合があります。次にauto.arima(controlData)、最適なものを取得するために使用しますか。

require('forecast')
naiveFit <- auto.arima(controlData)
naiveFit
# Series: controlData 
# ARIMA(2,0,1) with non-zero mean 
# 
# Coefficients:
#          ar1      ar2     ma1  intercept
#      1.4985  -0.5637  0.6427   -11.8690
# s.e.  0.1508   0.1546  0.1912     3.2647
#
# sigma^2 estimated as 0.8936:  log likelihood=-64.01
# AIC=138.02   AICc=139.56   BIC=147.05

そのため、過去および将来のデータがARIMA(1,1,1)であっても、ARIMA(2,0,1)として分類したいと思うかもしれません。tsdata(auto.arima(controlData))よさそうだ。

知識のあるモデラーが見つけることは次のとおりです。

informedFit <- arima(controlData, order = c(1,1,1))
# informedFit
# Series: controlData 
# ARIMA(1,1,1)                    
#
# Coefficients:
#          ar1     ma1
#       0.4936  0.6859
# s.e.  0.1564  0.1764
#
# sigma^2 estimated as 0.9571:  log likelihood=-62.22
# AIC=130.44   AICc=131.04   BIC=135.79

1)なぜこれらの情報基準は、選択したモデルよりも優れているのauto.arima(controlData)ですか?

次に、実際のデータと2つのモデルをグラフィカルに比較します。

plot(controlData)
lines(fitted(naiveFit), col = "red")
lines(fitted(informedFit), col = "blue")

tsPlots

2)悪魔の擁護者を演じ、ARIMA(2、0、1)をモデルとして使用することで、どのような結果を支払うのでしょうか?このエラーのリスクは何ですか?

3)私は主に、複数期間の前方予測の意味について心配しています。私は彼らがあまり正確ではないと思いますか?証拠を探しているだけです。

4)モデル選択の代替方法を提案しますか?「知識のない」モデラーとしての推論に問題はありますか?

私は、この種の誤分類のその他の結果について、本当に興味があります。いくつかのソースを探していましたが、何も見つかりませんでした。私が見つけることができたすべての文献は、この主題に触れるだけで、代わりにARMAを実行する前にデータが静止しているべきであると述べ、それが非定常の場合、d回異なる必要があります。

ありがとう!


私の印象では、これは断面回帰における「直交誤差」の仮定に似ています(つまり、標準誤差にバイアスをかけますが、係数にはバイアスをかけません)が、実際の答えを聞くことに本当に興味があります。
シャドウトーカー

回答:


11

私の印象では、この質問には一意で完全に一般的な答えがないため、最も単純なケースのみを少し非公式な方法で検討します。

真のデータ生成メカニズムがと仮定し 、は通常のゼロ平均ホワイトノイズ成分、です。上記も意味します

(1)yt=yt1+あなたはtt=1Ty0=0
あなたはtEあなたはt2=σあなたは2

(2)yt==1tあなたは

モデルを指定し、モデルと呼びますA

(3)yt=βyt1+あなたはtt=1Ty0=0

そして、私たちは見積もり取得仮定のために(のは、必要が生じた場合にのみ、推定方法を説明しましょう)。β^β

したがって、ステップ先の予測はk

(4)y^T+k=β^kyT

そしてそのMSE

MSEA[y^T+k]=Eβ^kyTyT+k2

(5)=E[β^k1yT=T+1T+kあなたは]2=E[β^k12yT2]+kσあなたは2

(正方形の中間項が消えるだけでなく、将来のエラーのクロス積もなくなります)。

ここで、データを変更し、モデルを指定したとしましょう。B

(6)yt=γyt1+あなたはt

推定値を取得しました。異なるモデルを書くことができますγ^

(7)yt=yt1+γyt1yt2+あなたはt

プロセスのレベルを予測すると、

y^T+1=yT+γ^yTyT1

実際には、真のDGPが与えられます

(8)y^T+1=yT+γ^あなたはT

モデル場合、次のことを簡単に確認できます。B

y^T+k=yT+γ^+γ^2++γ^kあなたはT

ここで、「テスト済み」の推定手順を考えると、データが少なすぎる場合や非常に「悪い」形状の場合を除き、真の値がであるため、を取得することが合理的に予想されます。だから、ほとんどの場合、|γ^|<10

(9)y^T+k=yT+γ^γ^k+11γ^あなたはT

など

(10)MSEB[y^T+k]=E[γ^γ^k+11γ^2あなたはT2]+kσあなたは2

便宜上繰り返しますが

(5)MSEA[y^T+k]=E[β^k12yT2]+kσあなたは2

したがって、差分MSEが予測MSEの観点からパフォーマンスを向上させるために、

MSEB[y^T+k]MSEA[y^T+k]

E[γ^γ^k+11γ^2あなたはT2]E[β^k12yT2]

モデルの推定器と同様に、モデルの推定器にも同じ礼儀を拡張します。が「一致に近い」と合理的に予想します。 BAβ^

になった場合、不等式の右側の量は(予測前のステップ数)として制限なく増加する傾向があることは明らかです。一方、目的の不等式の左側の量は、が増加するにつれて増加する可能性がありますが、上限があります。そのため、このシナリオでは、モデルと比較して、予測MSEの点で差異のあるモデル方がより適切であると予想されます。 β^>1kkBA

しかし、であるモデル場合の方が有利であると仮定します。次に、右側の数量にも限界があります。次にとして我々は、かどうかを検討する必要がありますAβ^<1k

E[γ^1γ^2あなたはT2]E[yT2]=Tσあなたは2

(は便利です-実際には、値が小さい場合、両方の大きさは既にその最高値に近くなります)。 kk

用語 は「かなり近い」と予想されるため、モデルはこの側面からの利点があります。 γ^1γ^20B

推定器はから独立していないため、残りの期待値を分離することはできません。しかし、不平等をγ^あなたはT

Cov[γ^1γ^2あなたはT2]+E[γ^1γ^2]σあなたは2Tσあなたは2

Cov[γ^1γ^2あなたはT2]TE[γ^1γ^2]σあなたは2

ここで、推定子はすべてのエラーに依存するため、左側の共分散は小さいと予想されます。不等式の反対側では、は定常データセットに由来するため、上記の関数の期待値はサンプルのサイズよりもはるかに小さいと予想されます(この関数は、 in)。γ^Tγ^01

したがって、全体として、特定の推定方法については説明せずに、差分MSEが予測MSEの観点からより良いパフォーマンスを期待されることを非公式に示すことができたと思います。


1

それはいい質問です。

私が知っているように、あなたはpacfを検討しただけですが、それだけでは不十分です。最適なモデルを選択するには、ACFとPACFの両方が必要です。

一方、定常テストは弱くて敏感であり、テストするには大量の遅延が必要です。

さらに、モデルを適用する前に時系列を静止させることをお勧めします。大まかに言えば、ARIMAモデルは、非定常であるという特殊なケースを考慮しています(傾向が好ましい)。

あなたの質問については、auto.arima関数についてはわかりませんが、この例のデータポイントの数は少ないと確信しています。多数のデータポイントを使用してモデルをシミュレートすると、質問に適切に答えられます。また、時系列のACFとPACFを検討することをお勧めします。モデルの選択については、経験則で最も単純なモデルを選択します(時系列を固定した後の最も単純なモデルに注意してください)。

この参照を参照します。この本はあなたのすべての質問に答えるわけではありませんが、手がかりを与えてくれます。

-----補足セクション-------データの傾向を考慮した@nsw。定常モデルを検討すると、上向き/下向きの予測になりますが、実際にはARMAモデルはフラットデータを予測するように設計されています。この違いを反映するようにコードを変更しました。

require( '予測')

require( 'tseries')

controlData <-arima.sim(list(order = c(1,1,1)、ar = .5、ma = .5)、n = 1000

acf(controlData)

ts.plot(controlData)

naiveFit <-arima(controlData、order = c(2,0,1))

trueFit <-arima(controlData、order = c(1,1,1))

PrnaiveFit <-forecast.Arima(naiveFit、10)

PrtrueFit <-predict.Arima(trueFit、10)

matplot(cbind(PrnaiveFit $ mean、PrtrueFit $ mean)、type = 'b'、col = c( 'red'、 'green')、ylab = c( 'predict ion')、pch = c( 'n'、 't'))


1
この質問は「時系列を静止させることが望ましい」理由を尋ねいます。これは本当にその質問には答えません。
シャドウトーカー

@ssdecontrolあなたは一般的に正しいです。私は本当に、仕様の誤り後の予測に対する暗黙の結果について心配しています。しかし、私はHamed.HMに勝ち過ぎたくありません。彼は、「これはモデルを選択する正しい方法ですか?」についての私の最後の質問にまだ答えていました。しかし、繰り返しになりますが、これはここでの私の懸念の最小です。
クラークヘンリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.