⬇️ 더 많은 ANOVA 자료와 코드는 깃허브에서 볼 수 있습니다 ! ⬇️
https://github.com/Minju-nimm/ADP/blob/master/Statistics/8_ANOVA.ipynb
[ One-way ANOVA ]
개념
- 인자, 요인 (factor) : 학년과 같이 모집단의 그룹을 구분하는데 사용되는 변량을 그룹 또는 인자(factor)라고 하는데 대부분 이산형 변량이다.
- 수준(level) : 인자가 가지는 값들을 인자의 수준(level)이라고 하며, 이들 수준의 개수가 비교되는 모집단의 개수가 된다.
이와 같이 하나의 인자가 반응변량에 미치는 영향을 조사하는 분산분석법을 일원분산분석(one-way ANOVA)이라 한다.
예시
- 어느 대학에서 각 학년별 도서관 평균이용시간이 같은가?
- 세 가지 다른 품종의 벼의 수확량이 같은가?
- 어떤 화학반응에서 네 가지 다른 온도에서 반응속도가 같은가?
- 도시별 대졸자의 월평균 임금이 같은가?
가설
- 귀무가설 $H_0 : \mu_1 = \mu_2 = \cdots = \mu_k$
- 대립가설 $H_1$ : 적어도 한 쌍의 $\mu_i$가 같지 않다.
Example : ADP 실기 29회
아래 데이터는 a,b,c,d 네 차종 각각 5회 실험 시 범퍼 파손 정도이다. (단, 각 모집단은 정규분포를 따르며 모집단 간 등분산성을 가정한다.)
1. 각 차종 별 범퍼 파손의 정도에 차이가 유의한지 검정하라.
2. 귀무가설을 채택한다면 그 의미를 해석하고, 귀무가설을 기각하였다면 사후분석을 시행하라.
df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/main/adp/29/p7.csv')
df.head()
plt.figure(figsize=(3,3))
sns.boxplot(x ='name', y='ratio', data = df, hue='name')
plt.legend(loc='upper right') # 범례 위치 설정
plt.title('차종별 파손 정도 비율')
plt.show()
가설
- 귀무가설 : 각 차종 별 범퍼 파손 정도에 차이가 없다.
- 대립가설 : 각 차종 별 범퍼 파손 정도에 차이가 있다.
# 일원 분산분석 수행
from scipy.stats import f_oneway
f_statistic, p_value = f_oneway(df.query("name =='A'")['ratio'],
df.query("name =='B'")['ratio'],
df.query("name =='C'")['ratio'],
df.query("name =='D'")['ratio'])
print("검정통계량 : {:.3f}".format(f_statistic))
print("p-value : {:.3f}".format(p_value))
- p-value가 0.000으로 유의수준 0.05보다 작아 귀무가설을 기각한다.
- 즉, 각 차종별 범퍼 파손 정도에 차이가 있다고 할 수 있으므로, 사후분석을 시행한다.
`pairwise_tukeyhsd` 이용한 사후검정
- 귀무가설 : 4개 그룹의 차이가 존재하지 않는다.
- 대립가설 : 4개 그룹들 중 차이가 있는 그룹이 존재한다.
from statsmodels.stats.multicomp import pairwise_tukeyhsd
posthoc = pairwise_tukeyhsd(df['ratio'], df['name'], alpha=0.05)
display(posthoc.summary())
- 결과적으로 A와 D그룹을 비교했을때 p-value는 0.92로 귀무가설을 기각하지 못한다.
- 나머지 모든 그룹쌍 사이에는 차이가 존재하는 것을 확인할 수 있다.
728x90
'📊 Statistics' 카테고리의 다른 글
[통계/개념] p-value란 대체 무엇인가? (+ 유의수준) (0) | 2023.09.16 |
---|---|
[통계/Python] 이표본 비율 검정, ADP 실기 29회 풀이 (0) | 2023.08.26 |
[통계/Python] 맥니마 검정(McNemar's test) 개념 및 예제, ADP 실기 28회 풀이 (0) | 2023.08.15 |
[통계/Python] 음이항분포(Negative Binomial Distribution) 개념 및 예제 (0) | 2023.08.12 |
[통계/Python] 다항분포(Multinomial Distribution) 개념 및 예제 (0) | 2023.08.08 |