Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
6.8 kB
1
Indexable
Never
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")
```