#!/usr/bin/env python # coding: utf-8 # # 01 - Introduction To Causality # # ## Why Bother? # # 인과관계(Causality)는 왜 공부해야 할까요? # # ## Data Science is Not What it Used to Be (or it Finally Is) # # 하버드 비즈니스 리뷰는 데이터과학자를 [21세기 가장 섹시한 직업](https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century)으로 선정했습니다. 정말로 지난 몇 년 동안 데이터과학자는 많은 주목을 받았습니다. 인공지능 전문가의 연봉은 [스포츠 슈퍼스타들과 견줄 정도입니다.](https://www.economist.com/business/2016/04/02/million-dollar-babies) 많은 사람은 빠르게 전문적인 데이터과학자가 되기 위해 엄청난 노력을 합니다. 새로운 데이터 과학 교육 과정도 많이 생기고 있습니다. 어떤 사람은 기적적인 방법으로 어떠한 수학 공식 없이도 데이터과학자가 될 수 있다고 주장합니다. 컨설턴트는 데이터의 잠재력을 깨우기만 한다면 당신의 회사가 수백만 달러를 더 벌어들일 수 있다고 주장합니다. 과연 인공지능과 기계학습은 새로운 황금향일까요? # # 반면 인과관계를 고민하던 사람들도 있습니다. 경제학자들은 교육이 소득에 미치는 진짜 원인을 밝히고자 노력해 왔습니다. 생물 통계학자들은 포화 지방이 심장마비의 진짜 원인인지 밝히고자 했으며, 심리학자들은 긍정의 단어가 더 행복한 결혼 생활을 만들지 이해하려 해 왔습니다. 우리는 이러한 "옛날의" 데이터 과학을 등한시하는 경향이 있습니다. 사실 데이터 과학은 새로운 분야가 아닙니다. 단지 언론에 의해 엄청나게 과장되어 있을 뿐입니다. # # 데이터 과학을 맥주를 컵에 따르는 것으로 비유해 보겠습니다. 컵은 대부분 맥주로 채워지겠지만, 컵의 꼭대기에는 손가락 하나 두께의 거품이 생기게 됩니다. # # 1. 맥주는 기초 통계학, 과학적 호기심, 복잡한 문제에 대한 열정입니다. 수백 년 동안 가치 있는 것으로 증명되었습니다. # 2. 거품은 결국 사라질 기대입니다. # # 경제학자에 따르면 거품은 생각보다 빠르게 꺼질 수 있습니다. # # > 최근 현장에서 인공지능 구현이 어렵고 열정이 식어가고 있다고 보고되었습니다. 가트너의 Svetlana Sicular는 2020년이 AI 거품이 빠지는 해가 될 수 있다고 말합니다. 투자자들은 밴드왜건(다른 사람들을 따라 하는 현상)에서 벗어나고 있습니다. 벤처 캐피털 펀드인 MMC는 유럽 AI 스타트업 중 40%가 AI를 전혀 사용하지 않고 있다고 보고합니다. # # 인공지능의 폭풍 속에서 데이터과학자 혹은 "그냥" 과학자는 무엇을 해야 할까요? 우리는 거품을 무시하는 방법을 배워야 합니다. 맥주에만 집중해야 합니다. 수학과 통계는 영원할 것입니다. 쓸데없는 최첨단 도구보다는 당신을 가치 있게 하는 것을 배우세요. # # 여기에 지름길은 없습니다. 수학과 통계 지식은 어렵기 때문에 가치 있습니다. 경제이론에 따르면 모두 익힐 수 있는 내용은 과잉 공급으로 가치가 없어집니다. **힘내세요**! 가능한 한 열심히 배우세요. 당신은 할 수 있습니다. **용감하고 진실한** 사람의 길을 즐겁게 따르기를 바랍니다. # # ![img](./data/img/intro/tougher-up-cupcake1.jpg) # # ## Answering a Different Kind of Question # # `Machine Learning`(기계학습)은 예측 문제를 잘 해결합니다. Ajay Agrawal, Joshua Gans, Avi Goldfarb의 책 "Prediction Machines"에 따르면 "인공지능의 새로운 물결은 지능 자체보다는 지능의 구성요소를 제공합니다." `Machine Learning`으로 아름다운 작업을 할 수 있습니다. 우리가 해야 할 일은 문제를 예측 문제로 바꾸는 것뿐입니다. 영어를 포르투갈어로 번역하고 싶나요? 영어 문장을 넣고 포르투갈어 문장을 예측하는 ML 모델을 만듭니다. 얼굴인식 프로그램을 만들고 싶나요? 사진에서 얼굴 위치를 예측하는 ML 모델을 만듭니다. 자율주행 자동차를 만들고 싶나요? ML 모델로 차량 주변의 이미지와 센서값을 받아 휠의 방향, 브레이크, 가속기의 압력을 예측하세요. # # 하지만 `ML`이 만병통치약은 아닙니다. ML은 학습된 데이터 내에서 예측하는 것을 잘합니다. "Prediction Machines"에 소개된 예를 들면, "많은 산업에서 낮은 가격은 낮은 판매와 관련됩니다. 호텔 가격은 비수기에 낮지만, 성수기에 높아집니다. 따라서 가격을 올리면 더 많은 방이 팔릴 것이라고 단순한 예측을 할 수 있습니다." # # `ML`은 인과문제를 해결하지 못하기로 악명 높습니다. 인과문제는 경제학자들이 `counterfactual`(반사실)이라 부르는, "만약"이라는 질문에 대답하는 것입니다. 상품가격을 바꾸면 더 많이 팔릴까요? 만약 저지방 다이어트 대신 저설탕 다이어트를 하면 어떨까요? 만약 고객의 신용한도를 바꾸면 은행의 수익이 늘어날까요? 만약 학교에서 모든 학생에게 태블릿을 제공하면 성적이 향상될까요? # # 질문의 핵심은 인과관계입니다. 인과관계는 매출을 올리는 방법과 같은 일상적인 문제에 스며들어 있습니다. 인생에서 성공하기 위해 비싼 학교에 들어가야 할까요? (학위는 높은 연봉을 보장할까요?) 이민은 실업률을 높일까요? 저소득층을 보조하면 범죄율은 낮아질까요? 분야와 상관없이 인과 문제는 산재해 있습니다. 우리는 인과문제를 해결해야 하지만 상관관계에 기반을 둔 `ML`로는 해결할 수 없습니다. # # 인과관계에 대한 대답은 생각보다 어렵습니다. 아마도 여러분은 "상관은 인과가 아니다."라는 말을 들어봤을 겁니다. 사실은 `association`(상관)이 왜 `causation`(인과)과 다른지 설명하는 것이 더 중요합니다. 도입은 이것으로 마칩니다. 이제부터는 **상관관계를 인과관계로 만드는 방법**을 찾는 데 집중해 봅시다. # # ## When Association IS Causation # # 직관적으로는 왜 상관관계가 인과관계가 아닌지 알고 있을 겁니다. 만약 전교생에 태블릿을 제공하는 학교가 그렇지 않은 학교보다 평균 성적이 높다면, 태블릿이 성적 향상의 원인이라기보다는 태블릿을 제공하는 학교들이 더 부유했기 때문이라고 평균 성적이 높을 것으로 생각할 수 있습니다. 이 경우 태블릿과 관계없이 사교육 등으로 성적이 더 좋을 수도 있습니다. 따라서 태블릿이 성적 향상의 원인이라 부를 수는 없습니다. 단지 태블릿을 제공하는 것과 높은 성적이 상관관계가 있다고 할 수 있을 뿐입니다. # In[1]: import pandas as pd import numpy as np from scipy.special import expit import seaborn as sns from matplotlib import pyplot as plt from matplotlib import style style.use("fivethirtyeight") np.random.seed(123) n = 100 tuition = np.random.normal(1000, 300, n).round() tablet = np.random.binomial(1, expit((tuition - tuition.mean()) / tuition.std())).astype(bool) enem_score = np.random.normal(200 - 50 * tablet + 0.7 * tuition, 200) enem_score = (enem_score - enem_score.min()) / enem_score.max() enem_score *= 1000 data = pd.DataFrame(dict(enem_score=enem_score, Tuition=tuition, Tablet=tablet)) # In[2]: plt.figure(figsize=(6,8)) sns.boxplot(y="enem_score", x="Tablet", data=data).set_title('ENEM score by Tablet in Class') plt.show() # 몇 가지 용어를 만들어 봅시다. 이 용어들은 앞으로 우리의 일상적인 언어가 될 것입니다. 다른 용감하고 진정한 "인과 전사"를 식별하는 데 사용할 공용어라 생각하세요. 다가올 많은 전투에서 우리의 함성이 될 것입니다. # # $T_i$는 `unit`(단위 데이터, table의 경우 1개 row에 해당) $i$에 대한 `treatment`(처치)입니다. # # $ # T_i=\begin{cases} # 1 \ \text{if unit i received the treatment}\\ # 0 \ \text{otherwise}\\ # \end{cases} # $ # # 처치는 약이나 의료 분야에서 주로 쓰이는 용어이기는 하지만, 여기서는 어떠한 개입을 나타내기 위해 사용합니다. 태블릿 예시에서 처치는 태블릿 제공 여부입니다. 참고로 처치는 시간(주로 $T$로 표기)과 구분하기 위해 $D$로 표기하기도 합니다. # # $Y_i$는 `unit` $i$에 대한 관측 결과입니다. # # `outcome`(결과)은 우리가 관심이 있는 결과입니다. 우리는 처치가 결과에 어떤 영향을 주는지 알고 싶습니다. 태블릿 예시에서 결과는 성적입니다. # # 이제 재미있는 부분입니다. **인과추론의 근본적인 어려움**은 같은 단위 데이터에서 모든 처치에 대한 결과를 알 수 없는 것에서 나옵니다. 로버트 프로스트의 시처럼 우리가 알 수 있는 것은 갈라진 두 개의 길 중 선택한 하나의 길 끝에 있는 무엇입니다. # ``` # 노란 숲속에 길이 두 갈래로 났었습니다. # 나는 두 길을 다 가지 못하는 것을 안타깝게 생각하면서, # 오랫동안 서서 한 길이 굽어 꺾여 내려간 데까지, # 바라다볼 수 있는 데까지 멀리 바라다보았습니다. # ``` # # 이러한 문제를 다루기 위해 `potential outcome`(잠재결과)을 다뤄야 합니다. 실제로 나타나지 않은 결과는 잠재해 있습니다. 잠재 결과는 만약 처치가 적용되었다면 **어떻게 되었을까**에 대한 결과입니다. 발생한 결과는 `factual`(사실), 발생하지 않은 결과는 `counterfactual`(반사실)이라 부릅니다. # # 표기는 다음과 같이 아래첨자를 사용합니다. # # $Y_{0i}$는 처치되지 않은 데이터 $i$의 잠재결과입니다. # # $Y_{1i}$는 처치가 적용된 **동일한** 데이터 $i$의 잠재결과입니다. # # 잠재결과는 $Y_i(t)$로 표기하기도 합니다. $Y_{0i} = Y_i(0)$, $Y_{1i} = Y_i(1)$입니다. 이 책에서는 아래첨자 표기법을 사용하겠습니다. # # ![img](./data/img/intro/potential_outcomes.png) # # $Y_{1i}$는 태블릿을 지급한 학생 $i$의 성적입니다. 사실이든 반사실이든 $Y_{1i}$는 동일합니다. 학생 $i$가 태블릿을 받았다면 $Y_{1i}$를 알 수 있습니다. 받지 않았다면 $Y_{0i}$를 알 수 있습니다. $Y_{0i}$을 알고 있다면 $Y_{1i}$는 알 수 없습니다. 이 경우 $Y_{1i}$는 반사실적 잠재결과가 됩니다. # # 잠재결과로 `individual treatment effect`(개별 처치 효과)를 정의할 수 있습니다. # # $Y_{1i} - Y_{0i}$ # # 물론 잠재결과 중 하나만 알 수 있으므로 근본적으로 개별 처치 효과를 알 수 없습니다. 당분간은 개별 처치 효과보다 더 쉬운 것에 초점을 맞추겠습니다. 아래처럼 정의된 **average treatment effect**(ATE, 평균 처치 효과)를 살펴봅시다. # # $ATE = E[Y_1 - Y_0]$ # # `E[...]`는 기댓값입니다. 생각하기 쉬운 다른 것은 **average treatment effect on the treated**(ATT, 처치된 평균 처치 효과)입니다: # # $ATT = E[Y_1 - Y_0 | T=1]$ # # 현실적으로 모든 잠재결과는 알지 못합니다. 하지만 가능하다고 가정해 봅시다. 인과추론의 신이 우리를 가엾게 여겨 모든 잠재결과를 알려줬습니다. 아래와 같이 4개 학교에 대한 데이터를 수집했습니다. 당신은 태블릿 지급 여부에 따른 학생의 성적을 모두 알고 있습니다. 태블릿 지급 여부는 처치가 되므로 학생에게 태블릿을 제공했을 때 $T=1$입니다. $Y$는 성적이 됩니다. # In[3]: pd.DataFrame(dict( i= [1,2,3,4], y0=[500,600,800,700], y1=[450,600,600,750], t= [0,0,1,1], y= [500,600,600,750], te=[-50,0,-200,50], )) # $ATE$는 마지막 `te`열의 평균, 즉 `treatment effect`(처치 효과)의 평균입니다. # # $ATE=(-50 + 0 - 200 + 50) / 4 = -50$ # # $ATE$에 따르면 태블릿 지급은 평균적으로 성적을 50점 낮춥니다. # # $ATT$는 $T=1$인 마지막 `te`열의 평균입니다. # # $ATT=(-200 + 50) / 2 = -75$ # # 처치가 적용된 학교에서는 태블릿이 평균적으로 성적을 75점 낮춥니다. # # 물론 $ATE$와 $ATT$를 직접 계산할 수는 없습니다. 현실적인 데이터는 다음과 같습니다. # In[4]: pd.DataFrame(dict( i= [1,2,3,4], y0=[500,600,np.nan,np.nan], y1=[np.nan,np.nan,600,750], t= [0,0,1,1], y= [500,600,600,750], te=[np.nan,np.nan,np.nan,np.nan], )) # 약간 다르지만, 처치된 데이터 평균과 처치되지 않은 데이터 평균과 비교하면 안 될까요? # # $ATE = (600 + 750) / 2 - (500 + 600)/2 = 125$ # # 절대로! 안 됩니다! 결과가 얼마나 다른지 보세요. 당신은 상관관계를 인과관계로 판단한 가장 큰 죄를 지었습니다. 인과추론 분야의 거대한 악당을 소개합니다. # # ## Bias # # 편향은 상관관계가 인과관계가 아니게 만듭니다. 직관적으로 이해해 봅시다. 누군가 태블릿을 제공하는 학교의 성적이 더 높다고 주장하면, 우리는 태블릿은 성적과 상관없다고 반박할 수 있습니다. 원인은 학교의 재정상태일 수 있습니다. 자금이 넉넉한 학교는 많은 돈을 들여 더 나은 교사, 더 나은 교실을 제공할 수 있습니다. 따라서 태블릿 지급 여부로 학교를 비교할 수 없습니다. # # 잠재결과 표기에 따르면 처치된 $Y_0$는 처치되지 않은 $Y_0$와 다릅니다. 처치된 $Y_0$는 **반사실**입니다. 관측할 수 없는 값으로 추론만 가능합니다. 태블릿이 제공된 학교의 $Y_0$은 그렇지 않은 학교의 $Y_0$보다 더 클 수 있습니다. 학교는 성적을 위해 다른 요소(더 좋은 선생님, 더 좋은 교실)를 제공할 수 있기 때문입니다. # # 상관관계가 왜 인과관계가 될 수 없는지 수학적으로 확인해 봅시다. 상관관계는 $E[Y|T=1] - E[Y|T=0]$로 계산합니다. 태블릿을 제공한 학교의 평균 점수에서 태블릿을 제공하지 않은 학교의 평균 점수를 뺀 값입니다. 반면 인과관계는 $E[Y_1 - Y_0]$입니다. # # 상관관계에서 결과(`Y`)를 잠재결과(`Y_0` 또는 `Y_1`)로 대체해 보겠습니다. 처치된 경우 잠재결과는 $Y_1$, 반대는 $Y_0$입니다. # # $ # E[Y|T=1] - E[Y|T=0] = E[Y_1|T=1] - E[Y_0|T=0] # $ # # 이제 $E[Y_0|T=1]$를 더하고 빼겠습니다. $E[Y_0|T=1]$은 반사실 결과입니다. 태블릿이 제공된 학교에서 "만약" 태블릿이 제공되지 않았다면 받았을 가상의 성적이 됩니다. # # $ # E[Y|T=1] - E[Y|T=0] = E[Y_1|T=1] - E[Y_0|T=0] + E[Y_0|T=1] - E[Y_0|T=1] # $ # # 수식을 정리하고 몇 가지 기댓값을 합칩니다. # # $ # E[Y|T=1] - E[Y|T=0] = \underbrace{E[Y_1 - Y_0|T=1]}_{ATT} + \underbrace{\{ E[Y_0|T=1] - E[Y_0|T=0] \}}_{BIAS} # $ # # 이 간단한 방정식은 인과추론에서 마주치는 모든 문제를 다루고 있습니다. 이 수식은 꼭 이해하고 넘어가야 합니다. 만약 문신한다면 좋은 후보가 될 것입니다. 성경 구절과 같이 깊게 이해해야 합니다. 차근차근 살펴보겠습니다. 위 방정식은 상관관계가 인과관계가 아닌 이유를 보여줍니다. 상관관계는 `ATT`에 편향을 더한 것과 같습니다. **편향은 처치가 적용되기 전 실험군과 대조군의 차이와 같습니다.** 이제 태블릿이 성적을 높인다는 주장에 대해 의심스러운 점을 정확히 말할 수 있습니다. $E[Y_0|T=0] < E[Y_0|T=1]$로 태블릿을 지급할 여유 있는 학교는 그렇지 못한 학교보다 **태블릿 지급 여부와 관계없이** 성적이 높습니다. # # 왜 편향이 생길까요? `confounder`(교란변수)에 대해서는 나중에 이야기하겠습니다. 지금은 통제할 수 없는 많은 것들이 처치와 함께 바뀌어 편향이 생긴다고 이해할 수 있습니다. 실험군과 대조군은 처치 여부만 다르지 않습니다. 교사의 수준, 교실의 수준 또한 다릅니다. 태블릿이 성적을 올려준다고 주장하려면 다른 모든 상황이 비슷한 학교를 비교해야 합니다. # In[5]: plt.figure(figsize=(10,6)) sns.scatterplot(x="Tuition", y="enem_score", hue="Tablet", data=data, s=70).set_title('ENEM score by Tuition Cost') plt.show() # 이제 우리는 상관관계를 인과관계로 만드는 방법을 알고 있습니다. **$E[Y_0|T=0] = E[Y_0|T=1]$일 때 상관관계는 인과관계가 됩니다!** $E[Y_0|T=0] = E[Y_0|T=1]$는 처치 전후에 실험군과 대조군이 같다는 의미입니다. 만약 처치가 없을 때 모든 $Y_0$을 알 수 있다면 실험군과 대조군에서 결과가 같을 것입니다. 수학적으로 편향이 사라집니다. # # $ # E[Y|T=1] - E[Y|T=0] = E[Y_1 - Y_0|T=1] = ATT # $ # # 실험군과 대조군에서 처치 여부만 다르다면 $E[Y_0|T=0] = E[Y_0|T=1]$이고, 인과 영향 정도는 (매우 유사하므로) 처치 여부에 상관없이 같습니다. # # $ # \begin{align} # E[Y_1 - Y_0|T=1] &= E[Y_1|T=1] - E[Y_0|T=1] \\ # &= E[Y_1|T=1] - E[Y_0|T=0] \\ # &= E[Y|T=1] - E[Y|T=0] # \end{align} # $ # # 따라서 **평균의 차이는 인과관계가 됩니다.** # # $ # E[Y|T=1] - E[Y|T=0] = ATT # $ # # 또한, (실험군과 대조군이 처치 여부만 다를 때) $E[Y_1|T=0] = E[Y_1|T=1]$입니다. 즉, 처치에 대한 반응이 유사합니다. $E[Y_1 - Y_0|T=1] = E[Y_1 - Y_0|T=0]$를 만족하므로, # # $ # E[Y|T=1] - E[Y|T=0] = ATT = ATE # $ # # 이는 너무나 중요하므로 아래 그림으로 다시 살펴보겠습니다. 처치된 그룹(대조군)과 아닌 그룹(실험군)을 단순 평균하여 비교하면 다음과 같습니다. (실험군은 파란색입니다.) # # ![img](./data/img/intro/anatomy1.png) # # 두 그룹 간의 결과 차이의 원인은 두 가지입니다. # # 1. 처치효과입니다. 태블릿 제공이 성적 향상의 원인입니다. # 2. 교육비가 성적에 영향을 줍니다. 두 그룹 차이는 교육비의 차이이며 태블릿 자체는 원인이 아닙니다. # # 개별 처치 효과는 같은 학생에 대한 처치에 따른 이론적인 결과의 차이입니다. 실제 처치 효과는 아래 왼쪽 그림과 같이 모든 잠재결과를 알 수 있는 신과 같은 능력이 있을 때만 알 수 있습니다. 반사실을 밝은 색으로 표시했습니다. # # ![img](./data/img/intro/anatomy2.png) # # 위의 오른쪽 그림은 편향을 나타냅니다. 모든 사람에게 처치를 제공하지 않으면 편향을 얻을 수 있습니다. 이 경우 $T_0$인 잠재결과만 남는데, 실험군과 대조군의 차이가 편향이 됩니다. 편향이 있다면 처치가 아닌 요인이 결과를 다르게 하는 원인입니다. 편향은 처치 효과를 왜곡시킵니다. # # 편향이 없는 가상의 상황과 대조해 봅시다. 이제 태블릿이 무작위로 제공됩니다. 학교와 상관없이 태블릿을 받을 가능성은 같습니다. 처치는 학교 전반에 걸쳐 잘 분배됩니다. # # ![img](./data/img/intro/anatomy3.png) # # 이 경우 실험군과 대조군의 결과 차이는 평균적인 인과효과와 같습니다. 처치 외에 결과에 영향을 주는 요인이 없기 때문입니다. 모든 차이는 처치에 의한 것으로 편향이 존재하지 않습니다. # # ![img](./data/img/intro/anatomy4.png) # # $Y_0$만 알 수 있게 (모든 사람이 처치받지 않게) 설정한다면 두 그룹 간 차이를 찾을 수 없을 것입니다. # # 편향은 인과추론을 대단히 어렵게 합니다. 편향을 제거하여 두 그룹을 비교하는 방법은 평균적인 처치 효과만을 알려줍니다. 궁극적으로 인과추론은 망상과 잘못된 해석을 없애고 세상이 어떻게 돌아가는지 알아내는 것입니다. 앞으로 편향을 없애는 강력한 방법을 터득하여 인과효과를 계산해 보겠습니다. # # ## Key Ideas # # 1장에서는 상관관계와 인과관계가 무엇이 다른지 배웠습니다. 더 중요한 것은 상관관계를 인과관계로 만드는 방법입니다. 인과추론 방법을 수학적으로 표현하기 위해 `potential outcome`(잠재결과)에 대한 표기법을 도입했습니다. 잠재결과는 `outcome`(결과)을 두 가지 가능한 사실로 나눕니다. 하나는 `treatment`(처치)가 제공되는 것, 다른 하나는 처치가 제공되지 않는 것입니다. 실제로는 둘 중 하나만 알 수 있는데, 이는 인과추론의 근본적인 어려움입니다. # # 다음 장에서는 무작위 실험 같은 인과효과를 추정하기 위한 몇 가지 기본 기술을 살펴봅니다. 또한 몇 가지 통계적 개념을 배울 예정입니다. 마지막으로 인과추론 수업에서 자주 사용되는 인용구로 마무리하겠습니다. `Kung Fu` 시리즈에서 가져온 것입니다. # # Caine: 사람의 앞날은 이미 정해져 있습니다. 운명에 따라야 합니다. # Old Man: 그래, 하지만 원하는 대로 살 수 있어. 반대로 보이지만, 모두 맞단다. # # ## References # # I like to think of this book as a tribute to Joshua Angrist, Alberto Abadie and Christopher Walters for their amazing Econometrics class. Most of the ideas here are taken from their classes at the American Economic Association. Watching them is what's keeping me sane during this tough year of 2020. # * [Cross-Section Econometrics](https://www.aeaweb.org/conference/cont-ed/2017-webcasts) # * [Mastering Mostly Harmless Econometrics](https://www.aeaweb.org/conference/cont-ed/2020-webcasts) # # I'll also like to reference the amazing books from Angrist. They have shown me that Econometrics, or 'Metrics as they call it, is not only extremely useful but also profoundly fun. # # * [Mostly Harmless Econometrics](https://www.mostlyharmlesseconometrics.com/) # * [Mastering 'Metrics](https://www.masteringmetrics.com/) # # My final reference is Miguel Hernan and Jamie Robins' book. It has been my trustworthy companion in the most thorny causal questions I had to answer. # # * [Causal Inference Book](https://www.hsph.harvard.edu/miguel-hernan/causal-inference-book/) # # The beer analogy was taken from the awesome [Stock Series](https://jlcollinsnh.com/2012/04/15/stocks-part-1-theres-a-major-market-crash-coming-and-dr-lo-cant-save-you/), by JL Colins. This is an absolute must read for all of those wanting to learn how to productively invest their money. # # ![img](./data/img/poetry.png) # # ## Contribute # # Causal Inference for the Brave and True is an open-source material on causal inference, the statistics of science. Its goal is to be accessible monetarily and intellectually. It uses only free software based on Python. # If you found this book valuable and want to support it, please go to [Patreon](https://www.patreon.com/causal_inference_for_the_brave_and_true). If you are not ready to contribute financially, you can also help by fixing typos, suggesting edits, or giving feedback on passages you didn't understand. Go to the book's repository and [open an issue](https://github.com/matheusfacure/python-causality-handbook/issues). Finally, if you liked this content, please share it with others who might find it helpful and give it a [star on GitHub](https://github.com/matheusfacure/python-causality-handbook/stargazers).