## [1] "C:/data"
데이터의 분포를 박스 플롯으로 시각화하고 주요 기술통계를 본다.
# boxplot
boxplot(Sales ~ Salesperson,
data = sales_data,
main = "Boxplot of evaluation for each question",
xlab = "Factor Levels : questions",
ylab = "evauation")## $salesperson1
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.000 5.750 9.500 9.333 12.500 14.000
##
## $salesperson2
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 13.0 15.0 21.5 20.0 25.0 25.0
##
## $salesperson3
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.00 11.25 13.00 12.67 14.00 15.00
제안별 수용도에서 하나 이상의 차이가 있는지 확인하기 위해 ANOVA를 수행한다.
## Df Sum Sq Mean Sq F value Pr(>F)
## Salesperson 2 357.3 178.67 10.28 0.00154 **
## Residuals 15 260.7 17.38
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Tables of effects
##
## Salesperson
## Salesperson
## salesperson1 salesperson2 salesperson3
## -4.667 6.000 -1.333
일원 분산분석 결과 최소한 하나 이상의 오퍼에 대한 수용도 차이가 있다고 보인다. (p<0.05이므로)
Salesperson별 평균 대비 상대적 값을 본 결과, salesperson2의 실적이 높은 반면 1,3의 실적은 낮은 것으로 보인다.
잔차의 정규성을 확인하기 위해서 aov() 함수의 결과에서 residuals를 뽑아서 정규성에 대해 가설검정을 해본다.
##
## Shapiro-Wilk normality test
##
## data: result$residuals
## W = 0.93544, p-value = 0.2418
p-값> 0.05이므로 잔차의 정규성을 기각하지 못했다.
등분산성을 가설검정할 때 요인의 수준이 2 개인 경우에는 두 모집단의 분산의 차이 검정을 F-분포를 사용하여 수행할 수 있다. 이 경우에는 var.test() 함수를 이용하여 가설검정을 수행하였다. 그러나 요인의 수준이 3 개 이상인 경우에는 bartlet.test()을 사용한다.
# Bartlett test to test the null hypothesis of equal group variances: 등분산 검정
bartlett.test( Sales ~ Salesperson, data = sales_data )##
## Bartlett test of homogeneity of variances
##
## data: Sales by Salesperson
## Bartlett's K-squared = 4.5187, df = 2, p-value = 0.1044
p-값>0.05이므로 등분산 가정을 기각하지 못했다.
ANOVA 분석을 통해 평균이 같다는 귀무가설이 기각되면, 어는 수준 간의 차이에 의해 귀무가설이 기각되었는지 살펴보아야 한다. 이를 살펴보는 방법 중 하나가 가능한 모든 두 수준 간에 평균의 차이가 있었는지를 가설검정해 보는 것이다. 이는 두 모집단 간의 모평균 비교와 같아진다. 다만 수준이 많은 경우 단순히 두 수준 간의 평균의 차이를 가설검정하는 것은 여러 개의 가설을 동시적으로 검정하는 것이 되어서 기각역 또는 p-값의 조정이 필요하다. R의 기본 기능에 포함되어 있는 TukeyHSD() 함수는 이러한 수준별 쌍 비교를 수행해 준다.
##------------------------------------------------------------------
## 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 = Sales ~ Salesperson, data = sales_data)
##
## $Salesperson
## diff lwr upr p adj
## salesperson2-salesperson1 10.666667 4.415126 16.918207 0.0013249
## salesperson3-salesperson1 3.333333 -2.918207 9.584874 0.3731837
## salesperson3-salesperson2 -7.333333 -13.584874 -1.081793 0.0209627
salesperson3과 1은 차이가 없다. 나머지 비교에서는 모두 차이가 있다. 따라서 다음과 같은 순서로 요약할 수 있다.
\[salesperson2>salesperson3=salesperson1\]
##------------------------------------------------------------------
## multiple comparison
## - Scheffe test : scheffe.test()
##------------------------------------------------------------------
# install.packages('agricolae')
library(agricolae)
scheffe.test(result,"Salesperson",alpha = 0.05,group=TRUE,console=TRUE)##
## Study: result ~ "Salesperson"
##
## Scheffe Test for Sales
##
## Mean Square Error : 17.37778
##
## Salesperson, means
##
## Sales std r se Min Max Q25 Q50 Q75
## salesperson1 9.333333 3.932768 6 1.701851 5 14 5.75 9.5 12.5
## salesperson2 20.000000 5.727128 6 1.701851 13 25 15.00 21.5 25.0
## salesperson3 12.666667 1.966384 6 1.701851 10 15 11.25 13.0 14.0
##
## Alpha: 0.05 ; DF Error: 15
## Critical Value of F: 3.68232
##
## Minimum Significant Difference: 6.53149
##
## Means with the same letter are not significantly different.
##
## Sales groups
## salesperson2 20.000000 a
## salesperson3 12.666667 b
## salesperson1 9.333333 b
또 다른 다중 비교 방법인 scheffe test 결과도 동일한 판단을 했다.
\[salesperson2>salesperson3=salesperson1\]