Anda di halaman 1dari 10

Apuntes de Teoría del Riesgo

David Josafat Santana Cobian


19 de febrero de 2019

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.

Valor esperado y varianza de S:

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)
}

Para ejemplificar se usarán los siguientes datos de la tabla 1:


#Datos
I <- 6; J <- 4
q1 <- c(3,0,1,3,1,9)
q2 <- c(8,2,3,4,2,7)
q3 <- c(4,5,8,6,3,5)
q4 <- c(1,7,6,9,0,3)
nij <- cbind(q1,q2,q3,q4)
# En este ejemplo el número total de pólizas es de:
sum(nij)

## [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:

Suma Número Probabilidad de


asegurada de pólizas reclamación
100 50 0.40
150 50 0.35
200 60 0.69
300 90 0.67

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

Notar que la ecuación (7) se puede reescribir como:

J
Y PI
g0 = (1 − qj ) i=1 ni j . (8)
j=1

Ejemplo:

Tomando los valores de la tabla 1, calcular P (S = x) = gx para x = 0, 1, 2, ...


Cálculo de g0 :
a) Técnica amateur usando una matriz para guardar los elementos del producto.
auxg0 <- matrix(0,I,J)
for(i in 1:I){
for(j in 1:J){
auxg0[i,j] <- (1-qj[j])^(nij[i,j])
}
}
g0 <- prod(auxg0)
g0 # P(S=0)

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)
}

El siguiente par de códigos calculan en general el valor de g1 , g2 , . . . , gx :


#Cálculo de la función h(i,k):
hik <- function(i,k,qj,nij){
J <- length(qj)
aux <- i*(-1)^(k-1)
new <- 0
for( j in 1:J ){
new <- new + nij[i,j]*(qj[j]/(1-qj[j]))^k
}
as.numeric(aux*new)
}
# Ejemplos:
hik(1,1,qj,nij)

## [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)

## [1] "P(S = 1 )= 0.0132"


gx(2,nij,qj)

## [1] "P(S = 2 )= 0.0103"


gx(3,nij,qj)

## [1] "P(S = 3 )= 0.0165"


gx(4,nij,qj)

## [1] "P(S = 4 )= 0.0245"


gx(5,nij,qj)

## [1] "P(S = 5 )= 0.0229"

6
gx(15,nij,qj)

## [1] "P(S = 15 )= 0.0464"


Ahora, nos interesa calcular:

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

Aproximación a FS (x) usando simulación estocástica

F_S_simul <- function(x,nij,qj,N = 10000){


#N <- 10000 #número de simulaciones
S <- numeric(N)
m <- 0
repeat{
m <- m + 1
Saux <- 0
for(i in 1:I){
for(j in 1:J){

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

Anda mungkin juga menyukai