작성자: admin 작성일시: 2016-05-23 22:03:20 조회수: 1788 다운로드: 125
카테고리: 기초 수학 태그목록:

스튜던트 t 분포

Fat tail 현상

데이터 분석 실무에서는 자연에서 발생하는 현상 중 많은 것들을 정규 분포를 따르는 확률 변수로 모형화하여 사용하고 있다. 그러나 이러한 데이터들을 자세히 살펴보면 실제로는 정규분포보다 양 끝단의 비중이 더 큰것을 알 수 있다. 이를 fat tail 현상이라고 한다.

예를 들어 주식의 수익률은 보통 정규 분포를 따르는 것으로 모형화하여 사용한다. 실제로 어느 정도 정규 분포를 따르는지 데이터에서 확인해 보자.

In:
import pandas_datareader.data as web

symbols = ['^GDAXI', '^GSPC', 'YHOO', 'MSFT']
data = pd.DataFrame()
for sym in symbols:
    data[sym] = web.DataReader(sym, data_source='yahoo', start='1/1/2006', end='12/31/2015')['Adj Close']
data = data.dropna()
(data / data.ix[0] * 100).plot()
plt.show()
In:
log_returns = np.log(data / data.shift(1))
log_returns.hist(bins=50)
plt.show()
In:
for i, sym in enumerate(symbols):
    ax = plt.subplot(2,2,i+1)
    sp.stats.probplot(log_returns[sym].dropna(), plot=ax)
plt.tight_layout()
plt.show()    

이렇게 Fat tail 을 가진 데이터 모형에 적합한 것이 다음에 정의하는 스튜던트 t 분포이다.

스튜던트 t 분포

스튜던트 t 분포의 확률 밀도 함수는 다음 수식에 의해 정의된다. 가우시안 정규 분포와 달리 정수값을 가지는 자유도(degree of freedom)라는 모수(parameter) $\nu$를 추가적으로 가진다.

$$ f(x) = \frac{\Gamma(\frac{\nu+1}{2})} {\sqrt{\nu\pi}\,\Gamma(\frac{\nu}{2})} \left(1+\frac{(x-\mu)^2}{\nu\sigma^2} \right)^{\!-\frac{\nu+1}{2}} $$

이 식에서 $\Gamma$는 감마(Gamma) 함수라는 특수 함수이다.

스튜던트 t 분포의 확률 밀도 함수를 그리려면 SciPy 패키지의 t 명령을 사용한다. 이 때 인수 df는 자유도, loc는 기댓값, scale은 표준 편차를 설정한다.

그림에서 자유도 $\nu$가 작으면 가우시안 정규 분포보다 분산이 크고 fat tail을 보이지만 자유도가 증가할수록 가우시안 정규 분포로 수렴하는 것을 볼 수 있다.

In:
xx = np.linspace(-4, 4, 100)
for df in [1, 2, 5, 10, 20]:
    rv = sp.stats.t(df=df)
    plt.plot(xx, rv.pdf(xx), label=("studen-t (dof = %d)" % df))
plt.plot(xx, sp.stats.norm().pdf(xx), label="Normal", lw=5, alpha=0.5)
plt.legend()
plt.show()

모멘트

스튜던트 t 분포의 기댓값과 분산은 다음과 같다.

  • 기댓값: $$\text{E}[X] = 0 $$

  • 분산: ($\nu > 2$ 인 경우만 적용됨. $\nu=1,2$일 때는 분산이 무한대) $$ \text{Var}[X] = \dfrac{\nu \sigma^2}{\nu-2} $$

정규 분포의 샘플 평균이 이루는 분포

중심 극한 정리(Central Limit Theorem)에 따르면 모든 확률 변수의 합(또는 평균)은 샘플의 갯수가 증가할 수록 가우시안 정규 분포에 가까워진다. 그러면 샘플의 수가 무한대가 아닌 유한한 경우는 어떨까?

가우시안 정규 분포로부터 얻은 $n$개의 샘플 $x_1, \cdots, x_n$ 로부터 얻은 샘플 평균을 샘플 표준편차로 나눈 값은 자유도가 $n-1$인 스튜던트 t 분포를 이룬다.

여기에서 중요한 포인트는 샘플 표준편차로 나누었다는 사실이다. 정규 분포로 부터 얻은 샘플 데이터의 샘플 평균은 그 자체로는 항상 정규 분포를 따른다. 샘플 표준편차라고 하는 다른 확률 변수로 나누는 과정에서 정규 분포가 아닌 스튜던트 t분포를 따르게 된다.

이를 수식으로 나타내면 다음과 같다.

(이론적 표준 편차라는 상수로 나눈) 샘플 평균은 원래대로 정규 분포를 따르지만 $$ \frac{\bar{x} - \mu}{\dfrac{\sigma}{\sqrt{n}}} \sim N $$

샘플 평균을 샘플 분산으로 나눈 값은 스튜던트 t 분포를 따른다. $$ \frac{\bar{x} - \mu}{\dfrac{s}{\sqrt{n}}} \sim t(n - 1) $$

이 식에서 $ \bar{x}, s$은 각각 샘플 평균, 샘플 표준편차다.

$$ \bar{x} = \frac{x_1+\cdots+x_n}{n} $$$$ s^2 = \frac{1}{n-1}\sum_{i=1}^n (x_i - \bar{x})^2 $$

이 정리는 추후 정규 분포의 기댓값에 관한 각종 검정(testing)에서 사용된다.

이를 시뮬레이션으로 보이면 다음과 같다.

In:
mu = 1
sigma = 2
rv_n = sp.stats.norm(mu, sigma)

N1 = 100
N2 = 2000
X = rv_n.rvs(size=(N1, N2))

x_bar = X.sum(axis=0) / N1
s = np.sqrt(((X - x_bar) ** 2).sum(axis=0) / (N1 - 1))
t = (x_bar - mu) / (s / np.sqrt(N1))
In:
rv_t = sp.stats.t(N1 - 1)
xx = np.linspace(-6, 6, 100)
plt.plot(xx, rv_t.pdf(xx))
sns.distplot(t, kde=False, fit=sp.stats.t)
plt.show()

질문/덧글

Student-T 분포의 모멘트 moon*** 2016년 10월 14일 7:09 오후

1. 분산을 구하는 식에서 자유도 값에 따라 분산이 바뀌는데 df=1 or 2 일 경우에는 음수가 되는데 분산이 음수가 될 수있나요??

2. 모멘트 식 위 그림에서 증명했듯이 자유도가 커질수록 표준 정규분포에 가까워지는 것으로 보입니다.(sp.stats.norm에 parameter를 아무것도 넣지 않으면 loc=0, scale=1 이 되는 것으로 알고 있습니다.) 그러면 자유도가 커질수록 t분포의 분산이 1에 가까워져야할텐데 수식에서는 자유도가 커질수록 모집단의 분값에 가까워집니다. 1에 가까워지는 것이 아닌가요?

3. Fat tail 을 가진 데이터모형에 적합한 것이 student-t 분포라고 하셨는데 이 말의 의미가, fat tail을 가진 데이터들 자체가 student-t 분포를 따른 다는 의미인가요? 아니면 fat tail을 가진 데이터의 샘플 평균 값들이 student-t 분포를 따른 다는 의미인가요?

답변: Student-T 분포의 모멘트 관리자 2016년 10월 16일 10:58 오전

1. 위의 식은 자유도 2 이상에서만 적용됩니다. 자유도가 1이나 2일 때는 분산이 무한대입니다.
2. 1에 가까워지고 있습니다. "모집단" 이라는게 뭔가요?
3. 적합하다는 말은 fat tail을 가진 데이터에 대해서 student-t 분포를 우선적으로 고려해 볼 수 있다는 뜻입니다. 또, 정규 분포의 샘플 평균을 샘플 분산으로 나눈 값이 student-t 분포를 따릅니다. 정규 분포의 샘플 평균 자체는 정규 분포입니다.

답변: 답변: Student-T 분포의 모멘트 moon*** 2016년 10월 16일 2:03 오후

2. 아 오타가 있었네요,, 제가 말씀드린 부분은 모집단의 분산값인 σ^2을 의미하는 것이었습니다.

student-T 분포의 모멘트 수식 중 분산값이 자유도가 커질수록 1이 아닌 σ^2으로 가까워져서 왜 그렇게 되는 것인지 궁금했습니다.

3. 그렇다면 카이제곱분포 페이지 (https://www.datascienceschool.net/view-notebook/683cfb97b17041f3a9a0e6cbee5f1fef/) 의 맨 위에 설명되어 있는

'가우시안 정규 분포를 따르는 확률 변수 X 의 n개의 샘플 x1,⋯,xn의 합(또는 평균)은 student-t 분포를 따른다.'

라는 문장은 정확히는 샘플의 합또는 평균을 샘플 분산으로 나눈 값이 student-t 분포를 따른다는 의미인 것인가요?

답변: 답변: 답변: Student-T 분포의 모멘트 관리자 2016년 10월 20일 2:27 오후

제가 카이제곱분포에서는 정확히 서술을 안했었네요. 말씀하신 내용이 맞습니다. 수정하도록 하겠습니다.