Phase-Type Models in
Life Insurance
Dr Patrick J. Laub @ PARTY, Sibiu
Motivating theory
Stochastic Models (2019), 34(4), 1-12.
Can read on https://arxiv.org/pdf/1803.00273.pdf
Guaranteed Minimum Death Benefit
Equity-linked life insurance
High Water Death Benefit
Equity-linked life insurance
Model for mortality and equity
The customer lives for years,
Equity is an exponential jump diffusion,
Exponential PH-Jump Diffusion
Get some helpful matrices
Use fixed-point approximation
We're starting to some library to do this more generally
Pricing these contracts
Take home messages
- If you really care about equity-linked life insurance, check out our paper
- What are phase-type distributions?
- Why are they cool?
- Strategy: if some maths works when using an exponential distribution, try a phase-type distribution
- I have a package to fit them in Julia
- If you've never tried it, check out Julia language.
What are phase-type distributions?
Markov chain State space
Phase-type definition
Markov chain State space
- Initial distribution
- Sub-transition matrix
- Exit rates
Phase-type properties
Matrix exponential
Density and tail
Moments
Laplace transform
Class of phase-types is dense
S. Asmussen (2003), Applied Probability and Queues, 2nd Edition, Springer
Phase-type generalises...
- Exponential distribution
- Sums of exponentials (Erlang distribution)
- Mixtures of exponentials (hyperexponential distribution)
More cool properties
Closure under addition, minimum, maximum
... and under conditioning
Two ways to view the phases
As meaningless mathematical artefacts
Choose number of phases to balance accuracy and over-fitting
As states which reflect some part of reality
Choose number of phases to match reality
X.S. Lin & X. Liu (2007) Markov aging process and phase-type law of mortality.
N. Amer. Act J. 11, pp. 92-109
M. Govorun, G. Latouche, & S. Loisel (2015). Phase-type aging modeling for health dependent costs. Insurance: Mathematics and Economics, 62, pp. 173-183.
If it works for exponential distribution, try phase-type
Assume:
- is exponentially distributed
- where is a Brownian motion
Then and are independent and exponentially distributed with rates
Wiener-Hopf Factorisation
-
is an exponential random variable
- is a Lévy process
Doesn't work for non-random time
How to fit them?
Traditionally, using EM algorithm
Bladt, M., Gonzalez, A. and Lauritzen, S. L. (2003), ‘The estimation of Phase-type related functionals using Markov chain Monte Carlo methods’, Scandinavian Actuarial Journal
Representation is not unique
Also, not easy to tell if any parameters produce a valid distribution
Lots of parameters to fit
- General
- Coxian distribution
Problem: to model mortality via phase-type
Bowers et al (1997), Actuarial Mathematics, 2nd Edition
First attempts with EMpht
Why's this so terrible?
"E" step has a bazillion matrix exponential calculations
DE solver going negative
Rewrite in Julia
void rungekutta(int p, double *avector, double *gvector, double *bvector,
double **cmatrix, double dt, double h, double **T, double *t,
double **ka, double **kg, double **kb, double ***kc)
{
int i, j, k, m;
double eps, h2, sum;
i = dt/h;
h2 = dt/(i+1);
init_matrix(ka, 4, p);
init_matrix(kb, 4, p);
init_3dimmatrix(kc, 4, p, p);
if (kg != NULL)
init_matrix(kg, 4, p);
...
for (i=0; i < p; i++) {
avector[i] += (ka[0][i]+2*ka[1][i]+2*ka[2][i]+ka[3][i])/6;
bvector[i] += (kb[0][i]+2*kb[1][i]+2*kb[2][i]+kb[3][i])/6;
for (j=0; j < p; j++)
cmatrix[i][j] +=(kc[0][i][j]+2*kc[1][i][j]+2*kc[2][i][j]+kc[3][i][j])/6;
}
}
}
This function: 116 lines of C, built-in to Julia
Whole program: 1700 lines of C, 300 lines of Julia
# Run the ODE solver.
u0 = zeros(p*p)
pf = ParameterizedFunction(ode_observations!, fit)
prob = ODEProblem(pf, u0, (0.0, maximum(s.obs)))
sol = solve(prob, OwrenZen5())
https://github.com/Pat-Laub/EMpht.jl
# Run the ODE solver.
u0 = zeros(p*p)
pf = ParameterizedFunction(ode_observations!, fit)
prob = ODEProblem(pf, u0, (0.0, maximum(s.obs)))
sol = solve(prob, OwrenZen5())
...
u = sol(s.obs[k])
C = reshape(u, p, p)
if minimum(C) < 0
(C,err) = hquadrature(p*p, (x,v) -> c_integrand(x, v, fit, s.obs[k]),
0, s.obs[k], reltol=1e-1, maxevals=500)
C = reshape(C, p, p)
end
Swap to quadrature in Julia
Swap to quadrature in Julia
Better starting value
Canonical form 1
Uniformization magic
Et voilà
Contract over a limited horizon
Can use Erlangization so
and phase-type closure under minimums
Payout occurs at death or after fixed duration T, whichever first
Thanks for listening!
Phase-type distributions
Markov chain State space
PARTY Talk
By plaub
PARTY Talk
- 1,382