반응형

Data Analysis & ML 109

[인과추론] 인과추론의 단계(2) (자연실험 / 평행추세가정 / 도구변수)

인과관계에 관한 근거의 단계 자연실험 이중차분법의 발전된 형태 지역(집단)별로 상이하게 발생하는 원인을 기준으로 비교분석하는 자연실험에서는 임의의 시점에서 비교가능한 대상을 상대적으로 쉽게 구성할 수 있음 실험은 실험인데 내가 한 실험이 아니라 ‘자연’이 한 실험이 자연실험. 자연의 가장 큰 특징은 “무작위”라는 것 자연실험을 활용하는 이유 보통 실험이 가능하지 않은 경우가 많음 실험집단과 통제집단간의 단순한 시간에 따른 변화량 (한 주간 변화량)을 비교하는 것은 나머지 모든 변수들도 함꼐 변하기 때문에, 비교 대상으로 적절치 않을 수 있음 [자연 실험] 도시마다 상이하게 발생한 원인 시점을 기준으로 변화량을 비교하면? 특정 시점 기준으로 실험집단과 통제집단이 달라짐 EX) 사회적 거리두기 정책(Stay..

[인과추론] 인과추론의 단계(1) (회귀분석 / 이중차분법 / 매칭)

잠재적 결과 관점에서 인과추론 문제 : 비교 가능한 대상 찾기 (ceteris paribus) 인과 추론을 위한 핵심 질문 (사회적 거리두기 정책의 효과) 사회적 거리두기 정책을 시행한 국가와 그렇지 않은 국가는 사회적 거리두기 정책여부를 제외한 코로나 19감염에 영향을 미칠 수 있는 모든 요인에서 비교 가능한 대상인가 (선택편향) 사회적 거리두기 정책 시행전후로 함께 발생한 다른 정책이나 외부 교란원인은 없는가 (선택편향) 사회적 거리두기 정책과 코로나19 확진자/사망자 수 사이에 역인과관계는 존재하지 않는가 (역인과관계) 인과관계에 관한 근거의 단계 회귀분석(Regression Analysis) 통제 변수들의 영향을 고려한 상관관계 분석을 도와주는 통계적인 분석 기법 인과관계를 분석하는 툴은 아님 회..

[인과추론] 인과관계를 알아내기 위한 분석틀

인과관계를 이해하는 틀 잠재적 결과 프레임 워크 인과 효과 = (원인이 있을 때의 결과) - (원인이 없었다면 있었을 잠재적 결과) 잠재적인 결과는 “관찰되지 못한”가상의 결과이다 EX) 비료의 사용과 농산물 생산량의 관계에서 인과관계를 분석할때 비료를 사용한 생산량은 100인데, 만약 연초에 비료를 쓰지 않았다면 생산량은 어땠을까 인과추론의 근본적 문제 잠재적인 결과는 "관찰되지 못한" 가상의 결과 (Fundamental Problem fo Causal Inference) EX) 독서와 성적의 관계 보통 사람들이 생각하는 인과관계 : (책을 읽은 우리 아이의 성적) - (책을 읽지 않은 우리 아이의 성적) 실제 현실에 나타난 결과 : (책을 읽은 엄마 친구 아들 성적) - (책을 읽지 않은 우리 아이 ..

[인과추론] 인과관계란

상관관계와 인과관계 상관관계는 인과관계를 의미하지 않는다 상관관계 : 함께 일어나는 변화 인과관계 : 원인과 결과 EX) 검색광고와 수익율과의 관계 검색광고와 수익률 간의 높은 양의 상관관계는 투자수익률이 높게 책정(1600%~4000%) 내생성을 고려한 인과관계를 기준으로 하면 투자수익률은 -20%~-60%로 감소 EX) 사업 다각화는 유효한 사업전략인가 다각화와 기업가치 간의 음의 관계가 있다라는 연구 발표 계량 경제적 방법론을 통해 다각화 전략에 대한 선택편향을 고려한 결과 , 다각화는 기업가치과 유의한 관계가 없거나 양의 관계가 없다. 선택편향 : 다각화를 한 기업과 하지 않은 기업이 큰 관계가 없다. 다각화를 해서 기업가치가 낮아지는 것이 아닌, 기업가치가 낮아진 기업이 다각화를 해서 다닥화와 ..

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

인과관계와 상관관계 Spurious Regression X와 Y가 관련(인과관계)이 없거나 논리적인 스토리가 없음에도 단순하게 상관성이 높다라고 잘못 결론을 내리는 것 Post Hoc Fallacy X 다음에 Y가 일어났으므로 X가 Y의 원인이라고 판단하는, 즉 시간순서가 인과관계를 담보할 것이라는 오류 징크스 : 머리를 염색했더니 시험점수가 100점이 나오더라고 믿는 경우 오버피팅(Overfitting) : 인과관계가 있는 데이터에서 샘플(Train) 데이터에 치우쳐버린 모델 Post Hoc Fallacy : 아무런 인과관계가 없는(상관관계는 높더라도) 데이터로 만든 모델 Granger Causality 어떤 현상의 예측에 있어 다른 정보를 이용하는 것이 얼마나 유의미한지 나타내는 척도 추론불가한 문제..

[시계열분석] 다변량 선형 확률과정 - 거시경제 VAR 모형화

https://ysyblog.tistory.com/298 [시계열분석] 다변량 선형 확률과정 - VAR & IRP (백터자기회귀과정, 임펄스응답함수) 다변량 선형 확률과정 필요성 단변량 시계열(Simple/Multiple포함)은 종속변수(Y_t)가 독립변수들에만! 영향을 받는다는 큰 가정 존재 현실적으론 종속변수와 독립변수는 상호 영향을 주고받음 예시: ysyblog.tistory.com 위 포스팅에 이어 진행됩니다. 데이터 로딩 및 시각화 데이터 설명 : https://www.statsmodels.org/0.6.1/datasets/generated/macrodata.html import pandas as pd import numpy as np import matplotlib.pyplot as plt i..

[시계열분석] 다변량 선형 확률과정 - VAR & IRP (백터자기회귀과정, 임펄스응답함수)

다변량 선형 확률과정 필요성 단변량 시계열(Simple/Multiple포함)은 종속변수(Y_t)가 독립변수들에만! 영향을 받는다는 큰 가정 존재 현실적으론 종속변수와 독립변수는 상호 영향을 주고받음 예시: 개인 소득과 지출 중 어떤게 Y로 적합한가?라는 질문은 왜 하지 않는가? => 2차원(소득과 지출 모두를 종속변수) 과거 1시점까지만을 고려하는 백터자기회귀 알고리즘 지금의 소득은 어제의 소득과 어제의 지출에도 영향을 받는다. 오늘의 지출은 어제의 소득과 어제의 지출에 모두 영향을 받는다. 벡터자기회귀 모형(Vector Autoregressive Model) 1) VAR 알고리즘 단변량 시계열과 같이 평균 벡터와 공분산 벡터가 시차에만 의존하고 각각의 절대위치에 독립적이인 정상성(Stationary) ..

[시계열 분석] 정확도를 높이기 위한 Prophet 파라미터 활용

정확도를 높이기 위한 Prophet 파라미터 활용아래 포스팅에서 이어 진행됩니다https://ysyblog.tistory.com/287 [시계열 분석] ProphetProphet 알고리즘 Paper: https://peerj.com/preprints/3190.pdf Quick Start: https://facebook.github.io/prophet/docs/quick_start.html 기본가정 자동화 된 기술은 상황에 맞게 튜닝하기 어렵고 경험적 지식을..ysyblog.tistory.com Growth 파라미터 1. Saturating(데이터의 상한과 하한 설정)로지스틱 설정하여 비선형적 추정Y 데이터의 상한과 하한을 반드시 설정해 주어야함. (cap, floor)파라미터에서 growth = "sat..

[시계열 분석] Prophet

Prophet 알고리즘 Paper: https://peerj.com/preprints/3190.pdf Quick Start: https://facebook.github.io/prophet/docs/quick_start.html 기본가정 자동화 된 기술은 상황에 맞게 튜닝하기 어렵고 경험적 지식을 반영하기 어려움 분석가들은 도메인 지식만 풍부한 편이며 분석을 쉽게 다루지 못함 비전문가가 경험적 특성을 반영할 수 있도록 필요한 부분을 자동화 Prophet 모델의 주요 구성요소 : Trend, Seasonality, Holiday 공식 : y(t)=g(t)+s(t)+h(t)+ϵi g(t) : 반복적인 요소가 없는 트랜드 s(t) : 반폭적인 요소를 가지고 있는 변화(계절성) h(t) : 불규칙적으로 영향을 미..

[시계열분석] 시계열 알고리즘 - 선형확률과정의 분석사이클 자동화 (Auto ARIMA)(2) - 항공사 승객수요 Auro-ARIMA 모델링

항공사 승객수요 데이터 모델링 # 라이브러리 호출 import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels.api as sm %reload_ext autoreload %autoreload 2 from module import stationarity_adf_test, stationarity_kpss_test # 데이터 준비 data = sm.datasets.get_rdataset("AirPassengers") raw = data.data.copy() # 데이터 전처리 ## 시간 인덱싱 if 'time' in raw.columns: raw.index = pd.date_range(start='1/1/1949..

반응형