ARIMAでトレンド定常シリーズをモデル化できますか?


12

ARIMA(X)でのモデリングに必要な定常シリーズについて質問/混乱があります。私はこれを推論(介入の効果)の観点から考えていますが、予測と推論が反応に何らかの違いをもたらすかどうかを知りたいです。

質問:

私が読んだすべての入門資料は、シリーズが静止している必要があると述べています。これは私にとって理にかなっています。

私を混乱させているのは、ARIMA(X)のトレンドとドリフトの使用、および定常要件に対する影響(ある場合)です。

定数/ドリフト項および/またはトレンド変数を外生変数として使用する(つまり、「t」をリグレッサーとして追加する)と、シリーズが定常であるという要件が無効になりますか?シリーズに単位根がある場合(adfテストなど)、決定論的な傾向はあるが単位根がない場合、答えは異なりますか?

または

ARIMA(X)を使用する前に、差分および/またはトレンド除去を介して作成されたシリーズは常に静止している必要がありますか?

回答:


12

コメントを見ると、決定論的傾向と確率的傾向のどちらを選択するかについての質問には取り組んでいないようです。つまり、各ケースの結果や特性ではなく、実際の進め方です。

続行する1つの方法は次のとおりです。ADFテストを適用することから始めます。

  • ユニットルートのnullが拒否された場合、完了です。トレンド(ある場合)は、確定的な線形トレンドで表すことができます。
  • ADF検定のnullが拒否されない場合、KPSS検定を適用します(null仮説は反対、定常性、または線形トレンドの周りの定常性です)。

    o KPSSテストのヌルが拒否された場合、ユニットルートが存在すると結論付け、データの最初の違いを処理します。シリーズの最初の違いに基づいて、他のリグレッサの有意性をテストするか、ARMAモデルを選択できます。

    o KPSS検定のnullが拒否されない場合、null仮説をどれも拒否できなかったため、データはあまり有益ではないと言う必要があります。この場合、シリーズの最初の違いを扱う方が安全かもしれません。

前の回答で述べたように、これらのテストは外れ値の存在によって影響を受ける可能性があることを覚えておいてください(たとえば、データの記録時のエラーまたは単一の時点での外れ値や、特定の時点からのシリーズ)。したがって、これらの問題も確認し、潜在的な外れ値の回帰変数を含めてから前の分析を繰り返すことをお勧めします。


驚くばかり!上記の私のコメントの質問は、トレンドのように見えるものを見ると、トレンドを含むADFテストを使用するというものでしたか(投稿したリンクの#3オプション)?
B_Miner 14

最後の質問-ARIMA(0,1,1)をシリーズに当てはめ、その差の平均がゼロ以外の場合、ARIMAを当てはめる状況についてどう思いますか?これは、モデルに定数を追加すると信じていることを意味します。これは、元のシリーズの線形トレンドも表します。このケースは何を意味しますか?元の系列の傾向は決定的です。系列を区別しても傾向は除去されませんでしたか?
B_Miner 14

@B_Miner最初のコメントに関しては、インターセプトのみを含めることから始めます。トレンドが指数関数的に見える場合は、線形トレンドの勾配パラメーターを追加して、有意であるかどうかを確認することもできます。一般に、パラメータの少ないモデルから開始する方が適切であり、残差の診断が十分でない場合は、他の要素を追加することを検討してください。
javlacalle 14

@B_Miner最初の差を取ることにより、決定論的傾向と確率的傾向の両方が削除されます。インターセプトを使用したモデルで差分シリーズの傾向が見られる場合は、再度差分を取ることを検討する必要があります(つまり、2番目のユニットルートのテスト)。
javlacalle 14

1
a1t+a2t2

5

非定常性にはさまざまな種類があり、それらに対処する方法にはさまざまな方法があることに注意してください。4つの一般的なものは次のとおりです。

1)決定論的傾向または傾向の定常性。シリーズがこの種の場合、トレンドを解消するか、回帰/モデルに時間トレンドを含めます。これに関するFrisch–Waugh–Lovellの定理を確認してください。

2)レベルシフトと構造的な中断。この場合、各ブレークにダミー変数を含める必要があります。サンプルが十分長い場合は、各レジメを個別にモデル化します。

3)変動の変化。サンプルを個別にモデリングするか、ARCHまたはGARCHモデリングクラスを使用して変化する分散をモデリングします。

4)シリーズにユニットルートが含まれている場合。一般に、変数間の共関係をチェックする必要がありますが、単変量予測に関心があるため、統合の順序に応じて1回または2回の違いを予測する必要があります。

ARIMAモデリングクラスを使用して時系列をモデリングするには、次の手順が適切である必要があります。

1)ACFとPACFを時系列プロットと一緒に見て、その系列が定常または非定常であるかどうかを確認します。

2)単位根の系列をテストします。これは、ADFテスト、Phillips-Perron(PP)テスト、定常性がゼロのKPSSテスト、または最も効率的なDF-GLSテストなど、最も一般的なテストの範囲で行うことができます。前述のテストの。注意!シリーズに構造的な破損が含まれている場合、これらのテストはユニットルートのnullを拒否しないように偏っています。これらのテストの堅牢性をテストする場合、および1つ以上の構造破壊が疑われる場合は、内因性構造破壊テストを使用する必要があります。2つの一般的なものは、1つの内因性構造破壊を可能にするZivot-Andrewsテストと、2つの構造破壊を可能にするClemente-Montañés-Reyesです。後者では、2つの異なるモデルを使用できます。

3)シリーズに単位根がある場合、シリーズを区別する必要があります。その後、ACF、PACF、および時系列プロットを確認し、おそらく2番目のユニットルートが安全な側にあることを確認する必要があります。ACFおよびPACFは、含めるARおよびMA用語の数を決定するのに役立ちます。

4)系列に単位根が含まれていないが、時系列プロットとACFが系列に決定論的な傾向があることを示している場合、モデルを近似するときに傾向を追加する必要があります。一部の人々は、その過程で情報が失われる可能性がありますが、決定的な傾向が含まれるシリーズを単に区別することは完全に有効であると主張します。それでも、含める必要がある多くのARおよび/またはMA用語があることを確認するために、それを変えることは良い考えです。しかし、時間の傾向は有効です。

5)さまざまなモデルを適合させ、通常の診断チェックを行います。情報基準またはMSEを使用して、適合サンプルに応じて最適なモデルを選択できます。

6)最適なモデルでサンプル予測を行い、MSE、MAPE、MADなどの損失関数を計算して、予測に使用したときに実際に最適なパフォーマンスを確認します。

7)上司のようにサンプルの予測を行い、結果に満足してください!


そして、あなたの質問に素早く答えるために。はい、できます。
Plissken

私は十分な評判を得ていないため、上記についてコメントすることはできませんでしたが、ホワイトノイズプロセスは定常的であると指摘したいと思います。その平均と分散は時間とともに変化しないため、静止しています!
Plissken 14

ダン、素晴らしい答えです!ここでの最後のコメントについては、定常的なホワイトノイズの残留になった場合、シリーズを適切にモデル化した(つまり、定常性の問題を適切に/適切に処理した)ことを示していますか?
B_Miner 14

1
はい、正確に。多くの場合、Ljung-Box Qテストを使用して残差をテストし、それらがランダムであるかどうかを確認します。その場合、モデルはデータの適切な表現です。上記の回答で言及し忘れたのは、モデルを適合させた後、適合した系列の残差のACFおよび時系列プロットを見ることができるということです。これにより、残差がホワイトノイズであるかどうかの適切な指標が得られます(ACFに大きな遅れはないはずです)。とにかく、ほとんどの統計パッケージには、Ljung-Box Qテスト用のコマンドがあります。
Plissken

ここでLjung-BoxのQテストのためのwikiリンクは次のとおりです。en.wikipedia.org/wiki/Ljung%E2%80%93Box_test
Plissken

5

時系列分析では、トレンド(または季節性などの他の要素)が決定論的であるか確率論的であるかを判断することがパズルの一部です。言われたことにいくつかのポイントを追加します。

1)決定論的傾向と確率的傾向の区別は重要です。なぜなら、データに単位根が存在する場合(ランダムウォークなど)、推論に使用される検定統計量は従来の分布に従わないためです。参照この記事をいくつかの詳細および参照のために。

ランダムウォーク(最初の違いを取得する確率的傾向)をシミュレートし、決定論的傾向の有意性をテストし、決定論的傾向のnullが拒否されるケースの割合を確認できます。Rでは、次のことができます。

require(lmtest)
iter <- 10000
cval <- 0.05
n <- 120
rejections <- 0
set.seed(123)
for (i in seq.int(iter))
{
  x <- cumsum(rnorm(n)) # random walk
  fit <- lm(x ~ seq(n))
  if (coeftest(fit)[2,"Pr(>|t|)"] < cval)
    rejections <- rejections + 1
}
100 * rejections / iter
#[1] 88.67

5%の有意水準では、95%のケースでnullを拒否することが予想されますが、この実験では、10,000のシミュレートされたランダムウォークのうち〜89%のケースでのみ拒否されました。

ユニットルートテストを適用して、ユニットルートが存在するかどうかをテストできます。ただし、線形トレンドは、ユニットルートのnullの拒否につながる可能性があることに注意する必要があります。これに対処するために、KPSSテストは線形トレンドの周りの定常性のヌルを考慮します。

2)別の問題は、レベルまたは最初の違いにおけるプロセスの決定論的要素の解釈です。切片の効果は、ランダムウォークと線形トレンドのモデルで同じではありません。実例についてはこの投稿を参照してください。

yt=μ+yt1+ϵtϵtND0σ2

ytyt

yt=μ+yt1μ+yt2+ϵt1+ϵt=2μ+yt2μ+yt3+ϵt2+ϵt1+ϵt=3μ+yt3+ϵt2+ϵt1+ϵt

到着する場所:

yt=y0+μt+=1tϵ

y0μμμ

シリーズのグラフィカルな表現が比較的明確な線形トレンドを示す場合、それが決定論的な線形トレンドの存在によるものか、ランダムウォークプロセスのドリフトによるものかを確認することはできません。補完的なグラフィックスとテストの統計を適用する必要があります。

ユニットルートおよびその他のテスト統計に基づく分析は絶対確実ではないため、注意すべきいくつかの注意事項があります。これらのテストの一部は、外れ値の観測またはレベルシフトの影響を受け、必ずしも簡単ではない遅延順序の選択を必要とする場合があります。

このパズルの回避策として、一般的な方法は、系列が静止しているように見えるまでデータの差を取り(たとえば、ゼロに速くなるはずの自己相関関数を見て)、ARMAモデルを選択することだと思います。


グレタ投稿-あなたは明らかにこのサイトの素晴らしい資産です!私はこことあなたの他の投稿を見て興味がありました-ADFまたはKPSSテストを使用して、レベルのシリーズの傾向が決定的または確率的であるかどうかを判断することは可能ですか?私はこれを見つけました:faculty.smu.edu/tfomby/eco6375/BJ%20Notes/ADF%20Notes.pdf一連のトレンドを視覚的に見る場合、テストのオプション#3を使用し、拒否しない場合にそれが見えるようにしますnullの場合、確定的傾向の証拠があります。
B_Miner 14

ダンのコメントに基づいて、ホワイトノイズの残差が得られた場合、これは重要ではありません:)
B_Miner 14

5

非常に興味深い質問です。他の人の意見も知りたいです。私は統計学者ではなく訓練を受けたエンジニアなので、誰かが私のロジックをチェックできます。エンジニアとして、シミュレーションと実験を行いたいので、私はあなたの質問をシミュレートしてテストしたいと思っていました。

以下に経験的に示すように、ARIMAXでトレンド変数を使用すると、差分の必要がなくなり、シリーズトレンドが定常になります。これが、検証に使用したロジックです。

  1. ARプロセスのシミュレーション
  2. 確定的な傾向を追加しました
  3. 差異のない上記のシリーズを外生変数としてトレンドでモデル化されたARIMAXを使用します。
  4. ホワイトノイズの残差をチェックし、純粋にランダムです

以下はRコードとプロットです。

set.seed(3215)

##Simulate an AR process
x <- arima.sim(n = 63,list(ar = c(0.7)));
plot(x)

## Add Deterministic Trend to AR
t <- seq(1, 63)
beta <- 0.8
t_beta <- ts(t*beta,frequency=1)
ar_det <- x+t_beta
plot(ar_det)

## Check with arima

ar_model <- arima(ar_det,order=c(1,0,0),xreg=t,include.mean=FALSE)

## Check whether residuals of fitted model is random

pacf(ar_model$residuals)

AR(1)シミュレーションプロット ここに画像の説明を入力してください

決定的傾向を伴うAR(1) ここに画像の説明を入力してください

外因性の傾向があるARIMAX残留PACF。残さはランダムで、パターンは残っていません ここに画像の説明を入力してください

上記からわかるように、決定論的傾向をARIMAXモデルの外生変数としてモデリングすると、差分の必要がなくなります。少なくとも決定論的なケースではうまくいきました。予測やモデル化が非常に難しい確率的傾向で、これがどのように動作するのだろうかと思います。

2番目の質問に答えるには、はい、ARIMAXを含むすべてのARIMAを静止させる必要があります。少なくともそれは教科書が言うことです。

さらに、コメントされているように、この記事を参照してください。確定的傾向と確率的傾向の非常に明確な説明と、それらを削除してトレンドを固定する方法と、このトピックに関する非常に素晴らしい文献調査。ニューラルネットワークのコンテキストで使用しますが、一般的な時系列問題に役立ちます。最終的な推奨事項は、確定的な傾向として明確に識別される場合、線形トレンド除去を行う場合、または時系列を固定するために差分を適用する場合です。審査員はまだそこにいますが、この記事で引用されているほとんどの研究者は、線形トレンド除去ではなく差分を推奨しています。

編集:

以下は、外生変数と差分アリマを使用したドリフト確率過程を伴うランダムウォークです。どちらも同じ答えを与えるように見え、本質的には同じです。

library(Hmisc)

set.seed(3215)

## ADD Stochastic Trend to simulated Arima this is AR(1) with unit root with non zero mean

y = rep(NA,63)
y[[1]] <- 2


for (i in 2:63)  {
y[i] <-3+1*y[i-1]+ rnorm(1, mean = 0, sd = 1)
} 

plot(y,type="l")

y_ts <- ts(y,frequency=1)

## Lag to create Xreg

y_1 <- Lag(y,shift=1)


## Start from 2 value to avoid NA and make it equal length with xreg

y <- window(y_ts,start =2,end=63)
xreg1 <- y_1[-1]

## Check the values with ARIMA and xreg

g <- arima(y,order=c(0,0,0),xreg=xreg1)

pacf(g$residuals)

## Check the values with ARIM

g1 <- arima(y,order=c(0,1,0))

pacf(g1$residuals)

## 

ARIMA(0,0,0) with non-zero mean 

Coefficients:
      intercept   xreg1
         3.1304  0.9976
s.e.     0.2664  0.0025

お役に立てれば!


他のビューにも興味があります-ホワイトノイズである残留は、シリーズが静止しているという要件を満たしているかどうかはわかりません。つまり、ホワイトノイズを達成できれば満足できますか。または、外生変数を含めることで、実際に「トレンドを解消」し、このシリーズを静止させますか?この後の質問のチェックは、線形回帰でトレンドを解消し、arima(1,0,0)を当てはめると同じモデル(ar1係数など)が得られるかどうかだろうか?結果は近いです。したがって、外生変数を追加することはトレンド除去と同じかもしれません。
B_Miner 14

はい、それは同じです。数か月前、ニューラルネットワークの予測記事でこれに出会いました。見つかったら参照します。
予報官14

単位根がある場合、またはモデルに定数がある場合についてのアイデアはありますか?
B_Miner 14

参照した記事で回答を更新しました。
予報官14

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