時系列予測における確率的対決定論的傾向/季節性


16

時系列予測のバックグラウンドは中程度です。私はいくつかの予測の本を見ましたが、それらのいずれにも対処された以下の質問はありません。

2つの質問があります。

  1. 特定の時系列に以下が含まれている場合、どのように客観的に(統計テストを介して)決定しますか?

    • 確率的季節性または決定論的季節性
    • 確率的傾向または決定論的傾向
  2. 時系列に明確な確率的要素があるときに、時系列を決定論的な傾向/季節性としてモデル化するとどうなりますか?

これらの質問に対処するための助けをいただければ幸いです。

傾向のデータ例:

7,657
5,451
10,883
9,554
9,519
10,047
10,663
10,864
11,447
12,710
15,169
16,205
14,507
15,400
16,800
19,000
20,198
18,573
19,375
21,032
23,250
25,219
28,549
29,759
28,262
28,506
33,885
34,776
35,347
34,628
33,043
30,214
31,013
31,496
34,115
33,433
34,198
35,863
37,789
34,561
36,434
34,371
33,307
33,295
36,514
36,593
38,311
42,773
45,000
46,000
42,000
47,000
47,500
48,000
48,500
47,000
48,900

自然には4つの状態があります。モデルのサンプル空間は比較的無制限なので、この質問に対する分析的な解決策はありません。この厄介な質問に経験的に答えるために、私はAUTOBOX autobox.com/cmsの開発を支援しました。AUTOBOXはトーナメントを開催してこれら4つのケースすべてを調査し、4つの結果モデルの品質を必要性と十分性の観点から評価します。選択した時系列の例を投稿してみてください。この問題がどのように解決されたかを示す4つの結果を投稿します。
IrishStat 14年

回答:


15

1)最初の質問に関して、定常性のヌルと単位根のヌルをテストするために、いくつかのテスト統計が開発され、文献で議論されています。この問題に関して書かれた多くの論文の一部は次のとおりです。

トレンドに関連:

  • ディッキー、D。yフラー、W。(1979a)、単位根を持つ自己回帰時系列の推定量の分布、Journal of the American Statistical Association 74、427-31。
  • Dickey、D. y Fuller、W.(1981)、単位根を持つ自己回帰時系列の尤度比統計、Econometrica 49、1057-1071。
  • Kwiatkowski、D.、Phillips、P.、Schmidt、P. y Shin、Y.(1992)、単位根の代替に対する定常性の帰無仮説のテスト:その経済時系列に単位根があることをどのように確認しますか? 、Journal of Econometrics 54、159-178。
  • フィリップス、P。yペロン、P。(1988)、時系列回帰における単位根のテスト、Biometrika 75、335-46。
  • Durlauf、S。y Phillips、P。(1988)、時系列分析におけるトレンド対ランダムウォーク、Econometrica 56、1333-54。

季節的要素に関連する:

  • Hylleberg、S.、Engle、R.、Granger、C. y Yoo、B.(1990)、Seasonal integration and cointegration、Journal of Econometrics 44、215-38。
  • Canova、F。y Hansen、BE(1995)、季節パターンは時間とともに一定ですか?季節的な安定性のテスト、Journal of Business and Economic Statistics 13、237-252。
  • Franses、P.(1990)、月次データの季節単位根のテスト、テクニカルレポート9032、計量経済研究所。
  • Ghysels、E.、Lee、H。y Noh、J。(1994)、季節時系列の単位根のテスト。いくつかの理論的拡張とモンテカルロ調査、Journal of Econometrics 62、415-442。

教科書Banerjee、A.、Dolado、J.、Galbraith、J. y Hendry、D.(1993)、Co-Integration、Error Correction、and econometric analysis of non-stationary data、Advanced Texts in Econometrics。Oxford University Pressも参考になります。

2)あなたの2番目の懸念は文献によって正当化されます。単位根検定がある場合、線形トレンドに適用する従来のt統計は標準分布に従いません。たとえば、Phillips、P.(1987)、単位根による時系列回帰、Econometrica 55(2)、277-301を参照してください。

単位根が存在し、無視される場合、線形トレンドの係数がゼロであるというnullを拒否する確率は減少します。つまり、特定の有意水準に対して、決定論的な線形トレンドを頻繁にモデリングすることになります。単位根が存在する場合、代わりにデータに定期的な差異を取得してデータを変換する必要があります。

3)説明のために、Rを使用する場合、データを使用して次の分析を実行できます。

x <- structure(c(7657, 5451, 10883, 9554, 9519, 10047, 10663, 10864, 
  11447, 12710, 15169, 16205, 14507, 15400, 16800, 19000, 20198, 
  18573, 19375, 21032, 23250, 25219, 28549, 29759, 28262, 28506, 
  33885, 34776, 35347, 34628, 33043, 30214, 31013, 31496, 34115, 
  33433, 34198, 35863, 37789, 34561, 36434, 34371, 33307, 33295, 
  36514, 36593, 38311, 42773, 45000, 46000, 42000, 47000, 47500, 
  48000, 48500, 47000, 48900), .Tsp = c(1, 57, 1), class = "ts")

まず、ユニットルートのnullにDickey-Fullerテストを適用できます。

require(tseries)
adf.test(x, alternative = "explosive")
#   Augmented Dickey-Fuller Test
#   Dickey-Fuller = -2.0685, Lag order = 3, p-value = 0.453
#   alternative hypothesis: explosive

そして、逆帰無仮説のKPSSテスト、線形トレンドの周りの定常性の代替に対する定常性:

kpss.test(x, null = "Trend", lshort = TRUE)
#   KPSS Test for Trend Stationarity
#   KPSS Trend = 0.2691, Truncation lag parameter = 1, p-value = 0.01

結果:ADFテスト、有意水準5%で、単位根は拒否されません。KPSSテストでは、線形トレンドのモデルを支持して、定常性のヌルが拒否されます。

脇に注意してください:lshort=FALSEKPSSテストのnullの使用は5%レベルで拒否されませんが、5ラグを選択します。ここに示されていないさらなる検査は、データに対して1〜3ラグを選択することが適切であり、帰無仮説を棄却することを示唆しています。

原則として、帰無仮説を棄却できなかった(受け入れた)テストではなく、帰無仮説を棄却することができたテストによって自分自身を導く必要があります。ただし、線形トレンドでの元の系列の回帰は信頼できないことが判明しました。一方では、R 2乗が高く(90%以上)、偽回帰の指標として文献で指摘されています。

fit <- lm(x ~ 1 + poly(c(time(x))))
summary(fit)
#Coefficients:
#                 Estimate Std. Error t value Pr(>|t|)    
#(Intercept)       28499.3      381.6   74.69   <2e-16 ***
#poly(c(time(x)))  91387.5     2880.9   31.72   <2e-16 ***
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
#Residual standard error: 2881 on 55 degrees of freedom
#Multiple R-squared:  0.9482,   Adjusted R-squared:  0.9472 
#F-statistic:  1006 on 1 and 55 DF,  p-value: < 2.2e-16

一方、残差は自己相関しています:

acf(residuals(fit)) # not displayed to save space

さらに、残差の単位根のヌルは拒否できません。

adf.test(residuals(fit))
#   Augmented Dickey-Fuller Test
#Dickey-Fuller = -2.0685, Lag order = 3, p-value = 0.547
#alternative hypothesis: stationary

この時点で、予測の取得に使用するモデルを選択できます。たとえば、構造的時系列モデルとARIMAモデルに基づく予測は、次のように取得できます。

# StructTS
fit1 <- StructTS(x, type = "trend")
fit1
#Variances:
# level    slope  epsilon  
#2982955        0   487180 
# 
# forecasts
p1 <- predict(fit1, 10, main = "Local trend model")
p1$pred
# [1] 49466.53 50150.56 50834.59 51518.62 52202.65 52886.68 53570.70 54254.73
# [9] 54938.76 55622.79

# ARIMA
require(forecast)
fit2 <- auto.arima(x, ic="bic", allowdrift = TRUE)
fit2
#ARIMA(0,1,0) with drift         
#Coefficients:
#         drift
#      736.4821
#s.e.  267.0055
#sigma^2 estimated as 3992341:  log likelihood=-495.54
#AIC=995.09   AICc=995.31   BIC=999.14
#
# forecasts
p2 <- forecast(fit2, 10, main = "ARIMA model")
p2$mean
# [1] 49636.48 50372.96 51109.45 51845.93 52582.41 53318.89 54055.37 54791.86
# [9] 55528.34 56264.82

予測のプロット:

par(mfrow = c(2, 1), mar = c(2.5,2.2,2,2))
plot((cbind(x, p1$pred)), plot.type = "single", type = "n", 
  ylim = range(c(x, p1$pred + 1.96 * p1$se)), main = "Local trend model")
grid()
lines(x)
lines(p1$pred, col = "blue")
lines(p1$pred + 1.96 * p1$se, col = "red", lty = 2)
lines(p1$pred - 1.96 * p1$se, col = "red", lty = 2)
legend("topleft", legend = c("forecasts", "95% confidence interval"), 
  lty = c(1,2), col = c("blue", "red"), bty = "n")
plot((cbind(x, p2$mean)), plot.type = "single", type = "n", 
  ylim = range(c(x, p2$upper)), main = "ARIMA (0,1,0) with drift")
grid()
lines(x)
lines(p2$mean, col = "blue")
lines(ts(p2$lower[,2], start = end(x)[1] + 1), col = "red", lty = 2)
lines(ts(p2$upper[,2], start = end(x)[1] + 1), col = "red", lty = 2)

トレンド予測

予測は両方のケースで類似しており、合理的に見えます。予測は線形トレンドに似た比較的決定的なパターンに従いますが、線形トレンドを明示的にモデル化していないことに注意してください。その理由は次のとおりです。i)ローカルトレンドモデルでは、スロープ成分の分散はゼロと推定されます。これにより、トレンドコンポーネントが線形トレンドの効果を持つドリフトに変わります。ii)ARIMA(0,1,1)、ドリフトのあるモデルが差分シリーズのモデルで選択されます。差分シリーズに対する定数項の効果は線形トレンドです。これについては、この投稿で説明します。

ドリフトのないローカルモデルまたはARIMA(0,1,0)が選択されている場合、予測は水平の直線であるため、観測されたデータのダイナミクスとは類似していないことを確認できます。さて、これはユニットルートテストと決定論的コンポーネントのパズルの一部です。

編集1(残差の検査): 自己相関と部分ACFは、残差の構造を示唆していません。

resid1 <- residuals(fit1)
resid2 <- residuals(fit2)
par(mfrow = c(2, 2))
acf(resid1, lag.max = 20, main = "ACF residuals. Local trend model")
pacf(resid1, lag.max = 20, main = "PACF residuals. Local trend model")
acf(resid2, lag.max = 20, main = "ACF residuals. ARIMA(0,1,0) with drift")
pacf(resid2, lag.max = 20, main = "PACF residuals. ARIMA(0,1,0) with drift")

ACF-PACF

IrishStatが示唆したように、外れ値の存在を確認することもお勧めします。パッケージを使用して、2つの加算外れ値が検出されますtsoutliers

require(tsoutliers)
resol <- tsoutliers(x, types = c("AO", "LS", "TC"), 
  remove.method = "bottom-up", 
  args.tsmethod = list(ic="bic", allowdrift=TRUE))
resol
#ARIMA(0,1,0) with drift         
#Coefficients:
#         drift        AO2       AO51
#      736.4821  -3819.000  -4500.000
#s.e.  220.6171   1167.396   1167.397
#sigma^2 estimated as 2725622:  log likelihood=-485.05
#AIC=978.09   AICc=978.88   BIC=986.2
#Outliers:
#  type ind time coefhat  tstat
#1   AO   2    2   -3819 -3.271
#2   AO  51   51   -4500 -3.855

ACFを見ると、5%の有意水準では、このモデルでも残差がランダムであると言えます。

par(mfrow = c(2, 1))
acf(residuals(resol$fit), lag.max = 20, main = "ACF residuals. ARIMA with additive outliers")
pacf(residuals(resol$fit), lag.max = 20, main = "PACF residuals. ARIMA with additive outliers")

ここに画像の説明を入力してください

この場合、潜在的な外れ値の存在は、モデルのパフォーマンスを歪めるようには見えません。これは、正常性に関するJarque-Beraテストでサポートされています。初期モデルからの残差の正規性のヌル(fit1fit2)は、5%の有意水準で拒否されません。

jarque.bera.test(resid1)[[1]]
# X-squared = 0.3221, df = 2, p-value = 0.8513
jarque.bera.test(resid2)[[1]]
#X-squared = 0.426, df = 2, p-value = 0.8082

編集2(残差とその値のプロット) これは、残差がどのように見えるかです:

残差

そして、これらはcsv形式の値です:

0;6.9205
-0.9571;-2942.4821
2.6108;4695.5179
-0.5453;-2065.4821
-0.2026;-771.4821
0.1242;-208.4821
0.1909;-120.4821
-0.0179;-535.4821
0.1449;-153.4821
0.484;526.5179
1.0748;1722.5179
0.3818;299.5179
-1.061;-2434.4821
0.0996;156.5179
0.4805;663.5179
0.8969;1463.5179
0.4111;461.5179
-1.0595;-2361.4821
0.0098;65.5179
0.5605;920.5179
0.8835;1481.5179
0.7669;1232.5179
1.4024;2593.5179
0.3785;473.5179
-1.1032;-2233.4821
-0.3813;-492.4821
2.2745;4642.5179
0.2935;154.5179
-0.1138;-165.4821
-0.8035;-1455.4821
-1.2982;-2321.4821
-1.9463;-3565.4821
-0.1648;62.5179
-0.1022;-253.4821
0.9755;1882.5179
-0.5662;-1418.4821
-0.0176;28.5179
0.5;928.5179
0.6831;1189.5179
-1.8889;-3964.4821
0.3896;1136.5179
-1.3113;-2799.4821
-0.9934;-1800.4821
-0.4085;-748.4821
1.2902;2482.5179
-0.0996;-657.4821
0.5539;981.5179
2.0007;3725.5179
1.0227;1490.5179
0.27;263.5179
-2.336;-4736.4821
1.8994;4263.5179
0.1301;-236.4821
-0.0892;-236.4821
-0.1148;-236.4821
-1.1207;-2236.4821
0.4801;1163.5179

1
モデルからの残差がランダムである、つまり、外れ値やARIMA構造がないことを検証しました。これは、推定係数の有意性の検定に意味があります。残差に外れ値がある場合、肥大化した誤差分散が過小評価されたACFにつながるため、ACFは無意味であることに注意してください。ランダム性を証明/示唆するエラーのプロットを提供してください。さもなければ、無相関の残差に関するあなたの結論はおそらく間違っているかもしれません。
IrishStat 14年

間違いなく完全な分析には、残差の検査が必要です。「予測者」が求めているテストの適用に使用できるいくつかのツールの名前に答えを限定し、その使用法を説明しました。私はあなたがより詳細に興味を持っているのを見てうれしいです、私は私の質問を編集しました。
javlacalle 14年

私は残差の時間プロットを求めました。それらを提供し、残差自体も提供してください。AUTOBOXで処理して、明らかな構造がないことを確認できます。JBテストは、データセットのパルス、レベルシフト、季節的パルス、および/またはローカル時間の傾向をテストする場合は、これらの種類の構造の存在が正規性の仮定の拒否を引き起こす可能性がありますが、好ましくありません。nullが拒否されない場合、そのnullがacceptabceの証拠であるという考えは危険です。unc.edu/~jbhill/tsay.pdfを
IrishStat

1
ありがとう。57の残差を提出し、そのうちの5つは暫定的に例外としてフラグ付けされました。重要度順に(51,3,27,52および48)。グラフはこれらの点を視覚的にサポートします。結果として生じるエラーは、ランダム性の違反を示さず、その後重要なACFを示しません。観測値を調整して異常検出に対応するには、次を使用してください。+ [X1(T)] [(-4494.5)]:PULSE 51 + [X2(T)] [(+ 4937.5)]:PULSE 3 + [X3 (T)] [(+ 4884.5)]:PULSE 27 + [X4(T)] [(+ 4505.5)]:PULSE 52 + [X5(T)] [(+ 3967.5)]:PULSE 48
IrishStat

1
@B_Miner通常は、残差の自己相関関数を調べることから始めます。自己相関が大きく、大きな次数に対して大きい場合(つまり、ACFが指数関数的にゼロに減衰しない場合)、残差に単位根検定を適用することを検討できます。残差の分析で単位根があることが示唆された場合、元のデータで最初の差異を2回取得する必要があることを意味します(つまり、差異のあるシリーズで再び差異を取得します)。
javlacalle 14

4

非季節データについて...トレンドは、y(t)= y(t−1)+θ0(A)確率的傾向またはY(t)= a + bx1 + cx2(B)決定的の2つの形式になりますx1 = 1,2,3,4 .... tおよびx2 = 0,0,0,0,0,1,2,3,4であるトレンドなど。したがって、1つのトレンドが観測1-tに適用され、2番目のトレンドが適用されます。観測6〜tに適用されます。

非季節シリーズには29個の値が含まれていました。AUTOBOXを使用して、完全に自動化された方法で開発を支援したソフトウェアを使用しました。AUTOBOXは、モデリングプロセスの各ステップの詳細を示す透過的な手順です。ここでは、系列/適合値/予測のグラフが表示されますここに画像の説明を入力してください。AUTOBOXを使用してタイプAモデルを形成すると、次のようになりましたここに画像の説明を入力してください。ここで方程式を再び示しますここに画像の説明を入力してください、モデルの統計はここに画像の説明を入力してくださいです。残差のプロットはこちらここに画像の説明を入力してください、予測値の表はこちらここに画像の説明を入力してくださいです。AUTOBOXをタイプBモデルに制限すると、AUTOBOXは期間14:で増加傾向を検出しました。ここに画像の説明を入力してください ここに画像の説明を入力してくださいここに画像の説明を入力してくださいここに画像の説明を入力してくださいここに画像の説明を入力してくださいここに画像の説明を入力してください

モデルの比較に関して:当てはめられた観測値の数がそれぞれ異なるため(それぞれ26と29)、この場合はnodはAに進みます。AR(2)構造により、Aからの残差が良くなります。A予測のパターンはより直感的ですが、Bからの予測は少し積極的です。4つの観測値を控えて、4つの異なる起源(25、26、27、28)からの1期間の予測の予測精度を評価できます。


2アイルランドの統計は優れた反応を示します。私は、確率論的および決定論的傾向を組み合わせて、yt = y(t-1)+ a + bt = ctであるということをいくつか読みました。それは役立つだろう
予測者

モデル形式y(t)= B0 + B1 * t + a(t)[thetha / phi]は、phiが[1-B]の場合に崩壊します。言い換えると、時間インジケータと結合されたARIMA構造は大混乱を引き起こす可能性があります。指定したモデルは推定可能ですが、間違いなく推奨されるアプローチではありません(おそらく内生性の欠如!)。これを読んでいる他の誰かがコメントすることができます。これは伝達関数の適切なサブセットではありませんi.imgur.com/dv4bAts.png
IrishStat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.