가설 검정
- 표본 데이터를 통해 모집단의 가설을 검증하는 과정
- 데이터가 특정 가설을 지지하는지 평가하는 과정
- 귀무가설 H0과 대립가설 H1을 설정하고 귀무가설을 기각할지를 결정
- 데이터 분석 시 두 가지 전략을 취할 수 있음
- 확증적 자료 분석: 미리 가설을 세운 다음 가설을 검증하는 분석
- 탐색적 자료 분석(EDA): 가설을 먼저 정하지 않고 데이터를 탐색해보면서 가설 후보들을 찾고 데이터의 특징은 찾는 것.
단계
- 귀무가설 H0과 대립가설 H1 설정
- 유의수준 α 결정
- 검정통계량 계산
- p-value와 유의수준 비교
- 결론 도출
p-value와 통계적 유의성
- 통계적 유의성: 결과가 우연히 발생한 것이 아니라 어떤 효과가 실제로 존재함을 나타내는 지표
- p-value: 귀무가설이 참일 경우 통계치가 관측될 확률
- 일반적으로 p-value가 0.05 미만이면 결과가 통계적으로 유의미하다고 판단
- ex) p-value가 0.03이라면, 3%의 확률로 우연히 그 결과가 나올 수 있다는 의미.
신뢰구간과 가설 검정
- 둘 다 데이터의 모수(모집단의 평균 등)에 대한 정보를 구하고자 하는 것이지만 접근 방식이 다름.
신뢰구간
- 특정 모수가 포함될 범위를 제공
- 모집단의 평균이 특정 범위 내에 있을 것이라는 확률 나타냄
- 일반적으로 95% 신뢰구간을 사용하며, 이는 모집단 평균이 95% 확률로 이 구간 내에 있음을 의미
- ex) 어떤 설문조사에서 평균 만족도가 75점이고, 신뢰구간이 70점에서 80점이라면, 우리는 95%의 확률로 실제 평균 만족도(모집단의 만족도)가 이 범위 내에 있다고 말할 수 있다.
가설검정
참고자료 - 귀무가설 vs. 대립가설 중 하나를 선택하기 위한 증거, p-value
실습
- 새로운 약물이 기족 약물보다 효과가 있는지를 검정하고자 한다.
- 귀무가설: 새로운 약물이 기존 약물과 큰 차이가 없다.
- 대립가설: 새로운 약물이 기존 약물에 대비해 효과기 있다.
# 기존 약물(A)와 새로운 약물(B) 효과 데이터 생성
A = np.random.normal(50, 10, 100)
B = np.random.normal(55, 10, 100)
# 평균 효과 계산
mean_A = np.mean(A)
mean_B = np.mean(B)
# t-검정 수행
t_stat, p_value = stats.ttest_ind(A, B)
print(f"A 평균 효과: {mean_A}")
print(f"B 평균 효과: {mean_B}")
print(f"t-검정 통계량: {t_stat}")
print(f"p-값: {p_value}")
# t-검정의 p-값 확인 (위 예시에서 계산된 p-값 사용)
print(f"p-값: {p_value}")
if p_value < 0.05:
print("귀무가설을 기각합니다. 통계적으로 유의미한 차이가 있습니다.")
else:
print("귀무가설을 기각하지 않습니다. 통계적으로 유의미한 차이가 없습니다.")
결과:
A 평균 효과: 49.51600806019023
B 평균 효과: 54.566937114298455
t-검정 통계량: -3.662142837783295
p-값: 0.0003209375394186759
p-값: 0.0003209375394186759
귀무가설을 기각합니다. 통계적으로 유의미한 차이가 있습니다.