Levensverwachting per leeftijd plotten
Cynthia wil de levensverwachting visualiseren als functie van de leeftijd. Kun jij Cynthia helpen zo'n grafiek te maken?
Om dit in R efficiënt te doen, schrijf je eerst een functie die de afgeknotte levensverwachting (curtate) berekent voor een gegeven leeftijd en levens- of sterftetafel. Daarna kun je deze functie toepassen op alle leeftijden in de tabel. Met sapply() (docs) wordt de output vereenvoudigd tot de eenvoudigste mogelijke datastructuur.
Het vooraf ingeladen object life_table bevat de periodesterftetafel van 1999 voor vrouwen in België.
Deze oefening maakt deel uit van de cursus
Waardering van levensverzekeringsproducten in R
Oefeninstructies
- Vul de code aan die de functie
curtate_future_lifetime()definieert. - Maak een vector
agesdoor de kolomageuitlife_tablete halen. - Gebruik
sapply()met de argumentenages,curtate_future_lifetimeenlife_tableom de afgeknotte levensverwachting voor alle leeftijden in de tabel te berekenen. - Plot
future_lifetimestegenages.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# Function to compute the curtate expected future lifetime for a given age and life table
curtate_future_lifetime <- function(age, life_table) {
px <- ___
kpx <- ___(px[(___):length(px)])
___(___)
}
# Vector of ages
ages <- ___
# Curtate future lifetimes for all ages
future_lifetimes <- ___(___, ___, ___)
# Future lifetime by age
plot(___, ___, type = 'l', lwd = 2, col = "green", xlab = "Age x", ylab = "Future lifetime", main = "Future lifetime by age")