Untitled
unknown
plain_text
3 years ago
6.8 kB
3
Indexable
Para dar inicio al desarrollo de este punto, se realiza el procedimiento requerido para obtener el triángulo asignado como se muestra en las siguientes líneas: ```{r echo = T} set.seed(1007221901) #cc Sebastian Gaviria col <- sample(c(153,195,230,275),4,replace=FALSE) triang <- data.frame(Ano = 1993:1998, IBNR = c(6023,6372,6505,6512,7523,8250), "0" = c(192,205,230,288,398,530), "1" = c(251,280,345,410,564,NA), "2" = c(col,NA,NA), "3" = c(145,150,212,NA,NA,NA), "4" = c(98,102,NA,NA,NA,NA), "5" = c(0,NA,NA,NA,NA,NA)) ``` Una vez esto, el triangulo a trabajar queda completamente determinado como se muestra en la siguiente tabla: ```{r} kable(triang, caption ="Triangulo obtenido", align = 'c', booktabs = T, linesep = "", col.names = c("Año", "IBNR", "0", "1", "2", "3", "4", "5")) %>% kable_styling(latex_options = "HOLD_position") ``` Con esto último, acumulando por las filas correspondientes a cada año, se obtiene el triángulo acumulado ilustrado acontinuación: ```{r} triangulo_acumulado <- as.data.frame(t(apply(triang[,-c(1,2)],1,cumsum))) triangulo_acumulado2 <- cbind(triang[1:2],triangulo_acumulado) kable(triangulo_acumulado2, caption ="Triangulo acumulado", align = 'c', booktabs = T, linesep = "", col.names = c("Año", "IBNR", "0", "1", "2", "3", "4", "5")) %>% kable_styling(latex_options = "HOLD_position") ``` Con esto último, siguiendo el método de la escalera se pueden obtener los pagos acumulados respecto al año de origen como se muestran en la siguiente tabla; ```{r} m.1_0 <- sum(triangulo_acumulado[,2],na.rm = T)/sum(triangulo_acumulado[-c(6),1]) m.2_1 <- sum(triangulo_acumulado[,3],na.rm = T)/sum(triangulo_acumulado[-c(5:6),2]) m.3_2 <- sum(triangulo_acumulado[,4],na.rm = T)/sum(triangulo_acumulado[-c(4:6),3]) m.4_3 <- sum(triangulo_acumulado[,5],na.rm = T)/sum(triangulo_acumulado[-c(3:6),4]) m.5_4 <- sum(triangulo_acumulado[,6],na.rm = T)/sum(triangulo_acumulado[-c(2:6),5]) x <- c(m.1_0,m.2_1,m.3_2,m.4_3,m.5_4) xx <- c(triangulo_acumulado[6,1],triangulo_acumulado[5,2], triangulo_acumulado[4,3],triangulo_acumulado[3,4], triangulo_acumulado[2,5]) pago_cum <- data.frame("1998"=xx[1],"1997"=xx[2],"1996"=xx[3],"1995"=xx[4],"1994"=xx[5]) kable(pago_cum, caption ="Pagos acumulados respecto al año de origen", align = 'c', booktabs = T, linesep = "", col.names = c("1998","1997","1996","1995","1994")) %>% kable_styling(latex_options = "HOLD_position") ``` Teniendo en cuenta este resultado y haciendo uso del método de la escalera, se puede obtener el triángulo acumulado de predicción. El mismo se presenta así: ```{r} y_1994 <- xx[5]*c(prod(x[c(5)])) y_1995 <- xx[4]*c(prod(x[c(4)]),prod(x[c(4,5)])) y_1996 <- xx[3]*c(prod(x[c(3)]),prod(x[c(3,4)]),prod(x[c(3:5)])) y_1997 <- xx[2]*c(prod(x[c(2)]),prod(x[c(2:3)]),prod(x[c(2:4)]), prod(x[c(2:5)])) y_1998 <- xx[1]*c(prod(x[c(1)]),prod(x[c(1:2)]),prod(x[c(1:3)]), prod(x[c(1:4)]),prod(x[c(1:5)])) triangulo_acumulado_pred <- triangulo_acumulado triangulo_acumulado_pred[2,6] <- y_1994 triangulo_acumulado_pred[3,c(5:6)] <- y_1995 triangulo_acumulado_pred[4,c(4:6)] <- y_1996 triangulo_acumulado_pred[5,c(3:6)] <- y_1997 triangulo_acumulado_pred[6,c(2:6)] <- y_1998 kable(triangulo_acumulado_pred, caption ="Triangulo acumulado de predicción", align = 'c', booktabs = T, linesep = "", digits = 2, col.names = c("0","1","2","3","4","5")) %>% kable_styling(latex_options = "HOLD_position") ``` Finalmente, con esto, es posible construír el triángulo esperado: ```{r} test_triangulo <- triangulo_acumulado_pred test_triangulo[,2:6] <- triangulo_acumulado_pred[,2:6]-triangulo_acumulado_pred[,1:5] y_1994 <- test_triangulo[2,6] y_1995 <- sum(test_triangulo[3,c(5:6)]) y_1996 <- sum(test_triangulo[4,c(4:6)]) y_1997 <- sum(test_triangulo[5,c(3:6)]) y_1998 <- sum(test_triangulo[6,c(2:6)]) kable(test_triangulo, caption ="Triangulo esperado", align = 'c', booktabs = T, linesep = "", digits = 2, col.names = c("0","1","2","3","4","5")) %>% kable_styling(latex_options = "HOLD_position") ``` Por otro lado, es de interés conocer qué tanto difieren estos resultados de lo obtenido realmente en la práctica. Para esa causa se muestra el error relativo de las estimaciones realizadas anteriormente: ```{r} y_1994_pred <- triang[2,3]*c(prod(x[c(1)]),prod(x[c(1:2)]),prod(x[c(1:3)]), prod(x[c(1:4)]),prod(x[c(1:5)])) y_1995_pred <- triang[3,3]*c(prod(x[c(1)]),prod(x[c(1:2)]),prod(x[c(1:3)]), prod(x[c(1:4)]),prod(x[c(1:5)])) y_1996_pred <- triang[4,3]*c(prod(x[c(1)]),prod(x[c(1:2)]),prod(x[c(1:3)]), prod(x[c(1:4)]),prod(x[c(1:5)])) y_1997_pred <- triang[5,3]*c(prod(x[c(1)]),prod(x[c(1:2)]),prod(x[c(1:3)]), prod(x[c(1:4)]),prod(x[c(1:5)])) y_1998_pred <- triang[6,3]*c(prod(x[c(1)]),prod(x[c(1:2)]),prod(x[c(1:3)]), prod(x[c(1:4)]),prod(x[c(1:5)])) triangulo_acumulado_modelo <- triangulo_acumulado triangulo_acumulado_modelo[2,2:6] <- y_1994_pred triangulo_acumulado_modelo[3,2:6] <- y_1995_pred triangulo_acumulado_modelo[4,2:6] <- y_1996_pred triangulo_acumulado_modelo[5,2:6] <- y_1997_pred triangulo_acumulado_modelo[6,2:6] <- y_1998_pred test_triangulo <- triangulo_acumulado_modelo test_triangulo[,2:6]<-triangulo_acumulado_modelo[,2:6]-triangulo_acumulado_modelo[,1:5] err_triang <- round(abs(test_triangulo-triang[,3:8])/triang[,3:8]*100,1) kable(cbind(triang[1:2],err_triang), caption ="Error relativo porcentual", align = 'c', booktabs = T, linesep = "", col.names = c("Año","IBNR","0","1","2","3","4","5")) %>% kable_styling(latex_options = "HOLD_position") ``` De acá se nota que el método de la escalera en general un buen método de estimación dados los bajos porcentajes de error relativo presente en la mayoría de los años. Sin embargo, es alarmante obtener errores relativos del 16%, 22& y 76%. En este punto se debe tratar con cuidado dichas estimaciones. Finalemente las provisiones para reclamos pendientes hacia finales del año 1998 deberán ser las aiguientes: ```{r} Y <- round(c(0,y_1994,y_1995,y_1996,y_1997,y_1998),0) resultado <- data.frame("ano" = c(1993:1998,"Total"),"Proviciones final 1998" = c(Y,sum(Y))) kable(resultado, caption ="Tabla de provisiones", align = 'c', booktabs = T, linesep = "") %>% kable_styling(latex_options = "HOLD_position") ```
Editor is loading...