2020. 8. 18. 22:35ㆍ카테고리 없음
우리는 지금까지 표준정규분포와 t-분포를 활용하여 모평균을 추론하는 방안을 정리하였습니다. 그렇다면 모표준편차에 대한 추론하는 방안은 어떻게 될까요?
생산공정에서 생산되는 평균적인 제품의 무게를 아는 것도 중요하지만 얼마나 일관되게 제품을 생산하는가도 중요한 질문이 될 수 있습니다. 따라서, 이번에는 표준편차를 추론하는 방안에 대해서 알아보겠습니다.
모분산 추정하기 위한 통계량은 표본의 분산이며, 앞에서도 여러차례 정의한것과 같이 표본분산은 아래와 같습니다.
이제 추론을 하기위해서는 표준정규분포나 t-분포와 같이 분산에 대한 분포가 필요합니다. 이 때 활용하는 것이 카이제곱분포(χ2-분포)입니다.
[카이제곱분포]
정규 분포 N(μ,σ^2)를 따르는 모집단으로부터 추출된 표본은 X1, X2, ... , Xn이라 할 때, 카이제곱(χ2)의 확률변수는 아래와 같이 정의됩니다.
위의 카이제곱 χ2의 확률변수는 자유도가 (n-1)인 카이제곱분포(χ2-분포)를 따른다고 정의합니다. χ2-분포는 정규분포나 t분포와는 달리, 오른쪽에 긴 꼬리를 가지는 비대칭형입니다. 자유도가 커질수록 넓게 분포하게 됩니다.
카이제곱분포를 활용한 신뢰구간 검정 및 추론 방법은 앞서 했던 t-분포나 표준정규분포를 이용했을 때와 동일합니다. 마찬각지로 신뢰수준을 α라고 가정하면 신뢰구간은 아래와 같습니다.
따라서 모분산의 100(1-α)%의 신뢰구간은 다음과 같습니다.
모표준편차는 모분산의 제곱근이므로 모분산 신뢰구간에 제곱근을 하여 구할 수 있습니다.
최종적으로, 추정량, 신뢰구간, 기각역은 아래와 같이 정리할 수 있습니다.
모표준편차가 σ인 모집단으로부터 추출한 표본의 표준편차 추정량:
σ에 대한 100(1-α)%의 신뢰구간:
가설 H0: σ=σ0에 대한 검정:
파이썬을 활용해서 실습을 해보겠습니다.
from scipy.stats import chi2
from scipy.stats import norm
import matplotlib.pyplot as plt
import numpy as np
## 모집단 평균 70, 표준편차 3 가정
mu = 70
std = 3
norm_ = norm(mu,std)
## 모집단에서 30개 표본 추출
sample_data=norm_.rvs(30)
sample_mean = np.mean(sample_data)
sample_std = np.std(sample_data, ddof=1)
## 카이제곱분포를 활용한 신뢰구간 추정
df = 30-1
chi_ = chi2(df)
t_025 = chi_.ppf(0.025)
t_975 = chi_.ppf(0.975)
L_= round(((df*sample_std**2)/t_975),2) ## 본문의 식과는 t_975, t_025순서가 바뀜(Scipy가 주는 값에 의해)
U_= round(((df*sample_std**2)/t_025),2)
print("{} < {} < {}".format(L_, std**2, U_)) ## 결과:4.78 < 9 < 13.62
##시각화
x = np.linspace(chi_.ppf(0.01), chi_.ppf(0.99),1000)
t_025_ = np.linspace(chi_.ppf(0.01),t_025,1000)
t_975_ = np.linspace(t_975,chi_.ppf(0.99),1000)
plt.vlines(t_025, 0, chi_.pdf(t_025), colors="b", alpha=0.3)
plt.vlines(t_975, 0, chi_.pdf(t_975), colors="r", alpha=0.3)
plt.plot(x, chi_.pdf(x),'g-', lw=2, alpha=0.6, label='chi-squared pdf')
plt.fill_between(t_025_, 0,chi_.pdf(t_025_), color ="b", alpha=0.3)
plt.fill_between(t_975_, 0,chi_.pdf(t_975_), color ="r", alpha=0.3)
plt.legend()
plt.show()