Sunteți pe pagina 1din 7

Fórmula de Panjer

David J. Santana
8 de marzo de 2019

Introducción

En el artículo A review of Panjer’s recursion formula and its applications de Dickson (1995), se hace un
análisis de cómo la fórmula de Panjer, establecida en los trabajos de Panjer (“Recursive evaluation of a family
of compound distributions”, 1981 y “Direct calculation of ruin probabilities”, 1986) se ha vuelto trascendental
en varias aplicaciones actuariales. Con la fórmula de Panjer puede calcularse de forma exacta la distribución
de la suma compuesta,

N
X
S= Yi , (1)
i=1

suponiendo que las severidades son variables aleatorias discretas no negativas y que la frecuencia N tiene
distribución binomial, Poisson o binomial negativa. Estas distribuciones pertenecen a la familia (a, b, 0) y sus
probabilidades cumplen con la siguiente ecuación recursiva:
 
b
pk = pk−1 a+ , (2)
k

para cada valor de k = 1, 2, . . . y donde pk := P (N = k). Los valores de a y b según la distribución de N


pueden consultarse en la tabla 1 de la siguiente página.
Cuando las severidades tienen función de distribución continua, se pueden encontrar cotas superiores e
inferiores para la función de distribución de S. Este procedimiento se describe en el artículo de Panjer (1986)
ya citado.
A continuación se presenta la fórmula de recursión de Panjer original y su forma extendida.

Fórmula recursiva de Panjer.

Supóngase el siguien modelo colectivo (suma compuesta):

N
X
S= Yi ,
i=1

donde N es de la familia (a, b, 0) y las variables aleatorias Y1 , Y2 , . . . son variables aleatorias discretas,
independientes e idénticamente distribuidas, independientes de N y con función de probabilidad dada por,

fi = P (Y = i),

para valores de i = 0, 1, 2, . . ., entonces gr := P (S = r) cumple la siguiente fórmula recursiva cuando f0 = 0:

g0 = p0 , (3)
r  
X bi
gr = a+ fi gr−i , (4)
i=1
r

1
Table 1: Valores de a y b según la distribución de N .
Distribución valor de a valor de b
−p
Bin(n, p) 1−p (n + 1) 1−p
p

BinN eg(r, p) 1−p (r − 1)(1 − p)


Poisson(λ) 0 λ

para cada valor de r = 1, 2, . . . Además, si f0 > 0:

g0 = PN (f0 ), (5)
r 
1

X bi
gr = a+ fi gr−i , (6)
1 − a f0 i=1 r

para cada valor de r = 1, 2, . . . Las fórmulas (3) y (4) se obtienen de las fórmulas (5) y (6) que son una
extensión de la fórmula original cuando f0 > 0. Esta extensión se logra haciendo el siguiente análisis:
• Sea r = 0, entonces:
P (S = 0) = PS (0) = PN (PY (0)) = PN (f0 ). (7)

• Sea r = 1, 2, . . ., en el procedimiento original de la demostración de (4) era posible llegar a lo siguiente:


r  
X bi
gr = a+ fi gr−i . (8)
i=0
r
Separando el primer sumando, (9)
r 
b (0)
  
X bi
gr = a+ f0 gr + a+ fi gr−i (10)
k i=1
r
r  
X bi
= a f0 gr + a+ fi gr−i , (11)
i=1
r

despejando gr se llega a la fórmula de Panjer extendida:


r 
1

X bi
gr = a+ fi gr−i , r ≥ 1. (12)
1 − a f0 i=1 r

La fórmula anterior, puede ser usada para encontrar el valor exacto de la función de distribución de S:

x
X
FS (x) = gr , (13)
r=0

donde x = 0, 1, 2, . . . En caso de que x < 0, entonces FS (x) = 0 y en caso de que x > 0 no entero, entonces
FS (x) tiene el mismo valor que FS (bxc), lo anterior debido a la definición de función de distribución.

Uso de la fórmula de Panjer para reclamaciones continuas

Cuando los montos de los reclamos (severidades) Y se modelan con variables aleatorias continuas, entonces
se pueden obtener variable aleatorias discretas auxiliares a partir de la distribución de Y que podrán ser
usadas para acotar los valores de FS (x) superior e inferiormente y finalmente obtener con el punto medio una
aproximación. A continuación se describe el procedimiento:

2
1. Supóngase que el monto de las reclamaciones tiene una función de distribución continua F (x) y cumple
que F (0) = 0.
2. Sea fu (i) = F (i/β) − F ((i − 1)/β) para cada valor de i = 1, 2, . . . y sea fd (i) = fu (i + 1) para cada
valor de i = 0, 1, . . . y donde β es un número real positivo llamado parámetro de discretización. De esta
manera, se han definido las funciones de probabilidad que discretizan a Y .
PK PK
3. Sea D = j=1 Y dj y U = j=1 Y uj donde Y dj y Y uj tienen como funciones de probabilidad a fd y
fu respectivamente.
4. Usando la recursión de Panjer se calcula el valor exacto de las funciones de distribución FD (x) =
Pbxc Pbxc
i=0 fd (i) y FU (x) = i=1 fu (i).
P 
K
5. Debido a que F U (uβ) y F D (uβ) son cotas superiores e inferiores para F S (u) = P Y
j=1 j > u , se
puede aproximar el valor de F S (u) como sigue:

F D (uβ) + F U (uβ)
F S (u) ≈ . (14)
2
Es decir:
F D (uβ) + F U (uβ)
FS (u) ≈ 1 − . (15)
2

Implementación de la fórmula de Panjer en R

#Se comienza estableciendo los valores de a, b y g0=P(S=0).


#
#Estos valores dependen de la distribución de la frecuencia N
#y de las severidades Y.
#
#Por ejemplo, para Y supóngase una distribución uniforme discreta U{6}.
f <- function(x){1/6*(x==1||x==2||x==3||x==4||x==5||x==6)}

#Se usará para calcular a, b y g0 la función abg0, donde


#
#dist = 'bin', 'binN' o 'poi' según la distribución de N.
#
#param = vector de parámetros de la distribución de N.
###########################################################
abg0 <- function(dist,param){
if(dist=='bin'){
p <- param[2]
n <- param[1]
a <- -p/(1-p)
b <- -(n+1)*a
g0 <- (1-p+p*f(0))^n
}
if(dist=='binN'){
p <- param[2]
r <- param[1]
a <- (1-p)
b <- (r-1)*a
g0 <- (p/(1-(1-p)*f(0)))^r
}
if(dist=='poi'){

3
a <- 0
b <- param
g0 <- exp(-param*(1-f(0)))
}
c(a,b,g0)
}
# Ejemplos:
abg0('bin',c(4,0.5))

## [1] -1.0000 5.0000 0.0625


abg0('binN',c(2,0.5))

## [1] 0.50 0.50 0.25


abg0('poi',0.5)

## [1] 0.0000000 0.5000000 0.6065307


#La función de "panjer" cuyo código aparece abajo
#calcula la probabilidad siguiente:
# g_r = P(S=r),
#de forma recursiva.
#
# Debe estar definida previamente la función f(x)
# que corresponde a la función de probabilidad de las
# severidades.
###########################################################
panjer <- function(r,dist,param){
info <- abg0(dist,param)
a <- info[1]; b <- info[2]; g0 <- info[3]
g <- g0
C <- 1/(1-a*f(0))
for(i in 1:r){
aux <- 0
for(j in 1:i){
aux <- aux + C*(a+(i-j+1)*b/i)*f(i-j+1)*g[j]
}
g[i+1] <- aux
}
g[r+1]
}

#Ejemplo 1
###########################################################
#Severidades uniformes discretas con parámetro n = 10
#Frecuencia geométrica con parámetro p=1/4
f <- function(x){(1/10)*(x>=1 && x<=10)}
r <- 20
panjer(r,'binN',c(1,1/4))

## [1] 0.01557006
#Comprobación usando simulación
m <- 10000
i <- 0

4
uno_o_cero <- numeric(m)
set.seed(123)
N <- rgeom(m,1/4)
while(i<m){
i <- i + 1
if(N[i] == 0){
S <- 0
}else{
Y <- sample(1:10,N[i],replace = T)
S <- sum(Y)
}
uno_o_cero[i] <- 1*(S == r)
}
mean(uno_o_cero)

## [1] 0.0159
panjer(r,'binN',c(1,1/4))

## [1] 0.01557006
#Ejemplo 2
###########################################################
#Severidades Poisson con parámetro lambda = 7
#Frecuencia binomial con parámetros n= 10, p=1/3
f <- function(x){dpois(x,7)}
r <- 20
panjer(r,'bin',c(10,1/3))

## [1] 0.03408564
#Comprobación usando simulación
m <- 10000
i <- 0
uno_o_cero <- numeric(m)
set.seed(123)
N <- rbinom(m,10,1/3)
while(i<m){
i <- i + 1
if(N[i] == 0){
S <- 0
}else{
Y <- rpois(N[i],7)
S <- sum(Y)
}
uno_o_cero[i] <- 1*(S == r)
}
mean(uno_o_cero)

## [1] 0.034
panjer(r,'bin',c(10,1/3))

## [1] 0.03408564
#Ejemplo 3
###########################################################

5
#Severidades binomiales con parámetros n= 10, p=1/3
#Frecuencia Poisson con parámetro lambda = 7
f <- function(x){dbinom(x,10,1/3)}
r <- 20
panjer(r,'poi',7)

## [1] 0.04153745
#Comprobación usando simulación
m <- 10000
i <- 0
uno_o_cero <- numeric(m)
set.seed(123)
N <- rpois(m,7)
while(i<m){
i <- i + 1
if(N[i] == 0){
S <- 0
}else{
Y <- rbinom(N[i],10,1/3)
S <- sum(Y)
}
uno_o_cero[i] <- 1*(S == r)
}
mean(uno_o_cero)

## [1] 0.0404
panjer(r,'poi',7)

## [1] 0.04153745
Para calcular FS (x):
Panjer <- function(r,dist,param){
info <- abg0(dist,param)
a <- info[1]; b <- info[2]; g0 <- info[3]
g <- g0
C <- 1/(1-a*f(0))
FS <- 0
for(i in 1:r){
aux <- 0
for(j in 1:i){
aux <- aux + C*(a+(i-j+1)*b/i)*f(i-j+1)*g[j]
}
g[i+1] <- aux
FS <- FS + aux
}
FS
}

#Ejemplo 4
###########################################################
#Severidades binomiales con parámetros n= 10, p=1/3
#Frecuencia Poisson con parámetro lambda = 7
f <- function(x){dbinom(x,10,1/3)}

6
r <- 20
Panjer(r,'poi',7)

## [1] 0.4124582
#Comprobación usando simulación
m <- 10000
i <- 0
uno_o_cero <- numeric(m)
set.seed(123)
N <- rpois(m,7)
while(i<m){
i <- i + 1
if(N[i] == 0){
S <- 0
}else{
Y <- rbinom(N[i],10,1/3)
S <- sum(Y)
}
uno_o_cero[i] <- 1*(S <= r)
}
mean(uno_o_cero)

## [1] 0.4165
Panjer(r,'poi',7)

## [1] 0.4124582
Actividad para ganar un punto extra, para entregar el martes 19 de marzo.
## Ejemplo Weibull
Fe <- function(x){pgamma(sqrt(x),2,1)} # Distribución de Y
fu <- function(i,beta){Fe(i/beta)-Fe((i-1)/beta)}
####fu up discretization probabilities for 1,2,... type=1
fd <- function(i,beta){Fe((i+1)/beta)-Fe(i/beta)}
Fe(3)

## [1] 0.5166423
sum(fu(1:(3*100),100))

## [1] 0.5166423
# Realizar:
# 1 Cálculo de FU FD, donde U y D están en la pág. 3.
# 2 Acotar F_S(x) y después aproximarla para:
# 3 N con distribución BinNeg(2,1/2)
# 4 Y con distribución Gama(2,2)
# Para entrega el martes 19.

S-ar putea să vă placă și