######################################################
## 13. ANCOVA (analysis of covariance)공분산 분석
## 사회과학과 같이 다른 변인의 통제가 쉽지 않은 상황에서
## 연속형 변수를 추가하여 오차를 줄이고 검정력을 높이는 방법
######################################################

## (1) 테스트 데이터 추출
setwd(“D:/DEVSource/CSV_DATA/”)
data = read.csv(“anorexia.csv”)
print(data)

## (2) 데이터에 대한 일원분산 분석
## 3개의 데이터가 같은 평균을 갖지는 않음
boxplot(Postwt – Prewt ~ Treat, data=data)
out = lm(Postwt – Prewt ~ Treat, data=data)
anova(out)
summary(out)

##전체 차이 조사 결과
##FT 와 Cont 사이에 유의한 차이가 존재함
library(multcomp)
tukey = glht(out, linfct=mcp(Treat=”Tukey”))
summary(tukey)

## Treat Level 조정
levels(data$Treat)
data$Treat = relevel(data$Treat, ref=”Cont”)
levels(data$Treat)

## (3) 공변량을 추가하여 분석
## 공변량을(현재 몸무게) 추가하여 분석을 하여도 치료 방법 별로 유의한 차이가 있다는 결론
## Treat 의 P-Value = 0.0008438
## Prewt 의 P-Value = 0.0019364
## 단 이전 몸무게 또한 유의한 차이가 있다는 결론이 있음
out2 = lm(Postwt ~ Prewt + Treat, data=data)
anova(out2)
summary(out2)

dunnett = glht(out2, linfct=mcp(Treat=”Dunnett”))
summary(dunnett )
plot(dunnett )