4장 Discrete Event Simulation

  • Insurance Risk Model
  • Stock Option

이번 장에서는 이산적으로 Event 가 발생한다면 저희가 어떻게 시뮬레이션을 진행할 지에 대한 내용입니다. 구체적으로는 주식에 관한 얘기가 많습니다.

Insurance Risk Model (보험 위험 모형)

보험 회사를 고려해보겠습니다. 보험 회사의 경우에는 다음과 같이 돈이 움직입니다.

  • 보험 회사에게 돈이 가입자 수만큼 조금씩 들어온다 →\rightarrow 보험료
  • 가끔 목돈이 한번에 빠진다 →\rightarrow 사고가 나서 보험금 지급
  • 가입자는 가끔 떠나고 가끔 들어온다.

그러면 여기에서 무작위로 일어나는 사건들은 다음과 같습니다.

  • 가입
  • 해지
  • 청구 (보험료 지급)

여기에서 저희가 보통 궁금한 것은 바로 보험 회사가 지금부터 시간 TT 까지 마이너스 (파산) 이 되지 않을 확률입니다. 그러면 이것들을 Notation 과 함께 쓰자면 다음과 같습니다.

  • 청구 도착 / Event →\rightarrow 포아송 Process with λ\lambda
  • 청구액 →\rightarrow Y∼FY \sim F
  • 신규가입 →\rightarrow Poisson Process with ν\nu
  • 가입자의 계약 유지 시간 ∼\sim Exp(μ),\mathrm{Exp}(\mu), Mean = 1/μ1/\mu
  • 보험료 수입 →\rightarrow c,c, 단위 시간 별로
  • 초기 상태 →\rightarrow 고객 수 n0,n_0, 자본 a0≥0a_0 \ge 0

필요한 조건들 :

  • NtN_t 는 정확하게는 [0,t][0, t] 구간 사이에 발생한 사건 수이고 포아송 과정을 따른다면 Nt∼Pois(λt)N_t \sim \mathrm{Pois}(\lambda t) 입니다. XX 는 첫 사건 시각 이라고 한다면,
    Pr{X>t}=Pr{Nt=0}=e−λt⇒X∼Exp(λ)\mathrm{Pr}\left\{ X > t \right\} = \mathrm{Pr}\left\{ N_t = 0 \right\} = e^{-\lambda t} \Rightarrow X \sim \mathrm{Exp}(\lambda)
  • 첫 사건 시각들의 분포들이 독립적이어야 합니다.
    Xi∼i.i.dExp(λi)⇒min⁡iXi∼Exp(∑iλi),  Pr{min⁡iXi=Xk}=λk/∑iλiX_i \stackrel{\text{i.i.d}}{\sim} \mathrm{Exp}(\lambda_i) \Rightarrow \min_i X_i \sim \mathrm{Exp}\left(\sum_i\lambda_i\right), \; \mathrm{Pr}\left\{ \min_i X_i = X_k \right\} = \lambda_k / \sum_i \lambda_i

이를 통해서 현재 가입자 수가 nn 명인 상황에 적용시킨다면,

  • 다음 사건까지의 시간 X∼Exp(ν+nμ+nλ)X \sim \mathrm{Exp}\left(\nu + n \mu + n \lambda \right)
  • 사건 종류 JJ 의 확률
    • J=1:J = 1 : (신규가입) νν+nμ+nλ\frac{\nu}{\nu + n \mu + n \lambda}
    • J=2:J = 2 : (해지) nμν+nμ+nλ\frac{n \mu}{\nu + n \mu + n \lambda}
    • J=3:J = 3 : (청구) nλν+nμ+nλ\frac{n\lambda}{\nu + n \mu + n \lambda}
  • Output Variable II
    I={1 if capital ≥0 in [0,T]0 o.w. I= \begin{cases}1 & \text { if capital } \geq 0 \text { in }[0, T] \\ 0 & \text { o.w. }\end{cases}

그럼 이러한 세팅을 시뮬레이션으로 진행해서 어떻게하면 저희가 원하는 확률을 구할 수 있을까요?

Initializet=0,a=a0,n=n0Generate X, tE=XUpdateCase 1: tE>TSet I=1 and end this runCase 2: tE≤TReset a=a+n c (tE−t) t=tEGenerate JJ=1: Reset n=n+1J=2: Reset n=n−1J=3: Generate YIf Y>a, set I=0 and end this run.Otherwise reset a=a−Y.Generate X: Reset tE=t+X\begin{aligned}&\textbf{Initialize}\\&t = 0,\quad a = a_0,\quad n = n_0\\&\text{Generate } X,\ t_E = X\\[6pt]&\textbf{Update}\\&\text{Case 1: } t_E > T\\&\quad \text{Set } I = 1 \text{ and end this run}\\&\text{Case 2: } t_E \le T\\&\quad \text{Reset } a = a + n\,c\,(t_E - t)\\&\quad\quad\quad\ t = t_E\\&\quad \text{Generate } J\\&\quad\quad J = 1:\ \text{Reset } n = n + 1\\&\quad\quad J = 2:\ \text{Reset } n = n - 1\\&\quad\quad J = 3:\ \text{Generate } Y\\&\quad\quad\quad \text{If } Y > a,\ \text{set } I = 0 \text{ and end this run.}\\&\quad\quad\quad \text{Otherwise reset } a = a - Y.\\&\quad \text{Generate } X:\ \text{Reset } t_E = t + X\end{aligned}

Stock Option (주식 옵션 행사)

Y∼N(μ,σ2)Y \sim \mathrm{N}(\mu, \sigma^2) 이라고 한다면 Z:=exp⁡(Y)∼LN(μ,σ2)Z := \exp(Y) \sim \mathrm{LN}(\mu, \sigma^2) 의 분포를 따르며, 이를 Log-Normal 분포라고 부릅니다. 이때 특징으로는 다음과 같습니다.

  • E[Z]=exp⁡(μ+σ2/2)\mathbb{E}[Z] = \exp\left(\mu + \sigma^2 / 2 \right)
  • Var(Z)=[exp⁡(σ2)−1]exp⁡(2μ+σ2)\mathrm{Var}(Z) = \left[\exp \left(\sigma^2\right)-1\right] \exp \left(2 \mu+\sigma^2\right)
  • ZZ 확률변수들끼리 곱셈을 해도 Log-Normal 분포는 유지가 됩니다.

이것을 활용한 Random Walk 를 Log-normal Random Walk Model 이라고 부르며, 이는 다음과 같습니다.

Sn=S0exp⁡{X1+⋯+Xn},n≥0S_n=S_0 \exp \left\{X_1+\cdots+X_n\right\}, \quad n \geq 0
  • S0:S_0 : 시작 종가
  • Sn:S_n : nn 일차 종가
  • log⁡SiSi−1=Xi∼ N(μ,σ2)\log \frac{S_i}{S_{i-1}}=X_i \sim \mathrm{~N}\left(\mu, \sigma^2\right)
  • log⁡SiSi−2=Xi+Xi−1∼ N(2μ,2σ2)\log \frac{S_i}{S_{i-2}}=X_i+X_{i-1} \sim \mathrm{~N}\left(2 \mu, 2 \sigma^2\right)

그럼 이때 이것을 American Call Option 에 적용해보겠습니다.

American Call Option 이란, 어떠한 주식을 마감일 (만기 전 언제든) 까지 정해진 가격 KK 에 살 수 있는 권리입니다.

  • 오늘 주가를 SS 이라고 하며 지금 행사하게 된다면 이익은 S−KS-K 가 나옵니다.
  • K:K : 우리가 사겠다는 정해진 가격, Striking Price.
  • α:=μ+σ2/2,E[exp⁡(Xi)]=exp⁡(μ+σ2/2)\alpha := \mu + \sigma^2 /2, \quad \mathbb{E}[\exp(X_i)] = \exp\left( \mu + \sigma^2 / 2 \right)

그러면 이때 저희는 두 가지 행동을 취할 수 있습니다.

  1. 지금 행사하기 : 확실한 이익을 바로 확보하지만 더 오를 기회를 포기하게 됨.
  1. 기다리기 : 더 오르는 것을 기대하면서 추가 이익을 챙김.

이때 2가지 케이스를 고려해볼 수가 있습니다.

  1. Bull Market (상승세) - α≥0\alpha \ge 0

    이런 케이스에서는 어차피 오르는 추세이기 때문에 마지막 순간까지 기다렸다가 만약에 이익이 있다, 즉 ST>KS_T > K 이면 팔고 아니면 다음 번을 기다립니다.

  1. Decreasing (하락세) - α<0\alpha < 0

    사실 1번보다는 더 중요한 관점이며, 어느 때에 팔아야지 손실을 최소화할 수 있을지에 대한 질문으로 바뀌게 됩니다.

    다시 말하자면 지금 파는게 나중에 파는 것보다 이익일까? 에 대한 질문을 해야합니다. 이것을 Monte-Carlo Simulation 을 통해서 구하는게 가능합니다.

    • m:m : 만기까지 남은 일수
    • Pm=SN−m:P_m = S_{N-m} : 만기일 부터 mm 일 전 종가

    그러면 Option 을 진행하는 기준은 둘을 만족하면 입니다.

    1. Pm>KP_m > K : 우리가 정해준 어떠한 기준점.
    1. Pm>K+PmeiαΦ(σi+bi)−KΦ(bi),∀i=1,…,m( for m≥1)P_m>K+P_m e^{i \alpha} \Phi\left(\sigma \sqrt{i}+b_i\right)-K \Phi\left(b_i\right), \quad \forall i=1, \ldots, m(\text { for } m \geq 1) : 미래 시점들까지 고려해보았을 때 더 이득일 때.

    이때 다음이 만족이 됩니다.

    E(max⁡{0,Pm−i−K}∣Pm)=PmeiαΦ(σi+bi)−KΦ(bi)≥0\mathbb E\left(\max \left\{0, P_{m-i}-K\right\} \mid P_m\right)=P_m e^{i \alpha} \Phi\left(\sigma \sqrt{i}+b_i\right)-K \Phi\left(b_i\right) \geq 0

    그러면 저희는 행사된 날의 주가를 다음과 같이 SPSP 으로 정의할 수가 있습니다.

    SP={Sn=PN−n, if the option is exercised at day n∈{1,…,N}K, otherwise. S P= \begin{cases}S_n=P_{N-n}, & \text { if the option is exercised at day } n \in\{1, \ldots, N\} \\ K, & \text { otherwise. }\end{cases}

    기댓값 이익은 그러면 E[SP]−K\mathbb{E}[SP] - K

    이것은 다음과 같은 시뮬레이션으로 추정하는 것이 가능합니다.

Simulation:1. Set PN=S0 and m=N−1.2. Generate X∼N(μ,σ2) and set Pm=Pm+1 eX.3. If the option is exercised, then stop the algorithm and set SP=Pm.4. Else if m≥1, decrease m by 1 and go to Step 2.5. Else, stop the algorithm and set SP=K.\begin{aligned}&\textbf{Simulation:}\\&1.\ \text{Set } P_N = S_0 \text{ and } m = N - 1.\\&2.\ \text{Generate } X \sim \mathsf{N}(\mu, \sigma^2) \text{ and set } P_m = P_{m+1}\,e^X.\\&3.\ \text{If the option is exercised, then stop the algorithm and set } SP = P_m.\\&4.\ \text{Else if } m \ge 1,\ \text{decrease } m \text{ by } 1 \text{ and go to Step 2.}\\&5.\ \text{Else, stop the algorithm and set } SP = K.\end{aligned}