SCM은 인과관계 모델 구조화를 의미핟나. 

핵심은 do-operator로 Treatment에 영향을 주는 모든 요인을 이론적으로 차단하는 행위이다. 

이론적인 관점이기 때문에 계산을 따로하지 못한다. 

 

comfounder가 있어 treatment에 영향을 주어 보이는 확률이나 분포를 interventional probabilities 혹은 interventional distribution이라고 하는데 do-operator를 사용해 comfounder의 영향을 모두 제거하여 순수한 conditional probability로 만들 수 있고 이런 과정을 identification이라고 한다. 

 

  • backdoor criterion: causal association 혹은 causal relationship(X -> Y) 를 제외한 모든 backdoor path를 막는 변수들의 집합 (예를 들면, compounder는 막고, collider는 막지 않는것)
  • backdoor adjustment: 모든 변수를 condition하거나 control 하는것

 

frontdoor adjustment 

만약 comfounder가 관찰하기 어려운거라면?

 

(1) M = a + bT  (alpha)

(2) Y = beta1 + beta2M + beta3T  (beta) 

(3) chain rule 적용으로 casual effect계산

 

이론적인 structural model이 있어야 분석이 가능하고 실제 적용 사례들이 많지는 않다는게 현재 상태이다. 

The boo

https://velog.io/@ddangchani/CausalInference2

'통계분석 > 인과추론' 카테고리의 다른 글

인과추론  (3) 2023.09.18

인과관계

프레임워크가 필요하다

흄은 인과관계를 원인에 대한 필연적 결과가 아닌 이전의 경험과 아이디어로부터 결과가 연속적으로 발생한다는 관념에 불과하다라고 정의(necessary connection)
인과율 회의론 혹은 인과율 부정: 어떤게 진짜 인과관계인가?


실증주의: 검증가능한 법칙에 의해 세상이 돌아간다. => 인과관계가 필요하다.
관념적인 연결고리가 아닌 과학적인 방법으로 검증할 수 있는 수단이 필요함 => 인과관계 프레임워크의 필요성 (공통의 이해틀이 필요함)


인과관계에 대한 다양한 접근

1. theory based hypothetical causation - logical imperative
2. Statistics based approach - population에서 샘플링 한것들의 인과추론 결과가 bias 없이 - seeking unbiasedness
3. Design based -  control/ treatment 를 나누는 방식으로 인과관계 정의 - removing selection bias
4. Structure based - 얽혀있는 구조를 들어내기 - estimating causal structures


강점 단점

Statistics ~ Endogeneity? 수학적으로 계산 가능하다는 점이 강점
여러 통계 모형이 있을때 endogeneity를 얼마나 줄일 수 있는가 비교가 가능하다 (instrumental variable: 고부변수 ~ confounding variable을 상쇄시키는 변수)
데이터 분석전략에 대해 구체적인 가이드를 주지 못한다는 것이 단점

Design based approach



1-2

Potential outcomes framework

Rubin: treatment를 정의할 수 없다면 potential outcomes 을 수행할 수 없음
연구자가 적절한 디자인을 설정해야한다.  => 리서치

counterfactual은 potential outcome framework 에서 가장 중요한 개념
문제점? 동일한 사람의 개인이 treatment를 받고 안받고를 동시에 경험할 수 없는 현실적 문제가 있음
그렇기때문에 결과에 대한 정확한 정의가 필요한 counterfactual은 현실에서 얻을 수 없고 갖고 있는 데이터는 control 그룹뿐이다.

Potential outcome framework에서 가장 방해가 되는 요인은 selection bias이다. 애초에 treatment가 없는 상황에서도 treated와 untreated간의 차이가 있다면
인과추론결과를 보는데 방해가 될것이다.
Selection bias를 줄여 우리가 관측하는 observed effect와 causal effect가 같아질 수 있다.
Ceteris paribus 원칙(라틴어: 모든것이 동등하다면):  reatment가 없는 상황에서도 control과 treatment의 변수들이 평균적으로 비슷하도록 디자인 조정하는것이 중요하다. 라는 결론

1-3  
Comparable control group 찾는 사례
이전에 경제성장은 개인의 자금과 내부 발전으로 이루어진다는 endogenous growth model에 기반했지만
개발도상국과 선진국간의 차이가 좁혀지지 않음이 제도에 있다라고 보는 신제도학

예시 맥시코의 노갈래스, 에리조나의 노갈래스 쌍둥이 도시 (북한, 남한은 애초에 비교 대상이안됨)
종교, 문화, 지리적 요인이 비교가능하고 비슷한 상태
하지만 절반은 미국, 절반은 맥시코의 제도하에 있게되었고 미국이 3-4배 이상 잘산다

1995년 시카고 폭염참사
폭염이 사회적인 대응이 필요한 인식이란 개념이 없었던 시절
Causal mindset의 훌륭한 연구사례

인구커뮤니티의 성향차이로 폭염을 이겨낼 수 있었다 없었다의 인과추론 mindset을 볼 수 있음
인과추론을 가능하게 하는건 어떤 테크닉이나 통계적인 모델이 아님, 중요한건 리서치 디자인이다
비교 가능한 데이터를 수집하는 것이 중요하다는 사례

Control variable(통제변수): 탐구하기를 원치 않는 변수


같은 신장(거의 counterfactual인)을 기증해도 받는 사람의 행동을 학습한 observation learning 이론이 있다.
이 observation learning 이론을 뒷받침하는 인과추론 디자인으로 창의적인 사례였다.  


2-1.


단일 방법론 중 가장 신뢰도가 높은건 RCT
Meta analysis는 반복적인 여러 인과관계 증거를 종합하여 명확하게 추론하는 방법


2-2
샘플수가 클수록 그룹의 법칙이 이론과 가까워진다.
Random assignment~ 큰수의 법칙과 동일
Sample 수가 충분하다면 무작위배정으로 두 그룹이 평균적으로 비슷하게 구성할 수 있다.
우리가 모르는 다른 요인을 충분히 제거해야 한다. 예를 들어, 순서가 들어간 경우


Random assignment를 거의 완벽하게 수행한다면 복잡한 통계모형 없이 인과관계 추론이 가능하다는 장점이 있다.
애초에 비교가능하지 않은 대상을 가지고 비교분석을 하면 인과적추론이 어렵다. 예시) 이가탄 연구
회사에서는 A/B test가 RCT이다.

2-3. Quasi-experiment : random assignment를 할수 없어 실험과 비슷한 상황을 찾아 분석하는 것

실험연구와 달리 독립변수가 종속변수의 원인이다. 라는 결론에 도달할수는 없지만 원인들 중 하나일것이다. 라는 결론을 내릴 수 있다.
다른 변수의 영향을 무시할 수 없기 때문에

Causal inference flow chart
1. 연구목적이 인과추론인 경우인가?
2. Random assigment가 가능한가?
3. treatment가 무엇이고 control과 treatment group 구분할수있는지? => quasi experiment가 가능해지는 시점
4. 전후 데이터가 모두 있는지?

Quasi experiment의 방법 3가지: Self-selection(연구 대상자가 treatment를 받을지 말지), exogenous shock(의도하지 않은 외부 shock에 의한 구분 ~ 자연재해, 정치적 변동, 금융위기 등, natural experiment라고 부른다), discontinuity(어떤 threshold로 나눈 상황)

Exogenous shock은 DID + matching분석법, discontinuity는 RD로 분석

근데 만약? 전후 데이터가 충분하지 않으면?
treatment를 예측할 수 있지만, error항과 연관이 없는지? 그러면 instrumental variable을 이용할 수 있음

도구변수도 이용하기 어렵다면?
Selection on observables: 관찰가능한 변수들로 선택편향을 통제해보자
matching과 regression 방법론

regression같은 경우는 선형적인 관계가 있다는 가정하에 통제변수와 종속변수간의 관계를 찾아내고
matching은 sample수가 줄어들 수는 있지만 control과 treatment군을 평균적으로 비슷하게 matching하여 연구하는 것


RCT와 quasi-experiment의 차이는 control과 treatment군을 어떻게 배정하는지의 차이

우리가 주의해야하는 것: treatment 없이도 어떻게 control그룹이 treatment그룹과 유사할 수 있을까?

Exogenous shock 예시) 미국의 shale boom이 생긴 지역과 아닌 지역이 local finance에 영향이 있다, 없다
Shale이 묻혀있을지 예상하지 못한 상황에서 지역별로 경제상황이 크게 영향을 줄 것이 없다고 가정하고 분석하는 상황이다.
그렇기 때문에 Natural experiment는 RCT와 가장 유사한 효과를 내는 quasi experiment다.

Self selection 예시) sns에서의 활동이 기업을 방문하는데 영향이 있는지?
sns활동은 참가자의 자발적인 행위
두 집단이 비교 가능한지에 대해서는 natural experiment에 비해서 엄밀하게 citrus paribus를 검증할 필요가 있음

Discontinuity 예시) 음주의 영향
미국에서 19세를 기준으로 음주에 의한 사망에 영향이 있는지 등을 분석가능
어떤 threshold 값의 직전후로 treatment와 control 그룹을 나눔

2-4)
이중차분법 DID



여기서 control그룹이 counterfactual과 가깝다면 control 그룹을 통해서 countfacutal을 유추할 수 있지 않을까?

T’a - Tb = treatment를 받지 않았을때 시간에 따른 자연스러운 변화 (관찰할 수 없는 값)
Ca - Cb = treatment를 받지 않는 그룹이 treatment를 받았을때의 변화량
아래껄로 위를 대체함으로써
Counterfactual에 가까운값을 추정할 수 있지 않을까?
원래는 Ta - T’a를 추정하는데 T’a를 치환하여 분석할 수 있음
DID는 시간에 따른 변화량만! 컨트롤 그룹으로 치환한다.

시간에 따른 변화량이 일정하다: parallel trends assumption
Research design에서 선택편향을 없앨 수 있는 가정을 identification assumption이라고 부름
시간에 따른 변화량이 비슷해야한다. 평행하게 변화해야한다.

예시) Apple-nbc battle


그럼 만약 comparable control group을 찾을 수 없다면 quasi-experiment를 사용할 수 없는가? No
matching은 control과 treatment의 각 변수의 평균으로 둘으 최대한 유사하게 만들어주는 목적

1. Propensity score matching (propensity score: treatment group에 속할 확률)
⁃ 단점: 변수가 많다면 balance가 잘 안맞을 수 있다
2. Coarsened Exact Matching
⁃ 모든 변수가 같은 값인 sample들을 매칭
⁃ 동일한 구간에 속한 값들은 같다고 보고 matching

https://bigdaheta.tistory.com/62

'통계분석 > 인과추론' 카테고리의 다른 글

Structural Causal Model(SCM)  (0) 2023.10.16

통계적으로 두 그룹 간의 차이를 검정하는 가장 간단한 방법 중 하나는 "z-검정 (z-test)" 입니다. 이 방법을 사용하여 b 그룹이 a 그룹보다 큰 반응률을 가질 가능성이 있는지를 확인할 수 있습니다. 

1. 귀무가설(H0)과 대립가설(H1) 설정: 이 경우 귀무가설은 "두 그룹 간의 반응률 차이가 없다"입니다. 대립가설은 "b 그룹이 a 그룹보다 더 큰 반응률을 보인다"입니다.

2. 유의수준(α) 설정: 일반적으로 유의수준은 0.05 또는 0.01로 설정됩니다.

3. 계산: z-검정 통계량을 계산합니다. 이 값을 계산하기 위해서는 두 그룹의 반응률, 표준오차 및 표본 크기가 필요합니다.

4. 결과 해석: 계산된 z-검정 통계량을 표준 정규 분포에서 비교하여 p-값을 계산합니다. p-값이 유의수준보다 낮으면 귀무가설을 기각하고 대립가설을 채택합니다. 이 경우, b 그룹이 a 그룹보다 더 큰 반응률을 보인다는 결론을 내릴 수 있습니다.

위의 방법 외에도 t-검정(t-test), 카이제곱 검정(Chi-square test), 로지스틱 회귀(Logistic regression) 등의 분석 방법을 사용하여 두 그룹 간의 차이를 검정할 수 있습니다.

 

import numpy as np
from scipy.stats import norm

# a 그룹과 b 그룹의 샘플 크기와 반응률을 지정합니다.
n_a = 1000
r_a = 0.15
n_b = 1000
r_b = 0.2

# z-검정 통계량을 계산합니다.
p_a = r_a
p_b = r_b
se = np.sqrt(p_a * (1 - p_a) / n_a + p_b * (1 - p_b) / n_b)
z = (p_b - p_a) / se

# p-값 계산
p_value = norm.sf(z)

# 유의수준을 0.05로 설정한 경우, p-값이 유의수준보다 작으면 귀무가설을 기각합니다.
alpha = 0.05
if p_value < alpha:
    print("b 그룹이 a 그룹보다 더 큰 반응률을 보입니다.")
else:
    print("두 그룹 간의 반응률 차이가 없습니다.")

'통계분석 > 통계기본' 카테고리의 다른 글

모수 vs 비모수  (0) 2021.03.29
일반화 선형 모형(Generalized Linear Regression)  (0) 2020.09.09

생존분석이란? 

잘 정의된 시점으로부터 event가 일어나기까지 걸린 시간을 분석하고 예측하는 분석이다. 

event는 주로 사망, 질병악화, 기계고장 등이 있다. 따라서, 시간과 수치값을 예측하는 것이기 때문에 회귀모델로 적용되나, 일반적인 통계 모형에 적용할 수 없는 생존분석만의 특징이 있다. 

 

- 생존 분석으로 연구 집단의 특이변화를 직관적으로 확인 가능하다. 

 

Censoring

  • Right censoring: 연구 종료 전 사망 혹은 연구 종료 후 생존
  • Left censoring: 연구 시작 전 질환을 이미 보유 혹은 측정한 생존 시간보다 실제 생존 시간이 더 긴 경우

생존분석 방법 1) Kaplan-Meier 추정방법

사건에 따른 사건 발생률을 계산하는 생존분석 방법이다. 

아래 그림은 survival plot으로 시간에 따른 생존율을 파악할 수 있고 

두 그룹간의 유의미한 차이를 보기위해 Log-Rank test혹은 willcoxon test를 수행한다.  

생존분석의 특징

1) 레이블은 최소 2개를 갖는다. 

=> 사건 발생까지의 시간과 사건 발생여부 

예시) 신장이식 환자에 대한 생존분석을 한다고 가정하고, 환자 10명이 있다. 10명 모두 수술받은 날짜를 알아내는 것(시작점)이 가능하지만, 계속 지켜보는 것은 불가능하다. 그렇지만 그들의 생존시간과 사망정보를 기록해야한다.

하지만, event발생 전에 종료된 데이터들을 censored data라고 부른다. 하지만 끝까지 관찰된 샘플은 uncensored data라고 부른다. 

대표적인 모델로 Cox-proportional hazard model이 있다. (아래 관련 링크 첨부)

https://chealin93.tistory.com/search/survival

모델을 평가하는 방법

생존 시간의 예측 정확도를 알고싶을때는, MSE를 사용하고 사망여부를 고려한 생존시간 예측정확도를 알고 싶다면 C-index를 사용한다.  

 


C-index란? 

 

1) 샘플들의 생존 시간을 오름차순으로 나열하고, 사건이 관찰된 각 샘플들보다 오래 생존한 샘플들의 개수를 모두 더한 총합

2) 샘플들을 예측된 생존시간의 오름차순으로 나열하고, 사건이 관찰된 각 샘플들보다 오래 생존할 것으로 올바르게 예측된 샘플들의 개수를 모두 더한 총합

1과 2의 비율로 나타난다. 

 

 

c-index는 0.0~1.0 사이의 값을 갖는다. 1.0에 가까울수록 정확히 예측한다고 해석하고, 0.5에 가까울수록 무작위로 예측한다고 평가한다. 해석이 AUROC(Area Under Receiver Operating Characteristic curve)와 비슷하여, c-index를 AUROC의 회귀분석용으로 확장한 것이라는 이야기도 있다.

의학연구에서 전향적으로 환자수를 모으지 않고 후향적으로 코호트를 모으는 경우, 

실험군과 대조군의 n수가 맞지 않는 경우가 발생할 수 있습니다. 

 

예를 들어, 극단적으로 대조군의 n수가 실험군보다 30배 많다고 가정한다면, 대조군에서 실험군 수만큼 random sampling해서 군을 형성하는게 옳은 방법일까요? 

 

이럴때, 두 군간의 변수들간의 차이를 좁히고 n수를 맞추기 위해 사용하는 propensity score matching을 소개하려고 합니다. 

 

성별, 연령, 동반질환 유무 등등 1:1 혹은 최대 1:5까지 PSM을 수행한 뒤 univariate cox PH regression (보정변수 없이 분석하는 => 이미 PSM으로 주요 변수 이외에 나머지 변수들의 특성을 맞추어 놓았기 때문에 univariate을 사용합니다.) 으로 분석해주는 방법을 시도하려고 합니다. 

 

실험군이 1일때, 비교군을 1~5배수까지 놓고 cox PH regression의 결과의 robustness를 확인하여야합니다. 일종에 sensitivity analysis라고 말할 수 있습니다. 

 

일반적으로는 1:5 이상이 넘어가면 그 효과가 커짐이 반대로 줄어든다고 합니다. 

 

참고할만한 좋은 블로그가 있어서 소개합니다.

m.blog.naver.com/paperfactor_ceo/222098513280

 

[R 통계분석] 6. PS matching(Propensity Score matching; 성향 점수 매칭)

0. Propensity Score Mathcing 1. 두 그룹의 특성 비교하기 2. PS matching 3. Matched set으로 두 ...

blog.naver.com

 

'통계분석 > 의학통계' 카테고리의 다른 글

생존분석 - harrell's C-index  (0) 2022.10.24
Cox proportional hazard regression HRplot해석  (0) 2020.10.21
Cox proportional hazard model  (0) 2020.09.09

brunch.co.kr/@seoungbumkim/7

 

모수 모델 vs. 비모수 모델

머신러닝 모델링 관점에서 | 본 글은 필자가 가지고 있는 현재까지의 지식을 바탕으로 작성했으나 관점에 따라 다른 의견이 많을 것으로 판단됩니다. 본 글의 대한 가감 없는 의견/비판을 기대

brunch.co.kr

 

 

'통계분석 > 통계기본' 카테고리의 다른 글

Z-test 수행하기  (0) 2023.07.20
일반화 선형 모형(Generalized Linear Regression)  (0) 2020.09.09

오늘은 HRplot을 해석하는 방법에 대해 알아보려고 한다.

 

우선 R에서 HRplot을 그리는 방법은 매우 간단하다.

HRplot(cox_fit)

cox_regression을 수행한 cox_fit모델을 HRplot함수에 넣어주면 HRplot을 그려준다.

 

예를 들면 이런 식으로!

 

이제 여기서 해석을 해보고자한다. 

 

Hazard Ratio의 의미는, 대조군의 위험률대비 실험군의 위험률이다. 

예를 들면, HR이 1.3인 경우 '대조군의 위험률이 실험군의 위험률보다 1.3배 크다.'의 의미를 가진다.

 

HR은 세가지로 분류할 수 있는데

1보다 크거나, 1이거나, 1보다 작은것이다.

 

1보다 큰 경우: 실험군의 위험도는 증가한다.

1보다 작은 경우: 실험군의 위험도는 감소한다.

1인 경우: 실험군과 대조군의 위험률은 같다.

 

이제 간단히 HR을 알아보았으니,

HRplot을 보고 의미를 해석해보자. 

 

1. 상관관계

 

그래프에 보면, 파란색 봉과  빨강색 봉이 있다. 

이는 양의상관관계와 음의 상관관계를 의미한다.

물론 각 변수 위에 적힌 숫자는 HR을 의미하는 것으로

앞서 1보다 크면 위험도가 증가한다는 것이라는 것을 알 수 있을때,

파란색의 것들은 모두 HR 1보다 큰 값을 가진다. 

고로 우리는 파란색이 양의 상관관계를 갖는다는 것을 유추할 수 있다. 

(실제로도 그렇다)

 

2. 봉의 길이

 

봉의 길이는 95%의 신뢰구간을 의미한다.

따라서 봉의 길이가 너무 긴것보다 짧은것이 더욱 신뢰도가 높고,

봉이 중앙에 점선에 걸쳐있다면, 

HR값이 1이될수도 있는 확률을 지닌것이기 때문에

그 변수는 통계적으로 의미가 없다고 본다.

우리는 보통 의학통계에서 95%의 신뢰구간을 사용한다.

 

더보기

신뢰구간이란? 

점추정(표본집단의 통계량으로 모집단을 추정하는 방법)을 할때, 모집단의 통계량을 신뢰하기가 어려운데 이때, 모집단의 통계량이 존재할 구간을 확률로 나타낸것이 구간추정이며, 구간추정의 방법중 가장 흔히 쓰이는 것이 신뢰구간이다. 

신뢰구간은 90, 95, 99%등으로 다양하게 사용된다.

 

Cox proportional hazard regression은 여러 변인들에 의해 생준율의 영향을 설명할 수 있고 여러 변수를 추가하여 설명할 수 있는 모형이다. 여러 Survival 분석 중 하나의 비모수적 방법이다. 주로 의학에서 자주 사용되고 임상실험에 대한 분석을 할 때 믿음직스럽게 사용된다. 생존분석은 사건이 발생까지의 시간과 사건의수로 사건발생률을 계산한다.

 

Hazard function

일단, Hazard function(위험함수)에 대해서 짚고 넘어간다.

hazard는 위험률을 말하는데 어느 시점에 대상이 탈락가능성이 높은지 평가하는 비율이다.

위 함수에서 확률부분은 t시점까지 살아남은 대상이 다음 델타t시간안에 죽을 조건부확률이다. 이를 

델타t로 나누면 단위시간당 죽을 확률이된다. 이에 극한개념을 대입하면, 특정 t에서 

순간 위험률함수를 나타낼 수 있다. 이것이 hazard function, h(t)이다.

 

생존함수는 대상이 얼마나 오래 살아있는가를 나타내는 반면,

위험률함수는 특정 시점에 죽을 가능성을 나타낸다.

 

따라서, 어떤 event가 발생할 위험률 함수로 쓰이며, 생존분석에서 통계모형을 나타내는 다양한 용도로 쓰인다. 

 

그것들 중 Cox PH model에 대해서 알아본다.

 

Cox PH model

 

 

 



여기서 각 변수앞에 붙은 계수들은 당연히 변수와 관계가 있다. 

이때 위험률 비를 구하면, 두군에 대해서 각각 위험률 함수를구하고 이를 나누면 hazard ratio라고 한다.

 

Hazard ratio

예를들어 담배가 X변수이고 암이 event라고 했을 때, 

담배를 피지 않는 집단 X =0 과 담배를 피는 집단 X=1 의 hazard ratio를 각각 구해 둘을 나눈 비를 

hazard ratio라고 한다.

예를 들어 이 값이 2.8이라고 하면,

직관적인 해석으로는 '담배를 피는 사람은 피지 않는 사람에 비해 2.8배 위험성이 높다는 것'이다. 

각각 X1에 의한 hazard function은 아래와 같고

이로부터 hazard ratio를 구하면 다음과 같이 된다.

이때, h0(t)는 나누면서 사라지기 때문에 베타를 해석하는데 아무런 영향을 주지 않는다.

또한 시간은 h0(t)에만 영향을 미치기 때문에, 시간이 흘러도 hazard ratio는 변하지 않는다.

시간에 따라 hazard function의 값이바뀔 수는 있어도 비율은 달라지지 않는다. 

이런 가정을 만족시키는 데이터에 대해서 이 모형을 사용할 수 있다. 

 

Adjusted Survival Curves 

우리는 이와같은 학습을 통해 유저의 생존곡선을 그리려고 한다. 

여러 변수들의 특성을 적용하여 모형으로 쉽게 나타낼 수 있다.

 

 

 

참고문헌: 

https://boxnwhis.kr/2015/04/24/drawing_survival_curves_with_predictors.html

 

설명 변수를 이용하여 유저 생존 곡선 그리기

설명 변수를 이용하여 유저 생존 곡선을 그립니다. Cox PH model을 활용합니다.

boxnwhis.kr

생존분석에 대해 정리가 잘 된 페이지를 소개한다.

https://statkclee.github.io/ml/ml-pm-survival.html

 

xwMOOC 기계학습

 

statkclee.github.io

http://statkclee.github.io/parallel-r/

 

Software Carpentry: R 병렬 프로그래밍

“AI is a superpower!!!”, 인공지능을 체득하면 슈퍼파워를 손에 쥘 것이다. Andrew Ng 금수저, 은수저 슈퍼파워를 받은 사람과 기계학습을 통달한 흑수저들간의 무한경쟁이 드뎌 시작되었다. 물론, 금

statkclee.github.io

 

+ Recent posts