Finance/Financial Mathematics

Geometric Brownian Motion의 해, 평균, 분산

Viator 2022. 4. 12. 11:07

1.  Solution of GBM

 

먼저 아래의 기하 브라운 모형(Geometric Brownian Motion)을 살펴보자.

$$
dS_t = \mu S_t dt + \sigma S_t dW_t \label{eq1} \tag{1}
$$

그리고 이걸 기반으로 $d \ln S_t$를 구하면 아래와 같다. 이 때 $\ln S_t$가 확률미분방정식 시스템인 S_t에 대한 함수이기 때문에 Ito's lemma로 2계 도함수까지 테일러 근사를 진행해야한다. Ito's lemma에 대한 자세한 설명은 "해밀턴 자코비 벨만 방정식 2(stochastic case)" 포스팅의 1. Ito's lemma 파트를 참고하면 된다. Ito lemma로 $d \ln S_t$에 대한 전미분을 시행하면 아래와 같다.

$$
\begin{align}
d \ln S_t 
&= \frac{\partial \ln S_t}{\partial S_t} dS_t + \frac{1}{2}\frac{\partial^2 \ln S_t}{\partial S_t^2} (dS_t)^2 \label{eq2} \tag{2}\\
&= \frac{1}{S_t}(\mu S_t dt + \sigma S_t dW_t) - \frac{1}{2} \frac{1}{S_t^2} (\mu S_t dt + \sigma S_t dW_t)^2 \label{eq3} \tag{3}\\
&= \mu dt + \sigma dW_t - \frac{1}{2} \frac{1}{S_t^2}(\mu^2 S_t^2 (dt)^2 + 2\mu \sigma S_t^2 dt dW_t + \sigma^2 S_t^2 (dW_t)^2) \label{eq4} \tag{4}\\
&= \mu dt + \sigma dW_t -\frac{1}{2} \sigma^2 dt \label{eq5} \tag{5}
\end{align}
$$

식 (4)에서 $(dt)^2$ term과 $dtdW_t$ term이 0으로 수렴하고 $(dW_t)^2 = dt$가 되는 일련의 과정들 또한 "해밀턴 자코비 벨만 방정식 2(stochastic case)" 포스팅의 1. Ito's lemma 파트를 참고하면 된다. 

이제 식 (5)에서 양변에 finite horizon의 임의 시점인 T까지로 적분을 취하면 최종적으로 GBM의 해가 아래와 같이 도출된다.

$$
\int_0^T d \ln S_t = \int_0^T \left ( \mu - \frac{\sigma^2}{2} \right )dt + \int_0^T \sigma dW_t \label{eq6} \tag{6}
$$
$$
\ln S_T - \ln S_0 = \left ( \mu - \frac{\sigma^2}{2} \right )T + \sigma W_T \label{eq7} \tag{7}
$$

$$
\begin{align}
\therefore S_T 
&= S_0 \exp \left ( \left ( \mu - \frac{\sigma^2}{2} \right )T + \sigma W_T \right ) \label{eq8} \tag{8} \\
&= \exp \left ( \ln S_0 +  \left ( \mu - \frac{\sigma^2}{2} \right )T + \sigma W_T \right ) \label{eq9} \tag{9}
\end{align}
$$

식 (8), (9)에서 도출된 GBM의 해로 인해 파라미터에 해당하는 drift term $\mu$와 diffusion term $\sigma$만 정해주면 우리는 특정 시점($T$)의 주가에 대해서 시뮬레이션 할 수 있다.

2. Mean & Variance of GBM

2.1 preliminaries

식 (9)에서 확률변수에 해당하는 건 브라운 모형인 $W$이다. 즉 지수파트는 아래와 같은 정규분포를 따른다.

$$
Z = \ln S_0 +  \left ( \mu - \frac{\sigma^2}{2} \right )T + \sigma W_T \sim N \left[ \ln S_0 +  \left ( \mu - \frac{\sigma^2}{2} \right )T , \sigma^2 T \right ] \label{eq10} \tag{10}
$$

브라운 모형은 표준정규분포이기 때문에 지수파트에 기댓값을 씌우면 합의 관계로 붙은 $E[\sigma W_T]$는 $0$으로 처리되고 나머지가 $\ln S_0 +  \left ( \mu - \frac{\sigma^2}{2} \right )T$로 나와 위의 평균이 됨은 자명하다. 분산이 $\sigma^2 T$가 되는 이유는 $\ln S_0 +  \left ( \mu - \frac{\sigma^2}{2} \right )T = A$로 치환하고 아래에서 간단하게 유도해보자.

$$
\begin{align}
\because Var[Z] 
&= E \left [ Z^2 \right ]  - E \left[ Z \right]^2 \\
&= E \left [ (A + \sigma W_T)^2 \right ] - A^2 \\
&= E \left [ A^2 + 2\sigma A W_T + \sigma^2 W_T^2 \right ] - A^2 \\
&= A^2 + \sigma^2 T - A^2 \\
&= \sigma^2 T
\end{align}
$$

로그를 취해서 정규분포를 따르는 분포는 로그정규분포(Log-normal distribution)이다. 그러므로 식 (9)의 GBM은 아래와 같이 로그정규분포를 따른다 할 수 있다.

$$
X_T = e^Z \sim LN \left [ \ln S_0 +  \left ( \mu - \frac{\sigma^2}{2} \right )T , \sigma^2 T \right ] \label{eq11} \tag{11}
$$

그러나 여기서 헷갈리면 안되는 건, $LN$의 첫 번째, 두 번째 파라미터로 들어간 것은 $E \left [ Z \right ]$과 $ Var \left [ Z \right ]$이지 우리가 알고 싶은 GBM의 평균, 분산인 $E \left [ e^Z \right ]$, $Var \left [ e^Z \right ]$가 아님을 명심해야 한다. 

GBM의 평균, 분산식을 유도하기에 앞서, 표준정규분포가 exponential의 지수로 들어간 꼴의 기댓값처리 꼴를 먼저 알아야 한다. 아래에서 살펴보자.

$z \sim N(0,1)$일 때,

$$
\begin{align}
E \left [ e^{tz} \right ] 
&= \int_{-\infty}^{\infty} e^{tz} p(z) dz \label{eq12} \tag{12} \\ 
&= \int_{-\infty}^{\infty} e^{tz} \frac{1}{\sqrt{2\pi}} e^{-\frac{z^2}{2}} dz \label{eq13} \tag{13}\\
&= \int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}} e^{-\frac{-2tz + z^2}{2}} dz \label{eq14} \tag{14}\\
&= \int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}} e^{-\frac{-2tz + z^2 + t^2 - t^2}{2}} dz \label{eq15} \tag{15}\\
&= \int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}} e^{-\frac{(z-t)^2}{2} +\frac{t^2}{2}} dz \label{eq16} \tag{16}\\
&= e^{\frac{t^2}{2}}\int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}} e^{-\frac{(z-t)^2}{2}} dz \label{eq17} \tag{17}\\
&= e^{\frac{t^2}{2}}\label{eq18} \tag{18}
\end{align}
$$

식 (17)에서 적분 파트는 $N(t, 1)$의 확률밀도함수(pdf)의 전체 합으로써 1이 되기 때문에 최종적으로 식 (18)이 나온다. 즉, 기댓값을 거치면 exponential 지수의 확률변수($z$)는 사라지고 여기에 곱의 관계로 붙은 임의의 승수($t$)는 제곱되어 2로 나누어지면서 그대로 exponential 지수에 있게 된다.

여기서 만약 확률변수 $z$에 곱의 관계가 아닌 합의 관계로 붙으면 기댓값에서 어떻게 처리될지까지 살펴보면 exponential에 붙은 표준정규분포 확률변수 꼴의 기댓값 형태에 대해 일반화가 가능하다. 

$$
\begin{align}
E \left [ e^{t(a+bz)} \right ] 
&= e^{at} E \left [ e^{tbz} \right ] \\
&= e^{at} e^{\frac{{tb}^2}{2}} \\
&= e^{at + \frac{t^2 b^2}{2}} \label{eq19} \tag{19}
\end{align}
$$

여기서 지수에 붙은 $t(a+bz)$꼴에서 평균은 $at$, 분산은 $b^2 t^2$인 정규분포를 따른다. 즉 $Y = t(a+bz) \sim N(at, b^2 t^2)$이다. 그러므로 표준정규분포 확률변수가 들어있는 임의의 식 $Y$가 exponential의 지수로 붙어 있는 꼴의 기댓값 형태는 아래와 같이 일반화된다.

$$
E \left [ e^Y \right ] = e^{E[Y]+
\frac{1}{2} Var[Y]} \label{eq20} \tag{20}
$$

2.2 Derivation of GBM mean, variance

위에서 정의한 식 (10)의 Z는 브라운 모형 $W_T$항을 갖고 있기 때문에 표준정규분포가 포함되어 있고($W_T = \sqrt{T} z$) 식 (20)을 그대로 적용할 수 있다. 이제 우리의 목표  $E \left [ e^Z \right ]$, $Var \left [ e^Z \right ]$를 구할 수 있게 되었다. GBM의 평균과 분산을 도출해보자.

$$
\begin{align}
E \left [ S_T \right ] 
&= E \left [ e^Z \right ]\\
&= e^{E[Z]+\frac{1}{2} Var[Z]} \\
&= e^{\ln S_0 +  \left ( \mu - \frac{\sigma^2}{2} \right )T + \frac{1}{2}\sigma^2 T} \\
&= e^{\ln S_0 + \mu T} \\
&= S_0 e^{\mu T}
\end{align}
$$

$$
\begin{align}
Var \left [ S_T \right ] 
&= E \left [ S_T^2 \right ] - E \left [ S_T \right ]^2 \\
&= E \left [ e^{2Z} \right ] - E \left [ e^Z \right ]^2 \\
&= e^{E[2Z] + \frac{1}{2}Var[2Z]} - e^{2\ln S_0 + 2\mu T} \\
&= e^{2E[Z] + 2Var[Z]} - e^{2\ln S_0 + 2\mu T} \\
&= e^{2\ln S_0 +  2\left ( \mu - \frac{\sigma^2}{2} \right )T + 2\sigma ^2T} - e^{2\ln S_0 + 2\mu T}\\
&= e^{2\ln S_0 +  2\mu T+ \sigma^2 T} - e^{2\ln S_0 + 2\mu T}\\
&= e^{2\ln S_0 + 2\mu T} \left ( e^{\sigma^2 T} - 1 \right ) \\
&= S_0^2 e^{2\mu T} \left ( e^{\sigma^2 T} - 1 \right )
\end{align}
$$

$$
\therefore E \left [ S_T \right ] =S_0 e^{\mu T}, \qquad Var \left [ S_T \right ] = S_0^2 e^{2\mu T} \left ( e^{\sigma^2 T} - 1 \right ) \label{eq21} \tag{21}
$$

3. Simulation

이번 포스팅에서는 가장 베이스로 사용되는 주가 모델인 기하브라운운동의 해, 평균, 분산에 대해 알아보았다. 본 포스팅에서 유도할 때 사용된 테크닉들은 추후 Heston model 등의 더 나은 모델에 대해서도 사용되며, 특히 GBM의 평균, 분산은 금융 application 논문들에서 목적함수를 모델링 할 때 중간중간에 종종 등장한다. 추후 있을 논문 리뷰 포스팅들에서 본 포스팅이 많이 참조될 것이다. 

포스팅을 마치면서 식 (9)에서 몬테카를로 시뮬레이션 방식으로 구한 평균, 분산과 식 (21)이 비슷한 결과를 내는지 간단하게 코딩해보고 마무리하도록 한다.

import numpy as np
import matplotlib.pyplot as plt

S_0=100 # 초기 주가
mu=0.2 # drift
sigma=0.3 # volatility
T=1 # 1 year
trading_days=252
delta_t = T/trading_days # 1 day
simulation_n = 1000

plt.figure(figsize=(15,5))
S = np.zeros((simulation_n, trading_days+1))
S[:,0]= S_0
for n in range(simulation_n):
    for t in range(trading_days):
        # 식 (9)
        S[n,t+1] = S[n,t] * np.exp((mu-(sigma**2)/2)*delta_t + sigma*np.sqrt(delta_t)*np.random.randn())

    plt.plot(S[n])
    
plt.title('simulation result', fontsize=20)
plt.show()

# 식 (21)
analytical_mean = S_0 * np.exp(mu*T)
analytical_std = np.sqrt(S_0**2 * np.exp(2*mu*T)*(np.exp(sigma**2*T)-1))
print('MC mean : {}, std : {}'.format(np.mean(S[:,-1]), np.std(S[:,-1])))
print('analytical mean : {}, std : {}'.format(analytical_mean, analytical_std))

Reference

1. https://www.youtube.com/watch?v=98xF6b0PZpo&t=117s
2. Shreve, S. E. (2004). Stochastic calculus for finance II: Continuous-time models (Vol. 11). New York: springer.