본문 바로가기
시계열모델링

시계열 자료의 허구적 인과관계

by 다빈치스탁 2020. 10. 12.
728x90
반응형

jisu.csv
0.08MB

우선 시계열분석은 시차를 다루는 모형이라는 점에서 일반적인 회귀분석과 차이점이 있다. 동시적 영향을 고려한 정적모형이 그러한데 앞서 우리가 살펴보았던 회귀분석(2020/09/07 - [머신러닝 with R/데이터마이닝 with R] - 삼성전자 중회귀분석 with R - 심화편)이 그렇다. 즉 어떠한 임의의 시점에서의 횡단면적 분석법이고 종단면적 분석과는 괴리가 있다. 

 

이전 포스트에서 다루었던 경로분석, 주성분 분석, 요인분석 역시 자기자신의 시차변수가 설명변수로 추가되었다면 이는 전혀 다른 결과를 불러왔을 것이다. 시리얼리 코릴레이티드 된 자료를 다루는 동적 모형 분석기법을 바로 시계열 분석이라고 하는데 주로 이코노믹 쇼크가 발생했을 때 그러한 충격파가 얼마나 영향을 미칠 것인가를 탐구하는 것으로 경제와 관련된 분야에 많이 응용되고 있다. 

 

이러한 시차분포모형은 일반적인 회귀분석과 마찬가지로 다중공선성의 문제와 자유도 감소의 문제를 가지게 된다. 이럴 때 사용하는 방법이 자기회귀모형(AR)으로 대체하여 분석하고 이때 자기상관의 검정과 수정을 통해서 표준오차의 편의를 줄여 통계적 유의성을 높이는 방법을 이용한다.

 

이러한 시계열 자료를 분석할 때 유의해야 할 점이 있다. 바로 시계열 자료에 driving force 추세가 있을 경우에는 허구적 인과관계를 가질 우려가 있다. 예를 들자면 우리 나라 이혼율의 추세와 코스피 지수의 상승률, 불개미의 개체수 증가와 삼성전자의 주가 상승률 등 이러한 자료를 분석할 경우 둘 사이의 인과(상관)관계는 0.9 이상이 나올 수도 있다. 

 

따라서 이러한 허구적 인과관계를 제거하기 위해서 추세변수를 도입하거나 혹은 안정적인 시계열로 (차분)변환하여 분석을 수행해야 한다. 지난번 포스트까지는 우리는 이미 자료에 대해 로그차분을 수행한 자료를 기본 입력변수로 다루었다. 그러나 이번 포스트에서는 R의 diff 함수에 대해 알아보기 위해 원계열 자료를 그대로 가져와서 R을 통해서 1차 차분, 2차,,,n차 차분을 수행해보자.

 

아래의 코드를 돌려보면 그림과 같이 차분변환 후 시계열이 안정적으로 변환되었음을 알 수 있다. (평균이 0이고 분산이 시그마인 분포)

#작업경로를 지정하는 명령어
setwd("")

mydatat<-read.csv("jisu.csv",
                  header=TRUE, na.strings = "")

mydatat<-na.omit(mydatat)

#차분을 구할때 래그를 정하지 않거나(default : 1) 1로 정의하면
#바로 직전 값과의 차이를 계산한다.
#1차 차분 (timelag = 1)
diff(mydatat$코스피지수)
#로그차분 (timelag = 1)
d1<-diff(log(mydatat$코스피지수))

#차분을 구할때 래그를 2로 정의하면 
#바로 "직-직전값"  값과의 차이를 계산한다.
#2차 차분 (timelag = 2)
diff(mydatat$코스피지수,2)
#로그차분 (timelag = 2)
diff(log(mydatat$코스피지수),2)

#원계열 데이터
plot(mydatat$코스피지수)

#차분 안정화 시계열 
plot(d1)

728x90
반응형

댓글