Lo primero que hacemos es cargar nuestra base de datos de los siniestros ocurridos de la aseguradora
Base_Siniestros <- read_excel("~/Karime Tareas/BASE_SINIESTROS_TAREA1.xlsx")
Base_Siniestros$MONTO_OCURRIDO <- round(Base_Siniestros$MONTO_OCURRIDO)
Base_Siniestros$SUMA_ASEGURADA <- round(Base_Siniestros$SUMA_ASEGURADA)
Base_Siniestros
Observamos que nuestros montos de los siniestros se encuentran en dos tipos de moneda, las cuales son MXN y USD, sabemos que el tipo de cambio al día de hoy es en promedio 20.60 MXN = 1 USD, por lo cual decidimos convertir los pesos mexicanos a dólares
#library(dplyr)
Base_Siniestros <- Base_Siniestros %>% mutate(MONTO_OCURRIDO = ifelse(MONEDA == "1-MXN",Base_Siniestros$MONTO_OCURRIDO / 20.6, MONTO_OCURRIDO))
Base_Siniestros$MONTO_OCURRIDO <- round(Base_Siniestros$MONTO_OCURRIDO)
Convertimos los pesos mexicanos a dólares para la variable SUMA_ASEGURADA
#library(dplyr)
Base_Siniestros <- Base_Siniestros %>% mutate(SUMA_ASEGURADA= ifelse(MONEDA == "1-MXN",Base_Siniestros$SUMA_ASEGURADA / 20.6, SUMA_ASEGURADA))
Base_Siniestros$SUMA_ASEGURADA <- round(Base_Siniestros$SUMA_ASEGURADA)
Base_Siniestros <- Base_Siniestros %>% mutate(MONEDA= ifelse(MONEDA == "1-MXN","2-USD", MONEDA)) #Esto es para poner la varible Moneda en termino de USD
Primero elegimos un ramo con información suficiente para el cálculo de la reserva SONR, en este caso lo haremos para el ramo de Incendio
Filtramos los datos del RAMO Incendio
Incendio <- filter(Base_Siniestros,RAMO =="Incendio")
Incendio
AÑO_OCURRIDO_2 <- data_frame("AÑO_OCURRIDO_2"=(as.numeric(format(Incendio$FECHA_OCURRIDO,'%Y'))))
## Warning: `data_frame()` was deprecated in tibble 1.1.0.
## Please use `tibble()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
AÑO_CONTABLE <- data_frame("AÑO_CONTABLE"=(as.numeric(format(Incendio$FECHA_CONTABLE,'%Y'))))
DESARROLLO_A <- data_frame(AÑO_CONTABLE-AÑO_OCURRIDO_2) #Tiempo en que tardan en reportarme el siniestro
names (DESARROLLO_A)= "DESARROLLO_A"
AÑO_OCURRIDO <- data_frame("AÑO_OCURRIDO"=(as.numeric(format(Incendio$FECHA_OCURRIDO,'%Y'))))
MES_OCURRIDO <- data_frame("MES_OCURRIDO"=(as.numeric(format(Incendio$FECHA_OCURRIDO,'%m'))))
SEMESTRE <-data_frame(ceiling(MES_OCURRIDO/6)) # Desarrollo semestral
names (SEMESTRE)= "SEMESTRE"
DIF_MESES <-data_frame(interval(Incendio$FECHA_OCURRIDO, Incendio$FECHA_CONTABLE) %/% months(1)) #Diferencia en meses
names (DIF_MESES)= "DIF_MESES"
DESARROLLO_S <-data_frame(ceiling(DIF_MESES/6)) # Desarrollo semestral
names (DESARROLLO_S)= "DESARROLLO"
Incendio <- cbind(Incendio,AÑO_OCURRIDO,AÑO_OCURRIDO_2,MES_OCURRIDO,SEMESTRE,DIF_MESES,DESARROLLO_A,DESARROLLO_S)
Incendio <- Incendio %>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2013" & SEMESTRE==1 ,"2013_1", AÑO_OCURRIDO)) %>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2013" & SEMESTRE==2 ,"2013_2", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2014" & SEMESTRE==1 ,"2014_1", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2014" & SEMESTRE==2 ,"2014_2", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2015" & SEMESTRE==1 ,"2015_1", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2015" & SEMESTRE==2 ,"2015_2", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2016" & SEMESTRE==1 ,"2016_1", AÑO_OCURRIDO)) %>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2016" & SEMESTRE==2 ,"2016_2", AÑO_OCURRIDO)) %>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2017" & SEMESTRE==1 ,"2017_1", AÑO_OCURRIDO)) %>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2017" & SEMESTRE==2 ,"2017_2", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2018" & SEMESTRE==1 ,"2018_1", AÑO_OCURRIDO)) %>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2018" & SEMESTRE==2 ,"2018_2", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2019" & SEMESTRE==1 ,"2019_1", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2019" & SEMESTRE==2 ,"2019_2", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2020" & SEMESTRE==1 ,"2020_1", AÑO_OCURRIDO))%>% mutate(AÑO_OCURRIDO = ifelse(AÑO_OCURRIDO == "2020" & SEMESTRE==2 ,"2020_2", AÑO_OCURRIDO))
La nueva tabla con los datos suficientes para poder ocupar la library(ChainLadder) y construir el triangulo que necesitamos para el cálculo de la reserva
Incendio
Aqui poemos observar el triángulo incremental anual
trianculo_Inc_anual<- as.triangle(Incendio, origin = "AÑO_OCURRIDO_2", dev = "DESARROLLO_A", value = "MONTO_OCURRIDO") #Triangulo incremental anual
trianculo_Inc_anual
## DESARROLLO_A
## AÑO_OCURRIDO_2 0 1 2 3 4 5
## 2013 36371 40413 31148 NA NA NA
## 2014 3620322 NA NA NA NA NA
## 2015 2535970407 335365232 8221733 NA NA 65753
## 2016 373922520 331023309 NA 239561490 3077 NA
## 2017 2229695131 622817564 151168763 3903644685 NA NA
## 2018 31171734139 9887002598 1764748709 NA NA NA
## 2019 2194866393 1260092393 NA NA NA NA
## 2020 3549211241 NA NA NA NA NA
y en esta parte observamos el triángulo incremental semestral
triangulo_Inc_sem <- as.triangle(Incendio, origin = "AÑO_OCURRIDO", dev = "DESARROLLO", value = "MONTO_OCURRIDO")#Triangulo incremental semestral 2020
triangulo_Inc_sem
## DESARROLLO
## AÑO_OCURRIDO 0 1 2 3 4 5
## 2013_1 36371 NA NA NA NA NA
## 2013_2 NA 38997 1416 NA 31148 NA
## 2014_2 3620322 NA NA NA NA NA
## 2015_1 379628383 45927225 NA 235634314 NA NA
## 2015_2 1485929597 655345149 68870971 8221733 NA NA
## 2016_1 79527812 NA NA NA NA NA
## 2016_2 80329274 545088743 NA NA NA 239561490
## 2017_1 105336464 739554605 46136 1925697 1497 140345494
## 2017_2 1491874285 450958451 61299883 1726895 10616438 3373194573
## 2018_1 358672052 16782580503 3887120302 211776295 1191439056 87826028
## 2018_2 9842430192 7651093773 2325063620 441868310 43615315 NA
## 2019_1 813106643 848112338 207575092 346794123 NA NA
## 2019_2 330751292 336443560 572175738 NA NA NA
## 2020_1 1409171550 983607692 NA NA NA NA
## 2020_2 1156431999 NA NA NA NA NA
## DESARROLLO
## AÑO_OCURRIDO 6 7 8 9 10
## 2013_1 NA NA NA NA NA
## 2013_2 NA NA NA NA NA
## 2014_2 NA NA NA NA NA
## 2015_1 NA NA NA NA NA
## 2015_2 NA NA NA 12880 52873
## 2016_1 NA NA NA NA NA
## 2016_2 NA NA 3077 NA NA
## 2017_1 67846856 289611537 NA NA NA
## 2017_2 172987332 NA NA NA NA
## 2018_1 NA NA NA NA NA
## 2018_2 NA NA NA NA NA
## 2019_1 NA NA NA NA NA
## 2019_2 NA NA NA NA NA
## 2020_1 NA NA NA NA NA
## 2020_2 NA NA NA NA NA
Por lo que decidimos calcular las reservas con el triángulo semestral, y mostraremos todos los cálculos realizados en Excel