시계열 예측의 확률 론적 vs 결정 론적 추세 / 계절


16

시계열 예측에 적당한 배경 지식이 있습니다. 여러 예측 책을 살펴본 결과 다음 질문 중 어느 것도 다루지 않았습니다.

두 가지 질문이 있습니다.

  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

답변:


15

1) 첫 번째 질문과 관련하여, 일부 테스트 통계는 고정도 및 단위 루트의 null을 테스트하기 위해 문헌에서 개발 및 논의되었습니다. 이 문제에 대해 작성된 많은 논문 중 일부는 다음과 같습니다.

트렌드 관련 :

  • Dickey, D. y Fuller, 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), 단위근의 대안에 대한 정지성의 귀무 가설 테스트 : 경제 시계열에 단위근이 있다는 것이 얼마나 확실합니까? , Econometrics 저널 54, 159-178.
  • Phillips, P. y Perron, 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), 계절 통합 및 공적분, 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, Econometric Institute.
  • 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 및 비 정적 데이터의 계량 분석, 계량 경제학 고급 텍스트. 옥스포드 대학 출판사도 좋은 참고 자료입니다.

2) 두 번째 관심사는 문헌에 의해 정당화됩니다. 단위근 테스트가있는 경우 선형 추세에 적용 할 기존 t- 통계량은 표준 분포를 따르지 않습니다. 예를 들어, Phillips, P. (1987), 단위 루트를 사용한 시계열 회귀, Econometrica 55 (2), 277-301을 참조하십시오.

단위근이 존재하고 무시되면 선형 추세 계수가 0 인 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")

먼저 Dickey-Fuller 테스트를 사용하여 단위 루트의 null에 적용 할 수 있습니다.

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 테스트에서 선형성의 널 (null)은 선형 추세를 가진 모델을 선호하여 거부됩니다.

참고 : lshort=FALSEKPSS 테스트의 널 (null) 사용 은 5 % 수준에서 거부되지 않지만 5 개의 지연을 선택합니다. 여기에 표시되지 않은 추가 검사는 1-3 지연을 선택하는 것이 데이터에 적합하며 귀무 가설을 기각하도록 유도합니다.

원칙적으로 우리는 귀무 가설을 기각 할 수있는 검정 (무효를 기각하지 않은 검정이 아닌)으로 스스로를 안내해야합니다. 그러나 선형 추세에 대한 원래 시리즈의 회귀는 신뢰할 수없는 것으로 나타납니다. 한편으로, R- 제곱은 높고 (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) 로컬 추세 모델에서 기울기 성분의 분산은 0으로 추정됩니다. 이것은 추세 성분을 선형 추세의 영향을 미치는 드리프트로 바꿉니다. 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가 제안한 것처럼 특이 치의 존재 여부를 확인하는 것이 좋습니다. 패키지를 사용하여 두 개의 추가 특이 치가 감지됩니다 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 테스트에 의해 지원됩니다. 초기 모형 ( fit1, fit2) 의 잔차에서 정규성 이 없음은 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

확실히 완전한 분석은 잔차를 검사해야합니다. 나는 "예측 자"가 요구 한 테스트를 적용하고 그 사용법을 설명하는 데 사용할 수있는 몇 가지 도구의 이름을 정하기 위해 대답을 제한했습니다. 자세한 내용에 관심이 있으신 것을 기쁘게 생각합니다. 제 질문을 편집했습니다.
javlacalle

나는 잔차의 시간 도표를 요청했다. AUTOBOX로 처리하여 분명한 구조가 없음을 확인할 수 있도록 잔차를 제공하고 잔차를 직접 제공 할 수 있습니까? JB 테스트는 데이터 세트에서 펄스, 레벨 시프트, 계절 펄스 및 / 또는 로컬 시간 추세를 테스트 할 때는 바람직하지 않습니다. 이러한 유형의 구조가 있으면 정규 가정의 거부가 발생할 수 있습니다. 널이 거부되지 않는다면 그것이 받아 들일 수 있다는 증거라는 생각은 위험 할 수 있습니다. 참조하시기 바랍니다 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)] : 펄스 27 + [X4 (T)] [(+ 4505.5)] : 펄스 52 + [X5 (T)] [(+ 3967.5)] : 펄스 48
아일랜드어

1
@B_Miner 일반적으로 잔차의 자기 상관 함수를 살펴 보는 것으로 시작합니다. 대량 주문에 대해 자기 상관이 중요하고 큰 경우 (즉, ACF가 기하 급수적으로 0으로 감소하지 않는 경우) 잔차에 대해 단위 근 테스트를 적용하는 것을 고려할 수 있습니다. 잔차 분석에서 단위 근이 있음을 시사하는 경우 원래 데이터에서 첫 번째 차이를 두 번 (즉, 차이 계열에서 다시 차이를 가져야 함) 의미합니다.
javlacalle

4

비 계절 데이터와 관련하여 ... 트렌드는 y (t) = y (t-1) + θ0 (A) 확률 적 경향 또는 Y (t) = a + bx1 + cx2 (B) 결정론의 두 가지 형식 일 수 있습니다. x1 = 1,2,3,4 .... t 및 x2 = 0,0,0,0,0,1,2,3,4 인 추세 등 하나의 추세가 관측치 1t 및 두 번째 추세에 적용됩니다. 관측치 6에서 t에 적용됩니다.

비 계절 계열에는 29 개의 값이 있습니다. 완전히 자동화 된 방식으로 개발하는 데 도움이되는 소프트웨어 인 AUTOBOX를 사용했습니다. AUTOBOX는 모델링 프로세스의 각 단계를 자세히 설명하는 투명한 절차입니다. 시리즈 / 적합한 값 / 예측 그래프가 여기에 표시됩니다 여기에 이미지 설명을 입력하십시오. AUTOBOX를 사용하여 유형 A 모델을 형성하면 다음과 같은 결과가 발생했습니다 여기에 이미지 설명을 입력하십시오. 방정식이 여기 여기에 이미지 설명을 입력하십시오에 다시 표시됩니다 여기에 이미지 설명을 입력하십시오. 모델의 통계는 다음과 같습니다 . 여기에 이미지 설명을 입력하십시오예측값 표가있는 동안 잔차 그림 이 표시됩니다 여기에 이미지 설명을 입력하십시오. AUTOBOX를 유형 B 모델로 제한하면 기간 14 :에서 증가 추세를 감지하는 AUTOBOX가 발생했습니다. 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오!여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오

모형 비교 측면에서, 적합 관측치의 수가 다르기 때문에 (각각 26 및 29),이 경우에 끄덕임이 있지만 표준 측정치 (예 : r-square, error standard dev, AIC 등)를 사용하여 지배력을 결정할 수 없습니다. AR (2) 구조로 인해 A의 잔차가 더 좋습니다. B의 예측은 다소 공격적인 반면 A 예측의 패턴은 더 직관적입니다. 4 개의 관측치를 말하고 4 개의 별개의 원점 (25,26,27 및 28)에서 1 기간 동안 예측 정확도를 평가할 수 있습니다.


2 아일랜드 스탯은 탁월한 반응을 보여줍니다. 나는 우리가 yt = y (t-1) + a + bt = ct 인 확률 론적 결정 론적 경향을 결합 할 것이라는 것을 읽었습니다. 도움이 될 것입니다
예측 자

phi가 [1-B]라고하면 y (t) = B0 + B1 * t + a (t) [thetha / phi] 모델 형식이 축소됩니다. 분수를 지우면 t 변수가 본질적으로 다르므로 B0과 상수 충돌이 발생합니다. 즉, 시간 표시기와 결합 된 ARIMA 구조가 혼란을 야기 할 수 있습니다. 지정한 모델은 추정 가능하지만 선호되는 접근 방식은 아닙니다 (내 생성이 부족할 수도 있습니다! 이것을 읽는 다른 사람이 이것에 대해 도움이 될 수 있습니다. 전달 함수의 적절한 서브 세트가 아닙니다. i.imgur.com/dv4bAts.png
IrishStat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.