Contexto.

En el mundo de la teoria del riesgo, se utiliza el modelo individual para poder resolver preguntas, como la de arriba. El modelo indiviudal es el siguiente \(S = \sum_{j = 1}^n D_j * C_j\), donde S se le llama el monto total de reclamaciones, mientras que \(D_J\) se distribuye \(Ber(q_j)\) y \(C_j\) es una variable aleatoria que sea positiva.

En este ejercicio la \(C_j\) es una \(poisson (\lambda_j)\) o una \(U(0,M_J)\).

Librerías

Las librerías usadas en este ejercicio son la siguientes:

limpieza de datos.

Primero vamos a observar nuestros datos:

## Rows: 28 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Nombre
## dbl (4): id, q, lambda, constante
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Procedemos a filtrar a los datos con triple NA.

#---- limpieza de datos ----

# primero limpiamos los datos para los que no metieron sus datos

datos = datos %>% mutate(na  = is.na(q)) %>% filter(na != TRUE)

Ya con los datos filtrados, los usamos para la simulación.

Simulación.

Para la simulación debemos de usar la siguiente estrategia:

# ---- simulacion ----

# numero de simulaciones
m = 100000

# inicio de la simulacion
S = 0
for (j in 1:m) {
  suma = 0
  for (i in 1:length(datos$q)) {

    D = rbinom(n = 1, size = 1, datos$q[i])

    C = ifelse(test = is.na(datos$lambda[i]),
               yes = runif(n = 1,
                           min = 0,
                           max = datos$constante[i]),
               no = rpois(n = 1, lambda = datos$lambda[i]))
    suma[i] = D*C
  }

  S[j] = sum(suma)

}

# ---- Histograma ----

ese = data.frame(S)


ese %>% ggplot(aes(x = S)) + geom_histogram( bins = 50,
                                             aes(y = ..density..),
                                             fill = "#E5CFF7",
                                             color = "#713ABE") +
  theme_bw() +
  labs(title = "Histograma de densidad de S",
       subtitle = paste(m,"simulaciones"),
       y = "Densidad")
## Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(density)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

# ---- calculo de la proba ----

n = ese %>% filter(S >= 100000)
n = length(n$S)
total = length(S)

proba1000000 = n/total
proba1000000
## [1] 0.12607

Con 100,000 simulaciones tenemos que: \(P(S \geq 100,000) \approx 0.12\)