본문 바로가기
[업무 지식]/Statistics

[다중검정] 유의성 검정

by 에디터 윤슬 2024. 11. 12.

다중검정이란

☑️ 다중검정

  • 여러 가설을 동시에 검정할 때 발생하는 문제
  • 각 검정마다 유의수준을 조정하지 않으면 1종 오류(귀무가설이 참인데 기각하는 오류) 발생 확률이 증가
  • 1종 오류가 무엇인지랑 왜 다중검정시 발생확률이 증가하는지는 밑에서 다시 설명! 지금은, 어떤 오류가 발생할 수 있다는 정도로 이해!

☑️ 보정 방법

  • 본페로니 보정, 튜키 보정, 던넷 보정, 윌리엄스 보정 등이 있음
  • 가장 대표적이고 기본적인게 본페로니 보정

python 실습

import numpy as np
import scipy.stats as stats

# 세 그룹의 데이터 생성
np.random.seed(42)
group_A = np.random.normal(10, 2, 30)
group_B = np.random.normal(12, 2, 30)
group_C = np.random.normal(11, 2, 30)

# 세 그룹 간 평균 차이에 대한 t검정 수행
p_values = []
p_values.append(stats.ttest_ind(group_A, group_B).pvalue)
p_values.append(stats.ttest_ind(group_A, group_C).pvalue)
p_values.append(stats.ttest_ind(group_B, group_C).pvalue)

# 본페로니 보정 적용
alpha = 0.05
adjusted_alpha = alpha / len(p_values)

# 결과 출력
print(f"본페로니 보정된 유의 수준: {adjusted_alpha:.4f}")
for i, p in enumerate(p_values):
    if p < adjusted_alpha:
        print(f"검정 {i+1}: 유의미한 차이 발견 (p = {p:.4f})")
    else:
        print(f"검정 {i+1}: 유의미한 차이 없음 (p = {p:.4f})")

 

  • 독립 표본 t - 검정
    • stats.ttest_ind() 함수는 두 독립된 그룹 간 평균 차이를 비교하는 t-검정을 수행합니다.
    • 각 그룹 간 t-검정을 수행하고 그 결과로 나온 p-value(유의확률)를 리스트에 저장합니다.
      • group_A와 group_B 비교
      • group_A와 group_C 비교
      • group_B와 group_C 비교
  • 본페로니 보정
    • 본페로니 보정은 다중 비교 문제에서 발생할 수 있는 1종 오류(잘못된 긍정)를 줄이기 위해 사용됩니다.
    • 기본 유의 수준인 α=0.05를 검정 횟수로 나누어 보정된 유의 수준을 계산합니다. 여기서는 세 번의 검정을 수행했으므로 α/3이 됩니다.
  • 본페로니 보정된 유의 수준 출력
    • adjusted_alpha는 본페로니 보정을 적용한 유의 수준입니다.
    • 기본 유의 수준인 α=0.05를 검정 횟수로 나누어 계산된 값입니다.
    • 예를 들어, 3번의 t-검정을 수행했으므로 adjusted alpha = 0.05/3 = 0.0167이 됩니다.
  • {adjusted_alpha:.4f}는 소수점 네 자리까지 유의 수준을 출력합니다.
    • 예시 출력: 본페로니 보정된 유의 수준: 0.0167
  • 각 검정에 대한 결과 출력
    • enumerate() 함수는 p_values 리스트에서 각 p-value와 그 인덱스를 함께 반환합니다.
    • i는 인덱스(0부터 시작), p는 해당 인덱스에 있는 p-value입니다.
    • 예를 들어, p_values가 [0.03, 0.01, 0.05]라면:
      • 첫 번째 반복에서 i=0, p=0.03
      • 두 번째 반복에서 i=1, p=0.01
      • 세 번째 반복에서 i=2, p=0.05
유의미한 차이 여부 판단
본페로니 보정된 유의 수준: 0.0167
검정 1: 유의미한 차이 발견 (p = 0.0000)
검정 2: 유의미한 차이 발견 (p = 0.0058)
검정 3: 유의미한 차이 없음 (p = 0.1461)
  • 각 t-검정에서 계산된 p-value가 본페로니 보정을 적용한 유의 수준(adjusted_alpha)보다 작은지 확인합니다.
    • 유의미한 차이 발견:
      • 만약 p-value가 보정된 유의 수준보다 작다면, 두 그룹 간에 유의미한 차이가 있다고 결론을 내립니다.
      • 예시: 만약 p=0.01이고 adjusted alpha=0.0167이면, 이는 유의미한 차이가 있음을 의미합니다.
    • 유의미한 차이 없음:
      • 반대로, p-value가 보정된 유의 수준보다 크다면, 두 그룹 간에 유의미한 차이가 없다고 결론을 내립니다.

'[업무 지식] > Statistics' 카테고리의 다른 글

[분산팽창요인] VIF(Variance Inflation Factor)  (0) 2024.11.12
[선형회귀] Regression  (0) 2024.11.12
[t검정] 유의성 검정  (0) 2024.11.12
[가설검정] 유의성 검정  (0) 2024.11.11
[A/B 검정] 유의성 검정  (0) 2024.11.11