본문 바로가기
공부/기초통계

통계적 추론과 바람직한 추정량 python

by signature95 2022. 3. 25.
728x90
반응형

통계추론의 의미는 모집단으로부터의 표본에 근거하여 모집단에 대한 정보를 알아내는 과정이라 할 수 있습니다.

 

 

통계적 추론은 화살표를 의미하는 것이라 생각하면 된다.

먼저 통계추론은 추정(estimation)과 가설검정(hypothesis testing)으로 구분되는데, 추정은 표본으로부터 미지의 모수를 추측하는 것으로 다시말해 표본의 통계량으로부터 모수의 특성을 추측하는 것입니다.

 

여기서 추정량은 모수를 추정하기 위한 표본의 함수인 통계량이며, 추정값은 추정량에 관측값을 대입하여 얻은 추정량의 값입니다.
추정량의 분포는 표본추출결과에 따라 변하며 이를 표로 나타낸 것이 표본분포라고 할 수 있습니다.

 

그렇다면, 바람직한 추정량에 대해 알아보도록 하겠습니다.

 


 

불편성 (Unbiasedness) 不偏, 치우치지 않는 특성

 

편의 bias는 추정량과 모수가 서로 다른경우, 존재합니다.

다음 코드를 보고 확인해보겠습니다.

 

 

# 라이브러리 호출
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
import seaborn as sns

# 정규분포를 이루는 데이터 조건 형성
# 데이터 개수 5000개, 분산, 평균 설정
N1, N2 = 5000, 5000
sigma_1, sigma_2 = 10, 10
real, mu_1, mu_2 = 0, 0, 10

# 랜덤데이터 형성 (정규분포)
np.random.seed(0)
x1 = sp.stats.norm(mu_1, sigma_1).rvs(N1)
x2 = sp.stats.norm(mu_2, sigma_2).rvs(N2)

# 시각화
sns.distplot(x1, kde=False, fit=sp.stats.norm, label="f($\hat{\u03F4}_1$)")
sns.distplot(x2, kde=False, fit=sp.stats.norm, label="f($\hat{\u03F4}_2$)")
plt.vlines(x=real, ymin= 0, ymax = 0.05, linestyles='dashed', label='${\u03F4}$')
plt.legend(bbox_to_anchor=(1.0, .2))
plt.show()

 

 

 

주황색은 biased한 추정량의 분포로 실제 모수(점선으로 되어있는 부분)의 값과 일치하지 않습니다. 

 

위의 그림에서 파란색은 unbiased한 추정량의 분포로 실제 모수(점선으로 되어있는 부분)의 값과 일치합니다. 

 

즉, 추정량의 기댓값이 모수의 정보와 동일한 경우, 기댓값은 불편추정량이라 하며, 식으로는 다음과 같습니다.

 

 

 

모수에 대한 추정량의 기댓값이 모수의 값과 동일하다라는 의미를 가진 식
(참고로 여기서 ^ 표시는 hat이라 읽으며 모수의 추정량를 의미합니다.)

 

보통 unbiased한 분포는 반복적인 표본추출을 사용할 때, 나타나는 현상입니다. 따라서 특정 표본의 특성이 아님을 명시하셔야 합니다. 표본의 크기가 고정되어 있는 경우, 여러번의 표본추출을 통해 매번 모수에 대한 추정치를 얻게 되는데 이때 추정량이 불편성의 특징을 가지고 있다면 반복추출로 얻은 추정치의 평균값이 모수의 특성과 동일하다고 기대할 수 있습니다.

 

 

 

효율적 추정량 (Efficient Estimator) or 최량불편(Best Unbiased)

 

효율적 추정량은 추정량의 분산이 최솟값이 되야한다는 것을 의미합니다. 즉, 모수에 대한 추정량의 분포가 좁을 수록 추정량이 바람직하다는 것을 의미합니다. 이는 보통 추정량이 다수일 경우, 이들을 서로 비교하여 가장 유효한 추정량을 확보하고 싶을 때 사용합니다. 

 

다음 코드를 보고 확인해보겠습니다.

# 라이브러리 호출
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
import seaborn as sns

# 정규분포를 이루는 데이터 조건 형성
# 데이터 개수 5000개, 분산, 평균 설정
N1, N2 = 5000, 5000
sigma_1, sigma_2 = 10, 30
real, mu_1, mu_2 = 0, 0, 0

# 랜덤데이터 형성 (정규분포)
np.random.seed(0)
x1 = sp.stats.norm(mu_1, sigma_1).rvs(N1)
x2 = sp.stats.norm(mu_2, sigma_2).rvs(N2)

# 시각화
sns.distplot(x1, kde=False, fit=sp.stats.norm, label="f($\hat{\u03F4}_1$)")
sns.distplot(x2, kde=False, fit=sp.stats.norm, label="f($\hat{\u03F4}_2$)")
plt.vlines(x=real, ymin= 0, ymax = 0.05, linestyles='dashed', label='${\u03F4}$')
plt.legend(bbox_to_anchor=(1.0, .2))
plt.show()

 

위의 경우, theta1, 2는 실제 모수의 값에 일치하는 unbiased 추정량을 보여주고 있지만, 파란색 값의 분산이 더 작은 것을 확인할 수 있습니다. 따라서 파란색의 추정량이 더 효율적 추정량이라 할 수 있습니다.

또한, 위같이 불편성을 지닌 파란색 추정량을 최소분산불편추정량(MVUE: minimum variance unbiased estimator)이라고 합니다. 

 

BLUE (Best Linear Unbaised Estimator), 최량선형불편추정량, 最良線形不偏推定量 (용어가 좀...)

 

설명해보면 이는 추정량이 불편성, 선형성인 특징일 때 모든 추정량의 집합 가운데 최소의 분산을 가지고 있는 경우의 추정량을 BLUE라고 합니다.

 

참고) 여기에 대한 추가 증명은 다음 포스트에 이어집니다.

2022.03.28 - [공부/통계학] - Monte Carlo simulation (몬테카를로 시뮬레이션) python 

 

Monte Carlo simulation (몬테카를로 시뮬레이션) python

이전포스트에 이어서 작성하는 내용입니다. 2022.03.25 - [공부/통계학] - 통계적 추론과 바람직한 추정량 python 통계적 추론과 바람직한 추정량 python 통계추론의 의미는 모집단으로부터의 표본에

signature95.tistory.com

 

MSE (Minimum Mean-Squared Error) 최소평균제곱오차

 

추정량 theta의 MSE
추정량의 분산

MSE는 모수의 평균에서 추정치의 분포가 떨어져 있는 정도를 의미하고 추정량의 분산은 추정치 자체의 평균에서 떨어져 있는 정도를 의미합니다. 그렇다면 MSE를 풀어서 설명해보도록 하겠습니다.

 

먼저 MSE의 내부식에 E(theta_hat)을 넣어줘서 식을 변형합니다.

 

 

(x+y)^2 = x^2 + y^2 + 2xy이므로 이 식은 다음과 같이 풀어 쓸 수 있습니다.

 

 

a가 상수라면, E(a) = a이므로 마지막 항을 풀어 쓰면 0이 됩니다.

 

 

여기서 추정량의 분산이 1번째 항이 되는 것이고, 2번째 항은 bias를 의미합니다.

 

즉 MSE는 다음과 같이 쓸 수 있습니다. 

 

만약 theta가 불편성이 있다면 MSE = Var로 일치할 것입니다. 하지만, 여기서 최소의 분산을 얻기 위해서는 bias에 대해 일부 수용해야하는 점이 있습니다. 이를 bias, variance의 상충관계(Trade-off)라고 합니다.

 

http://scott.fortmann -roe.com

 

 

728x90

댓글