카이제곱 분포(Chi-square distribution)
카이제곱분포(χ2 분포)는 식 1과 같이 제곱한 k개의 서로 독립적인 표준정규 확률변수들을 합하여 얻어지는 분포입니다. 이때 k를 자유도라 하며 X2분포의 모수가 됩니다.
X2(k) = Z12 + Z22 + … + Zk2 | (식 1) |
Z: 표준정규분포를 따르는 확률변수 |
식 1의 Z은 표준정규분포를 따르는 확률변수로서 식 2와 같이 나타낼 수 있습니다.
$$\chi^2_{(k)}=\left(\frac{X_1-\mu_1}{\sigma_1}\right)+\left(\frac{X_2-\mu_2}{\sigma_2}\right)+\cdots +\left(\frac{X_k-\mu_k}{\sigma_k}\right)$$ | (식 2) |
식 2에서 나타낸 것과 같이 χ2 분포를 구성하는 모든 확률변수는 표준정규분포를 따르는 것으로 평균이 0, 표준편차가 1이므로 (-1, 1) 구간에 위치할 확률이 클것입니다. 이것은 자유도가 1인 경우 확률밀도함수는 (0, 1) 부분에 밀집되므로 카이제곱분포는 외쪽에 치우친 형태를 보일 것입니다. 자유도가 증가할수록 평균과 표준편차의 증가되고 정규분포화 될 것입니다. 이러한 분포의 경향은 그림 1에서 나타낸 것과 일치합니다.
scipy.stats.chi2() 클래스의 다양한 메서드를 적용할 수 있습니다. 그림 1은 stats.chi2.pdf(x, df=k)
메서드를 사용하여 작성한 것입니다. 이 메서드의 인수 df는 χ2 분포의 자유도를 나타내며 그림에서 나타낸 것과 같이 이 인수에 의해 분포의 형태가 달라집니다. 이 이유로 df의 인수값인 k를 형태매개변수라고 합니다.
x=np.linspace(0, 21, 1000) k=[1, 3,5,10,20] col=['g','b','r','k', "orange"] fig, ax=plt.subplots(figsize=(4, 3)) for i, j in zip(col, k): y=stats.chi2.pdf(x, j) ax.plot(x, y, color=i, label=r"$\chi^2$("+str(j)+")") ax.set_xlabel("x", loc="center" , size="12") ax.set_ylabel("pdf") ax.set_ylim(0, 0.4) ax.legend(loc="best") plt.show()
식 3에서 나타낸 것과 같이 카이제곱(χ2)분포는 감마분포의 특수한 형태로 그 분포의 확률밀도 함수(식 4)의 α와 λ가 각각 $\frac{k}{2}$와 $\frac{1}{2}$인 분포를 나타냅니다.
\begin{align} \chi^2(k)&\sim \; \Gamma(α =\frac{k}{2},\, \lambda=\frac{1}{2})\\ f(x;\,k)&=\frac{x^{\frac{k}{2}-1}\exp(-\frac{x}{2})}{2^\frac{k}{2}\Gamma(\frac{k}{2})}\\ & k\gt 0, \; x\gt 0\\& k:\,\text{degree of freedom}\end{align} | (식 3) |
\begin{align}\tag{1} \Gamma(n)&=(n-1)! , \quad\quad n \in \{1,2,3, \cdots \}\\ &=(n-1)\Gamma(n-1)\\ &=\int^n_0 x^{n-1}e^{-x} ,\quad n > 0 \end{align} | (식 4) |
예 1)
독립인 두 개의 정규분포를 따르는 자료의 제곱 합에 대한 결합분포(f(x))를 작성합니다. 그 분포와 χ2(2) 분포를 비교합니다.
x=stats.norm.rvs(size=1000) y=stats.norm.rvs(size=900) z=np.append(x**2, y**2) z1=np.sort(z)
위 코드의 결과인 두개의 정규분포를 따르는 인공데이터 x, y의 제곱의 결합으로 이루어진 z1에 대한 형태는 그림 2에서 나타낸 것과 같이 자유도 2인 χ2 분포와 유사합니다.
fig, ax=plt.subplots(figsize=(4,3)) ax.hist(z1, bins=15, rwidth=0.9, color="g", alpha=0.3, label="histogram") ax.set_xlabel("z1") ax.set_ylabel("frequency", color="g") ax2=plt.twinx() ax2.plot(z1, stats.chi2.pdf(z1, 2), color="b", label=r"$\chi^2$(2)") ax2.set_ylabel("pdf", color="b") ax.legend(loc=(0.6, 0.8), frameon=False) ax2.legend(loc=(0.6, 0.7), frameon=False) plt.show()
χ2 분포의 평균과 분산은 식 5와 같이 정의됩니다.
\begin{align}E(X)&=\int^\infty_0 xf(x)\,dx\\&=k\\ E(X^2) & = \int^\infty_0 x^2f(x)\,dx\\&=k(k+2)\\ \text{Var}(X)&=E(X^2)-(E(X))^2\\&=2k\end{align} | (식 5) |
sympy 패키지의 함수들을 적용하여 식 5를 확인하면 다음과 같습니다.
x,k=symbols("x, k", positive=True) f=(x**(k/2-1)*exp(-x/2))/(2**(k/2)*gamma(k/2)) f
$\frac{2^{- \frac{k}{2}} x^{\frac{k}{2} - 1} e^{- \frac{x}{2}}}{\Gamma\left(\frac{k}{2}\right)}$
E=integrate(x*f, (x, 0, oo)) simplify(E)
k
E2=integrate(x**2*f,(x,0, oo)) simplify(E2)
$k \left(k + 2\right)$
var=E2-(E)**2 simplify(var)
2k
예 2)
랜덤변수 X가 자유도 10인 카이제곱 분포에 부합한다고 하면 95%에 해당하는 값?
이 예는 P(X ≤ x)=0.95에 대응하는 확률변수 x를 결정하는 것입니다. 즉, y = f(x)의 역함수인 f-1(y)=x를 계산하는 것으로 scipy.stats 모듈의 각 분포의 메소드 ppf(q, df)
로 계산할 수있습니다. 이 메소드의 q는 확률, df는 자유도입니다.
round(stats.chi2.ppf(0.95, df=10), 3)
18.307
예 3)
정규분포를 따르는 연속확률변수 X의 Z score의 제곱인 Y는 자유도가 1인 χ2 분포를 따름을 증명합니다.
\begin{align}Y&=\left(\frac{X-\mu}{\sigma}\right)^2\\&=Z^2 \end{align}
Z은 표준정규분포(N(0, 1))을 따르며 확률밀도함수(식 6)는 다음과 같습니다.
$$f(z)=\frac{1}{\sqrt{2\pi}}\exp\left(-\frac{z^2}{2}\right)$$ | (식 6) |
확률변수 Y에 대한 일정구간의 누적확률은 식 7과 같이 계산됩니다.
\begin{align}Y=Z^2&\rightarrow Z=\pm\sqrt{y}\\dz=\frac{1}{2\sqrt{y}}dy,&\quad dz=\frac{1}{2\sqrt{y}}dy\\ P(a\lt Y \lt b)&=P(a \lt Z^2 \lt b)\\&=P(\sqrt{a} \lt Z \lt \sqrt{b})+P(-\sqrt{b} \lt Z \lt -\sqrt{a})\\ &=\int^{\sqrt{b}}_{\sqrt{a}} f(z)\,dz+\int^{-\sqrt{a}}_{-\sqrt{b}} f(z)\,dz\\ &=\int^{\sqrt{b}}_{\sqrt{a}} f(\sqrt{y})\frac{1}{2\sqrt{y}}\,dy-\int^{-\sqrt{a}}_{-\sqrt{b}}f(-\sqrt{y})\frac{1}{2\sqrt{y}}\,dy\\ &=\int^{\sqrt{b}}_{\sqrt{a}} f(\sqrt{y})\frac{1}{2\sqrt{y}}\,dy+\int^{\sqrt{b}}_{\sqrt{a}}f(-\sqrt{y})\frac{1}{2\sqrt{y}}\,dy\\ &=\int^{\sqrt{b}}_{\sqrt{a}} \frac{f(\sqrt{y})+f(-\sqrt{y})}{2\sqrt{y}}\,dy \end{align} | (식 7) |
식 7의 결과인 미분된 함수를 새로운 함수 g(x)로 하면 식 8과 같이 정리됩니다.
\begin{align}f(\sqrt{y})&=\frac{1}{\sqrt{2\pi}}\exp\left(-\frac{y}{2}\right)\\ f(-\sqrt{y})&=\frac{1}{\sqrt{2\pi}}\exp\left(-\frac{(-\sqrt{y})^2}{2}\right)\\ &=\frac{1}{\sqrt{2\pi}}\exp\left(-\frac{y}{2}\right)\\ g(x)&=\frac{f(\sqrt{y})+f(-\sqrt{y})}{2\sqrt{y}}\\&=\frac{f(\sqrt{y})}{\sqrt{y}}\\ &=\frac{1}{\sqrt{y}}\frac{1}{\sqrt{2\pi}}\exp\left(-\frac{y}{2}\right)\\ &=\frac{1}{\sqrt{2\pi}}y^{\frac{1}{2}-1}\exp\left(-\frac{y}{2}\right)\\ &=\frac{1}{\sqrt{2}\Gamma\left(\frac{1}{2}\right)}y^{\frac{1}{2}-1}\exp\left(-\frac{y}{2}\right)\\ \because\;&\sqrt{2\pi}=\Gamma\left(\frac{1}{2}\right) \end{align} | (식 8) |
식 8의 마지막 항은 자유도가 1인 χ2(1)의 확률밀도함수 식 3과 같습니다.
댓글
댓글 쓰기