## [1] "C:/data"
데이터의 분포를 박스 플롯으로 시각화하고 주요 기술통계를 본다.
# boxplot
boxplot(값 ~ 특성,
data=data_anova,
main = "Boxplot of evaluation for each question",
xlab = "Factor Levels : questions",
ylab = "evauation")## $A
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 58.79 66.17 69.67 69.67 73.16 83.35
##
## $B
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 58.22 70.78 75.06 74.74 78.36 91.31
##
## $C
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 54.33 65.00 68.85 68.46 71.95 80.73
##
## $D
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 49.84 61.58 65.25 64.92 68.48 77.39
##
## $E
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 61.51 70.05 73.35 73.24 76.47 88.90
##
## $F
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 60.08 67.94 71.28 71.24 74.58 82.90
제안별 수용도에서 하나 이상의 차이가 있는지 확인하기 위해 ANOVA를 수행한다.
## Df Sum Sq Mean Sq F value Pr(>F)
## 특성 5 18602 3720 149.4 <2e-16 ***
## Residuals 1794 44664 25
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Tables of effects
##
## 특성
## 특성
## A B C D E F
## -0.710 4.362 -1.921 -5.462 2.865 0.866
일원 분산분석 결과 최소한 하나 이상의 오퍼에 대한 수용도 차이가 있다고 보인다. (p<0.05이므로)
오퍼별 평균 대비 상대적 값을 본 결과, B,E 오퍼에 대한 수용도가 높은 반면 C,D에 대한 수용도는 낮은 것으로 보인다.
표본수가 30 이상이므로 정규성 검정은 할 필요가 없으나 학습과정이므로 시행한다.
##
## Shapiro-Wilk normality test
##
## data: result$residuals
## W = 0.99843, p-value = 0.09167
# 잔차에 대한 정규성 검정: anderson darling test (표본수가 5000이상일 때)
# install.packages("nortest")
library(nortest)
ad.test(result$residuals)##
## Anderson-Darling normality test
##
## data: result$residuals
## A = 0.78864, p-value = 0.04081
shapiro.test결과는 정규성을 위배하지 않는다고 나왔지만 anderson darling test결과로는 위배하는 것으로 파악된다. 하지만 표본수가 충분히 크기 때문에 정규성 가정은 신경쓰지 않는다.
등분산성을 가설검정할 때 요인의 수준이 2 개인 경우에는 두 모집단의 분산의 차이 검정을 F-분포를 사용하여 수행할 수 있다. 이 경우에는 var.test() 함수를 이용하여 가설검정을 수행하였다. 그러나 요인의 수준이 3 개 이상인 경우에는 bartlet.test()을 사용한다.
# Bartlett test to test the null hypothesis of equal group variances: 등분산 검정
bartlett.test(값 ~ 특성, data = data_anova)##
## Bartlett test of homogeneity of variances
##
## data: 값 by 특성
## Bartlett's K-squared = 8.6907, df = 5, p-value = 0.1221
p-값>0.05이므로 등분산 가정을 기각하지 못했다.
ANOVA 분석을 통해 평균이 같다는 귀무가설이 기각되면, 어느 수준 간의 차이에 의해 귀무가설이 기각되었는지 살펴보아야 한다. 이를 살펴보는 방법 중 하나가 가능한 모든 두 수준 간에 평균의 차이가 있었는지를 가설검정해 보는 것이다. 이는 두 모집단 간의 모평균 비교와 같아진다. 다만 수준이 많은 경우 단순히 두 수준 간의 평균의 차이를 가설검정하는 것은 여러 개의 가설을 동시적으로 검정하는 것이 되어서 기각역 또는 p-값의 조정이 필요하다. R의 기본 기능에 포함되어 있는 TukeyHSD() 함수와 scheffe.test는 이러한 수준별 쌍 비교를 수행해 준다.
##------------------------------------------------------------------
## multiple comparison
## - Tukey's HSD(honestly significant difference) test : TukeyHSD()
##------------------------------------------------------------------
TukeyHSD(result)## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = 값 ~ 특성, data = data_anova)
##
## $특성
## diff lwr upr p adj
## B-A 5.071821 3.9095902 6.23405206 0.0000000
## C-A -1.211064 -2.3732952 -0.04883339 0.0353955
## D-A -4.751949 -5.9141802 -3.58971834 0.0000000
## E-A 3.574484 2.4122533 4.73671518 0.0000000
## F-A 1.575414 0.4131828 2.73764465 0.0015912
## C-B -6.282885 -7.4451164 -5.12065452 0.0000000
## D-B -9.823770 -10.9860013 -8.66153948 0.0000000
## E-B -1.497337 -2.6595678 -0.33510595 0.0033332
## F-B -3.496407 -4.6586383 -2.33417648 0.0000000
## D-C -3.540885 -4.7031159 -2.37865403 0.0000000
## E-C 4.785549 3.6233176 5.94777949 0.0000000
## F-C 2.786478 1.6242471 3.94870897 0.0000000
## E-D 8.326434 7.1642026 9.48866445 0.0000000
## F-D 6.327363 5.1651321 7.48959392 0.0000000
## F-E -1.999071 -3.1613015 -0.83683960 0.0000149
## A B C D E F
## 69.66722 74.73904 68.45616 64.91527 73.24171 71.24264
위의 모든 비교에서 유의미한 차이가 있다고 보이므로 앞서 봤던 평균 순서 그대로 차이가 있다고 판단된다.
\[B>E>F>A>C>D\]
##------------------------------------------------------------------
## multiple comparison
## - Scheffe test : scheffe.test()
##------------------------------------------------------------------
# install.packages('agricolae')
library(agricolae)
scheffe.test(result,"특성",alpha = 0.05,group=TRUE,console=TRUE)##
## Study: result ~ "특성"
##
## Scheffe Test for 값
##
## Mean Square Error : 24.89632
##
## 특성, means
##
## 값 std r se Min Max Q25 Q50 Q75
## A 69.66722 4.773053 300 0.2880759 58.79182 83.35249 66.16948 69.67084 73.16403
## B 74.73904 5.358928 300 0.2880759 58.21940 91.30598 70.77921 75.06022 78.35956
## C 68.45616 4.941499 300 0.2880759 54.33159 80.72676 65.00495 68.85282 71.95412
## D 64.91527 5.265326 300 0.2880759 49.83550 77.38503 61.58378 65.24671 68.47830
## E 73.24171 4.692675 300 0.2880759 61.51371 88.89632 70.04562 73.35434 76.46883
## F 71.24264 4.869756 300 0.2880759 60.07674 82.90091 67.93614 71.27999 74.57515
##
## Alpha: 0.05 ; DF Error: 1794
## Critical Value of F: 2.219085
##
## Minimum Significant Difference: 1.357044
##
## Means with the same letter are not significantly different.
##
## 값 groups
## B 74.73904 a
## E 73.24171 b
## F 71.24264 c
## A 69.66722 d
## C 68.45616 d
## D 64.91527 e
또 다른 다중 비교 방법인 scheffe test 결과도 거의 비슷하게 나왔지만 A와 C는 차이가 없는 것으로 판단했다.
\[B>E>F>A=C>D\]