[확률과 통계] 검정

검정

가설 검정

예들 들어, 어떤 고등학교의 1 학년 학생들의 평균키가 $170.5 \mathrm{~cm}$ 으로 알려져 있었다. 올해 새로 들어온 1 학년 학생들 중 30 명을 랜덤하게 선택하여 키를 잰 후 평균을 계산했더니 171.3cm이었다. 올해 신입생은 평균키가 $170.5 \mathrm{~cm}$ 보다 더 크다고 할 수 있는가?

이러한 주장을 검증하는 것이 가설 검정이라고 한다. 위에서 구한 표본 평균을 보고 바로 신입생의 평균키가 170.5cm 보다 크다고 말 할 수 있지만, 문제는 표본을 추출 할 때 마다 표본 평균이 바뀐다는 점이다. 그래서 우리는 지금 뽑은 이 표본 평균이 다른 표본 평균에도 적용되고 모평균에서도 적용된다 라고 증명하고 싶어질 것이다. 이것을 바로 가설 검정이라고 한다. 즉, 새로운 주장(가정)에 대해서 얼마나 신빙성이 있냐? 를 검증하는 것이다.

우리는 이전에 신뢰구간에 대해 배웠다. 표본을 통해 모집단의 모수를 구간으로 추정을 했었다. 즉, 이것 처럼 지금 우리가 추정한 구간이 모평균 $\mu$ 이 나올 수 있는 범위를 벗어난다면 우리는 표본 평균이 모평균 보다 크다고 이야기 할 수 있을 것이다. 이러한 기준이 정해져야 한다.


가설 검정


귀무 가설

우리가 표본 평균의 신뢰구간을 통해서 모평균이 나올 수 있는 범위를 추정 할 수 있었다. 표본을 이용해서 모집단의 모수를 추정해지만, 반대로 이야기 하면 모집단에서 표본을 취했을때 표본 평균이 나올 수 있는 범위가 모평균의 신뢰구간에서 나타나게 된다. 즉, 모평균의 신뢰구간의 신뢰도가 95%일 때, 100개의 표본 평균을 뽑았다고 가정하면 이때, 표본 평균의 신뢰구간이 모평균을 가르키는 것이 95개 있다는 말이다.

위에서 설명한 신뢰구간의 개념을 가져오면, 우리가 지금 뽑은 표본 평균이 모평균과 다를 지라도 모평균의 신뢰구간에 포함 될 수 있다. (랜덤하게 뽑았기 때문에) 즉, 모평균일 수 있다는 말이다. 이말이 바로 귀무 가설일 확율을 의미한다.


대립가설

그렇다면, 뽑은 표본 평균이 모평균이 나올 수 있는 신뢰구간의 밖에 있는 경우도 있을 것이다. 이러한 경우는 신뢰구간에서 $\alpha$ 에 해당하는 5%의 범위에 있을 수 있는 값들이다. 이 범위에 있기 위해서는 모평균의 범위를 벗어 나야 한다. 그러므로, 모평균 보다는 다소 큰 값이 나와야 하고 이를 대립가설이라고 한다. 여기서의 $\alpha$는 유의 수준이라고 따로 부르게 된다,


유의 수준

대립 가설을 기각(=귀무가설이 참) 하기 위해서는 우리가 뽑은 표본 평균이 모평균의 신뢰구간 안에 있어야 한다. 즉, $\alpha$(유의수준) 보다작아야 한다.

\[Z=\frac{\bar{X}-\mu}{S / \sqrt{n}} \sim N(0,1)\\ P\left(Z \geq z_{\alpha}\right)=\alpha\]


따라서, $\bar{X}$ 를 $Z$ 로 변환한 후, $Z$값이 $Z_{\alpha}$ 보다 큰 지를 컴토한다. 크다면 귀무가설을 기각하고, 작다면 귀무 가설을 채택한다. 즉, 모평균의 신뢰구간에서 나올 수 있는 값이면 귀무가설을 선택하고 아니면 기각 한다.


검정의 단계

  1. $H_{0}, H_{1}$ 설정
  2. 유의수준 $\alpha$ 설정
  3. 검정 통계량 계산
  4. 기각역 또는 임계값 계산
  5. 주어진 데이터로 부터 유의성 판정




모평균의 검정

대립가설

문제에서 검정하고자 하는 것이 무엇인지 파악 하는 것이 중요하다. 대립가설 $H_{1}$ 채택을 위한 통계적증거 확보가 필요한다. 증거가 없으면 귀무가설 $H_{0}$ 을 채택 한다. 대립가설은 다음과 같이 설정 할 수 있다.

\[\begin{array}{l} H_{1}: \mu>\mu_{0} \\ H_{1}: \mu<\mu_{0} \\ H_{1}: \mu \neq \mu_{0} \end{array}\]

예제 #1

어떤 농장에서 생산되는 계란의 평균 무게는 $10.5$ 그램으로 알려져 있다. 새로운 사료를 도입한 후에 생산된 계란 30 개의 표본 평균을 계산했더니 $11.4$그램이 나왔다. 새로운 사료가 평균적으로 더 무거운 계란을 생산한다고 할 수 있는가?

풀이

이때의 알려진 사실 즉, 귀무 가설은 $H_{0}: \mu=10.5$ 으로 표기 할 수 있다. 새로운 사료가 평균적으로 더 무거 운가? 이것은 대립 가설로 $H_{1}: \mu>10.5$ 표현이 가능 하다.


예제 #2

어떤 농장에서 자신들이 생산하는 계란의 평균 무게가 $10.5$ 그램이라고 홍보하고 있다. 이에 생산된 계란 30 개의 표본 평균을 계산했더니 $9.4$ 그램이 나왔다. 이 농장의 광고가 맞다고 할 수 있나?

풀이

\[\begin{array}{l} H_{0}: \mu=10.5 \\ H_{1}: \mu \neq 10.5 \end{array}\]


검정 통계량

$n \geq 30$ 인경우

모집단이 정규 모집단이이고, 모표준편차 $\sigma$ 가 주어진 경우


기각역

다음과 같이 귀무가설과 유의 수준이 주어졌다고 가정해보자.

\[\begin{array}{l} H_{0}: \mu=10.5 \\ \text { 유의수준: } \alpha \end{array}\]

기각역

이때, 대립가설의 기각역은 다음과 같이 구성이 가능 하다.

\[\begin{align} H_{1}: \mu>10.5 & \Rightarrow Z>z_{\alpha} \tag{1} \\ H_{1}: \mu<10.5 &\Rightarrow Z<-Z_{\alpha} \tag{2} \\ H_{1}: \mu \neq 10.5 &\Rightarrow |Z|>Z_\frac{\alpha}{2} \tag{3} \end{align}\]

(1) 번 대립가설의 경우 모평균의 신뢰구간에서 나올 수 있는 값보다 크게 나와야 하기 때문에 $\alpha$ 값보다 거야한다. (2)번 대립 가설의 경우 모평균의 신뢰구간에서 나올 수 있는 값보다 작게 나와야 하기 때문에 $\alpha$ 값이 작게 나와야한다. (3)번 대립가설의 경우는 (1)번과 (2)번의 대립 가설을 모두 만족 시켜야 한다.


예제 #1

어떤 농장에서 자신들이 생산하는 계란의 평균 무게가 10.5그램이라고 홍보하고 있다. 이에 생산된 계란 30 개의 표본을 뽑았더니 그 무게가 아래와 같다.

\[\begin{array}{l} \mathrm{w}=[10.7,11.7,9.8,11.4,10.8,9.9,10.1,8.8,12.2,11.0,11.3,11.1,10.3,10.0,9.9, \\ 11.1,11.7,11.5,9.1,10.3,8.6,12.1,10.0,13.0,9.2,9.8,9.3,9.4,9.6,9.2] \end{array}\]

이 농장의 홍보가 맞는지 유의수준 5%로 검정하시오.

풀이

\[\begin{array}{l} H_{0}: \mu=10.5 \\ H_{1}: \mu \neq 10.5 \\ \alpha=0.05 \\ \bar{X}=10.43 \\ s=1.11 \end{array}\]

이렇게 문제의 주어진 조건을 정리 후, 검정 통계량을 구해야 한다.

\[Z=\frac{\bar{X}-\mu}{s / \sqrt{n}}=\frac{10.43-10.5}{1.11 / \sqrt{30}}=-0.351\]

위 기각역의 (3)번 대립가설에 해당 하므로 $\mid Z \mid >Z_\frac{\alpha}{2}$ 을 만족 해야한다.

\[Z \frac{\alpha}{2}=Z_{0.025}=1.96>|-0.351|=|Z|\]

즉, 우리가 구한 검정 통계량은 모평균이 나올 수 있는 범위 안에 있으므로 귀무가설을 기각 할 수 없다.

코드 구현

>>> w = [10.7,11.7,9.8,11.4,10.8,9.9,10.1,8.8,12.2,11.0,11.3,11.1,10.3,10.0,9.9,11.1,11.7,11.5,9.1,10.3,8.6,12
.1,10.0,13.0,9.2,9.8,9.3,9.4,9.6,9.2]
>>> mu = 10.5
>>> xbar = np.mean(w)
>>> sd = np.std(w, ddof=1)
>>> xbar
10.43
>>> sd
1.1098772843007898
>>> z = (xbar-mu)/(sd/np.sqrt(len(w)))
>>> z
-0.34544881283443796
>>> alpha = 0.05
>>> cri = st.norm.ppf(1-alpha/2)
>>> cri
1.959963984540054