반응형
세 집단 A,B,C의 평균을 비교하기 위해 분산분석을 했고 결과 유의차가 있게 나왔다고 합시다. 분산분석에서 유의차가 있다는 것은 세 집단의 평균이 모두 동일하지는 않다는 말입니다. 셋다 다른 것인지, 아니면 특정 두 집단만 다른 것인지는 분산분석만으로는 알 수 없습니다. 사후분석이 필요합니다.
대표적인 사후분석은 아래와 같습니다.
사후분석 실습
지난 강의의 분산분석 데이터와 코드를 가져옵시다.
library(readxl)
dt <- read_excel("여러분 경로/R_OneWayANOVA.xlsx")
dt=as.data.frame(dt)
#데이터 변형
ind = c(rep("A", 30), rep("B", 30), rep("C", 30))
dep = c(dt[,2], dt[,3], dt[,4])
dt_f=data.frame(ind,dep)
#boxplot 그려보기
boxplot(dep~ind,dt_f)
#등분산 검정
#install.packages("lawstat")
library(lawstat)
levene.test(dt_f$dep,dt_f$ind,location="mean")
#분산분석
my_aov=aov(dep~ind,dt_f)
summary(my_aov)
levene 검정 결과 등분산가정이 가능했었고, 그룹들의 표본 크기가 동일하므로 Tukey test를 하겠습니다. Tukey's HSD (honestly significant difference) test 라고도 부릅니다.
TukeyHSD 함수를 사용합니다. aov 함수의 결과값을 넣어주면 됩니다.
> TukeyHSD(my_aov)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = dep ~ ind, data = dt_f)
$ind
diff lwr upr p adj
B-A -21.2 -27.245332 -15.154668 0.0000000
C-A -22.4 -28.445332 -16.354668 0.0000000
C-B -1.2 -7.245332 4.845332 0.8840154
A-B, A-C 사이의 유의차는 있지만 B-C 사이에 유의차는 없다는 것을 알 수 있습니다.
반응형
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R강의] 125. 엑셀의 vlookup 기능 구현 (0) | 2021.09.27 |
---|---|
[R강의] 124. 카이제곱검정 하는 방법 (+ Yates' continuity correction 무엇인가) (0) | 2021.09.09 |
[R강의] 122. 분산분석 (일원분산분석) (0) | 2021.08.31 |
[R강의] 121. 축제거, 눈금제거, 축이름제거 (0) | 2021.08.13 |
[R강의] 120. for문에서 스킵할때 쓰는 next (0) | 2021.08.13 |
댓글