Asset Dynamics / GBM(Geometric Brownian Motion)
금융공학 공부를 시작하는 후배에게 Asset Dynamics 및 최종적으로 GBM (Geometric Brownian Motion)을 자세하게 설명한다고 가정하고 GBM에 대해 자세히 설명해보도록 하겠습니다. 그림을 그려가며 설명할 것이며 제가 공부하고 이해한 방식대로 과정을 보여주며 후배에게 설명을 진행할 것 같습니다. 실제로 후배에게 설명한다고 상상하며 구어체로 설명해보도록 하겠습니다.
먼저 GBM에 대하여 제대로 이해하기 위해서는 Asset Dynamics이 무엇이며 어떠한 모델들이 있는지 알아야해. 투자를 함에 있어서 시간의 흐름에 따라 자산의 가격 또는 수익률은 변하게 되고, 금융 시계열 데이터들의 경우 trend와 error들을 고려하여 자산들의 주가변동의 흐름을 분석해야 해. 보통 GBM같은 경우는 historical data의 statistical distribution 정보를 통해 trend와 error등에 대한 정보를 추가하고, 이를 통해 다양한 주가 또는 수익률 시나리오들을 생성하는데 사용돼. multi-dimensional time series 시나리오들을 생성하기 위한 기초가 되는 개념이 바로 Asset Dynamics야. Asset Dynamics란 쉽게 말해 자산의 주가가 시간이 지남에 따라 어떻게 변동되는지를 modeling하는거야.
즉, Asset Dynamics 란 위의 그림처럼 자산의 t1 ~ t n 시점의 주가 또는 수익률을 예상하는 모델이며, 향후 asset dynamics을 통해 여러 시나리오들을 생성하여 옵션, 파생상품 분석에 활용한다던지, optimized portfolio weights의 성과분석을 하기도 하지.
예를 들어, 위의 그림처럼 asset dynamics를 통해 나온 여러 시나리오들의 기대수익률들을 분석하여 포트폴리오 성과분석을 진행할 수 있겠지. 1000개의 시나리오가 있다고 하면 1000개의 기대수익률들의 distribution이 나올 것이고 이를 통해 향후 t1 ~ t n 기간동안의 발생가능한 다양한 기대수익률들을 통해 포트폴리오 성과분석을 진행할 수 있는거지.
아니면 위의 그림처럼 파생상품 시장에서 활용할 수도 있지. call 시장에서 call long으로 option 행사시 얻을 수 있는 기대수익률들을 asset dynamics 을 통한 시나리오들로 분석해볼 수 있지. 가령, call 옵션행사시 forward price보다 높은 T시점의 spot price만으로 얻을 수 있는 기대수익률들의 distribution 및 성과분석을 진행해보는거지.
이러한 시나리오들을 생성하기 위해서 우리는 여러가지 asset dynamics 모델들에 대해 배워야해. asset dynamics은 크게 discrete model 과 continuous model로 나눌 수 있지. discrete model에는 Binomial model, Addictive model, Multiplicative model 등이 있어.
<Binomial model>
먼저 Binomial model의 경우 한 단위기간씩 거치면서 자산의 가격이 오르던지, 내리던지 두가지 방향성을 갖는 모델이야. 자산의 가격이 오르는 경우, 자산가격의 상승률을 u, 자산가격이 오를 확률을 p로 두고, 자산가격이 내리는 경우는 반대로 하락률을 d, 자산가격이 내려갈 확률을 1-p로 정하게 되지. 가격이 오르는 경우와 내리는 경우의 확률의 합은 p + (1-p) 로 당연히 1이 될거야. Binomial model의 경우 간단하다는 장점이 있지만, t시점과 t+1 시점의 spot price 가 independent하다는 특징이 있다. 실제 spot price의 경우 전 시점의 spot price에 영향을 받을 가능성이 많기에 Addictive model과 Multiplicative model의 경우 전 시점 spot price에 dependent한 price 모델로 설명되는거지.
<additive model>
위와 같이 Addictive model의 경우 t시점과 t+1 시점의 spot price는 dependent 하며, trend (a) 와 noise (u(k)) 를 추가해주며 price들을 예측하게 돼.
noise의 경우 normal distribution에서 mutually independent 한 random variable을 sampling하여 구하게 되고, 임의의 S(t=k) 또한 normal random variable으로 계속 구해지겠지.
위의 그림과 같이 trend (a)에 따라spot price는 drift 될것이고, trend를 따라가는 동시에 noise만큼 fluctuate 될거야.
Expected value of u(k) 는 0이니까, 결국 T=k 시점의 spot price의 기댓값은 T=0 시점의 spot price에서 trend (a) 가 k번 곱해진 값으로 나타내지며, a가 1보다 크면 geometrical하게 계속하여 증가하게 되는거지. 하지만 error가 마이너스 값을 가질 수 있기 때문에 stock price 또한 마이너스가 될 수 있는데, 실제로 price는 무조건 양수이기 때문에 이 부분은 addictive model의 한계로 볼 수 있어. 그래서 소개되는게 Multiplicative model이야.
<Multiplicative model>
Multiplicative model은 t 시점의 spot price에 random error를 곱해 t+1 시점의 spot price를 구하는 거야. 하지만 여기는 addictive model과 다른 부분이 존재해. s(k+1) = u(k) * s(k)에 log를 취해주게 되면 ln ( S(k+1) ) = ln ( S(k+1) ) + ln ( u(k)) 의 형태로 변하게 되고, 여기서 우리는 ln ( u (k) ) = w(k)로 치환하게 돼. 여기서 w(k)는 기댓값 v, 분산sigma squared 을 가지는 normal distribution을 따르는 서로 independent한 random variable이라는 가정을 하게된다. 이는 u(k)가 log normal distribution을 따르게 돼.
위에 보는것과 같이, log normal인 u(k)는 무조건 양수이므로 t=k 시점의 모든 spot price의 값을 양수로 만들게 되며, - price값이 나올수도 있다는Addictive Model에서의 한계를 극복한 모델인거지.
그렇다면 log normal distribution이 뭘까?
log normal은 y = e^x 일때, x가 normal random variable 이면, y는 lognormal random variable이 되고, multiplicative model에서 y는 u(k), x는 w(k)가 되겠지. log normal의 경우 모두 positivie 값들이며 분산이 커질수록 skewness도 증가하는 형태를 띄는걸 볼 수있어.
Multiplicative model에서 u(k)와 w(k)의 distribution을 비교해보면, normal distribution을 따르는 u(k)보다 log normal을 따르는 w(i)의 경우 첨도가 더 높고 extreme값들이 조금 더 많은 경향을 보이지만, 전반적인 분포는 크게 다르지 않아. 그러나 w(k)로부터 u(k)의 기댓값을 도출하는 과정에서는 이런 log normal을 조정해주어야하고, 이를 위해 E(u(k)) = e^v가 아닌 e^(v+1/2*squared sigma)로 구해주게 되는거지.
이렇게 time length가 discrete한 3가지 모델에 대해서 보았어, 그렇다면 time length가 매우 작아져서 continuous 하게 된다면 어떻게 될까? 우리는 여기서 continuous model로 넘어가게되지. continuous model은 discrete model에 Δt 를 추가하게 되고, 이후 Δt ~> 0 (dt)을 추가하게 되어 time 변화가 continuous하게 진행되도록 만들게 된다. Ito Process로도 불리며, random walk, Wiener Process (Brownian Motion), GBM (Generalized Brownian Motion)이 있어.
Random Walk란 자산가격의 움직임은 예측할 수 없다라는 전제하에 자산 가격을 예측하는 모델이야.
Random Walk는 stochastic process로써 error가 standardized normal random variable이며, 이를 통해 업데이트 되는 stock price 또한 random하게 변화해. 따라서 변화하는 stock price는 예측가능한 패턴이 없으므로 예측이 불가능하게 되지. 효율적 시장에서는 보통 stock price가 이러한 Random Walk를 따른다고 말하지. 보통 t=0 시점의 stock price는 0으로 두고, trend는 1로 두어, 시간이 지남에 따라 0으로부터 random하게 움직이는 error를 통해 stock price들이 random하게 결정되게 되는거지.
Random Walk는 Discrete model의 Addictive model과 비슷하다고 생각하면 이해하기 쉬워. 여기서 trend 값인 a를 1로 두고 error에 root Δt 를 곱해준거지. 이는 결국 t시점과 t+1시점의 가격의 차이가 error들의 합만으로 나타낼 수 있으며,
이는 결국 두 시점의 stock price의 차이의 기댓값은 0, 분산은 두 시점의 차이로 나타낼 수 있게 되지. 이는 한 시점의 price 기댓값이 다른 시점의 price 기댓값과 동일함을 나타내며, 두 시점의 price 변화의 분산은 두 시점의 차이와 같음을 나타내는 거지.
이러한 Random Walk에서 Wiener Process(Brownian Motion)으로 넘어갈 수 있게 돼.
wiener process 는Δt를 dt로 바꿔주며, z(k+1) – z(k)는 dz로 변하게 돼. 즉, 이는 discrete 했던 time interval을 continuous하게 바꾸어주게 되는거지. error의 경우 random walk와 마찬지로 mutually uncorrelated standard normal random variable이며 time series price들은 error를 통해 random하게 움직이게 되지. wiener process의 경우, 보통 단위시간당 stock price의 차이의 기대변화를 나타내는 drift rate은 0, variance rate은 1로 가정하지. 이는 trend가 없음을 나타내며, 현재시점과 미래 T시점의 stock price의 기댓값이 같게 되는거야. 여기에 trend와 error의 배수 개념을 더해주게 되는데, 이를 우리는 GBM (Generalized Brownian Motion) 모델이라고 부르지. 바로 처음에 설명해주고 싶었던 GBM 모델이 드디어 나온거야.
drift rate =0 이었던 Wiener Process와 달리 GBM은 trend (a)를 더해주어 drift rate =a가 되며, 더 정교한 모델링이 가능하게 돼. 또한 error 에 b 배수를 곱해주어 error가 더 크거나 작을수 있는 가능성도 추가해줄 수 있지.
여기서 중요한 점이, a와 b값을 무엇으로 정해줄 지인데, 우리는 a값을 Multiplicative model에서 봤던 historical data의 w(k)의 기댓값인 v로, b값을 w(k)의 분산인 squared sigma 값으로 정해주게 돼. 이를 통해 historical data의 log return distribution을 향후 시뮬레이션에 적용시켜주는거지. 이로써 historical data의 log return 기댓값을 trend로 갖는 GBM이 완성되는 거지. 향후 continuous하게 표현된 GBM을 discrete하게 표현해줌으로써 k개기간동안의 log return 값들을 예측해볼 수 있으며, normal price 값들도 예측해볼 수 있게 되는거지.
향후 GBM은 시뮬레이션에서 사용되게 돼. 위 그림에서 A와B는 historical data인데, 그 data들을 토대로 multivariate distribution과 같은 통계모델링을 하고, 그러한 통계 distribution을 적용하여 k개의 단위기간에 대한 시나리오들을 생성하는거지. 실제 historical data를 사용하여 성과를 측정하는 backtesting 과는 달리, GBM이 사용되는 시뮬레이션에서는 과거 데이터의 statistical distribution에 대한 정보만 사용을 하여 향후 time series에 대한 시나리오들을 생성하는거야. 보통 historical data의 마지막 시점을 T=0 (current time)으로 두고 historical data의 log return의 기댓값 (v)와 분산 (squared sigma)를 통해 T= k까지의 무수히 많은 시나리오들을 생성하게 되는거지. 맨처음 설명했듯이, 향후 return 또는 파생시장에서의 spot price의 시나리오들을 통해 파생상품 long-short에 대한 전략 또는 포트폴리오 optimization에 대한 성과분석 등을 진행할 수 있게 되는거지.
Asset Dynamics, GBM 관련 코딩입니다.
https://www.kaggle.com/code/hawonna1997/asset-dynamics-gbm-with-return