Matemática Actuarial No Vida
Estoy resumiendo la asignatura en el siguiente documento, la fecha indica el día de la última actualización.
.
Jueves, 17 de noviembre de 2011
.
.
Miercoles, 5 de octubre de 2011
.
Día 2 de práctica en R
Para cada cartera se analiza cuál será la distribución que mejor se ajusta. Tal vez cada cartera acaba teniendo una distribución diferente… pues vale: cada cartera son datos empíricos diferentes.
El objetivo, dada una cartera, es encontrar una función de distribución que pueda predecir los datos observados. Habrá que comprobar que esta distribución realmente predice los datos.
Supuesto 4.
n= 3000 pólizas
a) Suponiendo que el número de siniestros por póliza sigue una distribución de
Poisson, calcular las frecuencias absolutas teóricas dadas por dicha distribución.
b) Suponiendo que el número de siniestros por póliza sigue una distribución Binomial
Negativa, calcular las frecuencias absolutas teóricas dadas por dicha distribución.
c) Suponiendo que el número de siniestros por póliza sigue una distribución Poisson-
Inversa Gaussiana, calcular las frecuencias absolutas teóricas dadas por dicha
distribución.
d) Mediante el contraste de la Chi-cuadrado, indicar qué distribución teórica (Poisson
Binomial Negativa o Poisson-Inversa Gaussiana) se adapta mejor a los datos.
Supuesto 5
La distribución del número de siniestros para una cartera de seguros de automóvil es la
siguiente:
Número de
siniestros
0
1
2
3
4
Número de
pólizas
0 – 565.664
1 – 68.714
2 – 5.177
3 – 365
4 – 24
5 – 6
Cuando hagamos el contraste agruparemos cuando el “número de pólizas” sea inferior a 5… pero más adelante… paso a paso:
A)
> valn<-0:4;valn
[1] 0 1 2 3 4
> valf<-c(2654,316,22,6,2);valf
[1] 2654 316 22 6 2
> medn<-weighted.mean(valn,valf);medn
[1] 0.1286667
> lambda<-medn
> prpois<-dpois(valn,lambda);prpois
[1] 8.792670e-01 1.131324e-01 7.278181e-03 3.121531e-04 1.004093e-05
> prpois<-c(prpois,1-sum(prpois));prpois
[1] 8.792670e-01 1.131324e-01 7.278181e-03 3.121531e-04 1.004093e-05
[6] 2.640309e-07
> fteopois<-prpois*sum(valf);fteopois
[1] 2.637801e+03 3.393971e+02 2.183454e+01 9.364594e-01 3.012278e-02
[6] 7.920928e-04
>
La media será
= (0*2654+1*316+2*22+…) / 3000 = 0.1288
En R se pone “weighted.mean” y se pone (nº siniestros, nº pólizas por cada nº siniestro)
Como suponemos que estamos en una Poisson, la media es la lambda.
Cuando se calcula las probabilidades de una poisson, hay que añadir la probabilidad de 5 o más… y por esto se añade el vector prpois con el 0,000000264 que es la probabilidad asociada según Poisson a 5 o más siniestros.
Sum(valf) es la suma de los valores del vector “pólizas”, que son los 3000
Y se obtiene finalmente
Nº siniestros nº pólizas siniestradas según poisson
0 2637,8
1 339,39
2 21,8
3 0,93
4 0,030122
>4 0,000792
Ahora tocaría hacer el cotraste de chi cuadrado para ver si Poisson cuadra con los datos observados.
B)
para la binomial negativa habrá que calcular los parámetros a y b.
Ya tenemos la media (medn) pero hay que calcular la varianza (suma del valor observado menos la media, al cuadrado, por el peso de cada número observado [es la ponderación], y dividido por las 3000 pólizas). En R:
> varn=sum((valn-medn)^2*valf)/sum(valf); varn
[1] 0.1467782
Y ahora a estimar los parámetros:
> a=medn^2/(varn-medn);a
[1] 0.9140635
> b=(varn-medn)/medn;b
[1] 0.1407634
>
Calculamos la distribución de la binomial negativa… en R se conjura con la orden “dnbinom”, y se le añade los valores “nº siniestros 0,1,2,3,4 , y luego el valor a, y en lugar de poner b directamente; 1/(1+b) :
> dnbinom(valn, a, 1/(1+b))
[1] 0.8865834428 0.0999977189 0.0118089303 0.0014154106 0.0001709009
>
[AYUDA: Si en R ponemos “menuprobab” sale la ayuda, y nos explica que la binomial negativa se conjura escribiendo dnbinom, aunque el número de siniestros ahora es “k”... que puede ser un valor concreto, o bien un rango, como en este ejercicio... no confudirse con la poisson inversa gaussiana, que usa fórmulas recurrentes y por tontería de las matemáticas necesita un vector por narices 0:k]
Se demuestra sin embargo que nos falta ese (5 o más siniestros), porque la suma de probabilidad acumulada hasta el momento es de
> sum(prnegbin)
[1] 0.9999764
>
Habrá que hacer como antes, añadir algo más:
> prnegbin=c(prnegbin,1-sum(prnegbin))
> prnegbin
[1] 8.865834e-01 9.999772e-02 1.180893e-02 1.415411e-03 1.709009e-04
[6] 2.359646e-05
> sum(prnegbin)
[1] 1
>
Finalmente, las probabilidades asociadas…
> fteonegbin=prnegbin*sum(valf)
> fteonegbin
[1] 2.659750e+03 2.999932e+02 3.542679e+01 4.246232e+00 5.127028e-01
[6] 7.078939e-02
Nº siniestros nº pólizas siniestradas según Binomial negativa
0 2659,75
1 329,99
2 35,426
3 4,24
4 0,512
>4 0,0707
C)
La Poisson inversa gaussiana…
> mu=medn
> mu
[1] 0.1286667
> beta=varn/medn-1
> beta
[1] 0.1407634
>
> prpoig=poisig(valn,mu,beta)
[1] 0.8863016992 0.1007357886 0.0112571717 0.0014533807 0.0002116685
>
Pero igual que antes, nos falta algo de probabilidad…
> sum(prpoig)
[1] 0.9999597
>
> prpoig=c(prpoig,1-sum(prpoig))
> prpoig
[1] 8.863017e-01 1.007358e-01 1.125717e-02 1.453381e-03 2.116685e-04
[6] 4.029133e-05
> sum(prpoig)
[1] 1
>
> fteopoig=prpoig*sum(valf)
> fteopoig
[1] 2658.9050977 302.2073657 33.7715150 4.3601421 0.6350054
[6] 0.1208740
>
Nº siniestros nº pólizas siniestradas según Binomial negativa
0 2658,90
1 302,2
2 33,77
3 4,36
4 0,635
>4 0,1208
D)
Contraste de cada distribución; Poisson, BN y Poisson Inv.Gaus, con los datos reales observados para saber cuál se ajusta mejor.
Antes de nada hay que preparar los datos para el contraste, esto es: agrupar cuando haya un grupo <5
Tenemos la función “conchi” que es una bondad de ajuste, donde se pone (freq observadas, freq esperadas, numero de parámetros)
Los números de parámetros es 1 en poisson, la lambda, 2 en BN, el a y b, etc.
Frecuencias observadas y esperadas se deben agrupar de la misma forma.
POISSON:
La agrupación de aquello inferior a 5 se hace:
Para las frecuencias teoricas…
> fteopoiscont=c(fteopois [1:2],sum(fteopois[3:6]))
> fteopoiscont
[1] 2637.80102 339.39706 22.80192
>
Para los valores reales…
> valfpoiscont=c(valf[1:2],sum(valf[3:5]))
> valfpoiscont
[1] 2654 316 30
>
Hay que tener cuidado con no dejarse los elementos de la cola añadidos en las frecuencias teoricas!! Los valores teoricos son vectores de 6 elementos, los valores reales son vectores de 5.
> conchi(valfpoiscont,fteopoiscont,1)
[1] 3.984688
[1] 0.04591561
>
El estadístico de contraste es 3,98 y el resultado obtenido es 0,0459. Vamos a por las siguientes para luego compararlas a ver cuál es la mejor. Podemos seguir usando el vector valfpoiscont porque siempre agruparemos 3:6
Para la binomial negativa:
> fteonegbincont=c(fteonegbin[1:2],sum(fteonegbin[3:6]))
> conchi(valfpoiscont,fteonegbincont,2)
[1] 3.47966
[1] 0
>
Y cero es fatal
Para la poisson inversa gaussiana
> fteopoigcont=c(fteopoig[1:2],sum(fteopoig[3:6]))
> conchi(valfpoiscont,fteopoigcont,2)
[1] 2.669738
[1] 0
>
Cuanto más cerca de 1 más ajustada es la teoria a la realidad.
.
Miercoles, 28 de septiembre de 2011
.
Día 1 de práctica en R
Ejercicios
Supuesto 1
Dado un objeto asegurado (una póliza), la probabilidad de que tenga un siniestro en un
día (24 horas) es de 0,015. Las probabilidades de siniestro en diferentes días son
independientes entre sí y no es posible que ocurra más de un siniestro en un día.
Calcular para el plazo de un mes (30 días):
a) Las probabilidades de que ocurran 0, 1, 2 o 3 siniestros.
b) Las probabilidades de que ocurran 20 o menos siniestros.
c) Número esperado de siniestros en un mes.
B(30, 0.015)
P(N=k) 30 * 0.015k * (1-0.015)n-k
k
en R
a)
> choose(30,3)*0.015^3*(1-0.015)^(30-3)
[1] 0.009111251
>
O también
> k=3
> n=30
> p=0.015
> dbinom(k,n,p)
[1] 0.009111251
>
Para solucionarlo de un tirón:
> k=0:3
> dbinom(k,n,p)
[1] 0.635458093 0.290310804 0.064104162 0.009111251
>
La “d” significa la probabilidad en un punto.
b)
A partir de ahora, “p” significa la probabilidad acumulada.
P(N<= 20) = P(N=0)+P(N=1)+…+P(N=20)
En R,
> pbinom(20,n,p)
[1] 1
>
c)
E[N] = n*p = 30 * 0.015
> 30*0.015
[1] 0.45
>
Y la varianza es
V[N]=n*p*(1-p) y aprox es = n*p cuando n tiende a infinito y p tiende a cero.
De forma que esperanza es igual a varianza… y se demuestra la poisson.
N-P(lambda)
Supuesto 2
Dado un objeto asegurado (una póliza), la probabilidad de que tenga un siniestro en un
día es de 0,00015. Las probabilidades de siniestro en diferentes días son independientes
entre sí y no es posible que ocurra más de un siniestro en un día. Calcular para el plazo
de un año (365 días):
a) Número esperado de siniestros.
b) Probabilidad de que la póliza tenga 0, 1, 2 o 3 siniestros utilizando tanto la
distribución Binomial como la distribución de Poisson.
a)
según la binomial
> E1=n*p
> E1
[1] 0.05475
>
Y la varianza es
> V1=n*p*(1-p)
> V1
[1] 0.05474179
>
Las probabilidades según la binomial
> prbinom=dbinom(k,n,p)
> prbinom
[1] 9.467179e-01 5.184058e-02 1.415460e-03 2.569446e-05
>
Según la poisson
P(N=k)= e^-lambda * lamda^k / k!
Si hiciéramos el cálculo de la probabilidad cuando k=3
> PN3=exp(-E1)*E1^3/factorial(3)
> PN3
[1] 2.588401e-05
>
Resolviendo para cada k
> prpois=dpois(k,E1)
> prpois
[1] 9.467296e-01 5.182567e-02 1.418515e-03 2.588401e-05
>
Supuesto 3
En un determinado año 200 pólizas han tenido 38 accidentes. Suponiendo que el número de siniestros por póliza en un determinado período sigue una distribución de Poisson, y que la cartera es homogénea:
a) Estimar la probabilidad de que un determinado asegurado no tenga ningún accidente en un año.
b) Estimar la probabilidad de que dos asegurados (dos pólizas) no tengan ningún accidente en un año.
c) Estimar el número de pólizas, de entre las 200, que no tendrán ningún siniestro en un año.
a)
hace falta encontrar la lambda y calcular la probabilidad de k=0
media
> n=200
> s=38
> media=s/n
> media
[1] 0.19
>
Y luego
> PN0=dpois(0,media)
> PN0
[1] 0.8269591
>
b)
la suma de dos poisson sigue también una poisson … con lambda igual a la suma de las dos lambdas. Siempre que sean independientes entre sí.
> lambda2=media+media
> PN0lambda2=dpois(0,lambda2)
> PN0lambda2
[1] 0.6838614
c)
> dpois(0,0.19)*200
[1] 165.3918
>