獨斷論

Single sample t test (통계 R 초급 - 1) 본문

과학과 기술/R 통계

Single sample t test (통계 R 초급 - 1)

부르칸 2013. 7. 9. 01:02

Student's t-test를 수행하는 통계R의 명령어는 t.test()이다.

R console에서 help("t.test")라고 치면 이에 대한 설명을 볼수 있다.

우선 첨부된 파일을 내려받아 통계R에서 불러들인다.

 

첨부파일:bodyt_heartr.csv

 

이제 위 데이터파일을 R에서 불러오는데 다음과 같이 하면 된다.

> temp.dat = read.csv("bodyt_heartr.csv")

> temp.dat

> names(temp.dat)

위와같이 실행하면 temp.dat라는 변수에 csv의 파일에 있던 데이터가 들어가게 된다.

주의할점은 현재 디렉토리와  bodyt_heartr.csv가 있는 디렉토리가 같아야 하는데 현재 R의 작업디렉토리는 getwd()를 실행하면 얻을 수 있다.

작업디릭토리를 바꾸러면 setwd("c:/temp")와 같은 명령어로 바꿀수 있다. 작업디렉토리를 바꾸지 않고 read.csv()의 파일명에 디렉토리까지 같이 지정해 주는 방법도 있다. 즉 temp.dat = read.csv("c:/temp/bodyt_heartr.csv")와 같이 해도 된다.

 

위 데이터의 첫번째 열은 체온, 두번째 열은 성별, 세번째 열은 심장박동수를 나타낸다.

이제 첫번째 열만의 데이터를 이용하여 체온이 36.5도씨와 얼마나 다른지 t test를 수행해 보기로 하자.

 

> t.test(temp.dat$body_temp, mu=36.5, alternative="two.sided")

 

        One Sample t-test

 

data:  temp.dat$body_temp
t = 8.611, df = 129, p-value = 2.178e-14
alternative hypothesis: true mean is not equal to 36.5
95 percent confidence interval:
 36.73699 36.87839
sample estimates:
mean of x
 36.80769

p-value가 매우 작으므로 null hypothesis는 성립하지 못하고 altenative hypothesis가 성립하게 되므로 신뢰도 95%에서 데이터의 평균체온은 36.5도씨와 같이 않다고 받아들일 수 있다. 이때의 신뢰구간은 36.74에서 36.88이다. 또한 위 데이터의 평균체온은 36.8도씨임을 알수 있다.

 

Power analysis를 다음과 같이 수행할 수도 있다.

> power.t.test(n=130, delta=36.807-36.5, sd=0.4074, sig.level=0.05, type="one.sample", alternative="two.sided")  # 한줄로 쭉 쳐야 한다. 티스토리 화면 너무 작음

 

     One-sample t test power calculation

 

              n = 130
          delta = 0.307
             sd = 0.4074
      sig.level = 0.05
          power = 1
    alternative = two.sided

 

 

n은 샘플크기이고 delta는 샘플의 평균과 비교하고자 하는 평균의 차이이다. sd는 표준편차이고 sig.level은 (1-신뢰도)이며 type은 위 샘플이 single sample임을 알려주는 것이다. 여기서 결과로 나온 power는 (1-type II error)인데 보는 바와 같이 1이 나왔으므로 Power는 매우 좋음을 보여준다.

Comments