ARMA-GARCH 모델을 사용하여 외환 가격 시뮬레이션


10

ARIMA (1,1,1) -GARCH (1,1) 모델을 몇 년에 걸쳐 1 분 간격으로 샘플링 된 AUD / USD 환율 로그 가격의 시계열에 맞추 었습니다. 모델을 추정 할 수있는 수백만 개의 데이터 포인트. 데이터 집합을 사용할 수 있습니다 여기에 . 명료하게하기 위해, 이것은 로그 가격의 1 차 통합으로 인해 로그 리턴에 적합한 ARMA-GARCH 모델이었습니다. 원래 AUD / USD 시계열은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

그런 다음 적합 모델을 기반으로 시계열을 시뮬레이션하려고 시도하여 다음을 제공합니다.

여기에 이미지 설명을 입력하십시오

시뮬레이션 된 시계열이 원래 시리즈와 다를 것으로 기대하고 싶었지만 그렇게 큰 차이가있을 것으로 기대하지는 않았습니다. 본질적으로, 나는 시뮬레이션 된 시리즈가 원본처럼 동작하거나 넓게 보이기를 원합니다.

이것은 모델을 추정하고 시리즈를 시뮬레이션하는 데 사용한 R 코드입니다.

library(rugarch)
rows <- nrow(data)
data <- (log(data[2:rows,])-log(data[1:(rows-1),]))
spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "std")
fit <- ugarchfit(spec = spec, data = data, solver = "hybrid")
sim <- ugarchsim(fit, n.sim = rows)
prices <- exp(diffinv(fitted(sim)))
plot(seq(1, nrow(prices), 1), prices, type="l")

그리고 이것은 추정 출력입니다 :

*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : sGARCH(1,1)
Mean Model  : ARFIMA(1,0,1)
Distribution    : std 

Optimal Parameters
------------------------------------
        Estimate  Std. Error     t value Pr(>|t|)
mu      0.000000    0.000000   -1.755016 0.079257
ar1    -0.009243    0.035624   -0.259456 0.795283
ma1    -0.010114    0.036277   -0.278786 0.780409
omega   0.000000    0.000000    0.011062 0.991174
alpha1  0.050000    0.000045 1099.877416 0.000000
beta1   0.900000    0.000207 4341.655345 0.000000
shape   4.000000    0.003722 1074.724738 0.000000

Robust Standard Errors:
        Estimate  Std. Error   t value Pr(>|t|)
mu      0.000000    0.000002 -0.048475 0.961338
ar1    -0.009243    0.493738 -0.018720 0.985064
ma1    -0.010114    0.498011 -0.020308 0.983798
omega   0.000000    0.000010  0.000004 0.999997
alpha1  0.050000    0.159015  0.314436 0.753190
beta1   0.900000    0.456020  1.973598 0.048427
shape   4.000000    2.460678  1.625568 0.104042

LogLikelihood : 16340000 

모델링 및 시뮬레이션을 개선하는 방법에 대한 지침 또는 내가 한 오류에 대한 통찰력에 대해 매우 감사드립니다. 모델 잔차가 시뮬레이션 시도에서 노이즈 항으로 사용되지 않는 것처럼 보이지만 통합 방법은 확실하지 않습니다.


1
안녕 제프! 또한 잠재적 조력자에게 데이터 (또는 적어도 대표 샘플)를 제공해야합니다. 또한 샘플 코드에는 사용한 패키지 ( ugarchspec()ugarchsim()기능이 있는 위치)가 포함되어 있지 않습니다 . 여기에 질문 할 때마다 코드를 재현 할 수 있는지 확인하십시오. "사람들이 당신을 도울 수 있도록 도와 줄 것"입니다.
SavedByJESUS

@SavedByJESUS ​​조언을 주셔서 감사합니다. 내가 사용한 R 라이브러리를 포함하도록 게시물을 업데이트하고 내 데이터 형식을 명확히했습니다.
Jeff

시뮬레이션 된 데이터가 원래 시리즈와 다른 주된 이유는 단순히 적합 모델 ARMA (1, 1, 1) GARCH (1, 1)이 데이터에 적합한 모델이 아니기 때문입니다. 먼저 모델을 개선하여 시작해야합니다. 그러면 후속 시뮬레이션이 원본 데이터와 유사합니다.
SavedByJESUS

답변:


1

나는 외환 데이터 예측을 사용하고 있으며 ARMA, ARIMA, GARCH, ARCH 등의 통계적 예측 방법을 사용할 때마다 나를 믿습니다. 미리 예측하려고 할 때 항상 악화되는 경향이 있습니다. 그들은 다음 1-2 년 동안 작동 할 수도 있고 작동하지 않을 수도 있지만 확실히 그 이상은 아닙니다. 처리하는 데이터에는 자동 상관 관계가 없으며 추세 및 계절성이 없습니다.

ARMA 및 GARCH를 사용하기 전에 ACFPACF 를 확인 하거나 추세, 계절성을 테스트 했습니까? 데이터 통계 예측에서 위에서 언급 한 속성이 없으면 이러한 모델의 기본 가정을 위반하기 때문에 통계 예측이 작동하지 않습니다.


귀하의 의견 @JAbr에 감사드립니다, 그러나 나는 실제로 예측하지 않습니다. 오히려 내 응용 프로그램은 관찰 된 데이터와 동일한 통계적 특성을 가진 대체 가격 경로를 엄격히 시뮬레이션합니다.
Jeff

그래도 다른 와드에서는 실제로 garch 모델을 사용하여 예측하고 있지 않습니다. 시뮬레이션은 garch를 사용하며 garch는 예측을 통해 관찰을 생성합니다.
JAbr

물론, 미래가 더욱 확대 될수록 시계열 모델 예측은 저하된다고합니다. 나는 단일 기간의 수평선에서 시뮬레이션 (또는 예측) 할 때조차도 모델이 시리즈의 역학을 충분히 포착하지 못한다고 제안합니다.
Jeff

나는 "그들은 다음 1-2 년 동안 효과가있을 수있다"고 말했다.
JAbr

0

선택한 모델이 데이터에 적합한 지 확인하는 것이 좋습니다.

  • 주기적 또는 계절적 구성 요소가 없는지 확인하십시오.
  • Augmented Dickey Fuller Test를 수행하여 단위근의 존재를 테스트하십시오. 만약 유닛 루트가 존재한다면, Augmented Dickey Fuller Test가 유닛 루트가 없음을 보여줄 때까지 데이터 차이를 유지하십시오. 대안으로, 자동 상관 계수를 관찰하면, 정상성에 대해 n 시간이 경과 한 후에 감소해야합니다.
  • 잘못된 주문을 사용하여 모델에 과적 합 또는 과적 합한 것일 수 있습니다. AIC 및 BIC를 사용하여 올바른 주문을 찾으십시오.

distribution.model="std"

네 말이 맞아 답변을 편집하겠습니다.
A-ar

과적 합에 대해 걱정하지 않습니다. 실제로 의도 한 응용 프로그램에서는 과적 합을 원합니다. 나는 계절성에 대한 것이 아니라 정상 성을 테스트했습니다. 이러한 문제와 상관없이 GARCH 모델이 올바르게 작동하지 않는 것 같습니다. 마치 시뮬레이션 된 시리즈가 완전히 동질적인 것처럼 보입니다.
Jeff
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.