728x90
일원배치 분산분석
하나의 요인(성별, 종교, 부서)에 따른 세 개 이상의 집단 평균 비교
종(Species)별로 꽃받침의 폭(SepalWidthCm)에 차이가 있는지 통계적 검정을 수행하여라. (유의수준 = 0.05)
setosa = data[data['Species']==target_list[0]]['SepalWidthCm']
versicolor = data[data['Species']==target_list[1]]['SepalWidthCm']
virginica = data[data['Species']==target_list[2]]['SepalWidthCm']
1. 가설설정
귀무가설 : 세 가지 종에 대해 꽃받침의 평균은 차이가 없다.
대립가설 : 적어도 하나의 종에 대한 꽃받침의 평균은 차이가 있다.
2. 유의수준 설정 (0.05)
문제에서 제시된 0.05 사용
3. 정규성 검정
from scipy.stats import shapiro
print(stats.shapiro(setosa))
print(stats.shapiro(versicolor))
print(stats.shapiro(virginica))
# 출력값
# ShapiroResult(statistic=0.9686918964570316, pvalue=0.20465666067562632)
# ShapiroResult(statistic=0.9741332819702798, pvalue=0.3379951061741378)
# ShapiroResult(statistic=0.9673905311257006, pvalue=0.18089604109069918)
=> p-value가 유의수준(0.05)보다 크기 때문에 '데이터는 정규성을 만족한다'라는 귀무가설 채택
4. 등분산성 검정
stats.levene(setosa, versicolor, virginica)
# 출력값
# LeveneResult(statistic=0.6475222363405327, pvalue=0.5248269975064537)
=> p-value가 유의수준(0.05)보다 크기 때문에 '데이터는 등분산성을 만족한다'라는 귀무가설 채택
5. 검정통계량 값 및 p-value(유의확률) 계산
stats.f_oneway(setosa, versicolor, virginica)
# 출력값
# F_onewayResult(statistic=47.36446140299382, pvalue=1.3279165184572242e-16)
=> p-value가 유의수준(0.05)보다 작기 때문에 '적어도 하나의 종에 대한 꽃받침의 평균은 차이가 있다'라는 대립가설 채택
6. 사후검정
귀무가설 : 집단들 사이의 평균은 차이가 없다.
대립가설 : 집단들 사이의 평균은 차이가 있다.
# 각 집단의 평균을 그래프로 표시
from statsmodels.stats.multicomp import pairwise_tukeyhsd
from statsmodels.stats.multicomp import MultiComparison
mc = MultiComparison(data=data['SepalWidthCm'], groups=data['Species'])
tuekeyhsd = mc.tukeyhsd(alpha=0.05)
fig = tuekeyhsd.plot_simultaneous()
# 두 집단씩 짝을 지어 다중비교를 수행
tuekeyhsd.summary()
=> p-value가 유의수준(0.05)보다 작기 때문에 '집단들 사이의 평균은 차이가 있다'라는 대립가설 채택
=> 모든 종들에 대해 꽃받침 폭의 평균은 통계적으로 유의한 차이가 있다
728x90
'ADP > 통계분석' 카테고리의 다른 글
[통계분석] 예제로 풀어보는 교차분석(카이제곱검정) (0) | 2024.10.11 |
---|---|
[통계분석] 예제로 풀어보는 분산분석(ANOVA) - 이원배치 분산분석 (0) | 2024.10.11 |
[통계분석] 예제로 풀어보는 t-검정 (4) | 2024.10.11 |
[통계분석] 이항분포 (1) | 2024.10.11 |
[통계분석] 표본 크기 계산 (0) | 2024.10.11 |