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

스튜던트 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{s}{\sqrt{n}}} $$

이 식에서

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

질문/덧글

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 오후

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