IT Log

T-검정( T-test ) 본문

R

T-검정( T-test )

newly0513 2019. 6. 19. 17:16
728x90
반응형

T-검정이란?

  • 두 집단간의 평균의 차이가 통계적으로 유의한지를 파악할 때 필요한 통계적 기법

 

귀무가설과 대립가설 설정

예를 들어, 남자의 평균 수명은 60세이다. 라는 가설을 검정한다면 귀무가설남자의 평균 수명이 60세이고, 대립가설남자의 평균 수명이 60세가 아니다. 이다. 그리고 좀 더 자세히 대립가설을 나누자면 첫번째로 방금말한 남자의 평균수명 ≠ 60, 두번째로 남자의 평균 수명 < 60, 마지막으로 남자의 평균 수명 > 60 이다. 이런 대립가설의 첫번째를 양측검정이라하고, 두번째와 세번째를 단측검정이라고 합니다.

가설 기호 동의 유무 검정의 형태
귀무가설 = O  
대립가설 X 양측 검정
< X 단측검정(lower)
> X 단측검정(upper)

 

 

 

유의 확률(p-value)

p-value는 귀무가설이 맞다고 가정할 때 얻은 결과보다 극단적인 결과가 실제로 관측될 확률입니다. p-value 값은 0 ~ 1 사이의 수치로 표현하고 보통 p-value값이 0.05보다 작을 경우 귀무가설을 기각합니다.

 

 

 

유의 수준 ( α )

통계적인 가설검정에서 사용되는 기준값으로 95%의 신뢰도를 기준으로 한다면 0.05값이 유의수준 값이 됩니다.

 

 

 

shapiro.test

집단이 정규분포를 이루고 있는지 확인하는 테스트로 p-value값이 0.05이상인 경우 분포가 잘 되어있다고 판단합니다. 집단은 3~5000개 사이의 값이어야 합니다.

 

 

 

 

 

 

One sample T-test

  • 하나의 모집단 평균을 특정수치와 비교하는 test

 

Ex) 재작년 하루 평균 1일 음주량이 8.1이라고 했을때 작년 하루 평균 1일 음주량과 달라졌는가?

x=c(15.5, 11.21, 12.67, 8.87, 12.15, 9.88, 2.06, 14.5, 0, 4.97)
shapiro.test(x)
t.test(x,mu=8.1)
  1. 첫번째로 표본집단을 만듭니다. 기존에 셋팅이 되어있는 자료를 사용하는 것이 아니기 때문에 임의로 10개 정도에 수를 변수 x에 저장합니다.
  2. 두번째로 구성한 표본집단이 정규분포를 따르고 있는지 shapiro.test를 통해서 확인합니다.
  3. 마지막으로 t.tests를 통해서 모집단의 평균인 8.1과 표본집단 x의 평균을 비교합니다.

결과는 p-value값이 0.05보다 큰 0.5301로 귀무가설을 기각할 수 없습니다. 따라서, 표본집단 x의 평균은 9.181로 모집단의 평균인 8.1과는 차이가 있지만 통계적으로는 다르다고 볼 수 없다는 결론입니다.  

 

 

 

t.test(x, mu=8.1, alternative = "less")
t.test(x, mu=8.1, alternative = "greater")
t.test(x, mu=8.1, conf.level=0.99)

alternative는 어떤 검정을 할지 선택하는 것으로 따로 정해주지 않으면 two.sided가 적용되어 양측검정이 실행됩니다. conf.level은 유의 수준으로 default값은 0.95입니다.

 

 

 

 

Two sample T-test

  • 두 개의 독립적인 집단의 평균차이를 보는 test

 

1. 자료준비

SAT=read.csv("SATVerbal.csv")
   Verbal   Education
1     485     College
2     534     College
3     650     College
4     554     College
5     550     College
6     572     College
7     497     College
8     592     College
9     487     College
10    533     College
11    526     College
12    410     College
13    515     College
14    578     College
15    448     College
16    469     College
17    442     College
18    580 High School
19    479 High School
20    486 High School
21    528 High School
22    524 High School
23    492 High School
24    478 High School
25    425 High School
26    485 High School
27    390 High School
28    535 High School

 

2. boxplot

boxplot(Verbal~Education, data=SAT)

#boxplot(종속변수~그룹변수, data=데이터)

정규분포 형태를 띠고 있다. (완벽하지는 않지만...)

# 좀 더 명확하게 shapiro.test로 확인하고 싶으시다면...

library(dplyr)
col=SAT%>%filter(Education=="College")
high=SAT%>%filter(Education=="High School")

shapiro.test(col$Verbal)
shapiro.test(high$Verbal)

# 둘다 p-value값이 0.05보다 큰 것을 확인할 수 있다.

 

3. 등분산 검정(var.test)

var.test(Verbal~Education, data=SAT)

p-value값이 0.05보다 크므로 분산이 같다고 볼 수 있다.

 

4. t.test

#분산이 같은경우
t.test(Verbal~Education, data=SAT, var.equal=TRUE)

#분산이 다른경우
t.test(Verbal~Education, data=SAT, var.equal=FALSE)

분산이 같을 때와 다를 때 모두 p-value값이 0.05보다 크므로 귀무가설을 채택하여, 두 집단에 평균의 차이가 없다고 볼 수 있다.

Paired T-test

  • 쌍을 이룬 두 변수의 차이를 보는 test

 

1. 자료준비

FT=read.csv("FT.csv")

# 짝을 이루는 값으로 세팅해주면 된다.
   Treat Prewt Postwt
1     FT  83.8   95.2
2     FT  83.3   94.3
3     FT  86.0   91.5
4     FT  82.5   91.9
5     FT  86.7  100.3
6     FT  79.6   76.7
7     FT  76.9   76.8
8     FT  94.2  101.6
9     FT  73.4   94.9
10    FT  80.5   75.2
11    FT  81.6   77.8
12    FT  82.1   95.5
13    FT  77.6   90.7
14    FT  83.5   92.5
15    FT  89.9   93.8
16    FT  86.0   91.7
17    FT  87.3   98.0

 

2. Shapiro.test

with(FT, shapiro.test(Postwt-Prewt))

shapiro.test(FT$Postwt-FT$Prewt)

# 결과는 동일하다.

p-value값이 0.05보다 크므로 전후의 차이가 정규분포를 따른다.

 

3. t.test

with(FT, t.test(Postwt-Prewt))

p-value값이 0.05를 넘지 않으므로 귀무가설을 기각하고 대립가설 채택

쌍을 이룬 두 변수의 차이(증가 or 감소)가 있다. 
Postwt(복용 후) - Prewt(복용 전)의 t.test인 mean of x 값이 7.264706
즉, 양의 값으로 전보다 후의 평균이 크다는걸 알 수 있으므로 증가와 감소 중 증가한걸 알 수 있다.
728x90
반응형

'R' 카테고리의 다른 글

RStudio Install  (0) 2020.07.11
R Install  (0) 2020.07.11
SPC - Control Chart  (0) 2019.05.10
상관분석  (0) 2019.04.30
비율검정  (0) 2019.04.30
Comments