[Statistics] Hypothesis Testing II
Updated:
데이터 사이언티스트 되기 책: https://recipesds.tistory.com/
Normalization vs Standardization vs Regularization
정규화(Normalization), 정규화(Standardization), 정규화(Regularization)의 차이를 알아보자. 우선 정규화(Normalization)와 정규화(표준화, Standardization)의 차이를 보면 정규화는 영어로 Normalization, 표준화는 영어로 Standardization이다. 정규화는 모든 값을 0~1사이의 값으로 만드는 것으로 Min-Max Scaling이 여기에 속한다. 정규화를 하지 않으면 데이터 Feature마다 크기가 다 달라서 회귀분석 등을 하게 되면 더 큰 값을 가진 데이터가 더 큰 기여를 하는 것처럼 보일 수 있다.
표준화는 표준정규분포의 속성을 갖도록 데이터를 재조정하는 것을 말한다. 이때의 조건은 $\mu=0, \sigma=1$이다. 일반적인 표준화 방법으로는 $z = \frac{x - \mu}{\sigma}$ 로써 Z-score를 만들어 변환한다. 그래서 정규화는 0~1 사이의 값을 갖지만, 표준화는 값이 제한되지는 않는다.
통계학에서는 표준화 정규화 두 가지를 구분 없이 normalization으로 부른다. 이유는 정규화란 데이터의 범위를 일치시키거나 분포를 유사하게 만들어 주는 등의 작업을 일컫는 말이기 때문이다. 그래서 데이터를 norm이나 standard로 변환하는 것을 normalize로 퉁쳐서 부르는 경향이 있다. 이후에 나올 L1, L2 normalization을 보통 Regulariztion(일반화)라고 부른다.
Normality Test
지금까지는 표본의 크기가 어느정도 크다고 가정하여 중심극한정리 등을 사용해 검정을 하였다. 하지만 표본의 크기가 작다면($n \leq 30$) 방법이 달라진다.
- 일반적으로 모집단이 정규분포라면 표본의 평균의 분포는 정규분포를 이룬다. 즉, 표본의 크기 n이 크던 작던 관계없이 그때의 표본의 평균은 Gaussian의 outcome이다.
- 만약 표본의 크기가 충분히 큰 경우, 중심극한정리에 의해 표본의 평균은 모집단의 분포와 관계없이 Gaussian에서의 Outcome이 된다.
- 정규분포로 분포하는 표본평균의 분포를 구할 때에는, 모분산이 필요한데, 모분산을 모르므로 모분산 대신에 표본분산을 이용하게 되면 표본평균의 분포는 정규분포가 아니라 자유도에 따른 t 분포를 따른다.
만약 여기서 $n < 30$ 이라면 1번을 만족하는 경우 t분포로 대용할 수 있다. 하지만 1번도 만족하지 않는 소포뵨의 경우 어떻게든 정규분포한다는 조건을 만족시켜서 검정이 유효하다는 것을 주장하기 위해 그렇게도 모집단의 정규성을 검정한다. 여기서 정규성 검정(Normality Test)이 쓰인다. 만약 여기서 정규성 검정을 통해 모집단이 정규성이 있는 것으로 나오면 t검정을 사용할 수 있지만, 그렇지 않은 경우에는 비모수 검정을 해야 한다.
정규성 검정도 검정이기 때문에 Null Hypothesis와 Alternative Hypothesis가 있다. 표본을 통해 모집단이 정규 분포하는지 검정했더니 정규분포하더라라는 결론이 나온다면, 현재 가지고 있는 표본의 평균은 정규분포에서의 outcome이라 할 수 있다. 따라서 귀무가설은 “표본의 모집단이 정규분포를 이루고 있다.”이고, 대립가설은 “표본의 모집단이 정규분포를 따르지 않는다.”이다. 이에 대한 검정 방법은 다음과 같은 것들이 있다.
- Shapiro-Wilk 검정 : 소표본에 평균을 활용한 검정을 위한 모집단 정규성 검정에 적합
- Kolmogorov-Smirnov 검정 : 소표본에 평균을 활용한 검정을 위한 모집단 정규성 검정에 적합
- QQ plot : 매우 큰 표본 또는 데이터 변환시 정규에 가까워지는 변화가 있는지 확인하는 것에 많이 사용
- 왜도와 첨도 : 매우 큰 표본을 확인하는데 적합
이 중 Shapiro-Wilk 검정이 소표본에서 가장 많이 쓰이는 정규성 검정 방법이다. Shapiro-wilk의 검정통계량의 원리는 다음과 같다.
\[W = \frac{\left(\sum_{i=1}^n a_ix_{(i)} \right)^2}{\sum_{i=1}^n(x_i - \bar{x})^2}\]여기서 a 계수는 Covariance Matrix로부터 계산한 값으로 그냥 검정통계량인 $W$가 이 값에 대한 확률표를 가지고 p value를 구한다 정도만 알면 된다.
모분포를 모르는 매우 큰 대표본에서는 Shapiro-Wilk와 Kolomogorov-Smirnov 정규성 검정이 Null Hypothesis를 기각하게 될 가능성이 크다. 이유는 완벽한 정규분포로부터 조금이라도 빗나가면 아주 작은 p value를 얻기 때문이다. 그래서 이럴때 많이 사용하는 방법이 QQ plot, 첨도/왜도이다. QQ plot은 시각적으로 데이터의 분포를 보는 방법으로 정규성을 보이지 않는 데이터를 정규성이 보이도록 데이터 변환을 했을 때, 나아졌는지 확인할 때 유용한 방법이다. 사실 큰 대표본에서는 정규성 검정이 큰 의미가 없다. 우리가 관심 있는 것은 표본의 평균의 분포이지 모분포가 아니기 때문에 중심극한정리를 이용해서 표본평균의 분포를 정규성을 띈다고 가정할 수 있기 때문이다.
이런 큰 표본에서 QQ plot이나, 첨도왜도로 모집단이 정규하는가를 따지는 이유는 평균을 활용한 검정을 하기 위해서라기보다는, 여러 가지로 모집단을 이해하기 훨씬 쉬워진다는 의미에서 사용한다. 특히 데이터 변환할 때, 예를 들어, 오른쪽으로 꼬리가 긴 분포는 로그 변환을 사용해주면, 표본 크기가 작더라도 정규분포와 유사한 모양이 되는 것을 QQ plot을 이용해서 확인해 볼 수 있다.
첨도/왜도에 대한 기준은 다음과 같다.
추가적으로 첨도=0 이면 표준정규분포이고, 첨도가 크더라도 분산이 더 큰 경우 완만한 그래프가 될 수 있으므로, 비교를 할 경우 분산이 동일한 분포끼리 비교해야 한다. 가우시안과 t분포가 그러한 관계이다. West 등(1995)의 연구에서는 왜도는 절대값이 2, 첨도는 절댓값이 7 이하이면 정규분포에서 크게 벗어나지 않아 정규성을 띈다고 봐도 된다고 한다.
from scipy.stats import skew, kurtosis
skew(data) # 왜도
kurtosis(data, fisher=True) # 첨도
참고로 fisher=True 이면, 정규분포 첨도를 0 기준으로 계산해주고, False이면 정규분포 첨도를 3으로 계산해 준다.
추가적으로 정규성 검정을 하고 나면 등분산 가정이라는 것도 따라다닌다. 등분산 가정은 검정에서 비교하는 집단이 서로 분산이 같다는 가정인데, 분산이 같다는 의미는 각각의 분산이 확률변수로써 같을 확률이 크고 그렇다는 의미는 각각의 집단은 같은 성질의 집단이고, 같은 성질의 집단이라는 이야기는 같은 성질의 모집단에서 나눈 그룹일 수 있다는 의미가 된다. 따라서 각 표본의 분산의 값이 똑같을 필요는 없고, 모분산이 확률적으로 같다는 정도이다. 이런걸 동질성(Homogeneity of Variance)이라 한다.
$t$, $\chi^2$, $F$ testing
검정은 특정 통계량이 어떤 확률분포를 따를 때, 설정한 가설에 대해서 p value가 어떻게 되는지를 보는 것이다. 이때 어떤 확률분포에 $t$ 분포, $\chi^2$ 분포, $F$ 분포가 있다.
앞서 살펴보았던 $t$ 분포부터 살펴보면 $t$ 분포는 표본평균의 분포가 따르는 분포이고, 모분산이 아닌 표본분산이 분포의 파라미터이다. 표본수가 작을 때는 표본정규분포보다 양쪽 꼬리가 더 두껍고, 표본크기가 커질 수록 정규분포에 가까워진다.
$\chi^2$ 분포는 이전에 살펴보았듯이 가우시안의 제곱의 합이 해당 분포를 따른다. 카이제곱 분포는 표본분산의 분포와 관련있고, 표본분산의 검정을 할 때 사용된다. 통계량은 다음과 같다.
\[\chi^2 = \sum_{i=1}^n \frac{(O_i - E_i)^2}{E_i} \begin{cases} O : Observations \\ E : Expections \end{cases}\]위 통계량은 비율에 대한 검정이다. 비율은 Binomial로 표현되고, Binomial은 가우시안으로 근사가 되니까, 비율은 가우시안으로 근사된다. 연속형 정규분포 변수에서의 카이제곱은 가우시안 제곱의 합 $\sum_{i=1}^n Z_i^2 = \sum_{i=1}^n \lbrack \frac{X_i - \mu}{\sigma} \rbrack^2 = \chi^2$ 임을 이용해서 2개 Binomial Case로 카이제곱 분포를 따르는지 유도해보면 다음과 같다.
Binomial의 Gaussian근사를 상정하고, $\mu = np, \sigma^2 = npq$를 이용해 관측치 $O$를 z score로 쓰면,
\[z = frac{O_0 - np_0}{\sqrt{np_0(1-p_0)}} \sim N(0, 1), z^2 = \frac{(O_0 - np_0)^2}{np_0(1-p_0)} \sim \chi_{(1)}^2\]가 된다. 이제 Binomial case 이므로 $p_0 + p_1 = 1, E_0 + E_1 = n, O_0 + O_1 = n, np_0 = E_0, np_1 = E_1$를 이용해서 유도한다.
\[\begin{align} Z^2 &= \frac{(O_0 - np_0)^2}{np_0(1-p_0)} = \frac{(O_0 - E_0)^2}{np_0p_1} = \frac{n(O_0 - E_0)^2}{np_0np_1} = \frac{n(O_0 - E_0)^2}{E_0E_1} \\ &= \frac{n(O_0 - E_0)^2}{E_0(n - E_0)} = (O_0 - E_0)^2 \left(\frac{1}{E_0} + \frac{1}{n-E_0} \right) \\ &= \frac{(O_0 - E_0)^2}{E_0} + \frac{((n-O_0) - (n-E_0))^2}{n - E_0} = \frac{(O_0 - E_0)^2}{E_0} + \frac{(O_1 - E_1)^2}{n-E_0} \\ &= \frac{(O_0 - E_0)^2}{E_0} + \frac{(O_1 - E_1)^2}{E_1} = \chi^2 \end{align}\]이처럼 카이제곱 분포를 따르는 것을 확인할 수 있고, n개 Binomial Case로 일반화된 $\sum_{i=1}^n \frac{(O_i - E_i)^2}{E_i} \sim \chi_{(n-1)}^2$는 $\sum Z^2$의 형태라는 것을 알 수 있다.
마지막으로 $F$ 분포는 $\frac{\chi^2}{\chi^2}$ 형태의 확률변수가 따르는 분포로, 이때는 Continuous 형태의 데이터에서 분산과 분산의 비가 따르는 분포이다. $F$ 비는 앞으로 나올 ANOVA 분산분석에서 사용되며, $F$ 비에 사용되는 비율을 $F = \frac{\alpha}{\beta}$ 라 하면 알파 베타는 각각 설명가능한 변량의 평균, 설명하지 못하는 변량의 평균이라 한다. 이를 다르게 표현하면 다음과 같다.
$\alpha$ : 실험을 위해 인위적으로 선택한 데이터의 분산
$\beta$ : 표본에 의한 분산 (통제할 수 없음)
실험을 위해 인위적으로 선택했다는 것은 모델을 만든다던가, 그룹을 나눈단던가 하는 것을 말한다.
$\alpha$ : 우리가 만든 모델에 의해 예측 가능한 분산
$\beta$ : 우리가 예측 불가능한 데이터에 의한 분산
우리가 모델을 만들었기 때문에 원래의 상태와 모델과의 차이를 측정할 필요가 있고, 우리가 모델을 만들었기 때문에, 만든 모델과 데이터의 차이를 측정할 필요가 있게 된다.
$\alpha$ : 우리가 뭔가를 한 것에 대한 분산
$\beta$ : 우리가 뭔가를 한 것 이외의 분산
뭔가를 하고 난 후에 결과라는 것은 효과를 기대한 것이니, 원래 상태와 효과와의 차이를 말하는 것이다.
$\alpha$ : 결과에 대한 효과의 분산
$\beta$ : 결과에 대한 오차의 분산
쉽게 축약해서 쓰면 다음과 같다.
$\alpha$ : 효과의 분산
$\beta$ : 오차의 분산
전반적으로 분자는 뭔가를 함으로써 나오는 원래의 상태로부터의 차이, 분모는 뭔를 했지만 여전히 있는 차이를 말한다.
집단 차이 분석의 ANOVA F 검정의 $F$ 비의 경우 다음과 같다.
$\alpha$ : 집단을 나눴기 때문에 생기는 집단끼리의 차이(분산)의 평균
$\beta$ : 집단을 나눴지만 각 집단안에 있는 차이(분산)의 평균
회귀의 경우 $F$ 분석은 다음과 같다.
$\alpha$ : 회귀선을 찾아냈으니까, 회귀선과 평균선과의 차이(분산)의 평균
$\beta$ : 회귀선을 찾아냈지만, 여전히 있는 관측치와 회귀선과의 차이(분산)의 평균
전반벅으로 (결과에 대한 변화의 차이 / 결과와 관측치의 차이)가 된다. 노이즈에 비해 얼머나 효과 차이가 나는지를 보여준다. 혹은, 모집단을 추정할 때 틀릴 수도 있는 오차에 비해, 얼마나 확실하게 차이가 큰지를 계산한다.
-
$t$검정은 표본의 평균을 비교할 때 사용할 수 있다.
-
$\chi^2$ 검정은 원래 어떤 비율이어야 하는 기대 비율에 비해 퍼진 정도를 이용해 비교하는데 사용된다. 다시말해, 기댓값으로부터 관찰값까지의 차이(거리)를 나타내는 값이다.
-
$F$ 검정은 통제 가능한 분산과 통제 불가능한 분산의 비를 이용해 통제 불가능한 것에 비해 통제 가능한 것이 차이가 나는가를 확인할 때 사용한다.
Test of Independence & Test of Homogeneity
동립성 검정(Test of Independence), 독질성 검정(Test of Homogeneity) 모두 카이스퀘어 검정을 한다. 독립성 검정은 한 개의 표본 집단에서 뽑은 변수가 서로 독립인지를 검사한다. 동질성 검정은 서로 다른 표본 집단 변수의 동질성을 검사한다. 카이스퀘어 검정의 기본적인 아이디어는 관측빈도와 예측할 수 있는 기대빈도의 차이를 비교하는 것이다. 독립성 검정일 때에는 독립일 떄의 기대빈도와 관측빈도가 같다면 독립이다.
Null Hypothesis와 Alternative Hypothesis를 살펴보면 독립성 검정은 기본적으로 변수끼리의 독립을 가정한다.
$H_0$: 관심 Feature끼리 서로 관련이 없다(독립적이다. 예측한 기대빈도와 동일하다, 예측 기대 빈도는 $P_{ij}=P_iP_j$로 예측할 수 있다.)
$H_1$: 관심 Feature끼리 서로 관련이 있다.(독립적이지 않다, 예측한 기대빈도와 많이 다르다.)
동질성 검정의 경우 다음과 같다.
$H_0$: 두개의 그룹이 각 변수(Feature)에 대하여 서로 분포가 동일하다, 분포 가정이 가능하다. ($P_{i1},P_{i2}, \cdots, P_{in} = P_{j1},P_{j2}, \cdots, P_{jn}$)
$H_1$: 두개의 그룹이 각 변수(Feature)에 대하여 서로 분포가 동일하지 않다.
교차표로 따지면 독립성 검정은 교차표의 행과 열이 독립인지(관계가 없는지)를 검정하는 것이고, 동질성 검정은 교차표의 행끼리 분포가 서로 같은지를 검정하는 것이다.
두 변수 사이에 비율이 기댓값과 일치하는지 확인하는 거라 goodness of fit라 부른다. 확률적으로 독립에 접근하면, $P(i \vert j) = p(i), p(j \vert i) = p(j), p(i, j) = p(i) \cdot p(j)$를 의미하고, 이게 성립한다는 것은 $p(i) \cdot p(j)$를 이용한 예측 비율과 일치한다는 것이다.
카이제곱 분포가 자유도 $n-1$인 $z^2$의 합의 형태 $\sum_{i=1}^n \frac{(O_i - E_i)^2}{E_i} \sim \chi_{(n-1)}^2$라는 점을 이용해서 실제 검정을 해보자. 먼저 술을 마시고 안 마시는 사람에 따라 담배를 피우는 것이 서로 독립인지(차이가 있는지)를 확인해보자.
검정에 앞서 카이스퀘어의 자유도를 확인해보면, (행의 수 - 1)x(열의 수 - 1)이 검정의 자유도가 된다. 표 데이터에서 합계가 정해져 있다고 생각하면, 각 행과 열에서 1개는 자유롭지만 1개가 정해지는 순간 나머지는 자동으로 정해진다.
Null Hypothesis: 술과 담배는 서로 독립이다.
Alternative Hypothesis: 술과 담배는 서로 독립이 아니다.
먼저 기대도수를 구해야 한다. 기대도수는 확률x전체개수 이므로 술을 마시는 사람을 $D$, 담배를 피우는 사람을 $S$라 할 때, $P(D \cap S) = P(D)P(S)$ 이므로 $\frac{D}{Total} \cdot \frac{S}{Total}$이 기대 비율이 되고, 기대 도수는 $P(D \cap S) \cdot Total$ 이므로 $\frac{D \cdot S}{Total}$이 된다.
데이터 옆 괄호 안에 있는 값이 기대도수로 카이스퀘어 검정에서 귀무가설인 독립이라면 이렇게 될 것이라는 예측값이 된다. 따라서 카이제곱 통계량을 계산하면 다음과 같다.
\[\chi^2 = \frac{(48-31.92)^2}{31.92} + \frac{(8-24.08)^2}{24.08} + \frac{(9-25.08)^2}{25.08} + \frac{(35-18.92)^2}{18.92} = 42.8142\]5%유의수준 자유도 1에서의 카이스퀘어 값이 3.8415이므로, 유의수준보다 훨신 큰 검정통계량이다. 따라서 술과 담배는 독립이 아니라는 결론이 나온다.
파이썬을 통해 구하면 다음과 같다. 이때 주의할 점은 scipy의 chi2_contingency는 df가 1인 경우에는 Yates’ correction for continuity를 적용한다. Yates 수정식은 카이스퀘어에 관련하여 교차표의 모든 cell에서 기대 도수≥5인 경우에 카이스퀘어 검정이 동작하는데, 기대 도수≤5인 경우 에도 사용할 수 있도록 해 주는 수정 식이다. 우리 예시의 경우 기대 도수가 충분히 크므로 적용하지 않고(correcion=False) 실행시킨다.
row1, row2 = [48, 8], [9, 35]
chi2, p, dof, expected = chi2_contingency([row1, row2], correction=False)
msg = 'Statistic: {}\np value: {}\ndof: {}'
print(msg.format(chi2, p, dof))
print(expected)
Statistic: 42.81422371997646
p value: 6.019290099276929e-11
dof: 1
[[31.92 24.08]
[25.08 18.92]] → 이것은 예측치
이제 동질성 검정의 예를 들어보자. 동질성 검정은 A/B 테스트에 이용되기도 하는데, 특히 A/B가 서로 다른 집단인 경우 유용하다.
Null Hypothesis: 광고 A와 광고 B는 서로 분포가 같다. P(광고A, 전환)=P(광고B, 전환), P(광고A, 이탈)=P(광고B, 이탈)
Alternative Hypothesis: 광고A와 광고B는 서로 분포가 다르다.
오른 쪽 합계를 잘 보면 200으로 같은데, 동질성 검정의 경우 두 집단에서 표집하고, Feature의 분포를 비교하기 때문에 표집수를 같은 수로 하는 경우가 많다. 이때 예측할 수 있는 기대 빈도는 광고에 따른 집단과는 관계없이 전환 확률이 같고, 이탈 확률이 같으면 된다. 따라서 간단하게, 간단하게 광고A에 의한 전환사용자와 광고B에 의한 전환사용자를 합한 후 2로 나누면 된다. 이탈도 마찬가지로 각 기대 빈도는 각 Feature의 합/2가 된다. 이유는 기대도수 = 전환합/전환 합계 x 광고 A합/전체 합계 x 전체 합계 인데, 광고 A합/ 전체 합계가 1/2가 되기 때문이다.
검정 통계량은 다음과 같다.
\[\chi^2 = \frac{(44-53)^2}{53} + \frac{(62-53)^2}{53} + \frac{(156-147)^2}{147} + \frac{(138-147)^2}{147} = 4.158644\]파이썬으로 구하면 다음과 같다.
from scipy.stats import chi2_contingency
row1 = [44, 156]
row2 = [62, 138]
chi2, p, dof, expected = chi2_contingency([row1, row2], correction=False)
msg = 'Statistic: {}\np value: {}\ndof: {}'
print(msg.format(chi2, p, dof))
print(expected)
Statistic: 4.158644589911436
p value: 0.04142253879330136
dof: 1
[[ 53. 147.]
[ 53. 147.]]
p value = 0.041이므로 귀무가설을 기각하고, 두 개의 광고 간에 전환과 이탈은 차이가 있다고 할 수 있다.
독립성검정과 동질성검정은 범주형 데이터의 서로 관계가 있는지를 확인하는 통계기법이고, 연속형인 경우에는 공분산을 분석한다. 카이제곱 검정을 하려면 조건이 있는데, 기대도수가 5 이하인 데이터 셀이 전체의 20% 가 넘지 않도록 해야 한다. 이런 경우에는 표본을 늘리던지, 그룹을 더 줄여서 (묶어서) 5 이하의 빈도가 나오지 않게 하는 방법이 있고, 그래도 안된다면 Fisher 검정을 해야 한다.
지금까지의 모수 검정과 비모수 검정을 표로 정리하면 다음과 같다.
목적 | 기본 모수적 검정 | 특이 조건 모수 검정 | 비모수적 검정 |
---|---|---|---|
정규성 검정 | Shapiro-Wilk 검정 | ||
분산의 동질성 검정 (등분산 확인) |
Bartlett(바틀렛) (정규성 만족) |
Levene(레빈) (정규성 미만족) |
|
독립인 두 집단의 평균 비교 | Independent Samples $t$-test | 이분산: Welch’s $t$ test | Mann Whitney U 검정 |
독립인 두 집단의 비율 비교 | $t$-test / $z$-test | ||
대응표본의 차이 비교 | Paired $t$-test | Wilcoxon 부호 순위 검정 | |
세 개 이상 집단의 평균 비교 | $F$-test 분석: ANOVA, RMANOVA(대응표본) |
이분산: Welch’s test | Kruskal-Wallis H 검정(1 way) Friedman(RMANOVA) |
두 범주형 변수 사이의 관계 | $\chi^2$-test | 기대값 5미만: Fisher exact test |
Leave a comment