주제 : 독3사(Benz, BMW, Audi)별 차량의 소음 수준 비교
(문제)
독3사(벤츠, BMW, Audi) 별 평균 차이 검정을 하고자 한다.
세 집단(벤츠, BMW, Audi)의 관측값은 서로 독립이고, 데이터는 브랜드 별로 각각 50개씩 있다.
두 그룹의 표본 크기가 30개 이상으로 충분히 크기 때문에, 중심극한정리에 따라 각 그룹의 표본 평균의 분포가 정규분포에 가까워질 가능성이 높다.
유의수준 0.05에서 귀무가설을 기각할 수 있는지 판단하고 결과를 해석하라.
세 집단 이상의 모평균 차이 검정(ANOVA), 예제 56
##데이터 살펴보기
doc3data <- read.csv("c:\\data\\car_data.csv")
print(doc3data[c(1, 51,101),])
귀무가설 : 세 브랜드(Benz, BMW, Audi)별 소음 수준엔 차이가 없다.
대립가설 : 적어도 한 집단 이상에서, 세 브랜드(Benz, BMW, Audi)간 소음 수준에 차이가 있다.
## 데이터 준비 noise <- doc3data[, c("Brand", "NoiseLevel")] head(noise)
## 데이터프레임 확인 is.data.frame(noise) #TRUE
## 기술통계량 계산 # 기술통계량을 계산하기 위해서는 데이터가 데이터프레임이어야 한다 attach(noise) tapply(NoiseLevel, Brand, mean) detach(noise) # BMW의 소음수준 평균(62.73204) > Benz의 소음수준 평균(60.17202) > Audi의 소음수준 평균(59.73050)
## ANOVA 분석 options(scipen = 999) result <- aov(NoiseLevel ~ Brand, data = noise) result #모델 오차의 크기(4.704476)은 소음수준 데이터의 평균 59~62수준, 표준편차 5기준과 비교했을 때 설명력이 비교적 높은 편이다. #이는 모델 오차의 크기(MSE)가 데이터의 분산(총 변동)에 비해 충분히 작기 때문에 모델이 데이터를 잘 설명한다고 볼 수 있다는 의미 #분산값과 표준편차를 확인한 뒤, 결정계수 값을 계산하면 더 구체적으로 평가할 수 있다. 이 방법은 객관적인 판단이 가능하다. #설명력이 충분하다고 판단되면 모델을 유지하고, 설명력이 낮다면 추가 변수나 상호작용 항목을 고려하여 모델을 개선할 필요가 있다.
summary(result) # p-value(0.00333) < 유의수준(0.05) => 귀무가설 기각 # 즉, 적어도 한 집단 이상에서, 세 브랜드(Benz, BMW, Audi)간 소음 수준에 차이가 있다. # F검정 통계량 = 5.933
## 사후검정 (Tukey's HSD, 그룹간의 구체적인 비교 분석) TukeyHSD(result) # Benz-Audi (Benz-Audi의 차이) : p-value(0.8858162) > 유의수준(0.05) => 통계적으로 유의하지 않다. # BMW-Audi (BMW-Audi의 차이) : p-value(0.0049206) < 유의수준(0.05) => 통계적으로 유의하다. # BMW-Benz (BMW-Benz의 차이) : p-value(0.0198530) < 유의수준(0.05) => 통계적으로 유의하다. # lwr : 신뢰구간의 하한 # upr : 신뢰구간의 상한 # p adj : p-value
## 정규성 검정 (Q-Q plot)
#시각으로 정규성 확인하는 방법 (다소 주관적인 정규성 확인) qqnorm(residuals(result)) qqline(residuals(result))
#대부분의 점들이 대각선에 가깝게 위치하고 있으므로, 정규성을 만족하는 것으로 해석한다.
#숫자로 정규성을 확인하는 방법 (객관적인 정규성 확인) shapiro.test(residuals(result)) #residuals=잔차 #이 결과의 귀무가설 : 데이터(잔차)가 정규성을 따른다. #이 결과의 대립가설 : 데이터(잔차)가 정규성을 따르지 않는다. #p-value(0.5269) > 유의수준(0.05) => 귀무가설 채택
## 등분산성 검정 bartlett.test(NoiseLevel ~ Brand, data = noise) #이 결과의 귀무가설 : 세 그룹의 분산이 같다. #이 결과의 대립가설 : 세 그룹의 분산이 다르다. #p-value(0.8115) > 유의수준(0.05) => 귀무가설 채택
## 시각화 (boxplot) boxplot(NoiseLevel ~ Brand, data = noise, main = "세 브랜드(Benz, BMW, Audi)별 소음 수준 차이")
##결과 해석 ano_result <- summary(result) p_value <- ano_result[[1]][["Pr(>F)"]][1] p_value # 0.003326089
if(p_value < 0.05) { print('유의수준 5%에서 귀무가설을 기각한다.') print('즉, 적어도 한 집단 이상에서, 세 브랜드(Benz, BMW, Audi)간 소음 수준에 차이가 있다. ') } else { print('유의수준 5%에서 귀무가설 채택한다.') print('즉, 세 브랜드(Benz, BMW, Audi)별 소음 수준엔 차이가 없다.')}
|
결론 :
독립성, 정규성, 등분산성을 만족했기 때문에 ANOVA 가설검정을 진행할 수 있었다.
ANOVA 가설검정 결과, 적어도 한 집단 이상에서, 세 브랜드(Benz, BMW, Audi)간 소음 수준에 차이가 있음을 확인했다.
사후검정 결과, Benz와 Audi 간 소음 수준에는 통계적으로 유의미한 차이가 없었으나, BMW는 다른 두 브랜드(Benz와 Audi)와 소음 수준에서 유의미한 차이를 보였다.
시각화(Boxplot)를 참고하면, BMW 차량의 소음 수준이 상대적으로 높은 것으로 나타났다.
따라서, "BMW 차량의 소음 수준이 타사 브랜드보다 상대적으로 높다"는 결론을 도출할 수 있다.