레비 과정과 점프 확산 모형의 설계와 캘리브레이션

레비 과정과 점프 확산 모형의 삼중항, 추정·시뮬레이션, 옵션 가격결정과 리스크 관리 적용 방식을 정리한다.

2026-08-14 · 최초 발행 2024-04-29

정규성 가정 밖의 변동을 모델에 담는 방법

금융·보험·에너지의 리스크 환경에서는 정상분포 가정만으로 비정규성, 두꺼운 꼬리, 갑작스러운 도약을 충분히 설명하기 어렵다. Lévy Processes와 Jump Diffusion Models는 이런 비연속적 변동을 확률과정 안에 포함시키기 위한 모델군이다.

Lévy 과정은 독립증분성과 정상증분성을 가지며, 경로는 오른쪽 연속·좌극한(càdlàg) 조건을 만족한다. Lévy-Khintchine 표상에서는 드리프트 (b), 확산 (\sigma), Lévy 측도 (\nu)로 이루어진 삼중항이 과정을 완전히 기술한다.

특성함수는 다음 형태로 나타낸다.

[ \phi_X(t) = \exp{ i\langle t,b\rangle - 0.5\langle t,\Sigma t\rangle + \int(e^{i\langle t,x\rangle}-1-i\langle t,x\rangle1_{{|x|<1}})\nu(dx) } ]

이 식은 Brownian 성분, 순도약 성분, 소도약 보정항이 결합한 구조로 해석할 수 있다.

점프 확산 모형은 연속 확산(Brownian motion)에 도약을 결합한다. 도약은 보통 compound Poisson 또는 무한활동 도약으로 표현하며, Merton Jump Diffusion(MJD), Kou Double Exponential, Bates(Stochastic Vol + Jumps)가 대표적인 예다.

확산 성분이 0이고 변동 전체가 도약으로 구성되는 순도약 Lévy 과정도 있다. Variance-Gamma(VG), CGMY/Tempered Stable, Normal Inverse Gaussian(NIG)이 여기에 속한다.

삼중항과 표본경로가 설명하는 위험

(b), (\sigma^2), (\nu(\cdot))는 프로세스를 규정하는 요소다. 이 가운데 (\nu)는 단위시간 내 도약 크기와 빈도의 강도를 나타낸다. 도약 구조는 포아송형 유한활동과 α-안정 등을 포함하는 무한활동으로 나뉜다. 무한활동 모형에서는 미세한 소도약의 집적이 비정규적인 두꺼운 꼬리를 만든다.

이런 과정의 표본경로는 비연속적이며, 비가우시안 꼬리와 양(+)의 첨도를 다룰 수 있다. 따라서 왜도와 첨도 추정치를 반영하기에 적합하다. 상방과 하방 도약을 비대칭으로 구성하면 옵션 스마일과 스큐, 크래시 리스크의 재현도도 높일 수 있다.

추정부터 검증까지 이어지는 흐름

파라미터 적합에는 최대우도추정(MLE), 적률적합(GMM), 특성함수 기반 적합(CF-matching, ECF), EM 알고리즘을 사용할 수 있다. 고빈도 데이터에 미세구조 잡음이 있으면 로버스트 필터링 후 모수를 적합하는 두 단계 추정을 적용한다.

미달 기준수치 불안정/비식별데이터 결측/이상치입력 데이터- 수익률/옵션체인- 사전가정/제약모델 선택GBM vs MJD vs VG/CGMY추정 방법 결정MLE / GMM / CF(FFT)파라미터 추정- 최적화/EM- 정규화 제약검증- Likelihood Ratio- PIT/Backtest- 잔차 점프검정산출- 옵션가격/그릭스- VaR/ES전처리- 필터링/윈저라이징

유한활동 도약은 포아송 샘플링, 도약 크기 샘플링, 오일러-마루야마 적분 순서로 시뮬레이션한다. 무한활동 도약은 하위과정 시리즈 표현(Series representation)을 쓰거나, 작은 도약 절단법(Truncation)과 보정항을 함께 사용한다.

가격결정에서는 무차익 조건과 등가위험중립측(Q)을 통해 일관성을 확보해야 하며, 보정 드리프트(Compensator)를 적용한다. 헤징은 동적 델타뿐 아니라 kappa, lambda 등의 도약 감응도를 포함해 설계한다.

모델별 적합도와 운영상의 차이

모델 성능(적합/속도) 확장성(다차원/확률변형) 일관성(무차익/보정) 안정성(수치/추정) 운영 편의(구현/해석)
GBM 적합 낮음, 매우 빠름 우수, 표준 확장 용이 용이, 폐형 많음 매우 안정 매우 높음
MJD/Kou 적합 높음, 빠름 중간, 파라미터 증가 보정 필요, 표준화 용이 안정적(포아송) 높음
VG/CGMY/NIG 적합 매우 높음, 중간 우수(유연성 높음) 보정 복잡, CF 기반 수치주의(무한활동) 중간

옵션 가격결정에서는 스마일과 스큐를 맞추기 위해 MJD/Kou/VG 보정 모델을 사용하고, FFT(Carr–Madan), COS, PIDE(FD)로 가격을 계산한다. VaR/ES에서는 꼬리 위험의 과소추정을 줄이고, EVT와 결합해 극단손실 추정을 안정화할 수 있다.

크레딧·오퍼레이셔널 리스크에서는 jump-to-default나 복합포아송-중증도 모형으로 손실 빈도와 규모를 함께 추정하며, 스트레스 시나리오와도 결합된다. 에너지·원자재·전력 분야에서는 도약과 평균회귀를 결합해 스파이크를 포착하고, 스케줄링·커버링 비용 예측 오차를 줄인다. 고빈도 실행과 시장 미시구조 분석에서는 점프 검정(BNS, Lee–Mykland)을 이벤트 반응 분석에 활용해 슬리피지·임팩트 모형을 개선한다.

도입 시 확인할 제약과 기준

시장 현상에서 스마일, 스큐, 점프 빈도를 먼저 파악한 뒤 MJD 같은 유한활동 모델과 VG/CGMY 같은 무한활동 모델을 비교한다. 이때 복잡도, 데이터 양, 운영 SLA를 함께 고려한다.

가격결정용 Q-측 파라미터와 리스크용 P-측 파라미터는 분리 관리해야 한다. 보정 드리프트와 무차익 제약도 별도로 점검한다. 수치 계산에서는 초기값을 다중 시드로 두고, 파라미터 경계를 제한하며, 작은 도약 절단 (\epsilon)과 보정항의 일관성을 확인한다. FFT/COS의 격자와 감쇠 파라미터 역시 조정 대상이다.

GBM과 비교해 옵션 단면 RMSE가 2040% 감소하고, PnL backtest의 ES 커버리지 오차가 30% 내외 개선된 사례가 보고됐다(데이터·시장 국면 의존, 내부 검증 필요). 크래시 리스크를 반영하면 스트레스 시나리오 손실을 1025% 상향 산정해 보수적 자본 적정성을 확보할 수 있다. 점프 감응도를 고려한 경우 극단 시점 델타 헤지 오차 분산은 10~30% 축소 가능하다.

FFT/COS를 도입하면 전표면 캘리브레이션 시간을 수초~수십초 수준으로 달성할 수 있으며, 병렬화로 T+0 재산출도 가능하다.

Merton Jump Diffusion 시뮬레이션과 MLE

전제조건: Python 3.10+, numpy 1.26+, scipy 1.11+. 가정: 로그수익률 rt ~ N((μ − 0.5σ^2 − λκ)Δt, σ^2Δt) + ∑{i=1}^{N_t} Y_i, N_t ~ Poisson(λΔt), Y_i ~ N(m_J, s_J^2), κ = E[e^{Y}] − 1.

import numpy as np
from scipy.stats import norm, poisson
from scipy.optimize import minimize

rng = np.random.default_rng(42)

def simulate_mjd(T=1.0, dt=1/252, S0=100, mu=0.05, sigma=0.2, lam=1.0, mJ=-0.1, sJ=0.2):
    n = int(T/dt)
    t = np.arange(1, n+1) * dt
    kappa = np.exp(mJ + 0.5*sJ**2) - 1.0
    drift = (mu - 0.5*sigma**2 - lam*kappa) * dt
    Z = rng.standard_normal(n)
    dW = sigma * np.sqrt(dt) * Z
    jumps = np.zeros(n)
    for i in range(n):
        Nj = rng.poisson(lam * dt)
        if Nj > 0:
            jumps[i] = rng.normal(mJ, sJ, size=Nj).sum()
    log_ret = drift + dW + jumps
    S = S0 * np.exp(np.cumsum(log_ret))
    return t, S, log_ret

def neg_loglike(params, r, dt):
    mu, sigma, lam, mJ, sJ = params
    if sigma <= 1e-6 or lam < 0 or sJ <= 1e-6:
        return np.inf
    # Poisson mixture of normals; approximate via truncation on small k
    maxk = 5
    kappa = np.exp(mJ + 0.5*sJ**2) - 1.0
    mu_c = (mu - 0.5*sigma**2 - lam*kappa) * dt
    var_c = sigma**2 * dt
    ll = 0.0
    for x in r:
        weights = poisson.pmf(np.arange(0, maxk+1), lam*dt)
        # tail mass to k>maxk absorbed at maxk
        weights[-1] += 1.0 - weights.sum()
        comps = norm.pdf(x, loc=mu_c + np.arange(0, maxk+1)*mJ, scale=np.sqrt(var_c + np.arange(0, maxk+1)*sJ**2))
        px = np.dot(weights, comps) + 1e-300
        ll += np.log(px)
    return -ll

# simulate
t, S, r = simulate_mjd()

# MLE
x0 = np.array([0.05, 0.2, 1.0, -0.1, 0.2])
bounds = [(-1, 1), (1e-3, 3.0), (0, 10), (-2, 2), (1e-3, 3.0)]
res = minimize(neg_loglike, x0, args=(r, 1/252), bounds=bounds, method='L-BFGS-B')
print("MLE params(mu, sigma, lam, mJ, sJ) =", res.x)

(\sigma)와 ((\lambda, s_J)) 사이에는 부분 식별성 문제가 있다. 초기값에 민감하므로 다중 시도와 프로파일 우도 점검이 필요하다. 유한활동 모델에서는 k-혼합 근사의 정확도와 속도 사이에 트레이드오프가 있다.

운영 단계에서는 난수 시드와 재현성을 관리하고, 단위와 시간스케일을 명확히 해야 한다. Q/P 파라미터는 분리 저장하며, FFT/COS 파라미터는 사전에 검증한다. PIT, Kupiec/Christoffersen 기반 백테스트 자동화도 운영 범위에 포함한다.

VG/CGMY는 적합도가 우수한 대신 추정과 수치 계산의 복잡도가 커진다. FFT 격자를 늘리면 정밀도와 함께 시간 비용도 증가한다. 작은 도약 절단 임계값은 안정성과 유연성 사이에서 편향·분산 균형을 요구한다. 유한활동 MJD/Kou로 운영 안정성을 확보한 뒤 필요할 때 순도약 VG/CGMY 등으로 확장하는 접근이 가능하다.

레비 과정점프 확산확률과정옵션 가격결정리스크 관리