본문 바로가기
@ OO의 이해/오류의 이해

[통계 오류의 이해] 2. 1종오류는 어떻게 계산할까

by bigpicture 2020. 10. 28.
반응형

1종오류는 유의수준(significant level)에 따라 정해집니다. 가설검정을 할 때 유의수준을 설정하게 되는데, 유의수준을 정한다는 것은 '1종오류를 얼마까지 감수할 것인가'를 정하는 것입니다. 

 

유의수준이 무엇인지 먼저 알아봅시다. 

 

예를 들어봅시다. 

 

스마트스토어에 팔기 위해 핸드폰 케이스를 개발했다고 합시다. 공장이 없어서 외주생산을 맡겼습니다. 핸드폰 케이스의 두께는 10mm 인데, 공장에서는 실제 생산 시 평균 10mm이고 표준편차는 0.2mm 라고 했습니다. 표준편차가 0.2정도면 괜찮다고 판단했습니다. 

 

이를 확인하기 위해 50개의 샘플을 받았습니다. 두께를 측정해보니 평균이 10.1mm가 나왔습니다. 얼핏 보기에는 괜찮은 것 같은데, 공장의 주장이 사실인지 거짓인지 통계적으로 판단해보기로 했습니다. 

 

이 문제를 통계적으로 해결하는 과정에서 기각역과 1종오류가 등장하게 됩니다. 귀무가설과 대립가설은 아래와 같습니다. 

 

귀무가설 : 모집단 두께 평균 = 10mm

대립가설 : 모집단 두께 평균 > 10mm

 

 

공장의 주장이 사실이라면 표본평균의 분포는 아래와 같습니다. 

 

X_bar=N(10,0.04/50)

 

공장의 주장이 사실일 경우 11mm 이상의 두께가 표본평균으로 발생할 확률은 아래와 같습니다. 

 

0.0002

 

[R 코드]

1-pnorm(10.1,10,sqrt(0.04/50))

 

우리에게는 두가지 선택권이 있습니다. 

 

1) 공장의 주장이 사실이고, 우연히 0.0002 라는 확률로 현재 상황이 발생한 것이다. 

2) 확률이 0.0002라는 매우 희박한 사건이 발생했다고? 그럴리 없어 공장의 주장이 거짓말인것이다. 

 

여기서 '희박한'의 기준을 정해야 합니다. 몇 정도의 확률 부터를 희박하다고 해야 할까요. 통상적으로 5% 를 기준으로 합니다. 1%를 기준으로 하기도 합니다. 희박함의 기준이 되는 값을 '유의수준' 이라고 합니다. 

 

유의수준을 5%로 설정할 경우 공장의 주장이 사실임에도 거짓말이라고 판단하는 경우가 생깁니다. 극단적인 5%가 실제로 발생하는 경우입니다. 우리는 극단적인 5% 가 발생할 경우, 실제 발생한 것이 아니라 공장의 주장을 의심하기로 했습니다. 따라서 5%의 오류는 어쩔 수 없이 감수해야 합니다. 이 오류가 1종오류입니다. 

 

유의수준을 0.05(5%)로 설정했는데, 사건의 발생 확률은 0.0002였습니다. 이 확률을 유의확률(p-value)라고 합니다. 유의수준보다 유의확률이 작기 때문에 공장의 주장이 거짓이라고 판단합니다. 

 

위 상황을 그림으로도 나타내봅시다. 먼저 우측꼬리가 5% 되는 지점의 값을 구해봅시다. 

 

> qnorm(0.95,10,sqrt(0.04/50))

[1] 10.04652

 

 

소수 둘째자리까지 반올림하면 10.05입니다. 10.05 이상의 값들은 기각 됩니다. 이 영역을 표시하면 아래와 같습니다. 이 영역을 기각역이라고 부릅니다. 넓이는 0.05입니다. 

 

가설검정 과정을 이용하여 한번 더 정리해봅시다.

 

step1) 귀무가설 및 대립가설 설정 

step2) 표본추출

step3) 표본평균의 분포 가정

step4) 유의수준 설정 (=1종오류)

step5) p값 계산

 

step6) p값과 유의수준을 비교, 기각 여부 결정

 

결론 : 1종오류의 크기는 유의수준과 같습니다. 

 

[그래프 R 코드]

 

plot(0,xlim=c(9.75,10.35),ylim=c(0,15),type="n",ann=FALSE)

 

mean1=10

sd1=sqrt(0.04/50)

x1=seq(mean1-10*sd1,mean1+10*sd1,0.001)

y1=dnorm(x1,mean1,sd1)

 

points(x1,y1,type='l')

abline(v=10.05)

xp=seq(10.05,mean1+10*sd1,0.01)

yp=dnorm(xp,mean1,sd1)

polygon(c(xp,rev(xp)),c(rep(0,length(xp)),rev(yp)),

        border=NA,

        col=adjustcolor("red",alpha=0.5))

 

axis(side=1,10.05,col.axis='red')

 

 

반응형

댓글