1. 부호 검정 (Sign Test)
부호 검정은 한 집단의 중앙값이 특정 값과 동일한지 또는 두 집단의 중앙값 차이가 유의미한지를 검정하는 비모수 방법
중앙값에 기초하여, 각 데이터가 특정 값보다 큰지, 작은지를 확인합니다.
## 새로운 교육 프로그램이 학생들의 점수를 올렸는지 검정하는 경우, 부호 검정을 사용
from scipy.stats import binom
# 기존 점수와 새로운 점수
before = [70, 65, 80, 75, 72]
after = [75, 67, 82, 77, 73]
# 차이 계산
diff = [a - b for a, b in zip(after, before)]
# 부호 검정 수행
positive_count = sum(1 for d in diff if d > 0)
n = len(diff)
p_value = 2 * binom.cdf(min(positive_count, n - positive_count), n, 0.5)
print(f"부호 검정 P-값: {p_value}")
- 귀무가설: 중앙값 변화가 없다.
- 대립가설: 중앙값이 달라졌다.
p-값이 유의 수준보다 작으면 중앙값 변화가 유의미하다고 결론 내릴 수 있습니다.
2. 윌콕슨 부호 순위 검정 (Wilcoxon Signed-Rank Test)
윌콕슨 부호 순위 검정은 대응 표본에서 두 그룹 간의 차이가 유의미한지를 검정하는 방법입니다.
두 그룹 간의 차이의 순위를 사용하여 중앙값 차이가 유의미한지를 평가합니다.
## 동일한 학생들이 프로그램 전후에 달성한 점수를 비교할 때 사용
from scipy.stats import wilcoxon
# 프로그램 전후 점수
before = [70, 65, 80, 75, 72]
after = [75, 67, 82, 77, 73]
# 윌콕슨 부호 순위 검정 수행
stat, p_value = wilcoxon(before, after)
print(f"윌콕슨 부호 순위 검정 통계량: {stat}")
print(f"P-값: {p_value}")
- 귀무가설: 두 집단의 중앙값 차이가 없다.
- 대립가설: 두 집단의 중앙값 차이가 있다.
3. 만-위트니 U 검정 (Mann-Whitney U Test)
만-위트니 U 검정은 독립적인 두 집단의 중앙값이 동일한지를 검정하는 방법입니다.
두 집단 간 순위를 비교하여 차이가 유의미한지 평가합니다.
##남학생과 여학생 간의 시험 점수가 차이가 있는지 검정
from scipy.stats import mannwhitneyu
# 남학생과 여학생의 점수
male_scores = [75, 80, 70, 85, 78]
female_scores = [65, 68, 72, 70, 66]
# 만-위트니 U 검정 수행
stat, p_value = mannwhitneyu(male_scores, female_scores, alternative='two-sided')
print(f"만-위트니 U 검정 통계량: {stat}")
print(f"P-값: {p_value}")
- 귀무가설: 두 집단의 중앙값이 같다.
- 대립가설: 두 집단의 중앙값이 다르다.
4. 크루스칼-왈리스 검정 (Kruskal-Wallis Test)
크루스칼-왈리스 검정은 세 개 이상의 독립된 집단에서 중앙값 차이가 유의미한지를 검정하는 방법입니다.
각 집단의 순위 합을 비교하여, 모든 집단 간의 차이가 유의미한지 평가합니다.
## 세 개의 다른 교육 프로그램이 학생들의 성적에 미치는 영향이 유의미한지 검정
from scipy.stats import kruskal
# 세 그룹의 점수 데이터
group1 = [70, 72, 68, 71, 69]
group2 = [75, 78, 77, 74, 76]
group3 = [80, 82, 81, 79, 83]
# 크루스칼-왈리스 검정 수행
stat, p_value = kruskal(group1, group2, group3)
print(f"크루스칼-왈리스 검정 통계량: {stat}")
print(f"P-값: {p_value}")
- 귀무가설: 세 집단의 중앙값이 같다.
- 대립가설: 적어도 하나의 집단이 다른 중앙값을 가진다.
5. 스피어만 순위 상관 검정 (Spearman’s Rank Correlation Test)
스피어만 순위 상관 검정은 두 변수 간의 비선형 관계 또는 순서 관계를 평가하는 비모수 방법입니다.
##두 종류의 시험 점수 간 상관관계를 검정
from scipy.stats import spearmanr
# 두 시험 점수 데이터
exam1_scores = [80, 78, 75, 85, 90]
exam2_scores = [82, 77, 78, 88, 92]
# 스피어만 순위 상관 검정 수행
corr, p_value = spearmanr(exam1_scores, exam2_scores)
print(f"스피어만 순위 상관계수: {corr}")
print(f"P-값: {p_value}")
- 귀무가설: 두 변수 간 상관관계가 없다.
- 대립가설: 두 변수 간 상관관계가 있다.
6. 런 검정
순서가 있는 데이터에서 패턴이나 순차적 경향이 존재하는지를 검정하는 방법
특정한 시간적 흐름이나 순서를 가진 데이터에서 무작위성을 검정할 때 사용합니다.
주로 시계열 데이터나 프로세스 품질 검사에서 데이터가 무작위성을 띠는지를 확인하는 데 유용
## 생산 공정에서 불량 제품이 무작위로 발생하는지 검정
from statsmodels.sandbox.stats.runs import runstest_1samp
import numpy as np
# 예시 데이터 (1은 불량, 0은 양품)
production_data = [1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0]
# 런 검정 수행 (중앙값 기준으로 양성/음성 나누기)
z_stat, p_value = runstest_1samp(production_data, correction=True)
print(f"런 검정 통계량: {z_stat}")
print(f"P-값: {p_value}")
- 귀무가설: 데이터가 무작위적이다.
- 대립가설: 데이터에 패턴이 존재한다.
반응형
'데이터분석' 카테고리의 다른 글
오분류 추정 및 확인 (0) | 2024.11.09 |
---|---|
데이터 분할 시 양이 충분하지 않은 경우 (1) | 2024.11.08 |
데이터 스케일링 및 모델 특성 선택법 (3) | 2024.11.06 |
Jupyter 를 이용한 패키지 및 데이터 관리 (1) | 2024.11.05 |
데이터 분석에서 자주 사용되는 대표적인 Use_Case(2) (3) | 2024.10.23 |