pricing mortality swaps using r

20
Pricing Mortality Swaps Using R R in Insurance 2015 Mick Cooney [email protected] 29 June 2015 Mick Cooney [email protected] Applied AI Ltd Pricing Mortality Swaps Using R

Upload: mick-cooney

Post on 14-Aug-2015

1.018 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Pricing Mortality Swaps Using R

Pricing Mortality Swaps Using RR in Insurance 2015

Mick [email protected]

29 June 2015

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 2: Pricing Mortality Swaps Using R

Before I Begin...

https://xkcd.com/793/

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 3: Pricing Mortality Swaps Using R

What is a Mortality Swap?

Seller provides protection against mortality risk

Portfolio of Life-Contingent Annuities

Converts the portfolio to Guaranteed Annuities

Only guaranteeing mortality-adjusted cashflows

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 4: Pricing Mortality Swaps Using R

Swap Annuity Portfolio

Random portfolio of annuities:

## customerid age MUR amount

## 1: C97326460 39 350 $100,000

## 2: C99971880 30 175 $80,000

## 3: C65134119 34 225 $50,000

## 4: C35313144 33 200 $90,000

## 5: C17550793 45 200 $30,000

## ---

## 196: C37440555 40 200 $50,000

## 197: C60347677 42 200 $60,000

## 198: C93383952 45 200 $70,000

## 199: C08447895 35 150 $60,000

## 200: C64003360 41 325 $90,000

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 5: Pricing Mortality Swaps Using R

Interest Rate Swaps

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 6: Pricing Mortality Swaps Using R

Assumptions

Starting point — some generalisable for flexibility

1 No consideration of credit risk

2 Swap has fixed lifetime

3 All annuities have annual payments received at same time

4 Fixed cost of capital over lifetime

5 All annuitants have undergone underwriting evaluation

6 APV calculations require a specific lifetable

7 All annuities have a lifetime at least as long as the swaplifetime

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 7: Pricing Mortality Swaps Using R

Calculating the MUR multiplier

lifetable.dt <- fread("lifetable.csv");

A <- 100000;

qx <- lifetable.dt[age >= 30][age < 50]$qx;

r <- 0.05;

calculate.MUR.multiple.diff <- function(MUR, mult) {MUR * price.term.assurance(qx, A = A, r = r, P = 0) -

price.term.assurance(mult * qx, A = A, r = r, P = 0);

}

MUR.values <- seq(0, 10, by = 0.25);

### Determine mortality multiplier that best matches the premium multiplier

MUR.mult <- sapply(MUR.values, function(MUR) {optimize(function(mult) abs(calculate.MUR.multiple.diff(MUR, mult)), c(0, 20))$minimum;

});

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 8: Pricing Mortality Swaps Using R

Calculating the MUR multiplier

0.0

2.5

5.0

7.5

10.0

0.0 2.5 5.0 7.5 10.0MUR

Multip

lier

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 9: Pricing Mortality Swaps Using R

MonteCarlo Methods

Calculating the NAV of a fund of correlated assets with a yearlydrawdown:

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 10: Pricing Mortality Swaps Using R

Simulation Approach

Simulation example: 10 simulations of 5 years

1 – annuitant still alive0 – annuitant has deceased

## sim1 sim2 sim3 sim4 sim5 sim6 sim7 sim8 sim9 sim10

## year1 1 1 1 1 1 1 1 1 1 1

## year2 1 1 0 1 1 1 1 1 1 1

## year3 1 1 0 1 1 1 1 1 0 1

## year4 1 1 0 1 0 1 1 1 0 1

## year5 1 1 0 1 0 1 1 1 0 1

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 11: Pricing Mortality Swaps Using R

Running the Simulation

Run the calculation:

mortport.dt <- fread("mortswap_portfolio.csv");

lifetable.dt <- fread("lifetable.csv");

n.sim <- 1000;

mortswap.value.sim <- calculate.mortality.swap.price(mortport.dt,

lifetable = lifetable.dt,

hedge.apv.cashflows = TRUE,

interest.rate = 0.05,

years.in.force = 20,

n.sim = n.sim,

return.all.data = FALSE);

print(dollar_format(largest_with_cents = 1e8)(mortswap.value.sim[1:20]));

## [1] "$748,064.31" "$461,186.76" "$2,274,787.66" "$-1,251,047.55"

## [5] "$1,954,488.45" "$-1,251,047.55" "$-2,237,366.32" "$1,733,535.87"

## [9] "$1,707,822.63" "$-1,299,952.30" "$2,139,507.05" "$-757,888.16"

## [13] "$-309,255.02" "$-717,420.20" "$1,927,893.22" "$1,417,572.90"

## [17] "$1,571,751.87" "$-739,440.89" "$-1,990,786.63" "$475,010.30"

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 12: Pricing Mortality Swaps Using R

Viewing the Output

Simulated cashflows(excludes initial premium):

$−2,000,000

$0

$2,000,000

$4,000,000

$6,000,000

0.00 0.25 0.50 0.75 1.00Percentile

Net C

ashflow

/Loss

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 13: Pricing Mortality Swaps Using R

Viewing the Output

Simulated cashflows(excludes initial premium):

$−2,000,000

$0

$2,000,000

$4,000,000

$6,000,000

0.00 0.25 0.50 0.75 1.00Percentile

Net C

ashflow

/Loss

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 14: Pricing Mortality Swaps Using R

Pricing Tail Risk

How to price the tail risk?

Michael Lewis “In Nature’s Casino” – NYT Aug 2007http://www.nytimes.com/2007/08/26/magazine/

26neworleans-t.html?pagewanted=all

Consensus around 4× expected loss

Need to calculate tail averages

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 15: Pricing Mortality Swaps Using R

Pricing Tail Risk

$0

$1,000,000

$2,000,000

$3,000,000

$4,000,000

$5,000,000

75 80 85 90 95 100Tail Percentile

Mean

Loss

Amou

nt

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 16: Pricing Mortality Swaps Using R

Pricing Tail Risk

Ensemble of 1,000 valuations of 10,000 iterations:90% 95%

99% 99.5%

0e+00

2e−06

4e−06

6e−06

8e−06

0e+00

2e−06

4e−06

6e−06

0e+00

1e−06

2e−06

3e−06

0.0e+00

5.0e−07

1.0e−06

1.5e−06

2.0e−06

$3,500,000$3,600,000

$3,700,000$4,200,000

$4,300,000$4,400,000

$4,500,000

$5,600,000$5,800,000

$6,000,000$6,200,000

$6,000,000$6,250,000

$6,500,000$6,750,000

$7,000,000

Mean Loss Amount

Proba

bility D

ensity

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 17: Pricing Mortality Swaps Using R

Time-in-Force Dependency

Scaling of 95% mean with time-in-force of swap:

$0

$1,000,000

$2,000,000

$3,000,000

5 10 15 20Swap Time−in−Force (years)

95%

Mean

Loss

Value

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 18: Pricing Mortality Swaps Using R

Time-in-Force Dependency (Ensemble)

times.in.force <- 1:20;

n.sim <- 1000;

n.ens <- 10;

calculate.tif <- function(tif) {mortswap.value.sim <- calculate.mortality.swap.price(mortport.dt,

lifetable = lifetable.dt,

hedge.apv.cashflows = TRUE,

interest.rate = 0.05,

years.in.force = tif,

n.sim = n.sim,

return.all.data = FALSE);

iterval <- calculate.quantile.averages(mortswap.value.sim, 0.95);

}

tif.ensemble <- sapply(times.in.force, function(iter.tif) {replicate(n.ens, calculate.tif(iter.tif))

});

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 19: Pricing Mortality Swaps Using R

Time-in-Force Dependency (Ensemble)

$0

$1,000,000

$2,000,000

$3,000,000

5 10 15 20Year

Mean

Loss

Averag

e

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R

Page 20: Pricing Mortality Swaps Using R

Summary

R package: mcmortswap

https://bitbucket.org/appliedai/mcmortswap

Email: [email protected]

Slides available on bitbucket:https://bitbucket.org/appliedai/r_in_insurance_2015

Mick Cooney [email protected] Applied AI Ltd

Pricing Mortality Swaps Using R