Normal Inverse Gaussian Model
The Normal Inverse Gaussian (NIG) model is a Levy-process specification designed to accommodate asymmetric, semi-heavy-tailed returns. It is built by mixing a normal distribution with an inverse Gaussian clock. Relative to Gaussian returns, it can assign much more probability to large moves; relative to pure power-law models, its exponential tails retain useful moments and transform methods.
NIG is best understood as a distributional and pricing tool rather than a claim that all intraday price formation follows one universal process. A model can fit daily index returns and still misrepresent overnight gaps, earnings jumps, volatility clustering, or the risk-neutral left tail. Define which horizon and which instrument the model is meant to serve.
Parameters and admissible region
One common NIG characteristic function is:
phi_t(u) = exp(i mu u t + delta t [
sqrt(alpha^2 - beta^2) - sqrt(alpha^2 - (beta + i u)^2)
])
The parameters must satisfy alpha > |beta|, with delta > 0. The parameter alpha controls tail decay, beta controls asymmetry, delta sets scale, and mu shifts location. Smaller alpha permits heavier tails, while a negative beta tends to produce a heavier left side.
| Parameter | Constraint | Economic interpretation |
|---|---|---|
alpha | alpha > 0 | tail steepness |
beta | ` | beta |
delta | delta > 0 | activity/scale |
mu | real | location drift |
The model has infinitely many small jumps but finite variation only in particular parameter regimes. Calling it “jump diffusion” is therefore imprecise: NIG has no Brownian component in its standard Levy decomposition, though paths can resemble a noisy diffusion at coarse observation intervals.
The mixture construction
An equivalent representation uses an inverse Gaussian subordinator Y_t:
X_t = mu t + beta Y_t + W_(Y_t)
with the parameters of Y_t chosen to recover the exponent above. This representation helps simulation and explains the name: returns are conditionally normal, but random business time creates skewness and heavy tails. It also exposes a key limitation: independent increments do not create a persistent latent volatility state.
def admissible_nig(alpha, beta, delta):
return alpha > abs(beta) and delta > 0
def nig_exponent(u, alpha, beta, delta, mu=0.0):
root0 = np.sqrt(alpha**2 - beta**2)
rootu = np.sqrt(alpha**2 - (beta + 1j*u)**2)
return 1j * mu * u + delta * (root0 - rootu)
Complex square roots require consistent branches. Unit tests should check phi(0)=1, conjugate symmetry phi(-u)=conj(phi(u)), and continuity as parameters change. A numerically plausible price can conceal the wrong branch.
Turning NIG into an option model
For St = S0 exp((r-q+omega)t + X_t), select omega so that the discounted asset price is a martingale:
omega = -psi(-i)
where psi is the per-unit-time log characteristic function. This exists only when the exponential moment at one is finite; in the convention above it requires alpha > |beta + 1| for the relevant direction. The pricing domain is stricter than the ordinary distribution domain.
| Implementation test | Expected result |
|---|---|
phi(0) | exactly one within tolerance |
| martingale forward | S0 exp((r-q)T) |
| call monotonicity | declines with strike |
| convexity | nonnegative discrete second difference |
| put-call parity | holds at every fitted strike |
Fourier inversion is attractive because NIG’s transform is explicit. Use a damping parameter that lies inside the moment strip, then validate its price slice with a second numerical method. Do not extrapolate a fitted smile without checking static arbitrage; transform smoothness does not guarantee no-arbitrage interpolation.
Estimation under P and Q
Maximum likelihood can estimate NIG from returns, but high-frequency data bring bid-ask bounce, discreteness, and irregular clock time. At lower frequency, volatility clustering violates the independent-increment assumption and can be absorbed spuriously as fatter NIG tails. Fit likelihoods across sampling intervals and compare predictive quantiles, not just in-sample log likelihood.
For options, calibrate under Q to liquid prices after cleaning crossed, stale, and zero-bid quotes. Historical alpha and beta do not equal their risk-neutral counterparts; the difference is an implicit risk premium. This is the same measure separation emphasized in Levy processes in finance and risk-neutral pricing and martingales.
Where NIG fits
NIG can be a compact benchmark for a single maturity’s wings or a return-risk engine with analytic quantiles. It is less natural when the problem requires a forward variance curve, a dynamic smile, or a path-dependent hedge. Compare jump behavior to jump-diffusion models and persistent variance to Heston stochastic volatility. A better calibration is useful only if it improves the risk measure or hedge the desk actually uses.
Key takeaways
- NIG uses an inverse-Gaussian time change to generate asymmetric semi-heavy tails.
- The constraints
alpha > |beta|and the stricter pricing moment domain must be enforced. - A risk-neutral drift correction is required even when the return process is well specified.
- Transform methods are fast, but branch, moment-strip, and arbitrage tests are essential.
- Independent increments fit return shape, not volatility clustering or all path-dependent risk.
