데이터를 기반으로 특정 주장이나 가설이 맞는지 검토하는 과정
가설 검정이란?
가설 검정의 기본 구성요소
가설 검정의 과정
가설 검정의 유형
유의 수준과 P-value
주의사항
ptrhon을 이용한 샘플 예제 코드
import numpy as np
from scipy import stats
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 예제 1: 독립표본 t-검정
# 두 학습 방법의 시험 점수 비교
np.random.seed(42) # 재현성을 위한 시드 설정
# 데이터 생성
method_a = np.random.normal(loc=75, scale=10, size=30) # 기존 학습 방법
method_b = np.random.normal(loc=80, scale=10, size=30) # 새로운 학습 방법
def run_ttest_example():
"""두 학습 방법의 효과 비교를 위한 독립표본 t-검정"""
t_stat, p_value = stats.ttest_ind(method_a, method_b)
print("1. 독립표본 t-검정 결과")
print(f"t-통계량: {t_stat:.4f}")
print(f"p-값: {p_value:.4f}")
print(f"방법 A 평균: {np.mean(method_a):.2f}")
print(f"방법 B 평균: {np.mean(method_b):.2f}")
# 시각화
plt.figure(figsize=(10, 6))
plt.boxplot([method_a, method_b], labels=['방법 A', '방법 B'])
plt.title('학습 방법별 시험 점수 분포')
plt.ylabel('점수')
plt.show()
# 예제 2: 카이제곱 검정
# 성별과 선호하는 프로그래밍 언어의 관계 분석
def run_chi2_example():
"""성별과 선호 프로그래밍 언어 간의 관계 분석"""
# 가상의 설문 데이터 생성
data = {
'Python': [50, 30],
'Java': [40, 35],
'JavaScript': [30, 45]
}
# 데이터프레임 생성
df = pd.DataFrame(data, index=['남성', '여성'])
# 카이제곱 검정 수행
chi2, p_value, dof, expected = stats.chi2_contingency(df)
print("\n2. 카이제곱 검정 결과")
print(f"카이제곱 통계량: {chi2:.4f}")
print(f"p-값: {p_value:.4f}")
print("\n관찰된 빈도:")
print(df)
print("\n기대 빈도:")
print(pd.DataFrame(expected, index=['남성', '여성'],
columns=['Python', 'Java', 'JavaScript']))
# 예제 3: 일원배치 분산분석(ANOVA)
# 세 가지 다른 학습 방법 비교
def run_anova_example():
"""세 가지 학습 방법의 효과 비교"""
# 데이터 생성
method_1 = np.random.normal(loc=70, scale=10, size=30)
method_2 = np.random.normal(loc=75, scale=10, size=30)
method_3 = np.random.normal(loc=80, scale=10, size=30)
# ANOVA 수행
f_stat, p_value = stats.f_oneway(method_1, method_2, method_3)
print("\n3. 일원배치 분산분석 결과")
print(f"F-통계량: {f_stat:.4f}")
print(f"p-값: {p_value:.4f}")
# 시각화
data = [method_1, method_2, method_3]
plt.figure(figsize=(10, 6))
plt.boxplot(data, labels=['방법 1', '방법 2', '방법 3'])
plt.title('세 가지 학습 방법의 점수 분포')
plt.ylabel('점수')
plt.show()
# 모든 예제 실행
if __name__ == "__main__":
print("가설 검정 예제 실행\n")
run_ttest_example()
run_chi2_example()
run_anova_example()
데이터 분석 - 분포 분석 (0) | 2025.01.06 |
---|---|
데이터 분석 - 기술 통계 (0) | 2024.12.11 |