Está en la página 1de 2

#Lectura de la base de datos

DSiniestro<-read.table(file.choose(),T)

#cargar paquete
install.packages("lubridate",dependencies = TRUE)
library(lubridate)
install.packages("ChainLadder",dependencies = TRUE)
library(ChainLadder)

#Revisar datos,estructura, resumen


head(DSiniestro)
str(DSiniestro)
summary(DSiniestro)
attach(DSiniestro)

#A�os
Ocurrencia<-year(dmy(Fecha_Ocurrencia))

#diferencia ocurrencia con pago


D1<-as.Date(Fecha_Ocurrencia,format("%d/%m/%Y"))
D2<-as.Date(Fecha_Pago,format("%d/%m/%Y"))
Dif_Ocu_Pago<-round((D2-D1)/360.25,digits = 0)

#siniestros Netos
Por_Ret<-1-Cesion
SIN_NETO<-Monto_Pagado*Por_Ret
BD<-data.frame(cbind(Ocurrencia,Dif_Ocu_Pago,SIN_NETO))

#----------------------------------------------------------------
#TRIANGULOS DE SINIESTROS PAGADOS NETOS
Triangulo_incremental<-
as.triangle(BD,origin="Ocurrencia",dev="Dif_Ocu_Pago","SIN_NETO",na.rm = TRUE)
Triangulo_incremental

Triangulo_acumulado<-incr2cum(Triangulo_incremental,na.rm = TRUE)
Triangulo_acumulado

#------------------------------------------------------------------
#FACTORES INCREMENTALES Y DESARROLLO
link_ratio3<-function(triangle=NA,criterium=NA){
row=nrow(triangle)
col=ncol(triangle)
#Link ratios
individual_links<-matrix(NA,row,col)
for(j in 1:col-1){
individual_links[,j]=triangle[,j+1]/triangle[,j]
}
#Development factors
development_factors=numeric(col-1)
if(criterium==1){
for(j in 1:col-1){
development_factors[j]=suppressWarnings(max(individual_links[,j],na.rm=T))

}
}
else if(criterium==2){
for(j in 1:col-1){
development_factors[j]=suppressWarnings(min(individual_links[,j],na.rm=T))
}
}
else if(criterium==3){
for(j in 1:col-1){
development_factors[j]=mean(individual_links[,j],na.rm=T)
}
}
else {
print("Error: Select criterium: 1=Pessimistic , 2=Optimist , 3=Average")
break()
}
return(development_factors)
return(individual_links)
#list(Triangulo_Factores=individual_links,Factor=development_factors)
}
development_factors_Max<-link_ratio3(triangle=Triangulo_acumulado,criterium=1)
development_factors_Min<-link_ratio3(triangle=Triangulo_acumulado,criterium=2)
development_factors_mean<-link_ratio3(triangle=Triangulo_acumulado,criterium=3)

#factores acumulados
development_factors2=rev(replace(development_factors_Min,development_factors_Min=="
-Inf",1))
proyection_factors=rev(cumprod(development_factors2))
#-------------------------------------------------------------------------
#SINIESTROS ULTIMATE E IBNR

#Ultimates
row=nrow(Triangulo_acumulado)
col=ncol(Triangulo_acumulado)
prediction_ultimate=numeric(col)
prediction_ultimate[1]=Triangulo_acumulado[1,col]
k=1
for(i in 2:row){
prediction_ultimate[i]=Triangulo_acumulado[i,col-k]*proyection_factors[col-k]
k=k+1
}
prediction_ultimate

#Reservas
reserva=numeric(row)
k=0
for(i in 1:row){
reserva[i]=prediction_ultimate[i]-Triangulo_acumulado[i,col-k]
k=k+1
}
total_reserva=sum(reserva)
total_reserva
#---------------------

También podría gustarte