Must Learning With Statistics

가설검정 본문

통계 이론

가설검정

Doublek Park 2020. 3. 22. 13:23
15. 가설검정

통계적 가설검정은 어떤 가설을 세우고 그 가설이 사실일 가능성과 사실이 아닐 가능성을 비교해서 의사결정을 하는 하나의 추론과정입니다. 그리고 언제나 강조하지만, 가능성은 곧 확률로 표현되고 확률을 계산하기 위해서는 확률분포가 필요합니다. 결국 추정량의 확률분포를 가정하거나 근사시키는 방법으로 구간추정과 동일한 아이디어, 동일한 결과를 보여줍니다. 가설검정을 이해하기 위해서는 몇 가지 용어에 대한 학습이 필요합니다. 정리해 보도록 하겠습니다.

귀무가설(Null Hypothesis, $H_0$)

귀무가설은 분석자가 검정하기를 원하는 가설입니다. 또한 통계적 가설검정의 시작이자 끝입니다. 왜 그런지는 가설검정의 과정을 간단하게 요약하면 다음과 같습니다.

  1. 얻어진 표본을 이용해 귀무가설 하에서 가정되는 확률분포를 계산할 수 있는 형태를 만듭니다.
  2. 귀무가설 하에서 가정되는 확률분포를 검토해서 의사결정을 합니다.

귀무가설이 사실일 것 같으면 '귀무가설을 기각하지 못한다' 라고 표현하며 그렇지 않으면 '귀무가설을 기각한다' 라고 표현합니다. 위의 표현을 보면 알 수 있듯이 모든 가설검정은 귀무가설 중심으로 이루어집니다. 이는 통계적으로 매우 중요한 관점입니다. 검정의 모든 과정은 귀무가설이 사실이라는 가정하에 이루어지고 일반적으로 우리의 목표는 귀무가설이 사실이 아니라는 것을 증명하는 것입니다. 그렇기에 귀무가설을 기각하지 못한다고 하더라도 귀무가설이 사실이라고 해석하기 보다는 '귀무가설이 틀렸다는 확실한 증거를 찾지 못했다' 정도로 생각하시는게 정확한 시각입니다.

대립가설(Alternative hypothesis, $H_1$)

대립가설은 귀무가설이 기각 되었을 때 받아들여지는 가설입니다. 그렇기에 당연하게도 귀무가설과 수학적으로 배타적입니다(exclusive). 두 가설의 교집합은 없고 두 가설의 합집합은 전체집합입니다. 대립가설은 검정의 대상이 아닙니다. 다만 우리가 선택한 귀무가설에 반하는 결과가 나올 시 선택되는 것 뿐이죠. 그래서 대부분 대립가설은 귀무가설은 사실이 아니다($H_1 : not\ H_0$ ) 라고 표현하곤 합니다.

제 1종 오류(type 1 error)와 제 2종 오류(type 2 error) 그리고 유의수준(significance level)

  • 1종 오류는 귀무가설이 사실일 때 귀무가설을 기각할 확률이고, 일반적으로 $\alpha$라고 표현합니다.
  • 2종 오류는 귀무가설이 사실이 아닐 때, 귀무가설을 기각하지 않을 확률이고 $\beta$라고 표현합니다.

즉, 두 경우 모두 분석자가 잘못된 선택을 하게 될 확률(오류율)입니다.

오류(Error)는 어떤 오류를 막론하고 일단은 낮은 것이 중요합니다. 하지만 같은 표본 하에서 우리는 이 두가지의 오류를 동시에 줄이지 못합니다. 흔히 Trade - off관계라고 할 수 있습니다. $\alpha$를 줄이려고 하면 $\beta$가 늘어나며, 반대로 $\beta$를 줄이려고 하면 $\alpha$가 늘어나게 됩니다. 이 두 경우를 동시에 줄이는 방법은 오로지 표본 수 n을 늘려가는 방법밖에 없습니다.
그렇기에 고정된 표본 수 하에서 우리는 하나의 오류율을 고정시키고 분석을 진행합니다. 우리가 관심있는 것은 언제나 귀무가설이므로 일반적으로 귀무가설이 사실일 때 귀무가설을 기각할 확률, 즉 1종 오류를 고정시킵니다. 여기서 고정시킨다는 것은 그 한계치를 정해둔다는 의미입니다.
가설검정을 할 때 $\alpha = 0.05$ 혹은 $\alpha = 0.1$과 같은 문구들을 보았을 것입니다. 여기서 알파가 바로 제 1종오류의 허용치입니다. 귀무가설이 사실일 때 귀무가설을 기각할 확률의 한계치를 5% 혹은 10%로 고정시키고 분석을 하는 것이죠. 이 최대 허용치를 유의수준이라고 부릅니다.
일반적으로 유의수준과 1종오류는 같지만 이산형과 같이 확률을 연속적으로 컨트롤할 수 없는 경우에는 유의수준보다 1종오류가 작을 수 있습니다. 하지만 우리는 대부분 연속형 검정을 다루기 때문에 대부분 같다고 생각하시면 될 것 같습니다.

검정통계량(test statistic)

검정통계량은 검정에 사용되는 통계량입니다. 이 역시 하나의 통계량이므로 표본들의 함수입니다. 표본들의 함수라는 말을 조금 가볍게 표현하면 표본들을 이리 저리 조합해서 만든다는 말이죠. 그렇다면 여기서 하나의 궁금증이 생기게 됩니다. '이리 저리 조합'하는 기준은 뭘까요? 즉, 검정통계량의 형태에 대한 궁금증입니다. 어렵게 생각하시지 마시고 위에서 학습한 구간추정과 같은 아이디어라고 생각하시면 편합니다. 귀무가설 하에서 우리가 원하는 확률분포를 따르도록 조합하는 것입니다. 그리고 그 조합의 결과물이 검정통계량인 것이죠. 이는 확률을 계산하기 위한 핵심 아이디어 입니다.

검정통계량은 검정하고자 하는 가설의 분포에 따라 다양하게 조합이 됩니다. 평균검정을 하는 경우 우리는 $t$분포를 활용하여야 합니다. 이 때 검정통계량은 t분포의 스튜던트 정리르 활용하여 계산이 됩니다. 만약 분산을 검정하는 경우에는 검정통계량은 $\chi^2$분포 혹은 $F$분포를 활용하여 계산이 됩니다.

유의확률(significance probability, p-value)

유의확률은 귀무가설 하에서 계산된 검정통계량 값보다 더 극단적인 값이 나올 확률입니다. 흔히 $p-value$ 혹은 $p$값이라고 부르며 가설검정에서 의사선택을 하게 해주는 중요한 지표라고 할 수 있습니다. 귀무가설 하에서 검정통계량은 분석자가 의도했던 확률분포를 따르기 때문에 우리가 계산한 검정통계량이 그 확률 구조에서 어느 영역에 포함되어 있는지 알 수 있습니다. 그리고 그 검정통계량보다 더 극단적인 영역에 있을 확률이 바로 유의확률입니다. (만약 오른쪽 검정을 한다면 더 오른쪽에 있을 확률이고 양측 검정을 한다면 양쪽 극단에 있을 확률일겁니다.)

위에서 사용하였던 남성 키를 예로 들어보겠습니다.

정규모집단에서 100명의 표본을 뽑아서 모평균이 167.5이 맞는지 검정을 하려합니다. (참고로 이는 일표본 $t$검정이라 불리는 가설검정입니다.)

표본평균은 170, 표본표준편차는 10이 나왔습니다. 정리하면 다음과 같습니다.
$$
n = 100 \ ,\overline{X}=170, s=10
$$

$$
H_0 : \mu = 167.5 \ H_1:\mu \neq 167.5 \ \alpha = 0.05
$$

귀무가설은 모평균이 167.5인 경우이고 대립가설은 167.5가 아닌 경우입니다. 즉, 대립가설은 167.5보다 큰 경우도 167.5보다 작은 경우도 포함합니다. (이를 양측 검정이라고 부릅니다.)

위에서 말씀드렸던 것처럼 가설검정을 하기 위해서는 확률 구조가 필요하기 때문에 우리가 아는 확률분포를 따르도록 표본들을 조합해서 검정통계량을 만들어야 합니다. 확률 구조를 알아보기 위해 구간추정의 경우와 마찬가지로 스튜던트 정리를 이용해서 검정통계량을 구하도록 하겠습니다.

$$
(\frac{\overline{X}-\mu}{s/\sqrt{n}})\sim t(n-1)
$$

만약 귀무가설이 사실이라면, $\mu= 167.5$일겁니다. 그렇다면 다음의 식이 성립하게 됩니다.

$$
(\frac{\overline{X}-167.5}{s/\sqrt{n}})\sim t(n-1)
$$

여기서 n = 100이므로, 위의 검정통계량은 자유도가 99인 $t$분포를 따를 것입니다.
$$
(\frac{170-167.5}{10/\sqrt{100}}) = 2.5
$$

계산된 검정통계량 값을 $t(99)$의 그래프 상에 이를 표현해 보겠습니다.

xbar = 170
sd = 10
n = 100
mu = 167.5

T_Statistics = (xbar - mu) / (sd / sqrt(n))

1 - pt(q = T_Statistics,df = n-1)
[1] 0.007031298
ggplot(DF) +
  geom_line(aes(x = k1, y = p1)) +
  geom_area(aes(x = ifelse(k1 > qt(p = 0.025, df = 99) &
                             k1 < qt(p = 0.975, df = 99), k1, 0), y = p1),
            fill = 'red', alpha = 0.2) +
  geom_text(aes(x = 0, y = 0.2), label = "95%") +
  geom_vline(xintercept = qt(p = 1-0.007,df = 99),linetype = 'dashed') +
  geom_area(aes(x = ifelse(k1 < qt(p = 1-0.007, df = 99),0,k1), y = p1),fill = 'royalblue') +
  theme_bw() +
  scale_x_continuous(breaks = seq(-4,4, by = 1)) +
  scale_y_continuous(expand = c(0,0),limits = c(0,0.45)) +
  xlab("") + ylab("")

보시는 바와 같이 $t(99)$의 분포에서 2.5보다 더 극단적인 값을 나올 확률은 오른쪽에서 0.007입니다. 우리는 양측검정을 하였으니 반대쪽도 계산해 주어야 합니다.

$H_1 : \mu \neq 167.5$이란 말은 곧 $H_1:\mu > 167.5 \ or\ \mu < 167,5$을 의미하기 때문입니다. $t$분포는 대칭분포이니 같은 확률을 보이며, 우리가 구한 값보다 더 극단적인 값이 나올 확률(유의확률, $p-value$)는 0.014 즉, 1.4%가 됩니다.

조금 넓은 의미에서 해석해보자면, $p$값은 (귀무가설이 사실일 때) 우리가 얻은 표본들이 일반적으로 나올 법한 표본들이냐 아니냐를 말해주는 값입니다.

즉, 모평균이 정말 167.5일 때, 우리가 구한 170은 그것보다 극단적인 값이 나올 확률이 1.4% 정도 밖에 안될 정도로 꽤나 이상한 값이라는 뜻입니다. 다시 말해 귀무가설이 사실이어도 우연히 나올 수 있는 값이긴 하지만 그 확률이 1.4% 정도 밖에 안된다는 의미로 해석할 수가 있습니다. 우리는 귀무가설이 사실일 때, 귀무가설을 기각할 확률의 허용한계를 0.05로 고정하였기 때문에 이 예에서의 $p$값 0.014는 우리가 허용할만한 수준이 아닙니다. 그렇다면 귀무가설이 사실이 아니라는 결론을 내리고 기각하게 되는 것입니다.

만약 $p$값이 큰 값이 나왔다면 귀무가설 하에서 충분히 나올 만한 값이라고 판단할 수 있으므로 귀무가설을 기각하지 않게 될 것입니다.

가설검정은 결국 단순비교를 통해 맞냐 아니냐를 결정하는 것이 아닌, 추정량의 분포를 반영하여 변동을 포함해도 맞을 수 있냐 아니냐를 결정하는 것입니다. 즉, 추정량과 그 추정량의 분포를 반영하는 구간추정과 아이디어의 방향이 똑같습니다. 실제로 이 둘은 같은 분포를 이용했다면 정확히 같은 결과를 알려줍니다.

구간추정에서 신뢰구간이 포함하고 있는 값은 (주어진 신뢰도 하에서) 분포를 반영하여도 충분히 나올 수 있는 값이라는 뜻입니다. 위에서 설명한 가설검정과 같은 의미죠. 그래서 신뢰구간에 포함된 값들은 가설검정을 하여도 전부 귀무가설을 기각할 수 없습니다. 반대로 신뢰구간이 포함하지 않는 값들은 가설검정에도 기각될 값들입니다.
이번 예제를 통해 간단히 확인할 수 있습니다. 같은 표본분포(자유도 99의 t분포)를 활용한 구간추정의 경우 신뢰구간이 [168.016, 171,984]이었습니다. 우리가 이번에 검정한 값은 167.5 였죠. 구간에 포함되어있지 않고 그렇기에 당연히 $\mu = 167.5$라는 귀무가설은 기각되었습니다. 이는 다른 수를 넣어봐도 같은 결과를 보일겁니다. 계산이 그리 복잡하니 않으니 몇 가지를 넣어서 확인해보시기 바랍니다.

97.5%의 누적 역확률값은 1.984이고 2.5%의 누적 역확률 값은 -1.984입니다. $T$는 자유도가 99인 $t$분포를 따르므로 $T$가 -1.984와 1.984사이에 포함될 확률은 95%라는 것이 성립합니다.

이제 저 사실을 기초하여 식을 조금 바꿔 보겠습니다. $t_{0.975}(n-1)$은 자유도 $n-1$의 $t$분포에서 누적 확률 0.975의 역확률 값입니다. 교재에 따라 역확률 값의 표현을 뒤부터 누적하는 경우가 있으니 주의 바랍니다.

$$
P[\left| \frac{\overline{X}-\mu}{s/\sqrt{n}} \right| \leq t_{0.975}(n-1)]=0.95
$$

$$
\Leftrightarrow P[-t_{0.975}(n-1)\leq \frac{\overline{X}-\mu}{s/\sqrt{n}} \leq t_{0.975}(n-1)] = 0.95
$$

$$
\Leftrightarrow P[\overline{X}-t_{0.975}(n-1)\cdot\frac{s}{\sqrt{2}}\leq \mu \leq \overline{X}+t_{0.975}(n-1)\cdot\frac{s}{\sqrt{2}}]=0.95
$$

이런 식으로 정리하면 주어진 조건에서 모평균 $\mu$가 저 구간에 포함될 확률이 95% 라는 식이 나옵니다. 이것이 구간추정의 원리이자 95% 신뢰구간입니다. 위의 한국 남성 키를 그대로 대입해보면 $\overline X$는 170, $s$는 10, $n$은 100이므로, 한국 남성 키의 95% 신뢰구간은 $[168.016, 171.984]$가 됩니다.

다시 한번 강조하지만 가장 중요한 것은 추정량은 확률 구조를 가지고 있는 확률변수라는 것이고 이는 구간추정에도 그대로 적용됩니다. 신뢰구간은 매 조사마다 달라집니다. 위에서 우리가 구한 $[168.016, 171,984]$는 절대적인 신뢰구간이 아닌 그냥 이번 조사에서 우리가 구한 하나의 신뢰구간에 불과합니다. 한번 더 조사하면 분명히 변할 것입니다.

그렇기에 엄밀히 따지면 [모수가 해당 신뢰구간 안에 있을 확률이 95%다] 라는 말은 정확한 말이 아닙니다. [해당 신뢰구간이 모수를 포함할 확률이 95%다] 라는 말이 정확합니다. 모수는 변수가 아닌 이미 정해진 수이고 바뀌는 건 신뢰구간이기 때문이죠. 더 정확히 이야기하면 [100번 조사를 해서 100개의 신뢰구간을 얻었을 때 그 중 평균적으로 95개의 신뢰구간은 모수를 포함하고있다] 정도가 될 것입니다.

이러한 분석을 일표본 $t$검정(One Sample $t$ Test)라고 합니다.

Height = rnorm(n = 98, mean = 170, sd = 10)

print(paste("평균 : ", round(mean(Height),2)))

[1] "평균 : 169.51"

print(paste("표준편차 : ", round(sd(Height),2)))

[1] "표준편차 : 9.87"

t.test(x = Height, mu = 167.5,alternative = "two.sided")

One Sample t-test

data: Height
t = 2.0176, df = 97, p-value = 0.0464
alternative hypothesis: true mean is not equal to 167.5
95 percent confidence interval:
167.5328 171.4891
sample estimates:
mean of x
169.5109

위 결과는 난수발생을 통한 분석 결과이기 때문에 결과가 100% 일치하지는 않는다는 점을 유의해주시길 바랍니다.

'통계 이론' 카테고리의 다른 글

t검정(R Code)  (1) 2020.03.23
t검정  (0) 2020.03.22
구간추정  (0) 2020.03.22
점추정  (0) 2020.03.22
통계적 추정과 검정  (0) 2020.03.22
Comments