Está en la página 1de 8

###Ejercicio 5

## a) Genere un código para generar dicho modelo con los siguientes


supuestos: la
variable aleatoria de pérdida se distribuye Weibull (α =15
y θ = 1/5). El tiempo entre cada siniestro se distribuye
Exponencial ( λ = 15) y una S.A. de $1,000,000.
SNt_PPC<-function(lambda=15,tiempo=1,SA=1000000){
t <-rexp (1, lambda) # t representa el tiempo del primer siniestro
x <-SA* rweibull (1 ,1/5,1/5) # x representa el monto del primer
siniestro
Ti <-c(0,t) # El vector T ira acumulando los tiempos en que van
ocurriendo siniestros
X <-c(0,x) # X ira acumulando los montos de los siniestros
N <-0 # N nos dira cuantos siniestros ocurren hasta el tiempo1
while (t <tiempo) { # Mientras no se haya sobrepasado el tiempo
del proceso
N <-N+1 # Aumentamos el numero de siniestros
t <-t+ rexp (1, lambda) # Vemos el tiempo en el que ocurre el
siguiente siniestro
x <- 1000000 * rweibull (1 ,1/5,1/5) # Calculamos su monto
Ti <-c(Ti,t) # Aumentamos un evento temporal
X <-c(X, tail (X ,1)+x) # Agregamos el monto de la reclamacion
}
return(N)#Pedimos que la función nos regrese el número de
siniestros
}
n<-1000
medias<-c()#Vector auxiliar en el que guardaremos las medias
for (i in 1:n) {
m<-SNt_PPC(15,1,1000000)
medias[i]= m #En cada simulación guardamos su media
}
medias
mean(medias)

##b) Calcule el número esperado de siniestros Nt con 10, 100 y


10,000 simulaciones.

SNt_PPC<-function(lambda=15,tiempo=1,SA=1000000){
t <-rexp (1, lambda) # t representa el tiempo del primer
siniestro
x <-SA* rweibull (1 ,1/5,1/5) # x representa el monto del primer
siniestro
Ti <-c(0,t) # El vector T ira acumulando los tiempos en que van
ocurriendo siniestros
X <-c(0,x) # X ira acumulando los montos de los siniestros
N <-0 # N nos dira cuantos siniestros ocurren hasta el tiempo 1
while (t <tiempo) { # Mientras no se haya sobrepasado el tiempo
del proceso
N <-N+1 # Aumentamos el numero de siniestros
t <-t+ rexp (1, lambda) # Vemos el tiempo en el que ocurre el
siguiente siniestro
x <- 100000 * rweibull (1 ,1/5,1/5) # Calculamos su monto
Ti <-c(Ti,t) # Aumentamos un evento temporal
X <-c(X, tail (X ,1)+x) # Agregamos el monto de la reclamacion
}
S_nt<-tail(X,1)
return(S_nt)#Pedimos que la función nos regrese el acumulado de
los siniestros
}
n<-10
medias<-c()#Vector auxiliar en el que guardaremos las medias
for (i in 1:n) {
m<-SNt_PPC(lambda = 15,tiempo = 1, SA = 1000000)
medias[i]= m #En cada simulación guardamos su media
medias
mean(medias)
}
mean(medias)
n<-100
medias<-c()#Vector auxiliar en el que guardaremos las medias
for (i in 1:n) {
m<-SNt_PPC(lambda = 15,tiempo = 1, SA = 1000000)
medias[i]= m #En cada simulación guardamos su media
medias
mean(medias)
}
mean(medias)
n<-10000
medias<-c()#Vector auxiliar en el que guardaremos las medias
for (i in 1:n) {
m<-SNt_PPC(lambda = 15,tiempo = 1, SA = 1000000)
medias[i]= m #En cada simulación guardamos su media
medias
mean(medias)
}
mean(medias)
#########Ejercicio 6
###H0:Los datos provienen de una distribución Poisson vs Ha:Los
datos no provienen de una distribución Poisson.

###Ejecutamos el comando para importar el archivo xlsx

Datos<- "C:\\LA\\RUTA\\DE\\TU\\ARCHIVO.xlsx"
###Declaramos a n=4208 (número de pólizas)
n<-4208

###Estimamos lambda para poderla usar en la fdp y calcular la


probabilidad teórica
lambda<-sum(Datos$Clase*Datos$Obs*(1/n))

###Creamos un vector que tenga la longitud igual al número de


filas que tiene la columnda "Clase"
pi<-vector("double",length(Datos$Clase))

###Hacemos un bucle que se repita desde 1 hasta 20 usando la


columna "Clase" como parámetro

###Guardamos los resultados del cálculo de probabilidades usando


la fdp de una poisson en el vector pi antes creada
for(i in seq_along(Datos$Clase)) {
pi[[i]]<-dpois(Datos$Clase[[i]],lambda,log=F)
}
###Calculamos ei=n*pi
ei<-n*pi

###Calculamos la estadística T que nos ayudará a decidir si


rechazamos o no la hipótesis nula
error<-(Datos$Obs-ei)^2
T<-sum(error/ei)
####Calculamos el percentil .995 con k-2=16 grados de
libertad(esto porque las últimas 2 clases al tener un ei<1 se
suman a la clase 18)
W<-qchisq(.995,16)
T
W
if(T<W) {
"No se rechaza H0 con un nivel de significancia del .05%"
} else {
"Se rechaza H0 con un nivel de significancia del .05%"

}
###H0:Los datos provienen de una distribución Bin Neg vs Ha:Los
datos no provienen de una distribución Bin Neg.

###Declaramos a n=4208 (número de pólizas)


n<-4208

###Declaramos a m como el tamaño de muestra de la binomial


negativa
m<-100

###Estimamos el parámetro pgorro para poderla usar en la fdp y


calcular la probabilidad teórica
pgorro<-sum(Datos$Clase*Datos$Obs*(1/(m*n)))

###Creamos un vector que tenga la longitud igual al número de


filas que tiene la columnda "Clase"
pi<-vector("double",length(Datos$Clase))

###Hacemos un bucle que se repita desde 1 hasta 20 usando la


columna "Clase" como parámetro
###Guardamos los resultados del cálculo de probabilidades usando
la fdp de una poisson en el vector pi antes creada
for(i in seq_along(Datos$Clase)) {
pi[[i]]<-dbinom(Datos$Clase[[i]],m,pgorro)

}
###Calculamos ei=n*pi
ei<-n*pi
###Calculamos la estadística T que nos ayudará a decidir si
rechazamos o no la hipótesis nula
error<-(Datos$Obs-ei)^2
T<-sum(error/ei)

####Calculamos el percentil .995 con k-2=16 grados de


libertad(esto porque las últimas 2 clases al tener un ei<1 se
suman a la clase 18)
W<-qchisq(.995,16)
T
W

if(T<W) {
"No se rechaza H0 con un nivel de significancia del .05%"
} else {
"Se rechaza H0 con un nivel de significancia del .05%"
}
###Por otro lado si usamos las frecuencias dadas como pi
###Calculamos ei pero esta vez usando la Frecuencia dada como
probabilidad pi. Quitamos las dos últimas clases ya que al no
tener frecuencia, su probabilidad es 0.
ei<-n*Datos$Frecuencia[-c(19,20)]

###Calculamos la estadística T que nos ayudará a decidir si


rechazar o no la hipótesis nula
error<-(Datos$Obs[-c(19,20)]-ei)^2
T<-sum(error/ei)

####Calculamos el percentil .995 con k-2=16 grados de libertad


W<-qchisq(.995,16)
T
W

if(T<W) {
"No se rechaza H0 con un nivel de significancia del .05%"
} else {
"Se rechaza H0 con un nivel de significancia del .05%"

###Por lo tanto se ajusta a ambas fdp si tomamos la frecuencia


como probabilidad.

También podría gustarte