일원분산분석의 가정 확인
일원분산분석의 가정들
- 독립성: 자료의 추출은 독립적으로 이루어졌음
- 무선표집을 하였다면 만족하는 것으로 여김
- 정규성: 자료의 모집단 분포는 정규분포를 따름
- 등분산성: 모든 집단의 모분산은 동일함
정규성 확인
- 수준별(집단별)로 실시하여 확인
먼저 데이터를 연다.
import pandas as pd
df = pd.read_csv('PlantGrowth.csv')
ctrl
수준의 정규성을 확인한다.
import scipy.stats
scipy.stats.shapiro(df.weight[df.group=='ctrl'])
(0.9566815495491028, 0.7474744915962219)
trt1
수준의 정규성을 확인한다.
scipy.stats.shapiro(df.weight[df.group=='trt1'])
(0.9304107427597046, 0.4519447386264801)
trt2
수준의 정규성을 확인한다.
scipy.stats.shapiro(df.weight[df.group=='trt2'])
(0.9410051107406616, 0.5642509460449219)
모두 p >.05이므로 각 집단의 자료가 정규성을 크게 벗어난다고 보기 어려움
독립성 확인
- 자료 수집이 무선표집(random sampling)되었다면 만족한다고 봄
등분산성 확인
레빈 검증:
scipy.stats.levene(
df.weight[df.group == 'ctrl'],
df.weight[df.group == 'trt1'],
df.weight[df.group == 'trt2'] )
LeveneResult(statistic=1.1191856948703909, pvalue=0.3412266241254737)
바틀렛 검증:
scipy.stats.bartlett(
df.weight[df.group == 'ctrl'],
df.weight[df.group == 'trt1'],
df.weight[df.group == 'trt2'] )
BartlettResult(statistic=2.8785737872360935, pvalue=0.23709677363455822)
두 테스트 모두, 세 집단의 모분산에 유의미한 차이를 발견하지 못함. 등분산성 가정이 유지됨