728x90

R은 통계프로그래밍 언어로 일반인이 사용하기 쉽게 만든 언어이다.

그러나 필자는 프로그래머이고 비 프로그래머의 인식으로 접근하기 힘든면이 있다.

강의 또한 그러하다. 강의 곳곳에 프로그래머적인 시선이 들어있으니 참고하여 필요없으면 넘겨라.


참고:

[개발환경 셋팅하기]R설치 및 환경변수 등록-(1)

[개발환경 셋팅하기]RStudio설치-(2)

[개발환경 셋팅하기]RStudio프로젝트 만들기-(3)


T-test는 1개 혹은 2개의 집단의 평균을 비교하는 것이다.

T-test의 결과 귀무가설(p value 0.05이상)의 경우 같다고 보고 대립가설은 같지 않다고 본다.

일단 이 테스트의 전제 조건은 두개의 데이터가 정규분포하는지 보는것이다.

한개인 사례와 두개인 사례를 각각 비교해 보자.



전 장에서 사용했던 값을 그대로 사용하자. 육군의 신체 데이터이다.


1개일 경우


ds <- read.csv('육군 신체측정정보.csv')

g1 <- as.numeric(as.character(ds$신장.센티미터[1:5000]))

print(shapiro.test(g1))


먼저 육군의 신장을 뽑아내서 그 데이터를 저장해준다.

그 다음 샤피로-윌크검정을 사용해서 데이터를 확인하자.



샤피로-윌크 검정을 통과했으므로 해당 데이터는 정규분포이며 t-test를 시행할 수 있다.

t-test를 1개로 시행할경우 해당 평균보다 높은지,낮은지,같은지를 확인할 수 있다.

이때 각각 alternative속성을 'greater','less','two-sited'로 지정해주면된다.


ds <- read.csv('육군 신체측정정보.csv')

g1 <- as.numeric(as.character(ds$신장.센티미터[1:5000]))

print(shapiro.test(g1))

print(t.test(g1,mu = 174,alternative = 'two.sided'))


비교하려는 평균값을 mu속성으로 넣어준다. 대한민국 남자 평균키는 174로 알고있었는데 한번 넣어보았다.

마지막에 동등비교를 위해서 two.sided를 넣었다.



보다시피 0.05이하가 나왔으므로 평균이 174라고 볼수 없다.

아래 결과를 보면 평균으로 결론내려면 174.5와 174.8사이여야 한다는걸 알 수 있다.


2개일 경우


2개일 경우에는 평균보다 큰지 작은지 같은지는 비교할 수 없고 그냥 두개의 평균이 같은 정도라고볼수있는지만 비교한다.

당연히 두개의 데이터는 정규분포여야한다.


ds <- read.csv('육군 신체측정정보.csv')

g1 <- as.numeric(as.character(ds$신장.센티미터[1:5000]))

print(shapiro.test(g1))

g2 <- as.numeric(as.character(ds$신장.센티미터[5001:10000]))

print(shapiro.test(g2))

result <- t.test(g1,g2)

print(result)


육군 장병의 키는 어떤 군을 뽑아도 비슷할 것이다. 따라서 선두의 5천과 후미의 5천은 원래라면 같은값이 나와야한다.



두 집단 모두 정규분포인걸 확인했으며 t-test사용시 0.05이상이 나왔기에 두 집단은 같은 집단이라고 결론 내릴 수 있다.

+ Recent posts