Data Analysis & ML/시계열분석

[시계열분석] 다변량 선형 확률과정 - 그랜져 인과관계 (Granger Causality)

YSY^ 2022. 6. 6. 21:12

인과관계와 상관관계

Spurious Regression

  • X와 Y가 관련(인과관계)이 없거나 논리적인 스토리가 없음에도 단순하게 상관성이 높다라고 잘못 결론을 내리는 것

아이스크림 판매량과 상어에 물리는 케이스는 여름이라서 증가하는것이 둘이 관계가 있어서 같이 증가하는 것이 아님.

Post Hoc Fallacy

  • X 다음에 Y가 일어났으므로 X가 Y의 원인이라고 판단하는, 즉 시간순서가 인과관계를 담보할 것이라는 오류
    • 징크스 : 머리를 염색했더니 시험점수가 100점이 나오더라고 믿는 경우
    • 오버피팅(Overfitting) : 인과관계가 있는 데이터에서 샘플(Train) 데이터에 치우쳐버린 모델
    • Post Hoc Fallacy : 아무런 인과관계가 없는(상관관계는 높더라도) 데이터로 만든 모델  

시간상으로 봤더니 암환자와 휴대폰사용량이 비슷하게 증가하는것처럼 보이나 실제로는 아무 상관이 없음

 

Granger Causality

어떤 현상의 예측에 있어 다른 정보를 이용하는 것이 얼마나 유의미한지 나타내는 척도

  • 추론불가한 문제: "닭이 먼저인가 달걀이 먼저인가?" (인과관계) 
  • 추론가능한 문제: "닭과 달걀의 생성순서 별 서로의 영향력은 어떤가?" (Granger 인과관계) 
  • 필요성
    • 회귀분석에서 독립변수와 종속변수는 경제이론에 의해 이미 결정된 것으로 간주하고 인과관계 확인
    • 원인과 결과가 불분명한 경우 함수관계에 대한 명확한 결정은 현실적으로 어려움
  • 예시:
    • 닭과 달걀의 생산량의 인과관계
    • 단기금리와 중기금리와의 인과관계
    • 급여인상액과 소비금액의 인과관계
    • 광고비지출액와 매출액의 인과관계
    • 광고캠페인의 수치형 설정조건과 클릭수와 인과관계

 

모형의 전재

  • 과거의 사건은 현재의 사건을 유발할 수 있지만 미래의 사건은 현재의 사건을 유발할 수 없다(시간 선후)
  • 정상성: 정상성 데이터를 가정하므로 독립변수(X)와 종속변수(Y)는 모두 정상성 상태여야 함 (비정상 데이터기반 결과는 오해석 여지가 많기 때문)
  • 입력시차: 입력변수로 시차(Lagged) 적용된 변수를 반영해야 하며, 예상되는 시차가 N이라면, 1부터 N까지의 시차 모두를 입력변수로 사용해야 함
  • 최종시차: 예상시차 N에 매우 민감하므로 적합한 길이를 선택해야 함
    • 통상 연 환산빈도의 2~3배까지: 연별 자료시 2, 분기별 자료시 8, 월별 자료시 24)
    • F검정통계량의 유의한 변화에 의해 결정
  • 검정방향: 독립변수와 종속변수의 양방향 관련성 비교가 필요하기에 총2회의 검정을 수행해야 함
  • 자동화가능성: 여러가지 데이터에 일반화해서 자동화하기 어려움 
  • 주의사항: 
    • 무조건적 인과관계를 단정할 수 없음
    • 시간 선후가 유의미한 맥락을 갖는 시계열에 적용할 수 있고, 시간선후 기간기준에 따라 Granger 인과관계가 있게 될 수 있음
    • 상관관계를 두고 인과관계가 없다는 증명으로 간단히 볼 수는 있지만, 보이지 않는 요소들도 고려되어야 확실함

 

Granger 인과관계 테스트

가설확인 (t검정과 유사하며, 2번 검정 진행)

  • 대중주장(귀무가설, Null Hypothesis, H0): 한 변수가 다른 변수를 예측하는데 도움이 되지 않는다 (β = 0)
  • 나의주장(대립가설, Alternative Hypothesis, H1): 한 변수가 다른 변수를 예측하는데 도움이 된다 (β ≠ 0)

의사결정(1회 검정)

  • p-value >= 내기준(ex. 0.05): 내가 수집한(분석한) 데이터는 대중주장과 유사하니 대중주장 참 & 나의주장 거짓
    • 수집한(분석한) 데이터는 한 변수가 다른 변수를 예측하는데 도움되지 않는다
  • p-value < 내기준(ex. 0.05): 내가 수집한(분석한) 데이터는 대중주장을 벗어나니 대중주장 거짓 & 나의주장 참
    • 수집한(분석한) 데이터는 한 변수가 다른 변수를 예측하는데 도움된다 

의사결정(2회 검정 비교)

  • "Y lags로만 Y의 데이터를 선형회귀한 것의 예측력(p-value)" > "X lags + Y lags로 Y의 데이터를 선형회귀한 것의 예측력(p-value)"   
    • 수집한(분석한) 데이터는 X변수가 Y변수를 예측하는데 도움되지 않는다
  • "X lags + Y lags로 Y의 데이터를 선형회귀한 것의 예측력(p-value)" > "Y lags로만 Y의 데이터를 선형회귀한 것의 예측력(p-value)"   
    • 수집한(분석한) 데이터는 X변수가 Y변수를 예측하는데 도움된다   

결과 해석

1. "X가 Y에 인과영향을 준다" + "Y는 X에 인과영향을 주지 않는다" 

  • X가 Y에 선행한다고 볼 수 있기에, X가 Y의 인과요인이 될 가능성이 높음  

2. "Y가 X에 인과영향을 준다" + "X는 Y에 인과영향을 주지 않는다" 

  • Y가 X에 선행한다고 볼 수 있기에, Y가 X의 인과요인이 될 가능성이 높음

3. "X가 Y에 인과영향을 준다" + "Y도 X에 인과영향을 준다" 

  • 쌍방으로 Granger Causality가 성립하는 경우로 이 경우 제3의 외부변수(Exogenous Variable)가 영향을 공통으로 주었을 가능성이 높음 
  • 제3의 외부변수(Exogenous Variable)를 알아내던가 포기하던가 해야하며, VAR모형을 사용해야 할 수 있음(Granger Causality도 VAR모형 중 하나) 

   4. "X가 Y에 인과영향을 주지 않는다" + "Y도 X에 인과영향을 주지 않는다"   

  • 두 변수가 서로 인과영향을 주지 않는다고 볼 수도 있지만 단언은 어려움 
  • ARIMA모형으로 추가 확인이 가능할 수 있음 
  • 입력되는 최종 시차에 따라 달라질 수 있으므로 시차에 따른 해석을 달리 할 수도 있음(사람의 경험과 판단이 개입되어야 함)

 

해당 포스팅은 패스트캠퍼스의 <파이썬을 활용한 시계열 데이터 분석 A-Z 올인원 패키지> 강의를 듣고 정리한 내용입니다

728x90
반응형