1 영업사원 실적 비교


# 영업 실적 (영업사원 1,2,3)

x1 <- c(13, 5, 11, 5, 8, 14)
x2 <- c(25, 25, 25, 14, 18, 13)
x3 <- c(14, 15, 11, 10, 14, 12)
 
x <- c(x1, x2, x3)

group <- rep(1:3, each=6)

# combining into data.frame
group_df <- data.frame(x, group)
group_df
##     x group
## 1  13     1
## 2   5     1
## 3  11     1
## 4   5     1
## 5   8     1
## 6  14     1
## 7  25     2
## 8  25     2
## 9  25     2
## 10 14     2
## 11 18     2
## 12 13     2
## 13 14     3
## 14 15     3
## 15 11     3
## 16 10     3
## 17 14     3
## 18 12     3
sapply(group_df, class)
##         x     group 
## "numeric" "integer"
# transform from 'integer' to 'factor'
group_df <- transform(group_df, group = factor(group))
sapply(group_df, class)
##         x     group 
## "numeric"  "factor"
# boxplot
attach(group_df)
## The following objects are masked _by_ .GlobalEnv:
## 
##     group, x
boxplot(x ~ group, 
        main = "Boxplot of Monthly Outcome by Salesperson 1/2/3", 
        xlab = "Factor Levels : Salesperson 1/2/3", 
        ylab = "Monthly Outcome")

# descriptive statistics by group
tapply(x, group, summary)
## $`1`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   5.000   5.750   9.500   9.333  12.500  14.000 
## 
## $`2`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    13.0    15.0    21.5    20.0    25.0    25.0 
## 
## $`3`
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.00   11.25   13.00   12.67   14.00   15.00
detach(group_df)
 
# one-wayANOVA
aov(x ~ group, data = group_df)
## Call:
##    aov(formula = x ~ group, data = group_df)
## 
## Terms:
##                    group Residuals
## Sum of Squares  357.3333  260.6667
## Deg. of Freedom        2        15
## 
## Residual standard error: 4.168666
## Estimated effects may be unbalanced
summary(aov(x ~ group, data = group_df))
##             Df Sum Sq Mean Sq F value  Pr(>F)   
## group        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
# Bartlett test to test the null hypothesis of equal group variances: 등분산 검정정
bartlett.test(x ~ group, data = group_df)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  x by group
## Bartlett's K-squared = 4.5187, df = 2, p-value = 0.1044
##------------------------------------------------------------------
## multiple comparison 
## - Tukey's HSD(honestly significant difference) test : TukeyHSD()
##------------------------------------------------------------------
group_aov <- aov(x ~ group, data = group_df)
TukeyHSD(group_aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = x ~ group, data = group_df)
## 
## $group
##          diff        lwr       upr     p adj
## 2-1 10.666667   4.415126 16.918207 0.0013249
## 3-1  3.333333  -2.918207  9.584874 0.3731837
## 3-2 -7.333333 -13.584874 -1.081793 0.0209627


위의 일원분산분석(one-way ANOVA) 결과를 보면 \(p\)-value가 0.00154 로 대립가설 \(H_1\)을 채택하게 되어 평균이 서로 다르다고 판단할 수 있다. 그러면 다음 질문은 “쌍을 이룬 평균 비교 중에서 어디에서 차이가 날까?”이다.

이 질문에 답하기 위해 위의 Tukey’s HSD test 결과를 보면, "multiple comparisons of means, 95% family-wise confidence level’이라는 설명이 나온다. 2개씩 쌍을 이룬 수준간 평균의 다중 비교를 95% 신뢰수준으로 상한(upr)과 하한(lwr)의 신뢰계수 구간과 \(p\)-value를 제시한다.

위의 결과를 보면 영업사원 2와 영업사원 1 실적 평균 차이의 adj. \(p\)-value가 0.0013249이고, 영업사원 3과 영업사원 2의 평균 차이의 adj. \(p\)-value가 0.0209627로 유의수준 0.05보다 작으므로 유의수준 5%에서 이들 간에는 평균 차이가 있다고 판단할 수 있다. 하지만, 영업사원 3과 영업사원 1 실적 평균 차이의 adjusted \(p\)-value가 0.3731837로서 유의수준 0.05보다 크므로 귀무가설 \(H_0\) ’두 집단 간 평균차이는 없다’를 채택한다. 이는 저 위에 있는 Boxplot을 보면 좀더 쉽게 이해된다.