일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 한서지리지
- 유주
- 낙랑군
- 풍백
- t test
- 기자
- 기자조선
- repeated measures ANOVA
- 패수
- post hoc test
- categorical variable
- 독사방여기요
- 우분투
- R
- linear regression
- 통계학
- 한서
- 통계
- 태그를 입력해 주세요.
- ANOVA
- 고구려
- spss
- 창평
- 신라
- 히스토그램
- 후한서
- Histogram
- 지리지
- 선형회귀분석
- 단군
- Today
- Total
獨斷論
Dependent measures t test (통계 R 초급 - 4) 본문
Dependent measures t test는 하나의 그룹의 측정값을 시간에 따라 측정했을때 얼마나 차이가 나는지 보는 것이며 repeated measures의 한 종류이다.
예를들어 식욕부진환자가 가족치료요법 전후로 몸무게가 어떻게 변화하였는지 본다면 dependent measures t test를 사용하여야만 할 것이다.
이를 R에서 수행해보자.
R에는 많은 데이터베이스를 제공하는데 MASS 패키지에 anorexia가 식욕부진환자의 데이터이다. 이를 불러들이기 위하여 아래와 같이 수행한다.
> data(anorexia, package="MASS")
> anorexia
Treat Prewt Postwt
1 Cont 80.7 80.2
2 Cont 89.4 80.1
3 Cont 91.8 86.4
4 Cont 74.0 86.3
: # 중간에 데이터는 생략함: # 중간에 데이터는 생략함
67 FT 82.1 95.5
68 FT 77.6 90.7
69 FT 83.5 92.5
70 FT 89.9 93.8
71 FT 86.0 91.7
72 FT 87.3 98.0
>
만약 위 명령어를 수행했을때 MASS를 열수 없다고 나오면 library(MASS)를 수행하면 된다.
Treat는 처치방법을 나타내고 FT라고 되어 있는 것이 가족치료요법을 사용한 환자이다. Prewt는 처치전의 몸무게를 나타내며 Postwt는 처치이후의 몸무게를 나타낸다.
이제 가족치료요법만 수행한 환자의 데이터만 골라내자.
> ft.dat = subset(anorexia, subset=(Treat=="FT"))
> ft.dat
Treat Prewt Postwt
56 FT 83.8 95.2
57 FT 83.3 94.3
58 FT 86.0 91.5
59 FT 82.5 91.9
60 FT 86.7 100.3
61 FT 79.6 76.7
62 FT 76.9 76.8
63 FT 94.2 101.6
64 FT 73.4 94.9
65 FT 80.5 75.2
66 FT 81.6 77.8
67 FT 82.1 95.5
68 FT 77.6 90.7
69 FT 83.5 92.5
70 FT 89.9 93.8
71 FT 86.0 91.7
72 FT 87.3 98.0
필요한 데이터를 골라냈으므로 불러들였던 anorexia를 지운다.
> rm(anorexia)
> ls()
[1] "ft.dat"
Dependent sample의 t test는 다음과 같이 수행하면 된다.
> t.test(ft.dat$Postwt, ft.dat$Prewt, paired=T, alternative="greater")
Paired t-test
data: ft.dat$Postwt and ft.dat$Prewt
t = 4.1849, df = 16, p-value = 0.0003501
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
4.233975 Inf
sample estimates:
mean of the differences
7.264706
p-value가 0.0004이므로 alternative hypothesis를 받아들여 가족치료요법을 한 그룹의 몸무게가 통계적으로 의미있게 증가하였다고 결론지을수 있다.
위와 같은 방법으로 t test를 수행할 수도 있지만 formula를 이용하여 t test를 수행할 수도 있는데 약간 헷갈리는 방법이다.
실행코드는 아래와 같다.
> wgt = c(ft.dat$Prewt, ft.dat$Postwt)
> pre_post = rep(c("pre", "post"), c(17,17))
> subject = rep(LETTERS[1:17], 2)
> ftnew.dat = data.frame(subject, pre_post, wgt)
> ftnew.dat
subject pre_post wgt
1 A pre 83.8
2 B pre 83.3
3 C pre 86.0
4 D pre 82.5
. #생략
. #
.
29 L post 95.5
30 M post 90.7
31 N post 92.5
32 O post 93.8
33 P post 91.7
34 Q post 98.0
> t.test(wgt ~ pre_post, paired=T, alternative="greater")
Paired t-test
data: wgt by pre_post
t = 4.1849, df = 16, p-value = 0.0003501
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
4.233975 Inf
sample estimates:
mean of the differences
7.264706
formula로 사용된건 wgt ~ pre_post이며 mean of the differences는 7.26으로 앞에서 계산한 것과 동일하다.
formula에서 독립변수로 사용된 pre_post의 변수값의 크고작음이 어떻냐에 따라 mean of differences가 음수를 갖기도 하고 양수를 갖기도 한다.
기본적으로 factor level은 알파벳 순서를 따르므로 post가 하위이고 pre가 우위이다.
> levels(ftnew.dat$pre_post)
[1] "post" "pre"
항상 첫번째 factor에서 두번째 factor를 빼게 된다. 그래서 mean of differences가 양수가 나온 것인데, 이 factor의 순서를 바꿀수는 없을까?
> ftnew.dat$pre_post = factor(ftnew.dat$pre_post, levels=c("pre", "post"))
> levels(ftnew.dat$pre_post)
[1] "pre" "post"
> t.test(wgt ~ pre_post, paired=T, alternative="greater", data = ftnew.dat)
Paired t-test
data: wgt by pre_post
t = -4.1849, df = 16, p-value = 0.9996
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
-10.29544 Inf
sample estimates:
mean of the differences
-7.264706
factor level을 pre를 작게 두고 그다음으로 post를 두었을때 pre-post가 되므로 mean of difference의 값이 음수가 되었다.