######################################################
## 4. Two-Sample T-Test
## 서로 독립적인 두 집단의 평균의 차이가 0인지를 결정함
## (1) 두 집단의 분산이 같은지 검정한다 (var.test())
## (2) 분산이 다르면 welch 의 t-test 를 사용한다.
## (3) 분산이 같으면 pooled variance를 이용한 t-test 를 적용한다. (var.queal=TRUE)
######################################################

##(가) setwd 파일등을 로딩할 기준 위치 work directory 를 정의한다.
setwd(“D:/DEVSource/CSV_DATA”)

##(나) 데이터를 읽어온다. ToothGrowth
## X len supp dose
##25 25 26.4 VC 2.0
##26 26 32.5 VC 2.0
##27 27 26.7 VC 2.0
##28 28 21.5 VC 2.0
##29 29 23.3 VC 2.0
##30 30 29.5 VC 2.0
##31 31 15.2 OJ 0.5
##32 32 21.5 OJ 0.5
##33 33 17.6 OJ 0.5
##34 34 9.7 OJ 0.5
##35 35 14.5 OJ 0.5
##36 36 10.0 OJ 0.5

temp= read.csv(“ToothGrowth.csv”)

## (다) 1안 : supp 가 각 VC, OJ 인 데이터를 추출 분산의 일치 여부 판단
## 아래와 같이 데이터를 변경 후 실행
## vc oj
##1 4.2 15.2
##2 11.5 21.5
##3 7.3 17.6
##4 5.8 9.7
##5 6.4 14.5
##6 10.0 10.0
##7 11.2 8.2
##8 11.2 9.4

vc = temp[temp$supp==”VC”,c(2)]
oj = temp[temp$supp==”OJ”,c(2)]
testData = data.frame(vc, oj)
var.test( vc , oj )
## (다) 2안 : 테이블 변경 없이 수행
## p-value = 0.2331
## 결론 : 0.05 이상으로 분산이 같다는 귀무가설을 기각하지 못한다.
boxplot(len ~ supp, data=temp, col=’red’)
var.test(len ~ supp, data=temp)

## (라) 분산이 같은 경우 : pooled variance 사용
## p-value : 0.06039 로 두 집단의 평균이 같다는 귀무가설을 기각하지 못한다.
t.test( len ~ supp, var.equal=TRUE, data=temp)

## (라) 분산이 같지 않은 경우 : Welch의 t-test 사용
## p-value : 0.06063 로 두 집단의 평균이 같다는 귀무가설을 기각하지 못한다.
t.test( len ~ supp, data=temp)
## 기타 : 잔차 활용
## 결과 = lm(식, 데이터)
## 잔차List = resid(결과)
## 잔체에 대한 정규성 검정 : shapiro.test(resid(결과))
out = lm( len ~ supp, data=temp)
shapiro.test(resid(out))