Usando R Markdown se pueden compartir mejor los resultados de R. Todo lo que se incluya en los recuadros corresponde a lineas de codigo.
Recuerda que el primer paso consiste en cargar el paquete que usaremos:
library(lifecontingencies)
## Package: lifecontingencies
## Authors: Giorgio Alfredo Spedicato [aut, cre]
## (<https://orcid.org/0000-0002-0315-8888>),
## Christophe Dutang [ctb] (<https://orcid.org/0000-0001-6732-1501>),
## Reinhold Kainhofer [ctb] (<https://orcid.org/0000-0002-7895-1311>),
## Kevin J Owens [ctb],
## Ernesto Schirmacher [ctb],
## Gian Paolo Clemente [ctb] (<https://orcid.org/0000-0001-6795-4595>),
## Ivan Williams [ctb]
## Version: 1.3.6
## Date: 2019-03-05 23:50:03 UTC
## BugReport: http://github.com/spedygiorgio/lifecontingencies/issues
Despues debemos indicar el directorio de trabajo, este corresponde a la carpeta en la cual hemos colocado nuestro archivo de datos:
setwd("~/Dropbox/UDLAP/Cursos/2020 Otoño/Actuariales Vida/R")
Ahora cargamos el archivo de datos, que en este caso de llama ILT1 (Illustrative Life Table)
data<-read.csv("ILT1.csv")
Una vez cargado el archivo de datos, debemos indicarle a R que construya una tabla de mortalidad
ltable<-probs2lifetable(data$qx,radix=100000,type="qx","Table1")
SEGUROS
Supongamos que tenemos una persona de 35 años que adquiere un seguro de vida temporal a 15 años por $500,000 pagaderos al final del año de muerte.
¿Cómo lo estimamos?
Para estimar esto en R usamos los comandos que vienen contenidos en el paquete lifecontingencies. El comando básico es:
Axn(tabla, edad, duración, interés)
Axn(ltable,x=35,n=15,i=0.06)
## [1] 0.02998236
Podemos guardar este resultado en una variable. Recordemos, además, que se trata de un seguro con suma asegurada de $500,000, entonces:
A1<-500000*Axn(ltable,x=35,n=15,i=0.06)
A1
## [1] 14991.18
¿Cómo indicamos que un seguro es Dotal Puro? En este caso usamos el comando Exn. Supongamos la misma suma asegurada.
E1<-500000*Exn(ltable,x=35,n=15,i=0.06)
E1
## [1] 198229.2
¿Y un dotal mixto? Combinamos Axn con Exn para obtener AExn:
A2<-500000*AExn(ltable,x=35,n=15,i=0.06)
A2
## [1] 213220.4
Solo para estar seguros que nos sale lo mismo, sumemos el temporal y el dotal puro:
A3<-A1+E1
A3
## [1] 213220.4
Para lo seguros vitalicios, simplemente omitimos el valor de n.
ANUALIDADES
Las Anualidades de vida son similares.Usamoe el comando axn:
Supongamos tenemos un pago de 20,000 anuales mientras una persona de edad 25 esté con vida. Si el pago se hace al inicio de cada año suponiendo una tasa del 6%.
a1<-20000*axn(ltable,x=35,i=0.06,payment="due")
a1
## [1] 307852.5
Si el pago se hace con temporalidad de 10 años:
a2<-20000*axn(ltable,x=35,n=10,i=0.06,payment="due")
a2
## [1] 154543
Así podemos combinar distintos seguros y anualidades:
EJEMPLO. Una persona de 40 años adquiere un beneficio que pagará la suma de $1,000,000 al final del año de la muerte, si ésta ocurre antes de los 65 años de edad. Si la persona vive a esa edad, comenzará a recibir un pago al inicio de cada año por $100,000 mientras permanezca con vida. Después de los 65 años de edad, la persona cuenta con un seguro de vida vitalicio por $250,000 pagaderos al momento de su muerte. Estima el Valor Presente Actuarial de ese beneficio.
La expresión es:
En R, lo calculamos como:
El seguro temporal, antes de los 65 años:
A1<-Axn(ltable,x=40,n=25,i=0.06)
Ahora, los beneficios después de los 65 años (anualidad y seguro)
a<-axn(ltable,x=65,i=0.06,payment="due")
A2<-Axn(ltable,x=65,i=0.06)
Para hacer el seguro pagadero al momento de la muerte, debemos multiplicar por la tasa de interés dividida por la fuerza de interés:
A2c<-(0.06/log(1.06))*A2
Como estos beneficios están a edad 65, debemos traerlos a valor presente con un dotal puro:
E<-Exn(ltable,x=40,n=25,i=0.06)
Ahora sí, podemos estimar el VPA de este beneficio:
VPA=1000000*A1+E*(100000*a+250000*A2c)
VPA
## [1] 286312.3
¿Cómo podemos hacer el primer seguro pagadero al final del trimestre del año de la muerte y la anualidad pagadera mensual?
El paquete lifecontingencies, tiene una opción directa para esto. En los comandos Axn y axn, podemos incluir la indicación del valor de k, nuestra m:
A1_4<-Axn(ltable,x=40,n=25,k=4,i=0.06)
a_12<-axn(ltable,x=65,k=12,i=0.06,payment="due")
VPA=1000000*A1_4+E*(100000*a_12+250000*A2c)
VPA
## [1] 279284.6
Más creativos…
Vamos a crear una función a la que podamos modificar los valores de x para un seguro temporal a 10 años.
seguro <- function(x) return(Axn(ltable,x,n=10,i=0.06))
Ahora solo debemos darle un valor a x y correr nuestra funcion:
x<-20
seguro(x)
## [1] 0.008751348
¿Qué tal si deseamos variar la edad y la duración?
seguro<- function(x,n) return(Axn(ltable,x,n,i=0.06))
Asignamos valore:
x<-30
n<-15
seguro(x,n)
## [1] 0.0215094
¿Y si tenemos personas de varias edad con la misma temporalidad del seguro? Podemos usar un for:
for (x in 20:40)
{
cat(seguro(x,n),"\n")
}
## 0.01267573
## 0.01324291
## 0.01386426
## 0.014545
## 0.0152905
## 0.0161066
## 0.01700117
## 0.01798018
## 0.01905209
## 0.02022531
## 0.0215094
## 0.0229146
## 0.02445179
## 0.02613327
## 0.02797212
## 0.02998236
## 0.03217956
## 0.03458021
## 0.03720242
## 0.04006537
## 0.04319105
Podemos ponernos más creativos en el output:
for (x in 20:40)
{
cat(x,"años =",seguro(x,n),"\n")
}
## 20 años = 0.01267573
## 21 años = 0.01324291
## 22 años = 0.01386426
## 23 años = 0.014545
## 24 años = 0.0152905
## 25 años = 0.0161066
## 26 años = 0.01700117
## 27 años = 0.01798018
## 28 años = 0.01905209
## 29 años = 0.02022531
## 30 años = 0.0215094
## 31 años = 0.0229146
## 32 años = 0.02445179
## 33 años = 0.02613327
## 34 años = 0.02797212
## 35 años = 0.02998236
## 36 años = 0.03217956
## 37 años = 0.03458021
## 38 años = 0.03720242
## 39 años = 0.04006537
## 40 años = 0.04319105
TAREA: 1. Una persona de edad 25, adquiere un seguro por 25 años, pagaderos al final del mes de su muerte. Si la persona muere durante los primeros 10 años de vigencia del seguro, la suma asegurada será de $100,000; si la persona muere durante los siguientes 15 años, la suma asegurada será de $150,000. Si la persona llega con vida a los 65 años, comenzará a recibir una pensión de $10,000 pagaderos al inicio de cada mes. Calcula el valor presente actuarial de este beneficio usando la tabla ilustratuva con i=0.06.
2. Supón que la persona del ejercicio anterior es de edad x, con 20 ≤ x ≤ 60. En consecuecia, la duración del seguro temporal deberá ajustarse. Es decir, puede ser de 25 años si la persona tiene hasta 40 años de edad, pero si la persona tiene más de 40 años, la duración deberá ajustarse de tal manera que este seguro termine a edad 65.
Crea una función que calcule el valor presente actuarial con los mismos supuestos de suma asegurada, momento de pago,mortalidad y tasa de interés.