본문 바로가기
데이터/방통대 - 바이오통계학

[방통대 통계데이터과학과] 바이오통계학 - 범주형 데이터의 비교 (상대위험도/ 오즈비/ 맥니마검정/ 피셔의 정확검정)

by 단단_SINCE 2023 2024. 12. 2.

 

📊 상대위험도, 오즈비, 맥니마 검정, 피셔의 정확검정:

통계의 핵심 기법들

 

상대위험도(RR), 오즈비(OR), 맥니마 검정, 그리고 피셔의 정확검정이라는 통계의 주요 기법들에 대해 알아보자. 😊

 


 

 

1. 상대위험도 (Relative Risk, RR) 🚦

정의

상대위험도는 예를들면,

운동을 한 그룹과 안 한 그룹 간 당뇨병 발생 비율을 비교하는 지표다.

위험 비율을 나타내기 때문에, 값이 1보다 크면 특정 행동이 질병 위험을 높인다는 뜻

예시:

  1. 집단 구성
    • 운동 그룹: 100명 중 5명이 당뇨병 발생 → 발병률 = 5/100=0.055/100 = 0.05
    • 비운동 그룹: 100명 중 10명이 당뇨병 발생 → 발병률 = 10/100=0.110/100 = 0.1
  2. 상대위험도 계산RR=운동 그룹의 발병률비운동 그룹의 발병률=0.050.1=0.5RR = \frac{\text{운동 그룹의 발병률}}{\text{비운동 그룹의 발병률}} = \frac{0.05}{0.1} = 0.5

해석:

  • RR = 0.5: 운동을 하는 사람은 당뇨병 위험이 운동하지 않는 사람보다 50% 낮다는 의미
  • RR > 1일 경우: 위험이 높아진다. 예를 들어 RR=2RR = 2라면, 위험이 2배 증가한 것

2. 오즈비 (Odds Ratio, OR) 🎲

정의

오즈비는 질병 발생 가능성을 비교하는 지표로, 사건이 발생할 확률과 발생하지 않을 확률의 비율을 사용한다. 오즈비는 위험이 몇 배로 증가/감소했는지를 설명합니다.

예시:

  1. 집단 구성
    • 운동 그룹: 5명이 당뇨병 발생, 95명은 발생하지 않음 → 오즈 = 5/95=0.05265/95 = 0.0526
    • 비운동 그룹: 10명이 당뇨병 발생, 90명은 발생하지 않음 → 오즈 = 10/90=0.111110/90 = 0.1111
  2. 오즈비 계산OR=운동 그룹의 오즈비운동 그룹의 오즈=0.05260.1111≈0.473OR = \frac{\text{운동 그룹의 오즈}}{\text{비운동 그룹의 오즈}} = \frac{0.0526}{0.1111} \approx 0.473

해석:

  • OR = 0.473: 운동을 하면 당뇨병 발생 가능성이 운동하지 않는 그룹보다 47% 낮다.
  • OR > 1일 경우: 위험이 높아진다. 예를 들어 OR=2OR = 2라면, 질병 발생 가능성이 2배 증가한 것

3. 상대위험도 vs 오즈비: 차이와 한계 🤔

주요 차이점 📊

 

항목 상대위험도 (RR) 오즈비 (OR)

정의 두 집단의 질병 발생률 비율을 비교 두 집단의 질병 발생 오즈 비율을 비교
사용 상황 코호트 연구, 사건 발생률을 직접 비교 가능할 때 케이스-컨트롤 연구, 희귀 질병이나 비율 계산이 어려울 때
계산 방법 운동 그룹 발생률비운동 그룹 발생률\frac{\text{운동 그룹 발생률}}{\text{비운동 그룹 발생률}} 운동 그룹 오즈비운동 그룹 오즈\frac{\text{운동 그룹 오즈}}{\text{비운동 그룹 오즈}}
값이 2일 때의 의미 운동하지 않은 그룹에 비해 운동 그룹의 질병 발생 확률이 2배 높음 운동하지 않은 그룹에 비해 운동 그룹의 질병 발생 오즈가 2배 높음

 


상대위험도와 오즈비의 차이점 🔍

항목 상대위험도 (RR) 오즈비 (OR)

해석 실제 발생 확률의 배수를 나타냄 오즈(확률 대비 비확률 비율)의 배수를 나타냄
희귀 질병 여부 희귀 질병 여부와 관계없이 해석 가능 질병 발생률이 높을 경우 과장된 값이 될 수 있음
데이터 예시 값 2 → 비운동 그룹의 질병 발생 확률이 2배 높음 2.25 → 비운동 그룹의 질병 발생 가능성이 2.25배

결론

  • 상대위험도는 실제 확률 차이를 직접 비교해 이해하기 쉬운 지표
  • 오즈비는 확률 대신 오즈(확률 대비 비확률)를 비교하며, 희귀한 사건 분석에 유리하다.
    • 그러나 질병 발생률이 높아지면 오즈비는 과장될 수 있습니다

오즈비 해석의 함정

오즈비가 2라고 해서 위험이 2배라는 뜻은 아니다!!!!!!

  • 오즈비는 **오즈(확률 비율)**의 배수를 나타내고
  • 실제로 사건 확률이 낮은 경우(예: 희귀 질병), 오즈비는 상대위험도와 비슷하게 해석될 수 있다
  • 하지만 사건 확률이 높아지면, 오즈비는 상대위험도보다 훨씬 큰 값을 나타낸다

4. 결론

  • 상대위험도(RR): 실제 위험 비율을 직접 비교.
  • 오즈비(OR): 질병 발생의 가능성을 비율로 비교.
  • 사건 확률이 낮을 때 두 지표는 비슷하지만, 확률이 높아지면 오즈비가 과장된 값으로 나타날 수 있다

 

맥니마 검정 (McNemar’s Test) 🔄

 

맥니마 검정은 쌍으로 연결된 데이터를 비교할 때 사용됩니다. 주로 사전-사후 분석이나 짝을 이룬 표본에서 두 조건의 차이를 검정합니다.

예시:

A 약물의 전후 효과를 본다고 가정:

  • 약물 복용 전/후에 각각 성공/실패 여부를 기록
  • 데이터는 아래와 같은 2x2 테이블로 표현됨:

복용 후 성공 복용 후 실패

복용 전 성공 50 10
복용 전 실패 20 70

 

여기서 잠깐!

쌍으로 연결된 데이터는 대응표본 T검정을 사용하는거 아니었나요?


1. 대응표본 t검정과 쌍으로 연결된 데이터

공통점 🧩

  • 쌍으로 연결된 데이터를 비교한다는 점에서 유사하다.
    • 예: 같은 사람의 사전/사후 데이터를 비교하거나, 쌍둥이 데이터를 분석하는 경우.

주요 특징:

  • 대응표본 t검정은 연속형 변수에서 두 조건(사전/사후 또는 짝 조건)의 평균 차이를 비교하는 데 사용
  • 가정:
    1. 데이터가 쌍으로 연결되어 있어야 합니다.
    2. 두 조건 간 차이가 정규분포를 따라야 합니다.

예시 🎯

A라는 약물의 효과를 분석한다고 가정:

  • 10명의 환자에게 약물을 투여하기 전후의 혈압을 측정.
  • 데이터는 같은 환자에서 두 번 측정한 값으로 쌍을 이룹니다.
from scipy.stats import ttest_rel

before = [120, 130, 125, 140, 135]
after = [115, 125, 120, 130, 128]

t_stat, p_value = ttest_rel(before, after)
print(f"T-statistic: {t_stat}, P-value: {p_value}")

 


2. 쌍으로 연결된 데이터와 다른 검정

쌍으로 연결된 데이터라고 해서 모든 경우에 대응표본 t검정을 사용하는 건 아니다. 데이터 특성과 분석 목적에 따라 다른 방법을 사용할 수도 있다

예시 1: 맥니마 검정 (McNemar’s Test) 🔄

  • 데이터가 **이분형(예/아니오)**일 때 사용됩니다.
  • 사전/사후 변화에 대해 카이제곱 검정 기반으로 비대칭성을 평가한다

예시 🎯

어떤 약물이 질병 치료에 효과가 있는지 분석:

  • 10명 중 약물 투여 전/후에 질병 여부를 기록.
  • 데이터는 아래와 같은 2x2 테이블로 표현됩니다.

치료 후 효과 O 치료 후 효과 X

치료 전 효과 O 40 10
치료 전 효과 X 15 35
from statsmodels.stats.contingency_tables import mcnemar

table = [[40, 10], [15, 35]]
result = mcnemar(table, exact=True)
print(f"P-value: {result.pvalue}")

 


3. 결론: 쌍으로 연결된 데이터 ≠ 대응표본 t검정

쌍으로 연결된 데이터라고 해서 반드시 대응표본 t검정을 사용하는 건 아님

  • 데이터 유형(연속형/이분형)과 가정 조건(정규성 등)에 따라 적합한 검정을 선택해야 하고
  • 대응표본 t검정은 연속형 데이터의 평균 차이를 비교할 때 적합하며,
    이분형 데이터에서는 맥니마 검정이나 피셔의 정확검정을 사용할 수 있다.

 


피셔의 정확검정 (Fisher's Exact Test) 🎯

피셔의 정확검정은 표본 크기가 작을 때 2x2 테이블의 독립성을 평가하는 데 적합합니다. 정확한 확률을 계산하기 때문에 소규모 데이터에 강력합니다.

예시:

어떤 질병이 약물 복용과 관련이 있는지 확인:

질병 있음 질병 없음

약물 복용 2 8
약물 미복용 1 9
  • 일반적인 카이제곱 검정을 적용하기엔 표본 크기가 작아서 오류 가능성이 큽니다.
  • 이럴 때 피셔의 정확검정을 사용해 정확한 pp-값을 계산합니다.

📊 통계 분석 기법 선택 가이드

분석 기법 사용 상황

상대위험도 (RR) 코호트 연구, 사건 발생 비율 비교 시
오즈비 (OR) 케이스-컨트롤 연구, 희귀 사건 분석 시
맥니마 검정 사전-사후 변화, 짝 데이터 비교 시
피셔의 정확검정 소규모 데이터의 독립성 검정 시

 

피셔의 정확검정 vs 맥니마 검정: 주요 차이점 🔍

피셔의 정확검정/맥니마 검정

데이터 구조 독립된 두 집단 쌍으로 연결된 데이터
사용 상황 두 집단의 독립성을 검정 사전-사후 변화나 두 조건의 차이를 검정 (데이터가 이분형일때)
데이터 유형 2x2 교차표, 독립적 데이터 2x2 교차표, 짝 데이터
귀무가설 두 변수는 독립적이다 두 조건 간 변화(차이)가 없다
분석 목적 두 집단 간 연관성 평가 같은 집단 내 조건 변화 평가

 

 


[연습문제 풀이]

 

4. 코로나검사A와 B의 차이


1. 문제 해석

데이터 요약:

검사 B 양성 검사 B 음성 합계

검사 A 양성 30 10 40
검사 A 음성 5 55 60
합계 35 65 100

검정 목적:

  • 귀무가설 (H0H_0): 검사법 A와 B의 결과에 차이가 없다 (대응성이 없다).
  • 대립가설 (H1H_1): 검사법 A와 B의 결과에 차이가 있다 (대응성이 있다).

2. 가설검정 방법 선택

(1) 쌍으로 연결된 데이터

  • 동일한 100명에게 검사법 A와 B를 적용했으므로, 두 검사는 같은 사람의 결과에서 나온 데이터.
  • 쌍으로 연결된 데이터이므로, 독립적인 두 집단을 비교하는 방법(예: 피셔의 정확검정)은 적합하지 않다.

(2) 맥니마 검정의 적합성

  • 맥니마 검정은 쌍으로 연결된 2x2 교차표에서 비대칭성을 검정.
  • 비대칭성이 존재하면, 두 검사법의 결과에 차이가 있다고 결론 내릴 수 있다.

5. 결론

이 문제에서는 맥니마 검정이 적합합니다!

  • 쌍으로 연결된 데이터를 다룰 때 검사법 간 차이를 평가하는 데 가장 적합한 방법이기 때문이다.

 

5. 비타민c와 코로나 감염관계


1. 문제 해석

데이터 요약:

코로나 양성 코로나 음성 합계

비타민C 섭취 3 17 20
섭취 안 함 4 16 20

검정 목적:

  • 귀무가설 (H0H_0): 비타민C 섭취 여부와 코로나 감염 여부는 독립적이다.
  • 대립가설 (H1H_1): 비타민C 섭취 여부와 코로나 감염 여부는 독립적이지 않다.

2. 가설검정 방법 선택

(1) 데이터 크기와 가정 확인

  • 표본 크기가 작다: 각 셀의 관측값이 5 미만인 경우가 있어 카이제곱 검정은 부적합.
  • 2x2 교차표의 독립성을 검정하므로 피셔의 정확검정이 적합하다.

3. 피셔의 정확검정을 사용하는 이유

  • 피셔의 정확검정은 소규모 데이터에서도 정확한 pp-값을 계산할 수 있다.
  • 교차표의 관측값이 작을 때(특히 셀이 5 미만일 때), 카이제곱 검정 대신 피셔의 정확검정을 사용한다.