knitr::opts_chunk$set(echo = TRUE, collapse = TRUE, comment = "#>")
For notation details, see [@bowers1997actuarial].
Using the well-known relation ${}{s+u}p_y={}_up{y+s} \times {}sp_y$, we compute ${}_tp{x}$ as for all $x,t\in\mathbb R_+$ $$ {}tp{x} = \frac{{}{t+\epsilon_x}p{\lfloor x\rfloor} }{{}{\epsilon_x}p{\lfloor x\rfloor}} = \frac{{}{\lfloor u\rfloor}p{\lfloor x\rfloor} \times {}{\epsilon_u}p{\lfloor x\rfloor+\lfloor u\rfloor} }{{}{\epsilon_x}p{\lfloor x\rfloor}} $$ with $\epsilon_x=x - \lfloor x\rfloor$, $u=t+\epsilon_x$ and $\epsilon_u=u-\lfloor u\rfloor$.
Then we estimate ${}np{m}$ as for all $n,m\in\mathbb N$ $$ {}np{m} = \frac{l_{n+m}}{l_m}. $$
We interpolate fractional age probabilities by three classical assumptions for all $y \in [0,1), m\in\mathbb N$ $$ {}{y}p{m} = \left{ \begin{array}{ll} 1 - y (1-p_{m}) & \text{if uniform distribution} \ (p_{m})^y & \text{if constant force} \ \frac{p_{m}}{1-(1-y)(1-p_{m})} & \text{if hyperbolic distribution} \ \end{array} \right. $$
library(lifecontingencies) data("soa08Act") pXt <- Vectorize(lifecontingencies:::pxtold, "x") pxT <- Vectorize(lifecontingencies:::pxtold, "t") pxtvect <- pxt z <- 1:6/3 #non integer time cbind(t=z, pxtvect(soa08Act, x=100, t=z, fractional = "lin"), pxT(object=soa08Act, x=100, t=z, fractional = "lin")) cbind(t=z, pxtvect(soa08Act, x=100, t=z, fractional = "hyp"), pxT(object=soa08Act, x=100, t=z, fractional = "hyp")) cbind(t=z, pxtvect(soa08Act, x=100, t=z, fractional = "exp"), pxT(object=soa08Act, x=100, t=z, fractional = "exp"))
x <- 50+0:6/6 #non-integer age cbind(x=x, pxtvect(soa08Act, x=x, t=1, fractional = "lin"), pXt(object=soa08Act, x=x, t=1, fractional = "lin")) cbind(x=x, pxtvect(soa08Act, x=x, t=1, fractional = "hyp"), pXt(object=soa08Act, x=x, t=1, fractional = "hyp")) cbind(x=x, pxtvect(soa08Act, x=x, t=1, fractional = "exp"), pXt(object=soa08Act, x=x, t=1, fractional = "exp"))
x <- 135:145 #high-age cbind(x=x, pxtvect(soa08Act, x=x, t=1), pXt(object=soa08Act, x=x, t=1))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.