9.9 모평균의 신뢰구간 구하기
모집단의 표본에서 모평균에 대한 신뢰구간을 구하고 싶다.
sol ) t.test 함수를 사용한다.
t.test 함수의 결과에는 신뢰구간이 포함된다.(95% 신뢰수준)
다른 신뢰수준의 신뢰구간을 구하고 싶다면 conf.level 인자를 사용한다.
t.test(x, conf.level=0.99)
R
복사
9.10 중앙값에 대한 신뢰구간 구하기
중아앖의 신뢰구간을 계산하는 절차는 몇 가지가 있다. 하지만 그 중의 표준은 윌콕슨 부호순위 검정이다.
conf.int=TRUE로 설정하고 wilcox.test 함수를 사용한다.
wilcox.test(x, conf.int=TRUE)
R
복사
t.test와 마찬가지로 conf.level인자를 설정해서 신뢰수준을 변경할 수 있다.
9.11 표본비율을 이용한 모비율 검정
실제 비율이 p라고 할때, 표본 데이터를 사용해서 그 가설을 검정하고 싶다.
sol) prop.test 함수를 사용한다.
표본의 크기가 n이며, 해당 표본이 x번의 성공을 포함하고 있다고 가정한다.
prop.test(x,n,p)
R
복사
일반적으로 가설검정은 양측검정이지만 단측검정을 수행할 수 있다. alternative인자를 사용한다.
prop.test(11,20,0.5, alternative="greater")
1-sample proportions test with continuity correction
data: 11 out of 20, null probability 0.5
X-squared = 0.05, df = 1, p-value = 0.4115
alternative hypothesis: true p is greater than 0.5
95 percent confidence interval:
0.349615 1.000000
sample estimates:
p
0.55
R
복사
9.12 모비율의 신뢰구간 구하기
표본 데이터에 기반해 모집단에서 성공이 차지하는 비율에 대한 신뢰구간을 구하고 싶다.
sol) prop.test 함수를 사용한다.
prop.test(x,n)
R
복사
마찬가지로 함수의 출력결과에는 p에 대한 신뢰구간이 있다.
prop.test(6,9)
1-sample proportions test with continuity correction
data: 6 out of 9, null probability 0.5
X-squared = 0.44444, df = 1, p-value = 0.505
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
0.3091761 0.9095817
sample estimates:
p
0.6666667
R
복사
마찬가지로 conf.level을 지정하면 다른 신뢰수준의 신뢰구간을 구할 수 있다.
9.13 정규성 검정
표본 데이터가 정규분포로 된 모집단에서 나온 것인지 통계검정을 통해 확인하고 싶다고 하자.
sol) shapiro.test 함수를 사용한다.
큰 p 값은 모집단이 정규분포를 따른다는 것을 시사한다.
shapiro.test 검정은 표준 r 함수다. 패키지 전체가 정규성 검정에 할애된 nortest 패키지를 따로 설치해도 된다.
9.14 런 검정
데이터가 이진값들로 구성되어 있을 때 이 값들이 랜덤인지 알고 싶다고 하자.
sol) tseries 패키지는 runs.test 함수를 가지고 있는데, 이 함수는 수열의 랜덤성을 확인한다.
물론, 수열은 두 가지 수준으로 된 요인이어야 한다.
library(tseries)
runs.test(as.factor(s))
R
복사
검정함수이기 때문에 p값을 출력한다. p값이 0.05보다 작으면 랜덤이 아닐 개연성이 더 크다는 의미다.
library(tseries)
s <- sample(c(0,1),100,replace=T) # 복원 랜덤 이산형 추출
runs.test(as.factor(s))
Runs Test
data: as.factor(s)
Standard Normal = 0.23807, p-value = 0.8118
alternative hypothesis: two.sided
R
복사
p값이 매우 크기 때문에 랜덤일 개연성이 높다. 당연히, 랜덤하게 생성한 벡터이기 때문에 가능하다.
하지만, 다음 수열은 세 개의 런으로 이루어져 있기 때문에 p값이 매우 작을 것이다.
s <- c(0,0,0,0,1,1,1,1,0,0,0,0)
runs.test(as.factor(s))
Runs Test
data: as.factor(s)
Standard Normal = -2.2997, p-value = 0.02147
alternative hypothesis: two.sided
R
복사
9.15 두 모집단의 평균 비교하기
두 모집단에서 나온 표본이 각각 있다. 두 모집단의 평균이 동일한지 궁금하다.
sol) t.test 함수를 사용해서 t 검정을 수행한다.
t.test(x,y)
R
복사
기본적으로 t.test는 데이터가 서로 대응되지 않는다고 가정한다. 만약, 대응하고 있다면 paired인자를 TRUE로 지정해준다.
t.test(x,y,paired=TRUE) # 대응비교
R
복사
p값이 작으면 평균이 다를 개연성이 크고, p값이 크면 다르다는 증거가 불충분하다.
9.16 비모수적으로 두 표본 위치 비교하기
서로 다른 두 개의 모집단이 있다. 모집단의 분포는 모르지만 서로 비슷한 모양인 것은 안다. 이제 한 모집단이 다른 모집단과 비교해서 한쪽으로 치우쳐 있는지를 알고 싶다.
상대적으로 많은 데이터세트에 적용될 수 있다.
wilcox.test 함수로 비모수 검정을 수행한다. 마찬가지로 대응표본이면 paired=TRUE 로 설정한다.
wilcox.test(x,y, paired=TRUE) # 대응인 경우
wilcox.test(x,y) # 대응 아닌 경우
R
복사
검정의 결과는 p값이 나오고 0.05보다 작게되면 두 번째 모집단이 첫 번째 모집단에 비해 한쪽으로 치우쳐 있을 가능성이 크다는 것을 의미한다.
비모수 검정의 예시는 다음과 같다. 한 집단의 직원들을 랜덤으로 선택해서 각 직원에게 두 가지 다른 상황 하에 동일한 작업을 시킨다고 하자. 선호하는 조건과 선호하지 않는 조건 두 가지를 설정한다. 두 가지 조건 하에 작업 완수 시간을 측정하며, 따라서 각 직원마다 두 개의 측정치가 생긴다. 두 측정치가 크게 차이 나는지 알고 싶지만 그것이 정규분포를 따르는지는 알 수 없다. 참고로 대응하는 데이터이기 때문에 paired=TRUE로 설정해야 한다.
wilcox.test(fav, unfav, paired=TRUE)
R
복사
9.17 모상관계수의 유의성 검정하기
두 변수들 사이의 상관계수를 계산했는데 통계적으로 유의미한지를 알아보고 싶다.
cor.test 함수를 통해서 검정한다. p값과 신뢰구간 모두 얻을 수 있다.
cor.test(x,y)
R
복사
정규분포가 아닌 모집단에서 나왔다면 스피어만 방법으로 검정한다.
cor.test(x,y,method="spearman")
R
복사
신뢰구간으로 검정하는 방법은 신뢰구간에 0을 포함하고 있다면 유의미한 상관관계가 아닐 수도 있기 때문에 기각하면 된다.
cor.test의 출력결과에는 상관계수의 추정치도 구해준다. 따라서 굳이 cor()을 할 필요가 없다.
9.18 집단들이 동일 비율로 되어있는지 검정하기
둘 또는 그 이상의 집단에서 나온 표본들이 있다. 집단의 원소들은 이진값으로 되어 있는데 ‘성공’ 또는 ‘실패’ 둘 중 하나다. 각 집단들이 동일한 성공의 비율을 가지고 있는지 알고 싶다고 하자.
두 벡터 인자를 넣어 prop.test 함수를 사용한다. (앞서 사용한 함수와 같다.)
ns = c(ns1,ns2,...) # 각 집단에 있는 성공의 개수
nt = c(nt1,nt2,...) # 대응 집단의 크기
prop.test(ns,nt) # 두 벡터들은 서로 대응된다.
R
복사
당연히 출력결과에는 p값이 나온다. 0.05보다 작으면 통상적으로 집단의 비율이 다를것이라고 판단한다.
9.11은 표본 하나에 근거해 비율을 검사했고, 9.18는 각 모집단의 비율을 비교한다는 차이가 있다.
예를들어, A교수는 38명의 학생에게 통계를 가르치고 그중 14명에게 A학점을 주었다. 한편, B교수는 40명의 학생에게 같은 강의를 하고 그 중 10명에게 A학점을 주었다. 그럼 A교수는 확실하게 B교수보다 A를 많이 줌으로써 성적 인플레이션을 조장하고 있는 것일까? —> prop.test()를 사용해보자.
먼저, ‘성공’ 즉 ‘A학점’ 으로 이루어진 벡터는 A교수가 준 개수와 B교수가 준 개수라는 두개의 원소를 담고 있다.
successes = c(14,10)
R
복사
시행 횟수는 상응하는 반의 학생 수를 가리킨다.
trials = c(38,40)
R
복사
prop.test(successes,trials)
2-sample test for equality of proportions with continuity correction
data: successes out of trials
X-squared = 0.7872, df = 1, p-value = 0.3749
alternative hypothesis: two.sided
95 percent confidence interval:
-0.1110245 0.3478666
sample estimates:
prop 1 prop 2
0.3684211 0.2500000
R
복사
0.05보다 값이 크므로 귀무가설을 기각할 수 없다. 따라서 두 교수의 채점방식에 차이가 있다는 증거는 없다라고 할 수 있다.
9.19 집단의 모평균을 쌍별로 비교하기
여러 개의 표본이 있고, 그 표본의 평균들을 쌍별로 비교하고 싶다. 다시말하면 모든 표본의 평균에 대해서 자신을 제외한 다른 모든 표본의 평균과 비교하려는 것이다.
모든 데이터를 벡터 하나에 넣은 다음, 집단을 판별할 수 있도록 상응 요인을 생성한다. pairwise.t.test 를 사용해서 평균들의 비교를 쌍별로 수행한다.
pairwise.t.test(x,f) : x에 데이터가 담겨 있고, f는 집단 분류 요인이다.
출력에는 p값 테이블이 들어 있는데, 각 집단 쌍에 해당하는 값이 하나씩 있다. p값이 0.05보다 작으면 두 집단이 다른 평균을 가질 개연성이 크다고 말할 수 있다.
9.15에서는 두 표본의 평균을 비교했지만 이번에는 여러 개의 표본이 있고, 모든 표본의 평균을 자신을 제외한 다른 모든 표본의 평균과 비교하려고 한다는 점에서 큰 차이가 있다.
결과에서의 p값들은 수정되어야 하는데, 그렇지 않으면 지나치게 긍정적인 결과가 나온다.
하지만 p값이 0.05보다 작으면 유의미한 쌍의 차이가 있다고 할 수 있다는 점의 해석은 앞의 내용과 같다.
9.20 두 표본이 동일 분포에서 왔는지 검사하기
두 개의 표본이 동일한 분포에서 온 것인지 궁금하다고 하자. kolmogorov-smirnov 검정이고 함수는 ks.test() 를 사용한다.
ks.test(x,y) : x와 y는 서로 다른 표본
결과의 p값이 0.05보다 작으면 두 표본이 서로 같은 분포에서 왔다고 할 수 없다.
이 검정의 장점은 일단 비모수적 검정이라는점이다. ( 모집단에 대해 어떠한 가정도 필요 없다, 모든 분포에서 잘 작동한다.)
두번째로 표본에 근거해서 위치, 산점도, 모집단의 모양까지 확인해준다는 점이다.