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.
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.