프로그래밍/파이썬

토이프로젝트 - (9) 다변량 선형 확률과정 - 3단계

매 석 2023. 6. 29. 17:24
반응형

- 과거내용

 

토이프로젝트 - (8) 다변량 선형 확률과정 - 2단계

과거 내용 Granger 인과검정 전제조건 : 시계열 정상성, 테스트 방향 -> 정상성이 없는 경우, 차분을 ...

blog.naver.com

 

 

- 공적분 검정

 

비정상 시계열의 차분 횟수가 d라고 할 때, 이를 적분 차수라고 부른다.

시계열의 적분 차수가 모두 d일때, 시계열의 선형 결합의 적분 차수가 d보다 작을 때 시계열 사이에 공적분 관계가 존재한다고 한다.

그레인저 검정을 했을 때 로그 변환과 차분을 통해 정상성을 만족시켜 검정을 진행했다.

하지만 이런 경우 통계학적 문제는 해결되나 장기적인 관계에 대한 정보는 잃어버린다.

그래서 공적분 검정을 통해 공적분 관계를 찾으면 "오차수정모형"을 사용해

장, 단기에 대한 정보도 파악할 수 있다.

- 공적분 검정 기초

 

def cointegration(KDW):
    from statsmodels.tsa.vector_ar.vecm import coint_johansen
    coint_result = coint_johansen(KDW,1,1)
    cvt_result = pd.DataFrame(coint_result.cvt)
    #공적분 통계량 
    cvt_result.columns=['90%','95%','99%']
    cvt_result.index=['KS','DW']
    print(cvt_result)

-결과값
        90%      95%      99%
KS  16.1619  18.3985  23.1485
DW   2.7055   3.8415   6.6349

 

공적분 통계량의 값을 유의수준에 따라 나타낸 결과가 나온다.

한국어로는 coint_johansen에 대한 내용이 많이 없어서

영어로 검색하며 공부했다. 아래 링크를 참고하면 좋을 듯 하다.

 

 

statsmodels.tsa.vector_ar.vecm.coint_johansen VECM의 순위를 결정하는 요한센 공적분 검정을 수행합니다.

Documentation Contributors History

runebook.dev

 

- 공적분 검정

def cointegration(KDW):
    from statsmodels.tsa.vector_ar.vecm import coint_johansen
    out = coint_johansen(KDW,1,1)
    #공적분 결과값이 해당 유의수준 통계량보다 크면 유의하다.
    stats = [round(x,2) for x in out.lr1] #공적분 통계량
    sigs = [round(x,2) for x in out.cvt[:, 1]] #유의수준 0.05 관측치
    yns = [x>y for x,y in zip(stats,sigs)] # 유의 여부(장기 안정성)
    dist = np.mean(np.array(stats) - np.array(sigs)) #안정성의 강도
    print('stats: ',stats) 
    print('sig-level: ',sigs)
    print('significant_yn: ',[x>y for x,y in zip(stats,sigs)])
    print('dist: ', round(dist,2))

 

 

공적분 검정은 유의수준 0.05에서 보통 판단을 한다.

즉 95% 관측치의 값보다 공적분 결과값이 크면 유의하다고 할 수 있다.

유의하다는 것은 장기적으로 안정적인 연관이 있다는 의미이다.

- 결과값

stats:  [38.91, 4.3]
sig-level:  [18.4, 3.84]
significant_yn:  [True, True]
dist:  10.48

 

sig-level은 위에서 구했던 95% 관측치의 값과 동일하다.

즉 stats가 이 값보다 크기 때문에 True로 나타냈다.

즉 장기적으로 안정적인 연관이 있다는 것이다.

-결론

유의수준 0.05에서 코스피와 다우지수는

장기적으로 안정적인 연관이 있다고 할 수 있다.

이후 VAR 모형 또는 VECM 모형으로 돌아오려 하는데,

공적분 관계에 있는 시계열은 차분을 거치지 않고 바로 모형에

사용 가능하기에 VECM을 선택할 듯 하다.