1. El modelo individual
El modelo individual se expresa de la forma siguiente:
n
X
S= Cj Dj , (1)
j=1
donde Cj representa el monto del reclamo hecho por la póliza j y Dj toma el valor de uno cuando la póliza j
reclama y cero en otro caso. Se supondrá P (Dj = 1) = qj . Todas las variables se consideran independientes
entre ellas
Condiciones de De Pril
Supóngase el caso especial de que Cj solo tome los valores 1, 2, 3, . . . , I y las probabilidades qj los valores
q1 , q2 , . . . qJ para grupos de ni,j pólizas que cumplen tener suma asegurada constante igual a i y probabilidad
de reclamación igual a qj . Entonces en este caso, C D = Yi,j,k representará el posible reclamo de una póliza
en el grupo de ni,j pólizas y tomará solo los valores cero e i. Así, la ecuación (1) quedará representada como:
I X ni,j
J X
X
S= Yi,j,k , (2)
i=1 j=1 k=1
donde Yi,j,k es el reclamo (cero ó i) de la póliza k-ésima del grupo de ni,j pólizas que tienen las respectivas
cantidades comunes. A la variable aleatoria S se le conocerá como monto agregado de reclamaciones.
Para poder calcular una aproximación a la función de distribución de S se podría usar el Teorema del Límite
Central (TLC), en cuyo caso es necesario conocer el valor esperado y la varianza de S, a continuación se hace
el cálculo.
I X ni,j
J X
X
E(S) = E Yi,j,k
i=1 j=1 k=1
I X ni,j
J X
X
= E(Yi,j,k )
i=1 j=1 k=1
I X ni,j
J X
X
= i qj
i=1 j=1 k=1
I
X J
X
= i ni,j qj .
i=1 j=1
1
Por lo tanto:
I
X J
X
E(S) = i ni,j qj . (3)
i=1 j=1
A continuación se muestra la implementación en ‘R’ de la fórmula de la esperanza de S:
# Suponiendo que se conoce la matriz de número de asegurados nij
# y el vector de probabilidades de reclamación qj:
ES <- function(nij,qj){
I <- length(nij[,1])
J <- length(qj)
new <- 0
for(i in 1:I){
for(j in 1:J){
new <- new + i*nij[i,j]*qj[j]
}
}
as.numeric(new)
}
## [1] 100
qj <- c(0.1,0.02,0.05,0.003)
# El monto máximo de reclamos es de:
aux <- 0
for(j in 1:J){aux <- aux + nij[,j]}
sum((1:I)*aux)
## [1] 360
# Y el valor esperado es de:
ES(nij,qj)
## [1] 15.091
2
Montos de q1 = 0.1 q2 = 0.02 q3 = 0.05 q4 = 0.003
los reclamos
1 3 8 4 1
2 0 2 5 7
3 1 3 8 6
4 3 4 6 9
5 1 2 3 0
6 9 7 5 3
Table 1: Valores de una cartera de pólizas con características comunes, tales como: suma asegurada y
probabilidad de reclamación.
I X ni,j
J X
X
V ar(S) = V ar Yi,j,k
i=1 j=1 k=1
I X ni,j
J X
X
= V ar(Yi,j,k )
i=1 j=1 k=1
I X ni,j
J X
X
= V ar(i Dj )
i=1 j=1 k=1
I X ni,j
J X
X
= i2 qj (1 − qj )
i=1 j=1 k=1
I
X J
X
= i2 ni,j qj (1 − qj ).
i=1 j=1
Por lo tanto:
I
X J
X
V ar(S) = i2 ni,j qj (1 − qj ). (4)
i=1 j=1
Por 2 décimas de punto extra en el primer examen programar una función que calcule la varianza. Por 8
décimas de punto en el primer examen, calcular en R usando las funciones ES y VarS (que usted realizará) la
esperanza y la varianza de los datos de la tabla del ejercicio 4 de la guía para el primer examen, es decir:
Entregar el viernes 22 de febrero durante la clase un documento impreso con el código y el resultado.
VarS <- function(nij,qj){
I <- length(nij[,1])
J <- length(qj)
3
new <- 0
for(i in 1:I){
for(j in 1:J){
new <- new + i^2*nij[i,j]*qj[j]*(1-qj[j])
}
}
as.numeric(new)
}
Fórmula de De Pril
La siguiente fórmula recursiva sirve para calcular de forma exacta la P (S = x) y por tanto será útil para
calcular valores de la función de distribución FS (x) cuando se cumplan las condiciones de De Pril. Sea
gx = P (S = x), entonces:
x∧I bx/ic
1XX
gx = gx−i k h(i, k), x = 1, 2, . . . , (5)
x i=1
k=1
donde:
J k
k−1
X qj
h(i, k) = i(−1) ni j . (6)
j=1
1 − qj
Además:
I Y
Y J
g0 = (1 − qj )ni j . (7)
i=1 j=1
J
Y PI
g0 = (1 − qj ) i=1 ni j . (8)
j=1
Ejemplo:
4
## [1] 0.01859972
b) Técnica intermedia sin usar una matriz para guardar los elementos del producto.
auxg0 <- 1
for(i in 1:I){
for(j in 1:J){
auxg0 <- auxg0*(1-qj[j])^(nij[i,j])
}
}
g0 <- prod(auxg0)
g0
## [1] 0.01859972
c) Técnica avanzada usando vectores.
snij <- numeric(J)
for(j in 1:J){snij[j] <- sum(nij[,j])}
g0 <- prod((1-qj)^snij)
g0
## [1] 0.01859972
d) Construimos una función para el cálculo de g0 .
g0 <- function(nij,qj){
snij <- numeric(J)
for(j in 1:J){snij[j] <- sum(nij[,j])}
prod((1-qj)^snij)
}
## [1] 0.710134
hik(1,2,qj,nij)
## [1] -0.05145837
## Alternativa usando vectores:
hik <- function(i,k,qj,nij){i*(-1)^(k-1)*sum(nij[i,]*(qj/(1-qj))^k)}
# Ejemplos:
hik(1,1,qj,nij)
## [1] 0.710134
5
hik(1,2,qj,nij)
## [1] -0.05145837
Ahora:
#############################################
# Cálculo de g_x en general #
#############################################
# ADVERTENCIA
# Primero deben estar ejecutadas (en el Global Environment)
# las funciones g0 y hik.
gx <- function(x,nij,qj){ # útil solo para x>0.
I <- length(nij[,1]) # Calculo el valor de I a partir de contar
# las entradas del vector nij[,1].
g_0 <- g0(nij,qj) # Se calcula el valor de g_0 ayudándose de la
# función g0 definida previamente, evaluada en
# la matriz nij y en el vector qj.
gaux <- numeric(x+1) # Definimos un vector de x + 1 ceros y lo guardo
# en la etiqueta gaux.
gaux[1] <- g_0 # Se guarda el valor de g_0 en la primera entrada
# del vector gaux.
for(r in 1:x){
new <- 0
for( i in 1:min(r,I)){
for( k in 1:floor(r/i)){
new <- new + gaux[r-i*k+1]*hik(i,k,qj,nij)
}
}
gaux[r+1] <- new/r
}
paste('P(S =',x,')=',round(as.numeric(gaux[x+1]),d=4))
}
## EJEMPLO ##############
g0(nij,qj)
## [1] 0.01859972
gx(1,nij,qj)
6
gx(15,nij,qj)
x
X x
X
FS (x) = P (S ≤ x) = P (S = x) = gx . (9)
i=0 i=0
Además, buscamos un valor t tal que P (S ≤ t) = 0.95. A dicho valor de t, le podemos llamar la reserva
teórica con 95% de confianza de que la aseguradora afrontará las reclamaciones.
#############################################
# Cálculo de G_x = P(S<=x) en general #
#############################################
Gx <- function(x,nij,qj){ # útil solo para x>0.
I <- length(nij[,1]) # Calculo el valor de I a partir de contar
g_0 <- g0(nij,qj) # Se calcula el valor de g_0 ayudándose de la
gaux <- numeric(x+1) # Definimos un vector de x + 1 ceros y lo guardo
gaux[1] <- g_0 # Se guarda el valor de g_0 en la primera entrada
for(r in 1:x){
new <- 0
for( i in 1:min(r,I)){
for( k in 1:floor(r/i)){
new <- new + gaux[r-i*k+1]*hik(i,k,qj,nij)
}
}
gaux[r+1] <- new/r
}
#paste('P(S <=',x,')=',as.numeric(sum(gaux)))
#G(0), G(1), G(2), ..., G(x):
#as.numeric(cumsum(gaux))
#Solo G(x):
as.numeric(sum(gaux))
}
## EJEMPLO ##############
# Gx(0) dará un error, en ese caso solo hay que
# calcular g_0 = g0(nij,qj)
g0(nij,qj)
## [1] 0.01859972
Gx(1,nij,qj)
## [1] 0.03180802
Gx(3,nij,qj)
## [1] 0.0585306
Gx(5,nij,qj)
## [1] 0.105931
Gx(7,nij,qj)
7
## [1] 0.1887463
Gx(10,nij,qj)
## [1] 0.3137382
Gx(13,nij,qj)
## [1] 0.462149
Gx(15,nij,qj)
## [1] 0.5536499
Gx(20,nij,qj)
## [1] 0.758618
Gx(29,nij,qj)
## [1] 0.9474293
Gx(30,nij,qj)
## [1] 0.9569849
Gx(31,nij,qj)
## [1] 0.9649858
Gx(50,nij,qj)
## [1] 0.9997488
Gx(70,nij,qj)
## [1] 0.9999998
Gx(90,nij,qj)
## [1] 1
Gx(92,nij,qj)
## [1] 1
Gx(93,nij,qj)
## [1] 1
8
Saux <- Saux + i*rbinom(1,nij[i,j],qj[j])
}
}
S[m] <- Saux
if(m==N){break}
}
mean(S<=x)
}
# Ejemplos comparando con el valor exacto y con la aproximación normal
mu <- ES(nij,qj)
dest <- sqrt(VarS(nij,qj))
F_S_simul(0,nij,qj)
## [1] 0.0165
g0(nij,qj)
## [1] 0.01859972
pnorm((0-mu)/dest)
## [1] 0.0326775
F_S_simul(3,nij,qj)
## [1] 0.0568
Gx(3,nij,qj)
## [1] 0.0585306
pnorm((3-mu)/dest)
## [1] 0.06990753
F_S_simul(5,nij,qj)
## [1] 0.1039
Gx(5,nij,qj)
## [1] 0.105931
pnorm((5-mu)/dest)
## [1] 0.1089275
F_S_simul(7,nij,qj)
## [1] 0.1863
Gx(7,nij,qj)
## [1] 0.1887463
pnorm((7-mu)/dest)
## [1] 0.1615704
F_S_simul(15,nij,qj)
9
## [1] 0.56
Gx(15,nij,qj)
## [1] 0.5536499
pnorm((15-mu)/dest)
## [1] 0.4955669
F_S_simul(20,nij,qj)
## [1] 0.7538
Gx(20,nij,qj)
## [1] 0.758618
pnorm((20-mu)/dest)
## [1] 0.7255661
F_S_simul(30,nij,qj)
## [1] 0.9578
Gx(30,nij,qj)
## [1] 0.9569849
pnorm((30-mu)/dest)
## [1] 0.9656659
F_S_simul(50,nij,qj)
## [1] 0.9998
Gx(50,nij,qj)
## [1] 0.9997488
pnorm((50-mu)/dest)
## [1] 0.9999899
10