R에서 granger 인과성 테스트를 수행하는 방법


Granger 인과성 테스트는 한 시계열이 다른 시계열을 예측하는 데 유용한지 여부를 확인하는 데 사용됩니다.

이 테스트에서는 다음과 같은 귀무가설과 대립가설을 사용합니다.

귀무 가설(H 0 ): 시계열 x는 시계열 y를 Granger로 유도하지 않습니다.

대립 가설( HA ): 시계열 x Granger의 시계열이 y를 유발합니다.

“Granger 원인”이라는 용어는 특정 시차가 있는 시계열 x 값을 아는 것이 이후 기간의 시계열 y 값을 예측하는 데 유용하다는 것을 의미합니다.

이 검정은 해당 p-값을 사용하여 F-검정 통계량을 생성합니다. p-값이 특정 유의 수준(예: α = 0.05)보다 낮으면 귀무 가설을 기각하고 시계열 x Granger가 시계열 y를 유발한다고 주장할 수 있는 충분한 증거가 있다고 결론을 내릴 수 있습니다.

R에서 Granger-Causality 테스트를 수행하려면 다음 구문을 사용하는 lmtest 패키지의 grangertest() 함수를 사용할 수 있습니다.

grangertest(x, y, 순서 = 1)

금:

  • x: 첫 번째 시계열
  • y: 두 번째 시계열
  • order: 첫 번째 시계열에 사용할 오프셋 수입니다. 기본값은 1입니다.

다음 단계별 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.

1단계: 두 시계열 정의

이 예에서는 lmtest 패키지에 미리 로드된 ChickEgg 데이터 세트를 사용합니다. 이 데이터세트 값에는 1930년부터 1983년까지 미국에서 생산된 계란 수와 닭 수에 대한 정보가 포함되어 있습니다.

 #load lmtest package
library (lmtest)

#load ChickEgg dataset
data(ChickEgg)

#view first six rows of dataset
head(ChickEgg)

     chicken egg
[1,] 468491 3581
[2,] 449743 3532
[3,] 436815 3327
[4,] 444523 3255
[5,] 433937 3156
[6,] 389958 3081

2단계: Granger 인과성 검정 수행

다음으로, grangertest() 함수를 사용하여 Granger 인과성 테스트를 수행하여 만들어진 계란 수가 미래의 암탉 수를 예측하는지 확인합니다. 세 가지 오프셋을 사용하여 테스트를 실행합니다.

 #perform Granger-Causality test
grangertest(chicken ~ egg, order = 3 , data = ChickEgg)

Granger causality test

Model 1: chicken ~ Lags(chicken, 1:3) + Lags(egg, 1:3)
Model 2: chicken ~ Lags(chicken, 1:3)
  Res.Df Df F Pr(>F)   
1 44                     
2 47 -3 5.405 0.002966 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

결과를 해석하는 방법은 다음과 같습니다.

  • 모델 1: 이 모델은 지난 3년 동안의 닭 수와 지난 3년 동안의 알 수를 예측 변수로 사용하여 닭 수를 예측하려고 시도합니다.
  • 모델 2: 이 모델은 지난 3년 동안의 닭 수만을 예측 변수로 사용하여 닭 수를 예측하려고 시도합니다.
  • F: F 테스트 통계입니다. 5.405로 밝혀졌습니다.
  • Pr(>F): F-검정 통계량에 해당하는 p-값입니다. .002966으로 밝혀졌습니다.

p-값이 0.05보다 작기 때문에 검정의 귀무 가설을 기각하고 계란 수를 아는 것이 향후 암탉 수를 예측하는 데 유용하다는 결론을 내릴 수 있습니다.

3단계: 역방향으로 Granger 인과성 검정 수행

검정의 귀무가설을 기각했지만 실제로 역인과관계가 발생할 가능성도 있습니다. 즉, 암탉의 수가 계란의 수에 변화를 가져올 가능성이 있습니다.

이러한 가능성을 배제하려면 닭을 예측 변수로, 계란을 반응 변수 로 사용하여 Granger-Causality 테스트를 역으로 수행해야 합니다.

 #perform Granger-Causality test in reverse
grangertest(egg ~ chicken, order = 3 , data = ChickEgg)

Granger causality test

Model 1: egg ~ Lags(egg, 1:3) + Lags(chicken, 1:3)
Model 2: egg ~ Lags(egg, 1:3)
  Res.Df Df F Pr(>F)
1 44                 
2 47 -3 0.5916 0.6238

검정의 p-값은 0.6238입니다. 이는 0.05 이상이므로 귀무가설을 기각할 수 없습니다. 즉, 암탉의 수는 미래의 알 수를 예측하지 못합니다.

따라서 우리는 알의 수를 아는 것이 향후 암탉의 수를 예측하는 데 유용하다는 결론을 내릴 수 있습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다