대응표본
- 대응표본(paired samples): 두 집단의 자료를 쌍으로 묶을 수 있을 때 평균 차이가 유의한지 검정하는 방법
- 동일한 개체를 전후로 측정하는 경우
- 장비 개선 전후
- 치료 전후 환자의 증상 개선 정도
- 교육 프로그램 전후 학생의 시험 점수
- 쌍으로 관찰된 경우
- 같은 차량의 좌우 두 바퀴
- 남편과 아내의 비교
- 쌍둥이 형제의 비교
- 같은 날짜의 두 지역 온도 차이
- 두 집단의 자료를 쌍으로 묶어야 하므로, 독립표본과 달리 두 집단의 자료 개수가 같아야 함
대응표본 t-검정의 절차
- 각 쌍의 차이 X1−X2를 계산
- 귀무가설(H0): 모든 쌍의 차이의 평균이 0이다. E[X1−X2]=0
- 차이의 평균과 표준편차를 계산
- 통계량을 계산해 t-분포에서 p-value를 계산
- p-value가 유의수준(보통 0.05)보다 작으면 귀무가설 기각
대응표본 t-검정 실습
- 각 설비에서 개선 전후 불량률(%) 측정 데이터 사용
df_paired.to_excel("machine_defect_before_after.xlsx")
df_paired["diff"] = df_paired["after"] - df_paired["before"]
df_paired[["before", "after", "diff"]].agg(["mean", "std"])
pingouin의 ttest에서 paired=True를 지정해 대응표본 t-검정 수행
pg.ttest(df_paired["before"], df_paired["after"], paired=True)
독립표본 t-검정과 대응표본 t-검정의 차이
- 독립표본 t-검정: 평균의 차이를 비교
- 대응표본 t-검정: 차이의 평균을 비교
- 평균의 차이와 차이의 평균 자체는 같음
- 하지만 표준편차가 달라져 신뢰구간이 달라짐
- 예:
[1, 2, 3] vs. [2, 3, 4]
- 독립표본일 경우: 평균의 차이 1, 표준편차 1
- 대응표본일 경우: 차이
[1, 1, 1]의 평균 1, 표준편차 0
독립표본과 대응표본의 예시
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([3, 3, 4, 5, 6])
- 독립표본 t-검정은 두 배열을 서로 독립적인 표본으로 보고 비교
- 독립표본일 경우 전체 값의 표준편차를 기준으로 변동성을 봄
np.std(np.concatenate([a, b]), ddof=1)
- 대응표본 t-검정은 같은 위치에 있는 값들의 차이를 기준으로 검정
pg.ttest(a, b, paired=True)
b = [2, 3, 4, 5, 6]이면 모든 차이가 1이 되어 표준편차가 0
- 차이의 변동이 없으면 대응표본 t-검정에서 에러가 발생할 수 있음
전후 변화 시각화
- 같은 설비의 전후 값을 선으로 연결
- 대부분의 선이 아래로 내려가면 개선 후 불량률이 감소하는 경향으로 해석
import seaborn as sns
import matplotlib.pyplot as plt
df_long = df_paired.melt(
id_vars="machine",
value_vars=["before", "after"],
var_name="timing",
value_name="defect_rate",
)
sns.pointplot(data=df_long, x="timing", y="defect_rate", hue="machine")
