logo

기각역과 유의수준 📂통계적검정

기각역과 유의수준

정의 1

  1. 귀무가설이 참임에도 불구하고 검정에서 귀무가설을 기각하는 오류를 제1종 오류라 한다.
  2. 대립가설이 참임에도 불구하고 검정에거 귀무가설을 기각하지 못하는 오류를 제2종 오류라 한다.
  3. 제1종 오류를 범할 확률의 최대값유의수준significance Level이라 한다.
  4. 가설검정을 하기 위해 사용하는 통계량을 검정통계량test Statistic이라 한다.
  5. 귀무가설을 기각시키는 검정통계량의 관측값의 영역을 기각역rejection Region이라 한다.

설명

아무리 데이터가 산더미같이 쌓여있고 정교한 수학적 기법을 적용시켰다고 한들 써먹지 못하면 의미가 없다. 여기서 ‘쓴다’는 것은 어떤 데이터에 대해 통계를 내고 그 통계를 근거로 어떠한 ‘주장을 한다’는 것이다. 이를 위해선 당연히 그 통계가 믿을만해야하고, 그걸 누가 무슨 잣대로 판단할 것이냐는 질문의 답이 가설 검정이다.

예시

20180404\_143936.png

위 데이터를 강북 고등학교 이과 3학년 1반부터 15반까지의 중간고사 평균 점수라고 하자. 한눈에 보아도 15반의 평균이 월등하게 높고, 표준화를 해보면 더욱 확실히 알 수 있게 된다. 그런데 이렇게 순위를 매기거나 전체 평균보다 높냐 낮냐를 따지는 건 쉽지만 ‘얼마나’ 잘하는지 못하는지는 따지기 어렵다. 평균 조금 차이 나는걸로 누가 낫네 마네해봤자 도토리 키재기밖에 안된다는 것이다. 분명 어느 정도 이상부터 ‘급이 다르다’고 말할 수 있긴할텐데, 그 정도가 어느정도인지가 모호하다.

여기서 Z-score가 자유도 $14$ 의 t-분포를 따른다는 걸 생각해보자.

2.png

$t_{14}$ 의 확률밀도함수와 평균의 분포를 함께 나타내보면 위 그림과 같이 나타난다. Z-score의 평균은 $0$ 이고, Z-score가 $0$ 에 가깝다는 것은 그만큼 원래 데이터가 ‘평균에서 멀지않은’ 데이터라는 의미가 된다. 반면 $0$ 에서 멀리 떨어진 Z-score의 원래 데이터는 높든 낮든 평균과 비슷하다고 말하기 어려울 것이다.

3.png 노란색으로 칠해진 영역의 넓이는 양쪽을 합쳐서 $\color{red}{0.05}$ 인데, 이는 데이터가 그 구간에 나타날 확률이 $\color{red}{0.05}$ 임을 나타낸다. 데이터가 여기에 속하는 것은 이론적으로 $\color{red}{5 \%}$ 확률의 매우 드문 경우고, 어쩌다가 우연히 나왔다기엔 그 차이가 너무 크다. 이렇게 평균과 다르면서 평균보다 점수가 높다면, 어쩌다 우연히가 아니라 실력 자체가 낫다고 말할 수 있지 않을까?4.png 다시 예시로 돌아와보면 15반은 학급 전원이 그냥 어쩌다 시험을 잘 친것이라고 보기엔 비정상적으로 평균이 높은 것이다. 여기서 귀무가설 $H_{0}$ 가 ‘15반의 평균은 3학년 전체의 평균과 큰 차이가 없다’ 라면 귀무가설을 기각할 수 있겠다. 이때 노랗게 칠해진 구역이 ‘기각 시키는 구역’이라서 기각역rejection Region이라 부른다. 그리고 그 구역을 정할 때의 넓이가 ‘어느정도부터 의미 있는지의 정도’라서 유의수준significance Probability이라 부른다. 한마디로 가설 검정은 ‘그저 우연이라고 보긴 힘들다’는 말을 통계로써 뒷받침하는 것이라고 할수 있다. 그걸 판단하는 건 기각역에 들어갔느냐 들어가지 않느냐고, 그 기준은 유의수준이 된다.

적어도 기각역과 유의수준에 대해서는 정확한 정의 그 자체보다 그 개념을 확실히 체득하는 것이 중요하다. 실제로 볼 일도 별로 없고 쓰지도 않는다고 등한시하면 정말 필요하고 기본기로써 바로바로 생각나야할 때 생각이 나지 않는다.

R 코드

아래는 본 포스팅에 사용된 R 코드다.

set.seed(150421);
avg<-signif(6*rnorm(15)+60,3); names(avg)<-paste0('(',(1:15),')'); avg
Z = scale(avg)[,1]; Z
 
win.graph()
plot(0,0,type='n',xlim=c(-4,4),ylim=c(-0.08,0.4),xlab='Z-score\',ylab='t',main='중간고사 결과')
 
abline(h=0)
lines(seq(-5,5,0.01),dt(seq(-5,5,0.01),df=14))
 
points(x=Z,y=rep(0,15),pch=16)
text(x=Z,-0.05,labels=paste0('(',(1:15),')'))
arrows(Z,-0.04,Z,-0.005,length=0.1)
 
 
 
win.graph()
plot(0,0,type='n',xlim=c(-4,4),ylim=c(-0.08,0.4),xlab='Z-score\',ylab='t',main='중간고사 결과')
 
polygon(c(seq(qt(0.975,14),5,0.01),qt(0.975,14)),
        c(dt(seq(qt(0.975,14),5,0.01),df=14),0),
        col='yellow',lty=0)
polygon(c(seq(-5,qt(0.025,14),0.01),qt(0.025,14)),
        c(dt(seq(-5,qt(0.025,14),0.01),df=14),0),
        col='yellow',lty=0)
abline(h=0)
lines(seq(-5,5,0.01),dt(seq(-5,5,0.01),df=14))
 
 
win.graph()
plot(0,0,type='n',xlim=c(-4,4),ylim=c(-0.08,0.4),xlab='Z-score\',ylab='t',main='중간고사 결과')
 
polygon(c(seq(qt(0.975,14),5,0.01),qt(0.975,14)),
  c(dt(seq(qt(0.975,14),5,0.01),df=14),0),
  col='yellow',lty=0)
polygon(c(seq(-5,qt(0.025,14),0.01),qt(0.025,14)),
  c(dt(seq(-5,qt(0.025,14),0.01),df=14),0),
  col='yellow',lty=0)
abline(h=0)
lines(seq(-5,5,0.01),dt(seq(-5,5,0.01),df=14))
 
points(x=Z,y=rep(0,15),pch=16)
text(x=Z,-0.05,labels=paste0('(',(1:15),')'))
arrows(Z,-0.04,Z,-0.005,length=0.1)

같이보기


  1. 경북대학교 통계학과. (2008). 엑셀을 이용한 통계학: p200~201. ↩︎