Contextualización de seguros

El estudio analiza el desempeño financiero de distintos tipos de seguros, evaluando la relación entre las primas pagadas, los siniestros reportados y los reembolsos otorgados. A través de estos datos, se busca determinar la rentabilidad de cada categoría de seguro y su nivel de riesgo, identificando cuáles generan mayores ingresos y cuáles representan un mayor costo para la aseguradora.

Análisis Exploratorio

install.packages("dplyr")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
datos <- read.csv("Datos_seguros.csv")
head(datos)
##   Tipo_Seguro Primas_Pagadas Siniestros_Reportados Reembolsos
## 1       Salud       26285.19                    94    9351.83
## 2   Automóvil        3228.32                     5   14960.45
## 3       Hogar       16870.56                    81    6045.65
## 4       Salud       31142.16                     6   16051.20
## 5        Vida       44969.35                    47   12936.62
## 6        Vida       19205.26                    40   16673.54
library(dplyr)

datos_agrupados <- datos %>%
  group_by(Tipo_Seguro) %>%
  summarise(
    Primas_Totales = sum(Primas_Pagadas, na.rm = TRUE),
    Siniestros_Totales = sum(Siniestros_Reportados, na.rm = TRUE),
    Reembolsos_Totales = sum(Reembolsos, na.rm = TRUE)
  )

print(datos_agrupados)
## # A tibble: 4 × 4
##   Tipo_Seguro Primas_Totales Siniestros_Totales Reembolsos_Totales
##   <chr>                <dbl>              <int>              <dbl>
## 1 Automóvil          486368.                993            225919.
## 2 Hogar              719924.               1340            316333 
## 3 Salud              749124.               1641            358285.
## 4 Vida               611068.                933            234817.

La base de datos consiste en un conjunto de registros relacionados con diferentes tipos de seguros, incluyendo Salud, Automóvil, Hogar y Vida. Para cada uno de ellos, se cuenta con información sobre las primas pagadas por los asegurados, la cantidad de siniestros reportados y los reembolsos asociados.

Las primas pagadas reflejan el monto que los asegurados han desembolsado para mantener su cobertura, mientras que los siniestros reportados indican la cantidad de incidentes registrados dentro de la póliza. Por otro lado, los reembolsos representan el valor compensado por la aseguradora en respuesta a los siniestros reportados.

dim(datos)
## [1] 100   4

###resumen estadístico###

summary(datos)
##  Tipo_Seguro        Primas_Pagadas  Siniestros_Reportados   Reembolsos     
##  Length:100         Min.   : 1436   Min.   :  0.00        Min.   :  578.1  
##  Class :character   1st Qu.:12539   1st Qu.: 26.50        1st Qu.: 7722.7  
##  Mode  :character   Median :26774   Median : 46.50        Median :11581.2  
##                     Mean   :25665   Mean   : 49.07        Mean   :11353.5  
##                     3rd Qu.:39004   3rd Qu.: 72.00        3rd Qu.:15603.1  
##                     Max.   :49855   Max.   :100.00        Max.   :19701.7

De acuerdo con el análisis de la información presentada, las primas pagadas muestran una variabilidad considerable, oscilando entre un valor mínimo de 1,436 y un valor máximo de 49,855. La media de las primas pagadas es de 26,774, lo que indica que, en promedio, los asegurados han destinado esta cantidad a sus pólizas. Además, el valor de la mediana es similar a la media, lo que sugiere una distribución relativamente equilibrada de los datos.

library(ggplot2)
ggplot(datos, aes(x = Tipo_Seguro, y = Primas_Pagadas, fill = Tipo_Seguro)) +
  geom_boxplot() +
  labs(title = "Distribución de Primas pagadas por tipo de seguro",
       x = "Primas pagadas",
       y = "Tipo de Seguro") +
  theme_minimal()

La gráfica muestra la distribución de las primas pagadas según el tipo de seguro. El seguro de Automóvil tiene una alta variabilidad, con primas que van desde valores bajos hasta cerca de 50,000. Salud presentan una distribución diferente a las demás categorías. Vida tiene valores altos en general, con una mediana superior a la de Automóvil y Salud. En general, hay una notable diferencia en la variabilidad de las primas entre los distintos tipos de seguro.

datos$Siniestros_Categoria <- cut(datos$Siniestros_Reportados, 
                                  breaks = c(0, 20, 50, 100, Inf),
                                  labels = c("Bajo", "Medio", "Alto", "Muy Alto"),
                                  right = TRUE)  



ggplot(datos, aes(x = Tipo_Seguro, fill = Siniestros_Categoria)) +
  geom_bar(position = "dodge") +
  labs(title = "Número de Siniestros Reportados por Tipo de Seguro",
       x = "Tipo de Seguro",
       y = "Frecuencia",
       fill = "Siniestros Reportados") +
  theme_minimal() 

Cada barra indica la frecuencia con la que se han reportado siniestros en cada tipo de seguro. La escala de colores ayuda a visualizar la gravedad de los reportes. Se observa que algunos tipos de seguros tienen una mayor cantidad de siniestros en la categoría “Alto”, lo que indica una tendencia en los reportes más frecuentes.

datos_A <- filter(datos, Tipo_Seguro == "Hogar")
datos_A
##    Tipo_Seguro Primas_Pagadas Siniestros_Reportados Reembolsos
## 1        Hogar       16870.56                    81    6045.65
## 2        Hogar       47934.82                    41   11149.65
## 3        Hogar       22171.70                    27   14463.12
## 4        Hogar       12993.91                    25   10197.97
## 5        Hogar       35449.61                    83   15569.47
## 6        Hogar       33052.84                     3   10346.75
## 7        Hogar       12644.58                    51   15282.78
## 8        Hogar       11348.59                    65   14826.76
## 9        Hogar       18479.50                    35   13230.82
## 10       Hogar       42804.80                    84    1086.51
## 11       Hogar       20147.65                     0   19653.03
## 12       Hogar        1465.82                    46    8250.41
## 13       Hogar       18031.11                     4    5889.34
## 14       Hogar       39646.08                    45   18560.52
## 15       Hogar       12224.20                    46    6220.96
## 16       Hogar       32615.87                    55    2546.43
## 17       Hogar       45165.32                    39    7815.69
## 18       Hogar       13261.13                    45   14821.34
## 19       Hogar       10683.92                    94    9573.48
## 20       Hogar       30264.84                    75    1054.24
## 21       Hogar       31117.10                     0    6190.54
## 22       Hogar       38789.50                    50    9699.82
## 23       Hogar       28843.72                     2     578.15
## 24       Hogar       32069.62                    30   16522.55
## 25       Hogar        9845.05                    25   18941.71
## 26       Hogar       28261.95                    65   18941.11
## 27       Hogar        9779.43                    30    2335.33
## 28       Hogar       18477.93                    73    9553.50
## 29       Hogar       27794.89                    52   13500.39
## 30       Hogar       17688.14                    69   13484.98
##    Siniestros_Categoria
## 1                  Alto
## 2                 Medio
## 3                 Medio
## 4                 Medio
## 5                  Alto
## 6                  Bajo
## 7                  Alto
## 8                  Alto
## 9                 Medio
## 10                 Alto
## 11                 <NA>
## 12                Medio
## 13                 Bajo
## 14                Medio
## 15                Medio
## 16                 Alto
## 17                Medio
## 18                Medio
## 19                 Alto
## 20                 Alto
## 21                 <NA>
## 22                Medio
## 23                 Bajo
## 24                Medio
## 25                Medio
## 26                 Alto
## 27                Medio
## 28                 Alto
## 29                 Alto
## 30                 Alto

Filtramos los datos del seguro de Hogar porque representa el segmento con mayor cantidad de observaciones en la muestra. Esto nos permite realizar un análisis más detallado y preciso sobre su comportamiento, sin la variabilidad que introducirían otros tipos de seguros. Al centrarnos solo en este grupo, podemos identificar tendencias específicas en las primas pagadas y los reembolsos, lo que facilita la toma de decisiones y la evaluación del impacto financiero dentro de esta categoría.

media_primas_A <- mean(datos_A$Primas_Pagadas)  
sd_primas_A <- sd(datos_A$Primas_Pagadas)  
n_A <- nrow(datos_A)  
error_media_A <- qt(0.975, df = n_A - 1) * sd_primas_A / sqrt(n_A)  

IC_media_A <- c(media_primas_A - error_media_A, media_primas_A + error_media_A)
cat("Media de Primas Pagadas:", media_primas_A, "\n")
## Media de Primas Pagadas: 23997.47
cat("Intervalo de confianza (95%):", IC_media_A[1], "a", IC_media_A[2], "\n")
## Intervalo de confianza (95%): 19453.95 a 28541
cat("Intervalo de confianza para la media poblacional de las primas pagadas en el seguro de automoviles:", IC_media_A, "\n")
## Intervalo de confianza para la media poblacional de las primas pagadas en el seguro de automoviles: 19453.95 28541

La empresa desea estimar el número promedio de siniestros reportados por cliente en los diferentes tipos de seguros. Se selecciona una muestra aleatoria de 30 clientes y se evalúa cuántos siniestros han reportado.

Con base en estos datos, se requiere: Calcular un intervalo de confianza al 95% para la media poblacional de siniestros reportados.

Analizar si este intervalo indica una tendencia significativa en la cantidad de siniestros reportados por cliente.

Datos: Muestra: n=30 clientes

Media muestral de siniestros: Calculada con la muestra

Nivel de confianza: 95%

media_siniestros_A <- mean(datos_A$Siniestros_Reportados)  
sd_siniestros_A <- sd(datos_A$Siniestros_Reportados)  
n_A <- nrow(datos_A)  

error_media_A <- qt(0.975, df = n_A - 1) * sd_siniestros_A / sqrt(n_A)  
IC_media_A <- c(media_siniestros_A - error_media_A, media_siniestros_A + error_media_A)  

cat("Número promedio de siniestros por cliente:", media_siniestros_A, "\n")  
## Número promedio de siniestros por cliente: 44.66667
cat("Intervalo de confianza (95%):", IC_media_A[1], "a", IC_media_A[2], "\n")  
## Intervalo de confianza (95%): 34.61822 a 54.71511

Hemos calculado el número promedio de siniestros reportados por cliente en el seguro de Hogar y su intervalo de confianza al 95%. Esto nos permite estimar, con un margen de error controlado, cuántos siniestros se reportan en promedio por cliente. El intervalo nos da un rango en el que probablemente se encuentra la media real de siniestros en la población, brindando mayor precisión en la toma de decisiones.

cat("Tamaño de la muestra (n):", n_A, "\n")
## Tamaño de la muestra (n): 30
p_siniestros <- mean(datos$Siniestros_Reportados > 0) 
cat("Proporción muestral de clientes con siniestros reportados en la muestra fue de:", round(p_siniestros, 4), "\n")
## Proporción muestral de clientes con siniestros reportados en la muestra fue de: 0.97

Una proporción de 0.97 indica que el 97% de los clientes han reportado siniestros, lo que sugiere una alta incidencia de reclamaciones. Esto puede impactar los costos de la aseguradora y requerir ajustes en tarifas o coberturas.

table(datos$Tipo_Seguro)
## 
## Automóvil     Hogar     Salud      Vida 
##        19        30        30        21

Interpretar el intervalo obtenido y evaluar si hay una diferencia significativa en la cantidad de siniestros reportados entre ambos tipos de seguros. Datos: Muestra en Seguro A: 𝑛𝐴=30 clientes

Muestra en Seguro B: 𝑛B=30 clientes

Media muestral de siniestros en Seguro A: 𝑋ˉ𝐴 Media muestral de siniestros en Seguro B: 𝑋ˉ𝐵

Nivel de confianza: 95%

Este análisis permitirá determinar si la diferencia observada en el número de siniestros reportados entre ambos tipos de seguros es estadísticamente significativa, facilitando la toma de decisiones en la gestión de riesgos y pólizas.

datos_A <- filter(datos, Tipo_Seguro == "Hogar")
datos_B <- filter(datos, Tipo_Seguro == "Salud")

num_siniestros_A <- sum(datos_A$Siniestros_Reportados > 0)
num_siniestros_B <- sum(datos_B$Siniestros_Reportados > 0)

p_A <- num_siniestros_A / nrow(datos_A)
p_B <- num_siniestros_B / nrow(datos_B)

diff_proporciones <- p_A - p_B

error_diff_p <- sqrt((p_A * (1 - p_A) / nrow(datos_A)) + (p_B * (1 - p_B) / nrow(datos_B)))

z_critico <- qnorm(0.975)  

IC_diff_proporciones <- c(diff_proporciones - z_critico * error_diff_p, 
                           diff_proporciones + z_critico * error_diff_p)

cat("Proporción de clientes con siniestros en Seguro de Hogar:", round(p_A, 4), "\n")
## Proporción de clientes con siniestros en Seguro de Hogar: 0.9333
cat("Proporción de clientes con siniestros en Seguro de Salud:", round(p_B, 4), "\n")
## Proporción de clientes con siniestros en Seguro de Salud: 0.9667
cat("Diferencia de proporciones:", round(diff_proporciones, 4), "\n")
## Diferencia de proporciones: -0.0333
cat("Intervalo de confianza (95%):", round(IC_diff_proporciones[1], 4), "a", round(IC_diff_proporciones[2], 4), "\n")
## Intervalo de confianza (95%): -0.1433 a 0.0766

Comparamos la proporción de clientes con siniestros en los seguros de Hogar y Salud mediante un intervalo de confianza del 95%. Calculamos la diferencia de proporciones y su error estándar, obteniendo un intervalo de confianza entre -0.1433 y 0.0766. Como este intervalo incluye el 0, no hay evidencia suficiente para afirmar que existe una diferencia significativa entre ambas proporciones.

# Calcular la varianza muestral
varianza_A <- var(datos_A$Primas_Pagadas)  
n_A <- nrow(datos_A)  
gl <- n_A - 1  

# Cuantiles de chi-cuadrado
chi2_inf <- qchisq(0.975, df = gl)  
chi2_sup <- qchisq(0.025, df = gl)  

# Intervalo de confianza
IC_varianza_A <- c((gl * varianza_A) / chi2_inf, (gl * varianza_A) / chi2_sup)

# Resultados
cat("Varianza muestral de primas pagadas en Seguro de Hogar:", round(varianza_A, 4), "\n")
## Varianza muestral de primas pagadas en Seguro de Hogar: 148055078
cat("Intervalo de confianza (95%) para la varianza poblacional:", 
    round(IC_varianza_A[1], 4), "a", round(IC_varianza_A[2], 4), "\n")
## Intervalo de confianza (95%) para la varianza poblacional: 93906007 a 267562665

Este intervalo nos permite estimar, con un nivel de confianza del 95%, la verdadera varianza poblacional de las primas pagadas en el seguro de Hogar. Una varianza alta podría reflejar inconsistencia en la política de precios o diferencias significativas en las características de los clientes asegurados. Si el intervalo es muy amplio, se recomienda revisar los criterios de asignación de primas.

# Filtrar datos del seguro de Salud
datos_B <- filter(datos, Tipo_Seguro == "Salud")

# Calcular varianzas muestrales
var_A <- var(datos_A$Primas_Pagadas)
var_B <- var(datos_B$Primas_Pagadas)

n_A <- nrow(datos_A)
n_B <- nrow(datos_B)

# Estadístico F
F_stat <- var_A / var_B

# Cuantiles de la distribución F
F_inf <- qf(0.975, df1 = n_A - 1, df2 = n_B - 1)
F_sup <- qf(0.025, df1 = n_A - 1, df2 = n_B - 1)

# Intervalo de confianza
IC_F <- c(F_stat / F_inf, F_stat * F_sup)

# Resultados
cat("Varianza muestral en Seguro de Hogar:", round(var_A, 4), "\n")
## Varianza muestral en Seguro de Hogar: 148055078
cat("Varianza muestral en Seguro de Salud:", round(var_B, 4), "\n")
## Varianza muestral en Seguro de Salud: 229383489
cat("Razón de varianzas (Hogar / Salud):", round(F_stat, 4), "\n")
## Razón de varianzas (Hogar / Salud): 0.6454
cat("Intervalo de confianza (95%):", round(IC_F[1], 4), "a", round(IC_F[2], 4), "\n")
## Intervalo de confianza (95%): 0.3072 a 0.3072

Este intervalo estima la razón entre las varianzas de primas entre los seguros de Hogar y Salud. Si el intervalo incluye el valor 1, no se puede afirmar que exista una diferencia significativa en la variabilidad. Si el intervalo está completamente por encima o por debajo de 1, se concluye que uno de los seguros presenta mayor dispersión. Esto puede guiar decisiones estratégicas sobre precios y segmentación de clientes.

Queremos evaluar si la media poblacional de primas pagadas en el seguro de Hogar es igual a $25,000.

Prueba de Hipótesis para la Media Queremos evaluar si la media poblacional de primas pagadas en el seguro de Hogar es igual a $25,000.

H₀: μ = 25000

H₁: μ ≠ 25000

α = 0.05

media_muestral <- mean(datos_A$Primas_Pagadas)
sd_muestral <- sd(datos_A$Primas_Pagadas)
n <- nrow(datos_A)
error <- qt(0.975, df = n-1) * sd_muestral / sqrt(n)

IC_media <- c(media_muestral - error, media_muestral + error)

cat("Intervalo de confianza (95%):", IC_media[1], "a", IC_media[2], "\n")
## Intervalo de confianza (95%): 19453.95 a 28541

Como 25000 se encuentra dentro del intervalo, no se rechaza la hipótesis nula. No hay evidencia suficiente para afirmar que la media poblacional de las primas en el seguro de Hogar sea distinta de $25,000.

Prueba de Hipótesis para una Proporción ¿Es diferente la proporción de clientes con siniestros en seguro de Hogar respecto al 90%?

H₀: p = 0.90

H₁: p ≠ 0.90

α = 0.05

p_obs <- mean(datos_A$Siniestros_Reportados > 0)
n <- nrow(datos_A)

z <- (p_obs - 0.90) / sqrt(0.90 * 0.10 / n)
p_valor <- 2 * (1 - pnorm(abs(z)))

cat("Estadístico z:", round(z, 4), "\n")
## Estadístico z: 0.6086
cat("p-valor:", round(p_valor, 4), "\n")
## p-valor: 0.5428

Como el p-valor es mayor a 0.05, no se rechaza H₀. La proporción de clientes con siniestros en el seguro de Hogar (93.33%) no es significativamente diferente del 90%.

Prueba de Hipótesis para la Varianza ¿La varianza de las primas pagadas en el seguro de Hogar es igual a 70 millones?

H₀: σ² = 70,000,000

H₁: σ² ≠ 70,000,000

α = 0.05

var_muestral <- var(datos_A$Primas_Pagadas)
gl <- nrow(datos_A) - 1

chi2_inf <- qchisq(0.975, df = gl)
chi2_sup <- qchisq(0.025, df = gl)

IC_var <- c((gl * var_muestral) / chi2_inf, (gl * var_muestral) / chi2_sup)

cat("Intervalo de confianza (95%) para la varianza:", IC_var[1], "a", IC_var[2], "\n")
## Intervalo de confianza (95%) para la varianza: 93906007 a 267562665

El valor de referencia (70 millones) no está dentro del intervalo, por lo tanto se rechaza H₀. La varianza en las primas del seguro de Hogar es significativamente diferente a 70 millones.

Prueba de Hipótesis para la Diferencia de Media ¿Existe diferencia entre la media de primas pagadas en los seguros de Hogar y Salud?

H₀: μ₁ − μ₂ = 0

H₁: μ₁ − μ₂ ≠ 0

α = 0.05

# Prueba t para diferencia de medias (Welch Two Sample t-test)
t.test(datos_A$Primas_Pagadas, datos_B$Primas_Pagadas,
       alternative = "two.sided", var.equal = FALSE)
## 
##  Welch Two Sample t-test
## 
## data:  datos_A$Primas_Pagadas and datos_B$Primas_Pagadas
## t = -0.27441, df = 55.427, p-value = 0.7848
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -8080.466  6133.812
## sample estimates:
## mean of x mean of y 
##  23997.47  24970.80

Dado que el p-valor es muy alto y el intervalo incluye el 0, no hay evidencia estadística para afirmar que existe diferencia significativa entre las primas de los seguros de Hogar y Salud.

Prueba de Hipótesis para la Diferencia de Proporciones ¿Es distinta la proporción de clientes con siniestros entre seguros de Hogar y Salud?

H₀: p₁ − p₂ = 0

H₁: p₁ − p₂ ≠ 0

α = 0.05

p_A <- mean(datos_A$Siniestros_Reportados > 0)
p_B <- mean(datos_B$Siniestros_Reportados > 0)
n_A <- nrow(datos_A)
n_B <- nrow(datos_B)

diff <- p_A - p_B
se <- sqrt((p_A * (1 - p_A) / n_A) + (p_B * (1 - p_B) / n_B))
z <- diff / se
p_valor <- 2 * (1 - pnorm(abs(z)))

cat("Diferencia de proporciones:", round(diff, 4), "\n")
## Diferencia de proporciones: -0.0333
cat("Estadístico z:", round(z, 4), "\n")
## Estadístico z: -0.5941
cat("p-valor:", round(p_valor, 4), "\n")
## p-valor: 0.5525

Como el p-valor es mayor que 0.05, no se rechaza la hipótesis nula. No hay diferencia estadísticamente significativa entre la proporción de siniestros en los seguros de Hogar y Salud.

Prueba de Hipótesis para la Razón de Varianzas ¿La varianza de primas en el seguro de Hogar es distinta de la de Salud?

H₀: σ₁² / σ₂² = 1

H₁: σ₁² / σ₂² ≠ 1

α = 0.05

var_A <- var(datos_A$Primas_Pagadas)
var_B <- var(datos_B$Primas_Pagadas)
F_stat <- var_A / var_B

gl1 <- nrow(datos_A) - 1
gl2 <- nrow(datos_B) - 1

F_inf <- qf(0.975, df1 = gl1, df2 = gl2)
F_sup <- qf(0.025, df1 = gl1, df2 = gl2)

IC_F <- c(F_stat / F_inf, F_stat * F_sup)

cat("Razón de varianzas:", round(F_stat, 4), "\n")
## Razón de varianzas: 0.6454
cat("Intervalo de confianza (95%):", round(IC_F[1], 4), "a", round(IC_F[2], 4), "\n")
## Intervalo de confianza (95%): 0.3072 a 0.3072

Como el intervalo no contiene el valor 1, se rechaza H₀. Hay evidencia estadística de que las varianzas de primas entre Hogar y Salud son diferentes. La menor variabilidad se observa en el seguro de Hogar.