데이터 분석/R
[R] ANOVA 검정
eunki
2021. 6. 27. 06:14
728x90
1. 데이터 불러오기
raw_anova <- read.csv("htest04.csv", header = TRUE)
2. 집단 나누기
groupA4 <- raw_anova[raw_anova$group=='A', 1:2]
groupB4 <- raw_anova[raw_anova$group=='B', 1:2]
groupC4 <- raw_anova[raw_anova$group=='C', 1:2]
3. 각 집단의 평균 구해서 비교하기
mean(groupA4[,2]) # 174.7778
mean(groupB4[,2]) # 181
mean(groupC4[,2]) # 164.9
4-1. 정규성 검정 - 집단A
귀무가설: 데이터셋이 정규분포를 따른다.
대립가설: 데이터셋이 정규분포를 따르지 않는다.
shapiro.test(groupA4)
→ p-value = 0.8978 이므로, 귀무가설을 채택한다.
qqnorm(groupA4[,2])
qqline(groupA4[,2])
4-2. 정규성 검정 - 집단B
shapiro.test(groupB4)
→ p-value = 0.9108 이므로, 귀무가설을 채택한다.
qqnorm(groupB4[,2])
qqline(groupB4[,2])
4-3. 정규성 검정 - 집단B
shapiro.test(groupC4)
→ p-value = 0.6313 이므로, 귀무가설을 채택한다.
qqnorm(groupC4[,2])
qqline(groupC4[,2])
5. 분산 동질성 검정
귀무가설: 세 집단 간 분산이 동일하다.
대립가설: 세 집단 간 분산이 다르다.
install.packages("lawstat")
library(lawstat)
5-1. levene 테스트
levene.test(raw_anova$height, raw_anova$group)
→ p-value = 0.3298 이므로, 귀무가설을 채택한다.
5-2. bartlett 테스트
bartlett.test(height~group, data=raw_anova)
→ p-value = 0.3435 이므로, 귀무가설을 채택한다.
6. ANOVA 테스트
귀무가설: 세 집단 간 평균이 동일하다.
대립가설: 세 집단 간 평균이 다르다.
rawAnova <- aov(height~group, data=raw_anova)
summary(rawAnova)
→ p-value = 1.14e-05 이므로, 대립가설을 채택한다.
→ Mean.Sq-group = 658.4 (그룹 간 오차)
→ Mean.Sq-Residuals = 36.2 (그룹 내 오차)
728x90