logo

p값 혹은 유의확률의 쉬운 정의 📂통계적검정

p값 혹은 유의확률의 쉬운 정의

정의 1

가설검정에서 귀무가설을 기각할 확률을 유의확률p-value이라 한다.

설명

유의확률이 유의수준 보다 작으면 귀무가설이 기각된다고 보면 된다. 귀무가설 하에서 유의확률이 작다는 것은 그 정도로 ‘우연이라고 하기엔 귀무가설이 잘못됐다는 증거의 강도가 강하다’라는 식으로 이해할 수 있다.

여기에 검정력 곡선power curve이니 기각역rejection region이니 하는 말들이 붙으면 공부가 어려워지고, 열심히 공부해도 귀무냐 대립이냐로 흔들면 누구나 헷갈리기 때문에 핵심 개념만 제대로 받아들이는 게 효율적이다. 그런 것들은 중간/기말 공부할때나 잠깐 보고 신경쓰지, 멀고 긴 통계학의 길에서는 그렇게까지 중요하지 않은 것들이다.

사실 학부 1~2학년 수준이라면 아무리 설명하고 똑바로 공부해도 감이 잘 안 잡히는 게 정상이다. 상급생이 되어 실제 분석을 접하다보면 싫어도 p값에 대해 숙달되게 된다. 그러니 이해가 잘 되지 않거나 헷갈린다고 해서 너무 실망하지 않아도 좋다. p값은 배워가는 것이 아니라 익숙해지는 것이다.

p값은 확률이다.

즉 $0 \le p \le 1$ 이다. 이 사실을 이해하지 못하는 경우는 십중팔구 p값의 정의를 이해하지 못하고 다른 과학계에서의 어떤 계수처럼 알고 있다. p값은 결국 가설검정이라는 것도 절대적인 것은 아니므로, 확률적으로 얼마나 믿을만한지를 말하기 위해 도입된 것이다.

p값이 낮을수록 강하게 기각하지 않는다

중요한 사실이다. 유의수준 $\alpha$ 에서 $p \le \alpha$ 이기만 하면 귀무가설은 기각된다.

유의확률 대한 가장 흔한 오개념 중 하나는 p값이 적을수록 더 강하게 귀무가설을 기각한다고 하는 믿음이다. 물론 p값이 더 작으면 더 작은 유의수준에 대해서도 귀무가설을 기각할 수 있는 것은 사실이지만, 그 ‘정도’는 관계 없다. $0.001$ 이든 $10^{-8}$ 이든 아주 작은 양수 $\varepsilon >0$ 만큼이든 유의수준보다만 작으면 다 똑같은 기각이다.

귀무가설이 기각되는 것에는 좋고 나쁨이 없다

즉, p값이 높고 낮음에 좋고 나쁨은 없다. 이 경우엔 평상시에 공부를 안 하다가 급히 벼락치기를 하는 학생들이 가장 궁금해 하지만 그 답은 없다. 무엇이 좋냐 나쁘냐는 각자가 결과로 판단할 뿐 데이터를 다루는 사람은 그런 판단을 할 필요도 없고 해서도 안 된다.

예를 들어 t검정 혹은 z검정의 검정통계량은 가운데보단 양쪽꼬리로 갈수록 일어나기 힘들기 때문에 절댓값이 크면 기각된다. 로지스틱 회귀분석호스머-렘쇼 적합도 검정에서 검정통계량은 카이제곱분포를 따르고, $0$ 에 가까울수록 잘 적합됐다는 의미이므로 값이 크면 기각된다.

위의 두 예시에서 딱히 어떤 것을 귀무가설이라고 하지도 않았는데 뭐가 기각됐는지 느낌이 왔다면 p값을 이해했다고 봐도 좋다. 적어도 가설검정에서 귀무가설과 대립가설은 이렇듯 검정통계량의 분포에 따라 결정된다.기각역을 정할 땐 기각역을 최대로 한다는 원칙 하에서 정해지므로 이 ‘일어나기 힘든 일’이라는 설명이 말이 된다. 기본적으로 주어진 유의수준에서 기각역을 어떻게 정하는지를 상상해 보면 납득이 될 것이다.

7.png

위의 기각역들은 모두 분포함수 아래의 넓이가 같지만 $x$ 축 상에서의 길이는 판이하게 다름을 알 수 있다. 양쪽꼬리검정의 기각역으로 셋 중에 하나를 상식선에서 고르라고 한다면 누구나 첫번째를 고를 것이다.

같이보기

코드

아래는 위 그림을 그리기 위한 R 코드다.

win.graph(9,3)
 
par(mfrow=c(1,3))
plot(0,0,type='n',xlim=c(-4,4),ylim=c(-0.08,0.4),xlab=NA,ylab=NA)
 
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))
 
 
plot(0,0,type='n',xlim=c(-4,4),ylim=c(-0.08,0.4),xlab=NA,ylab=NA)
 
polygon(c(seq(qt(0.95,14),5,0.01),qt(0.95,14)),
        c(dt(seq(qt(0.95,14),5,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))
 
 
plot(0,0,type='n',xlim=c(-4,4),ylim=c(-0.08,0.4),xlab=NA,ylab=NA)
 
x<-c(seq(qt(0.50,14),qt(0.55,14),0.01))
y<-c(dt(seq(qt(0.50,14),qt(0.55,14),0.01),df=14))
x<-c(x[1],x,x[length(x)])
y<-c(0,y,0)
polygon(x,
        y,
        col='yellow',lty=0)
abline(h=0)
lines(seq(-5,5,0.01),dt(seq(-5,5,0.01),df=14))

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