인과관계를 설명하기 위한 방법은
1) Potential Outcomes 2) Causal Graphical Models 가 존재함
X
를 선택하여 얻은 현재의 결과 Y
X^
를 선택했으면 얻을 수 있을 결과 Y^
X
vs X^
중 무엇을 골랐는가Y
와 Y^
의 차이는 선택지 차이로 인한 인과적 영향데이터 추출 Target
1) Matching > A와 유사한 조건을 가진 사람들
X^
를 선택했을 때 얻는 결과 Y^
를 추정해서 평균낸 값으로 넣자2) Stratification > A와 유사한 조건을 가진 사람들끼리 그룹을 구성
Y^
값을 구해서 ATE를 추정 전통적인 통계 방식으로 Causal 관계를 확인하는 것은 아래와 같은 3가지 이유로 쉽지 않음
A
를 대상으로 변수 B
와 C
의 연관성을 분석함A
를 대상으로 했을 때는 변수 B
와 C
의 Odds Ratio가 높게 나와, 높은 연관성을 보여줌 B
와 C
의 Odds Ratio는 낮은 값을 얻어, 낮은 연관성을 보여줌 B
와 C
가 변수 A
에 원인이 되는 변수이기 때문에 나타난 오류 > A
는 Collider 충돌변수Chain : 각 변수가 다른 변수 하나에 funnel적으로 영향을 미치는 형태
Fork : 하나의 변수가 2개의 변수에 영향을 미치는 형태
Collider : 2개의 변수가 하나의 변수에 영향을 미치는 형태
X
> Y
)P(Y|X)
: X
를 선택했을 때 결과 Y
P(Y|do(X))
: X^
를 선택했을 때 결과 Y^
P(Y|do(X))
를 어떻게 확인할까SCM(Structural Causal Models)으로도 확인할 수 있음. 수학적 equation으로 바꾼 식.
P(Y|do(X))
추정 방법변수간 구조를 알면 어떤 변수를 보정해야 하는지 알 수 있음
P(Y|X)
로 P(Y|do(X))
를 알 수 있음
X
> Y
P(Y|X)
= P(Y|do(X))
인 경우 Z
가 X
와 Y
에 동시에 영향을 미치고 있을 경우 X
, Y
, Z
모두 측정 가능해야 함Z
가 X
와 Y
에 영향을 미치고 있을 경우 Z
는 측정 불가능하지만 X
, Y
, a
는 측정 가능해야 함Causal Inference
인과 추론의 출발점은 인과 모델입니다. 즉, 최소한 어떤 변수가 서로를 수신하는지 알아야 합니다. 예를 들어, X가 Y를 유발한다는 것은 알 수 있지만 상호 작용의 세부 사항은 알 수 없습니다.
There are many facets to causal inference such as estimating causal effects, using do-calculus, and breaking down confounding. I will introduce and explore these topics in the next post of this series on causal inference.
Causal Discovery
In causal inference, the causal structure of the problem is often assumed. In other words, a DAG representing the situation is assumed. In practice, however, the causal connections of a system are often unknown. Causal discovery aims to uncover causal structure from observational data.
Gift 2: Deconfounding Confounding
이 예에서 나이는 교육과 부의 혼동 요인입니다. 다시 말해, 교육이 부에 미치는 영향을 평가하려면 연령에 맞게 조정해야 합니다. 연령을 조정(또는 조건화)한다는 것은 연령, 교육 및 자산 데이터를 볼 때 연령 그룹이 아닌 연령 그룹 내의 데이터 포인트를 비교한다는 것을 의미합니다.
연령이 조정되지 않으면 교육이 부의 진정한 원인인지 아니면 부의 상관 관계인지 명확하지 않을 것입니다. 다시 말해, 교육이 부에 직접적인 영향을 미치는지 아니면 공통된 원인이 있는지 알 수 없습니다.
간단한 예의 경우 DAG를 볼 때 교란은 매우 간단합니다. 3개의 변수에 대해 교란자는 2개의 다른 변수를 가리키는 변수입니다. 그러나 더 복잡한 문제는 어떻습니까?
여기서 do-operator는 명확성을 제공합니다. Pearl은 do-operator를 사용하여 혼란을 명확하게 정의합니다. 그는 혼란이란 P(Y|X)가 P(Y|do(X))[1]와 다르게 되는 모든 것이라고 말합니다.
confounding is anything that leads to P(Y|X) being different than P(Y|do(X)) [1].
Gift 3: Estimating Causal Effects
# Define causal model
model=CausalModel(data = df,
treatment= "hasGraduateDegree",
outcome= "greaterThan50k",
common_causes="age",
)
# View model
model.view_model()
from IPython.display import Image, display display(Image(filename="causal_model.png"))
# Compute causal effect using metalearner
identified_estimand_experiment = model.identify_effect(proceed_when_unidentifiable=True)
from sklearn.ensemble import RandomForestRegressor
metalearner_estimate = model.estimate_effect(identified_estimand_experiment, method_name="backdoor.econml.metalearners.TLearner",
confidence_intervals=False,
method_params={
"init_params":{'models': RandomForestRegressor()},
"fit_params":{}
})
print(metalearner_estimate)
`
평균 인과 효과는 약 0.20입니다. 이는 대학원 학위를 취득하면 연간 $50,000 이상을 벌 확률이 20% 증가한다는 의미로 해석될 수 있습니다. 이것이 평균 효과라는 점에 유의하여 평균이 대표성인지 여부를 평가하기 위해 값의 전체 분포를 고려하는 것이 중요합니다.
위의 그림에서 우리는 표본에 걸친 인과적 영향의 분포를 볼 수 있습니다. 분명히 분포는 가우스 분포가 아닙니다. 이는 평균이 전체 분포를 대표하지 않는다는 것을 알려줍니다. 인과 관계를 기반으로 한 집단에 대한 추가 분석은 '누가'가 대학원 학위에서 가장 많은 혜택을 받는지에 대한 실행 가능한 정보를 찾는 데 도움이 될 수 있습니다.
모든 인과 추론의 출발점은 인과 모델입니다. 그러나 일반적으로 우리는 좋은 인과 모델을 가지고 있지 않습니다. 여기에서 인과관계 발견이 도움이 될 수 있으며, 이는 다음 포스트의 주제입니다.
참고페이지
https://towardsdatascience.com/causal-inference-962ae97cefda
Dowhy가 만드는 주요 가정은 데이터의 모든 행이 iid로 샘플링된다는 것
근데 timeseries data는 이 가정을 위반하지, 모든 연속되는 행들이 종속되어있기 때문에. 이를 해결하려면 시간 t의 데이터가 이전 값에 어떻게 의존하는지에 대한 가정이 필요함
Causal discovery aims to infer causal structure from data. In other words, given a dataset, derive a causal model that describes it.
인과 관계 발견은 역 문제의 예입니다. 이는 마치 조리대에 남겨진 물웅덩이를 보고 각얼음의 모양을 예측하는 것과 같다
Causal Discovery Toolbox Official Document
causal forest는 각 고객군별 causal impact 확인 라이브러리
https://tv.naver.com/v/23650648
Causal Inference를 진행하는 이유
통계적 추론 및 기계 학습 모델은 데이터에서 상관 관계를 찾는 데 탁월하지만 결과의 실제 원인을 항상 찾지 못할 수도 있습니다. SHAP와 같은 기능 중요도 방법의 사용과 데이터 세트에서 가장 중요한 기능을 얼마나 잘 식별할 수 있는지 생각해 보십시오. 의사 결정의 관점에서 중요도 점수가 가장 높은 기능이 항상 행동하기에 가장 좋은 것은 아니며 결과에 전혀 영향을 미치지 않을 수도 있습니다. 인과적 추론은 그 이유를 이해하는 데 도움이 됩니다.
Causal Inference의 어려움
참고사이트
1. 실제로 일어난 결과만을 확인할 수 있음 : factual
2. T0 시점에서 Intervention/Treatment가 발생함으로 Y(결과)에 영향을 미침 > Causal Effect는 T의 변화량에 따른 Y의 변화
3. Y에 영향을 미치는 다른 것들은 확인이 불가함 : Counterfactual
따라서 1) 반대 사실의 효과를 직접 계산할 수 없고 2) 추정에 의존해야 하며 3) 검증을 수행할 때 몇 가지 문제를 예상해야 합니다.
Dowhy
Methodology
Judea Pearl sets forth a four steps process in his seminal work, based on the Structural Causal Model (SCM):
Define: Express the target quantity Q as a function Q(M) that can be computed from any model M.
Assume: Formulate causal assumptions using ordinary scientific language and represent their structural part in graphical form.
Identify: Determine if the target quantity is identifiable (i.e., expressible in terms of estimable parameters).
Estimate: Estimate the target quantity if it is identifiable, or approximate it, if it is not. Test the statistical implications of the model, if any, and modify the model when failure occurs.
4 Step
Modeling: Create a causal graph to encode assumptions.
Identification: Formulate what to estimate.
Estimation: Compute the estimate.
Refutation: Validate the assumptions.
통제 집단 필수 유무
DID
Look-forward-Matching
으로 통제 집단 설정
X 기간 Intervention 100% 배포 => 통제 집단
vs Y 기간
CausalImpact
대조군으로 유추할 수 있는 데이터 없음
Intervention 이전의 데이터를 기반으로, Intervention 이후 기간의 데이터를 예측함 > synthetic control > 가상의 대조군
실제데이터와 Difference를 확인함으로 인과 효과를 추정함
CausalImpact의 경우 개입에 의해 영향을 받지 않는 설정된 제어 시계열이 있다고 가정합니다. 그렇다면 실제 효과를 잘못 과소 평가하거나 과대 평가할 수 있습니다. 또는 실제로는 효과가 없는데도 효과가 있다고 잘못 결론을 내릴 수도 있습니다. 이 모델은 또한 사전 기간 동안 설정된 공변량과 처리된 시계열 간의 관계가 사후 기간 동안 안정적으로 유지된다고 가정합니다(이 가정을 완화하는 방법은 model.argsprior.level.sd 참조).
주요 가정
Y에서 일어나는 변화는 Synthetic control 값을 예측할 때 들어가는 변수들에 영향을 주지 않는다.
Y와 변수의 관계는 개입(intervention)이 없었다면 계속되었을 것이다.
제안하는 데이터의 조건 (Rule of thumb)
이벤트 이후 기간이 1 ~ 3주 정도의 길이일 때 가장 이상적이다.
이벤트 이전 기간이 이벤트 이후 기간의 3–4배 가까이 길어야 좋다.
주요한 구조적인 변화가 전체 기간 통틀어서 없을 것.
“Garbage in, garbage out” 을 강조한다. Causal Impact 모델이 예측한 효과가 더 타당성을 가질 수 있도록 튜닝하는 과정은 대부분 counterfactual 데이터를 예측하는 변수를 찾고 검증하는 과정이다. 이 변수 는 주로 사람의 판단으로 구성되는데, 2. Ladder of Causality 에서 이야기했듯이 변수와 예측치의 인과 관계를 고민해본 후 변수를 추가해주는 것이 중요하다.
https://medium.com/bondata/quasi-experiments-%EC%9D%B8%EA%B3%BC-%EA%B4%80%EA%B3%84-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EC%9D%98-%ED%9A%A8%EA%B3%BC-%EB%A5%BC-%EC%B8%A1%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-da34ceefc34f
Counterfactual 데이터 예측
The best model is used in the “post-intervention” data (after the campaign) to forecast what would happen if the intervention never happen.
Causal Impact approached the problem is by using the Bayesian Structural Time Series to fit a model that best explains the “pre-intervention” data
The best model is used in the “post-intervention” data (after the campaign) to forecast what would happen if the intervention never happen.
영향받는 변수(response variable) 즉, intended target은 time intervention에 영향받지 않는 covariate X인 다른 변수들과 함게 linear regression으로 예측.
예를 들어 캠페인의 영향으로 인한 revenue를 찾고자 할 때, daily visit은 캠페인에 영향을 받을 가능성이 높으니 covariate로 사용하면 안됨
Using the Causal Impact, your intended target to assess should be renamed as y, and the other columns would be treated as the covariate feature.