O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Causal Inference : Primer (2019-06-01 잔디콘)

2.209 visualizações

Publicada em

- 2019-06-01 잔디컨퍼런스(잔디콘, @구글캠퍼스) 에서 발표한 자료입니다
- 데이터를 통해 인과관계를 추론하는 방법에 대해서 알아봅니다
- Potential Outcomes, Causal Graphical Models 에 대해 간단히 살펴봅니다
- 슬라이드 내에 오타가 있습니다 ㅠㅠ
- 22p, 28p : Perkson's 가 아니라 Berkson's Paradox 입니다

Publicada em: Dados e análise
  • Seja o primeiro a comentar

Causal Inference : Primer (2019-06-01 잔디콘)

  1. 1. Causal Inference
 : Primer 카카오 데이터분석가 이민호 (miika)
  2. 2. 캐쥬얼 (casual) 아니에요
 causal 이에요
  3. 3. 카카오에서 데이터를 다룹니다 흔히들 Data Science 라고 표현하지만, 사실 엄청나게 넓은 분야 관련된 업무들 중에서 주로 - 데이터를 분석하거나 - 분석 관련 도구를 (대시보드 같은 것들) 만듭니다
  4. 4. "데이터 분석" 하면 어떤게 떠오르세요? 데이터 분석과 관련된 책이나 강의를 본적이 있나요? 강의/책에서 주로 가르치는 걸 보면.. - 분류/예측 - 텍스트 마이닝 (+ 워드 클라우드..) - 지도에 데이터 뿌리기 - 기타 등등 재미있어 보이는 것들 까는거 아닙니다 저도 강의하면 이런거 해요
  5. 5. 실제로는 무슨 일을 주로 하게 될까요? 원인 찾기 - DAU가 갑자기 떨어졌는데 왜 그래요?? - 로그수가 이유없이 뚝 떨어졌어요 효과 측정하기 - 이번 업데이트로 매출에 얼마나 영향을 주었나요?? - 카카오톡 내 광고가 추가되면서 "광고 추적 제한" 기능을 켠 사용자가 얼마나 늘었나요?
 (이거 켜놓는다고 광고가 없어지지 않습니다.. 추천이 안될뿐)
  6. 6. 배운 것과 업무의 간극 모델링을 통해
 분류하고 예측하는 방법 인과 관계를 설명하는 방법 우리가 배운 것 일할 때 필요한 것
  7. 7. 원인파악 / 효과측정을 위해 제일 좋은 방법은? Randomized Control Test - 흔히들 말하는 A/B 테스트 - 모든 변수를 완벽하게 고정하는 대신, 무작위 배정으로 평균적인 효과를 측정할 수 있다 그런데 A/B 테스트를 할 수 없는 상황이라면 어떻게 해야 할까? 측정하고자 하는 변수 이외에는 모든 것들을 고정시키고, 확인하고 싶은 항목만 변경해서 테스트해본다
  8. 8. A/B 테스트를 할 수 없다면? 테스트를 하려면 ... - 돈이 많이든다 - 시간이 많이든다 - 플랫폼에서 지원하지 않으면 리소스가 많이 필요하다 데이터의 특성상 테스트를 하기 어려울 수도 있다 - 윤리적인 문제, 이미 지나간 사건일 경우 등등 데이터만 가지고 인과 관계를 파악하거나 효과를 측정할 수는 없을까?
  9. 9. 쌓여 있는 데이터에서 원인 파악을 위한 자료를 수집해보자 뭐부터 봐야하지? 만만한건 변수간의 상관관계 문제가 되는 목표 변수와 상관관계가 높은 변수부터 탐색해보면 되지 않을까? 그런데 갑자기 떠오르는 수업 시간의 한 장면...!
  10. 10. Correlation 숨쉬는 사람들은 전부 죽는다 Causation
 사람이 숨을 못쉬면 죽는다
  11. 11. "상관관계는 인과관계를 의미하지 않는다" 통계학 수업에서 흔히 하는 단골 멘트 인과관계가 구체적으로 무엇을 말하는지에 대해서는 알려주지 않는다 - 그렇다면 인과관계란 뭐지? - 상관관계에 어떤 조건이 추가되어야 인과관계라고 볼 수 있는걸까? - 무엇이 다른걸까?
  12. 12. 이번 시간에 알아볼 내용 (1) 인과 관계란 무엇일까? (2) 인과 관계로 인한 효과를 (실험하지 않고) 어떻게 추정할 수 있을까? (3) 다양한 변수들이 만들어내는 인과 관계를 어떻게 표현할 수 있을까?
  13. 13. 인과 관계와 효과를 설명하기 위한 다양한 방법 ...이 있지만
 그 중에서 두 가지를 살펴보자 Potential outcomes Causal graphical models
  14. 14. Potential Outcomes : Intuition 케빈은 1년 전 오늘 삼성바이오로직스 주식을 샀다 케빈은 주식을 삼으로써 어떤 심경의 변화를 겪게 되었을까? 얼마나 이득을 보았을까? image from 뉴스타파 기사 : https://newstapa.org/38392
  15. 15. 이상적인 솔루션 : 과거로 돌아가서 다른 선택을 해본다 1년 전 선택의 그날, 새로운 케빈은 주식 대신에 적금 통장에 돈을 넣는다 아니면 코인? 새로운 선택을 한 세계에서 1년간 케빈이 벌어들인 수익을 구한다 그리고 이쪽 세계의 케빈이 삼바 주식으로 벌어들인 수익/손해와 비교한다 케빈 케빈-0116
  16. 16. 케빈의 선택에 따른 영향을 구해보자 현실 케빈의 선택(Y0)과 저쪽 세계 케빈의 선택(Y1)이 있다 두 세계에서 바뀐게 케빈의 선택뿐이라면,
 이후에 달라지는 모든 결과들은 케빈의 선택으로 인한 인과적인 영향이라고 볼 수 있다 그렇다면 케빈의 선택으로 인한 영향은 간단하게 Y0 - Y1 을 계산하면 구할 수 있다 케빈 케빈-0116 Y0 Y1
  17. 17. 하지만 우리에겐 타임머신이 없다.. 어밴져스는 xxx로 가서 xxx할 수 있었지만 우리는 그럴 수 없다 그렇다면 어떻게 해야 하지?
  18. 18. Potential Outcomes: 현실에서 적용하기 데이터를 테이블에 정리해서 보다보니 Y1 (저쪽 세계 케빈의 수익) 값만 비어있다 - 그렇다면 빈 칸을 예측해서 채워넣으면 되지 않을까? - 그동안 배워온 머신러닝을 적용해보자! 케빈 개인이 아니라 일반적인 삼바 투자자들에 대한 효과를 알고 싶다 - 한 명의 효과만 측정하는 대신 모든 사람의 효과를 비교해서 평균을 구하자! - Average Treatment Effect (ATE) 이제 우리의 목표는 투자로 인한 평균적인 효과 (ATE)를 잘 추정해보는 것이다 Y0 Y1 A 20 - B 18 - C - 35 Y0 Y1 A 20 27 B 18 21 C 28 35
  19. 19. Potential Outcomes: Matching 삼바에 투자하지 않은 케빈의 수익을 어떻게 예상해 볼 수 있을까? 다양한 방법이 있겠지만, 한 가지 방법은 
 삼바에 투자하지 않은 사람중에서 케빈과 가장 유사한 조건의 사람을 찾아서
 비교하는 것이다 케빈 20대 후반 남성, 유명 IT회사의 돈 많은 개발자, 멀리서 통근, 자차는 없음, ... 이런 작업을 모든 사람에 대하여 반복하고, 평균적인 효과를 구한다 다양한 조건을 반영하여 최대한 비슷한 사람을 찾고, 유사 케빈의 1년간 수익을 케빈과 비교한다! 케빈의 조건 케빙 vs
  20. 20. Potential Outcomes: Stratification 또 한 가지 방법은 유사한 특성을 가진 사람들끼리 그룹을 구성하는 것이다 - 20대 남성 + 개발자 + ... - 변수가 많아지면 스코어 값을 구해서 비슷한 점수의 사람들로 구분하기도 한다 각 그룹별로 평균 수익을 구해 ATE를 추정할 수 있다 케빈
  21. 21. Potential Outcomes 상대적으로 쉽고, 직관적이며, 우리에게 친숙한 도구들을 사용한다 - 어려운 인과관계 문제를 상대적으로 쉬운 결측치 예측 문제로 바꿔서 해결한다 - 모형보다는 데이터를 중심으로 추론한다 그런데, 변수들의 관계를 고려하지 않고 기계적으로 예측해도 인과관계를 잘 추론할 수 있을까? - 친숙한 도구들을 사용한다는 것은 "상관관계"를 바탕으로 하는 방법론을 사용한다는 것 → 원점으로 돌아와서, 상관관계 만으로 인과관계를 추론할 수 있을까? - Potential Outcomes의 방법론은 기본적으로 교란 변수 (Confounder) 의 효과를 보정하는 것 → 어떤 변수가 교란 변수인지 어떻게 확인할까? 교란 변수의 값을 측정할 수 없다면 어떻게 하지?
  22. 22. 변수들 사이의 관계를 해석할 때 주의해야 하는 경우들 Spurious Correlation Simpson's Paradox Perkson's Paradox
  23. 23. Spurious Correlation 서로 연관이 없어보이는 두 데이터가 높은 연관성을 보이는 경우가 있다 99.26%의 상관관계!!
  24. 24. Simpson's Paradox 어떤 경향을 나타내는 전체 데이터를 하위 그룹으로 나누었을 때, 
 각각의 하위 그룹에서는 정반대의 결론이 나오는 현상을 말한다 우측 데이터에서 심근경색이 일어날 확률을 살펴보자 - 여성 : 약 안먹으면 5% -> 약 먹으면 7.5% - 남성 : 약 안먹으면 30% -> 약 먹으면 50% - 전체 : 약 안먹으면 27.7% -> 약 먹으면 18.3% 여성한테도 안좋고 남성한테도 안좋은 결과인데 전체 사람들에게는 좋다..? 뭔소리지 Control (No Drug) Treatment(Drug) Heart Attack No Heart Attack Heart Attack No Heart Attack Female 1 (5%) 19 3 (7.5%) 37 Male 12 (30%) 28 8 (40%) 12 Total 13 (27.7%) 47 11 (18.3%) 49
  25. 25. 왜 이런 일이 발생할까? Confounder (교란변수) 의 존재! - Gender가 Drug, Heart Attack에 모두 영향을 미치고 있다 - 여성은 2/3가 약을 먹었고, 남성은 1/3만 약을 먹었다 남녀 각각에 대해서 효과를 계산하고, 평균을 구해야 한다 - No Drug (17.5%) -> Drug (23.75%) - 결론적으로 이 약은 여성한테도 안좋고 남성한테도 안좋고 전체 사람들에게도 안좋다 그렇다면 데이터를 항상 쪼개어봐야하나? 그건 또 아니다!
  26. 26. 동일한 수치의 데이터를 다시 살펴보자 
 혈압이 심근경색의 원인 중 하나로 알려져있고, 혈압을 낮추기 위해 약을 먹는다 그렇다면, 약을 먹으면 심근경색도 줄어드는 효과가 있을까? 가정 Control (No Drug) Treatment(Drug) Heart Attack No Heart Attack Heart Attack No Heart Attack 낮은 혈압 1 (5%) 19 3 (7.5%) 37 높은 혈압 12 (30%) 28 8 (40%) 12 Total 13 (27.7%) 47 11 (18.3%) 49
  27. 27. 테이블의 값은 동일하지만, 변수간의 관계가 아까와는 다르다 여기서 협압 변수는 Confounder가 아니다 따라서 여기서는 전체 수치를 기준으로 결론을 내린다 - 심근경색이 발생할 확률 : No Drug (27.7%) -> Drug (18.3%)
  28. 28. Perkson's Paradox 데이터를 쪼개는게 능사가 아니라는 것을 보여주는 또 다른 사례 통제된 데이터에서 얻은 상관관계가 잘못된 해석으로 이어질 수도 있다 1979년 Sackett의 논문 - 입원환자 257명 대상으로 이동성 질환과 호흡기 질환의 연관성을 분석했다 - Odds ratio = 4.06 로 높은 연관성이 나타났다 - 그런데 일반 2783명 대상으로 다시 확인한 결과
 Odd ratio = 1.06 으로 연관성이 없다는 결론 어떻게 된 일일까? General Population 6개월 이상 입원 환자 이동성 질환 O 이동성 질환 X 이동성 질환 O 이동성 질환 X 호흡기 질환 O 17 (7.6%) 207 5 (25%) 15 호흡기 질환 X 184 (7.2%) 2376 18 (7.6%) 219
  29. 29. 왜 이런 결과가 발생했을까? 호흡기 질환과 이동성 질환 모두 병원에 입원해서 치료를 받게하는 변수다 - 호흡기 질환 -> 입원 - 이동성 질환 -> 입원 따라서 이 경우에 "입원여부" 변수는 Collider 이러한 상황에서는 입원여부에 조건을 걸게 되면, 변수간의 관계에 왜곡이 발생할 수 있다 - Collider Bias
  30. 30. 함정카드가 너무 많은데.... 어떻게 하면 좋을까????
  31. 31. Causal graphical models 데이터만 사용해서 추론할 경우에는 함정에 빠지기 쉽다 우리가 가지고 있는 데이터들이 어떤 방식으로 생성되는지부터 고민해야 한다 데이터의 생성 과정을 그래프를 통해 표현하고, 이를 통해 인과 관계를 추론한다 => Causal graphical models!
  32. 32. 인과 관계를 표현하기 DAG(Directed Acyclic Graphs)를 통해서 인과관계를 표현할 수 있다 - X →Y 라면 X는 Y의 직접적인 원인이다 - X → X1 → Y 라면 X는 Y의 간접적인 원인이다 - 그래프를 통해 인과관계를 표현하면 정량화시키기 어려운 변수들도 쉽게 표현할 수 있다 그래프를 사용하면 결합 확률분포를 효과적으로 표현할 수 있게 된다 - X, Y, Z 변수가 있을 때 원래는 모든 (x, y, z) 조합의 확률값을 알아야 한다 - X → Y → Z 그래프를 가정하면 직접 연결된 노드에만 영향을 미치기 때문에 
 X, (Y|X), (Z|Y) 세 가지만 알면 된다
  33. 33. 세 개의 변수에서 나타나는 특별한 관계들 변수의 개수가 더 많아질 경우, 위 관계들을 조합하여 판단한다 - 임의의 두 변수가 path를 통해 연결되어 있는가? - 임의의 두 변수가 서로 영향을 미칠 수 있는 상태인가? x1 x2 x3 x1 x2 x3 x1 x2 x3 Chain Fork Collider
  34. 34. 이걸 왜 알아야 하지..? 변수들의 관계를 바탕으로 인과 관계를 더 명확하게 이해할 수 있다 Potential Outcomes 모형에 필요한 조건부 독립 가정들을 그래프를 통해 검증할 수 있다 - Chain, Fork : x2 값이 고정되면 x1과 x3는 조건부 독립 - Collider : 기본적으로 x1과 x3는 독립 , x2값이 고정되면 x1과 x3가 연결됨
  35. 35. 그래프를 다 그렸다면, 우리는 뭘 구해야할까? 원인과 결과 (X → Y) X에 변화를 주었을 때 (개입) Y는 어떻게 변할까? - 이것을 P(Y | do(X)) 라고 해보자 - 우리가 관찰할 수 있는 P(Y | X) 와는 다르다 - P(Y | X) = P(Y | see(X)) : X를 관찰했을 때 Y가 일어날 확률
  36. 36. P(Y | X)로 P(Y | do(X)) 를 추정하기 데이터로는 P(Y | X) 만을 알 수 있다 실험없이 데이터만 가지고 P(Y | do(X)) 를 계산할 수 있을까? 특정한 형태의 그래프가 구성되면, 관찰한 데이터를 통해 변화의 영향을 측정할 수 있다 - Simple Case : X -> Y ( 이 때는 P(Y | X ) = P(Y | do(X)) ) - Back-door Adjustment - Front-door Adjustment
  37. 37. Back-door / Front-door Adjustment Back-door, Front-door가 성립하는 구조를 찾는다 => 어떤 변수를 보정해야 하는지 알 수 있게 된다 
 => P(Y | X) 만으로 P(Y | do(X))를 구할 수 있다 특정한 조건이 충족되는 경우, 관찰한 데이터를 바탕으로 개입에 의한 변화를 추정할 수 있다 Back-door Adjustment
 - X와 Y에 동시에 영향을 미치고 있는 Z 변수가 있을 경우
 - X, Y, Z 모두 측정 가능해야 한다 Front-door Adjustment
 - 측정할 수 없는 Counfounder 변수 Z가 X, Y에 영향을 미치는 경우 
 - Z를 측정할 수 없지만 X, W, Y 는 측정할 수 있어야 한다
  38. 38. 여기까지, 정리해볼까요?
  39. 39. 1) 두 가지 방법론 비교 Potential Outcomes Causal Graphical Model 목표 Clone Y - Y P(Y | do(X)) 방식 Missing Value Prediction Directed Acyclic Graphs 를 통한 모델링 장점 직관적이고, 상대적으로 친숙한 도구들을 활용한다 변수들 사이의 관계를 데이터에 잘 반영할 수 있다 단점 상대적으로 많은 가정을 필요로 한다 Matching의 커버리지가 높지 않다면 예측력이 떨어진다 생소함 (DAG, do(X) 를 활용한 표현 등등) 모델링이 잘 되어야만 좋은 결과를 얻을 수 있다
  40. 40. 2) 인과관계 모형을 통해 알 수 있는 것 어렵구나.. ★★★★★ 인과관계를 파악하기 위해서는 수치만 보는 것이 아니라, 
 데이터가 어떻게 생성되었는지도 고민해야 한다 특정한 구조를 가진 데이터에서는 관측 데이터로 인과 관계를 추정할 수 있다 이러한 구조를 찾기 위해 그래피컬 모형을 이용한다
  41. 41. 근데 이거..
 이렇게까지 고생하면서 알아야 할까요?
  42. 42. 인과 관계에 대해 고민해야 하는 이유 : 데이터 분석가 데이터 분석은 인과 관계를 바탕으로 스토리텔링하는 것이라고 볼 수 있다 분석이 힘을 얻기 위해서는 개연성이 필요하다 납득할 수 있는 명확한 인과관계는 스토리에 힘을 불어넣는다 따라서 데이터를 바탕으로 인과 관계에 기반한 스토리텔링을 잘 하기 위해서는 
 인과 관계에 대한 고민이 필수적이다
  43. 43. 인과 관계에 대해 고민해야 하는 이유 : AI/ML/DL Judea Pearl의 "Ladder of Causation" : 인과 관계 추론은 세 단계로 구성되어 있다 - 1단계 Association - 서로 연관성이 높은 현상들을 찾고, 추세를 바탕으로 예측한다 (현재 대부분의 머신러닝) - 2단계 Intervention - 어떤 행동을 취했을 때 무슨 일이 일어나는지 예측한다 (강화학습에서 많이 다루는 영역) - 3단계 Imagining - 발생하지 않은 상황을 상상한다 (인과관계 추론의 최종 목표, Counterfactuals) 인과관계 추론을 통해 Counterfactual를 더 잘 예상할 수 있게 된다면,
 현재의 AI가 한 단계 더 도약할 수 있을 것이다
  44. 44. 어찌됐든 어렵지만 계속 공부하고 있습니다 TIL 시즌3 출석률 (75일째 기준) : 55일 / 75일 (73.3%) 그 중에서 Causal Inference 관련 공부한 비율 : 23일 / 55일 (41.8%) 주로 공부하는 자료 - (DataCamp Open Course) Causal Inference in R - (Judea Pearl) The Book of Why - (Judea Pearl) Causal Inference in Statistics : A Primer - (Python Library) Causalinference, CausalGraphicalModels, dowhy - (Coursera, Daphne Koller) Probabilistic Graphical Models 강의
  45. 45. Causal Inference는 현재 많은 연구가 이루어지고 있는 분야입니다.
 
 어렵지만 따라가보려고 열심히 공부하고 있습니다.
 혹시라도 잘못된/개선이 필요한 부분이 있다면 알려주세요! lumiamitie@gmail.com

×