# Establecer un espejo de CRAN
options(repos = c(CRAN = "https://cran.rstudio.com"))

## Cargando librerías
install.packages(c("dplyr","ggplot2"))
## Installing packages into 'C:/Users/josep/AppData/Local/R/win-library/4.4'
## (as 'lib' is unspecified)
## package 'dplyr' successfully unpacked and MD5 sums checked
## package 'ggplot2' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\josep\AppData\Local\Temp\RtmpySIRVk\downloaded_packages
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3

Cargando la base de datos

data <- read.csv("data_prac_2.csv", stringsAsFactors = FALSE)

Exploración inicial de los datos

glimpse(data)
## Rows: 1,338
## Columns: 7
## $ edad    <chr> "19", "18", "28", "33", "", "31", "46", "37", "37", "60", "25"…
## $ sexo    <chr> "femenino", "masculino", "masculino", "masculino", "masculino"…
## $ imc     <chr> "27.9", "33.77", "33", "22.705", "28.88", "25.74", "33.44", "2…
## $ hijos   <int> 0, 1, 3, 0, 0, 0, 1, 3, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,…
## $ fumador <chr> "s\xed", "no", "no", "no", "no", "no", "no", "no", "no", "no",…
## $ region  <chr> "suroeste", "sureste", "sureste", "noroeste", "noroeste", "sur…
## $ clm     <chr> "16884.924", "1725.5523", "4449.462", "21984.47061", "3866.855…

Identificación de valores atípicos

data %>% 
  select(edad, imc, hijos, clm) %>% 
  summarise_all(~sum(!is.numeric(.), na.rm = TRUE))
##   edad imc hijos clm
## 1    1   1     0   1

Transformación y limpieza de datos

data <- data %>% 
  mutate(across(c(edad, imc, hijos, clm), ~ suppressWarnings(as.numeric(.))))

data %>% filter(if_any(c(edad, imc, hijos, clm), is.na))
##     edad      sexo    imc hijos fumador   region       clm
## 1     NA masculino 28.880     0      no noroeste  3866.855
## 2     NA  femenino 30.780     1      no  noreste 10797.336
## 3     NA  femenino 31.920     1   s\xed  noreste 37701.877
## 4     NA masculino 17.385     1      no noroeste  2775.192
## 5     NA masculino 36.670     1   s\xed  noreste 39774.276
## 6     NA masculino 35.200     1   s\xed  sureste 38709.176
## 7     NA  femenino 25.935     1      no noroeste  4133.642
## 8     61  femenino     NA     2      no suroeste 14235.072
## 9     NA  femenino 39.805     0      no  noreste  2755.021
## 10    NA  femenino 34.800     2   s\xed suroeste 39836.519
## 11    53  femenino 24.795     1      no noroeste        NA
## 12    61  femenino 29.920     3   s\xed  sureste        NA
## 13    29  femenino 27.940     1   s\xed  sureste        NA
## 14    49  femenino 27.170     0      no  sureste        NA
## 15    NA  femenino 23.370     2      no noroeste  6686.431
## 16    18 masculino 23.750     0      no  noreste        NA
## 17    19 masculino 25.555     0      no noroeste        NA
## 18    NA  femenino 27.830     3      no  sureste 19749.383
## 19    NA masculino 41.895     3   s\xed  noreste 43753.337
## 20    NA masculino 41.230     1      no  noreste  6610.110
## 21    NA masculino 24.640     0   s\xed  sureste 19515.542
## 22    NA masculino 30.020     0      no noroeste 24476.479
## 23    NA masculino 24.320     3   s\xed  noreste 24869.837
## 24    18 masculino     NA     1      no  sureste  1719.436
## 25    NA  femenino 21.560     1      no  sureste  9855.131
## 26    46  femenino     NA     2      no  noreste  9432.925
## 27    NA masculino 22.990     0      no  noreste        NA
## 28    47 masculino     NA     1   s\xed  sureste 21978.677
## 29    56  femenino 37.510     2      no  sureste        NA
## 30    NA masculino 26.600     0      no suroeste  8444.474
## 31    NA masculino 35.860     0      no  sureste  8124.408
## 32    NA masculino 36.480     2   s\xed noroeste 42760.502
## 33    NA  femenino 28.785     0      no  noreste 11658.379
## 34    19  femenino 21.700     0   s\xed suroeste        NA
## 35    NA  femenino 21.890     2      no  sureste  3180.510
## 36    56  femenino     NA     3      no  noreste 13430.265
## 37    42  femenino     NA     2      no noroeste  8017.061
## 38    NA  femenino 33.155     1      no  noreste  7639.417
## 39    19 masculino     NA     0      no suroeste  1261.859
## 40    NA  femenino 22.610     0      no noroeste  3176.816
## 41    24  femenino     NA     3      no noroeste  4618.080
## 42    48 masculino     NA     4      no  noreste 10736.871
## 43    64 masculino 25.600     2      no suroeste        NA
## 44    18  femenino     NA     0      no  sureste  1631.668
## 45    64  femenino     NA     0      no noroeste 14692.669
## 46    NA masculino 30.030     1      no  sureste  4074.454
## 47    NA masculino 35.860     0   s\xed  sureste 46599.108
## 48    NA masculino 32.775     1   s\xed  noreste 39125.332
## 49    NA masculino 30.590     0      no  noreste  2727.395
## 50    NA  femenino 29.165     0      no  noreste  7323.735
## 51    NA masculino 26.900     0      no suroeste  5969.723
## 52    NA masculino 31.730     0      no  noreste  2254.797
## 53    26 masculino     NA     0      no  noreste  2897.323
## 54    56 masculino 26.695     1   s\xed noroeste        NA
## 55    40  femenino     NA     0      no suroeste  5910.944
## 56    NA masculino 29.735     0      no noroeste  1769.532
## 57    55  femenino 30.140     2      no  sureste        NA
## 58    NA  femenino 30.495     0      no noroeste 11840.775
## 59    NA  femenino 36.630     3      no  sureste 10381.479
## 60    NA  femenino 38.095     2      no  noreste 15230.324
## 61    NA  femenino 28.380     1   s\xed  sureste 19521.968
## 62    49 masculino     NA     2      no  sureste  9304.702
## 63    51  femenino     NA     1      no suroeste  9880.068
## 64    NA masculino 34.400     0   s\xed suroeste 36197.699
## 65    NA masculino 23.210     1   s\xed  sureste 22218.115
## 66    19 masculino 30.250     0   s\xed  sureste        NA
## 67    37 masculino 30.875     3      no noroeste        NA
## 68    NA masculino 31.350     1      no noroeste  2643.269
## 69    NA masculino 32.110     1      no  noreste 11763.001
## 70    NA masculino 33.660     0      no  sureste  2498.414
## 71    31 masculino 30.875     0      no  noreste        NA
## 72    NA  femenino 37.730     0      no  sureste  5397.617
## 73    NA masculino 26.070     1   s\xed  sureste 38245.593
## 74    NA masculino 25.840     2   s\xed noroeste 23807.241
## 75    63 masculino 30.800     0      no suroeste        NA
## 76    62 masculino 21.400     0      no suroeste        NA
## 77    NA masculino 35.530     0      no noroeste  1646.430
## 78    18  femenino 37.290     1      no  sureste        NA
## 79    NA  femenino 36.860     1      no  noreste 31620.001
## 80    NA masculino 30.200     1      no suroeste  9724.530
## 81    25  femenino 23.465     0      no  noreste        NA
## 82    19 masculino     NA     0      no suroeste  1242.816
## 83    21 masculino 20.235     3      no  noreste        NA
## 84    38  femenino     NA     1      no  sureste  5976.831
## 85    47 masculino 19.570     1      no noroeste        NA
## 86    20 masculino     NA     2      no  sureste  2566.471
## 87    43 masculino 32.600     2      no suroeste        NA
## 88    NA  femenino 39.160     0      no  sureste  1633.044
## 89    NA masculino 31.635     0      no noroeste  9174.136
## 90    NA  femenino 25.300     0      no suroeste 11070.535
## 91    20  femenino     NA     0      no  sureste  1880.070
## 92    49 masculino     NA     2   s\xed suroeste 23306.547
## 93    NA  femenino 37.100     0      no suroeste 10713.644
## 94    18 masculino     NA     0   s\xed  noreste 34617.841
## 95    59 masculino     NA     0      no noroeste 12129.614
## 96    NA masculino 28.880     3      no  noreste  6748.591
## 97    58 masculino     NA     0      no suroeste 11365.952
## 98    24 masculino     NA     0      no suroeste  1977.815
## 99    51 masculino     NA     1      no suroeste  9391.346
## 100   NA masculino 38.190     0      no  noreste 14410.932
## 101   19  femenino     NA     1      no noroeste        NA
## 102   NA  femenino 23.370     3      no  noreste  8252.284
## 103   26  femenino     NA     1      no suroeste  3410.324
## 104   NA  femenino 22.990     0   s\xed  sureste 27037.914
## 105   49 masculino     NA     1      no suroeste  8703.456
## 106   40  femenino     NA     2   s\xed noroeste        NA
## 107   NA masculino 29.700     0      no  sureste  4399.731
## 108   55  femenino 40.810     3      no  sureste        NA
## 109   NA  femenino 17.400     1      no suroeste  2585.269
## 110   39 masculino     NA     2   s\xed suroeste 40103.890
## 111   33  femenino     NA     1      no suroeste  4766.022
## 112   NA masculino 26.125     2      no  noreste  7729.646
## 113   21 masculino     NA     0      no  noreste  2104.113
## 114   53 masculino     NA     0      no  sureste  9504.310
## 115   51  femenino 38.060     0   s\xed  sureste        NA
## 116   NA  femenino 23.540     2      no  sureste 10107.221
## 117   20 masculino     NA     0      no  noreste  1984.453
## 118   NA  femenino     NA     0      no suroeste  2457.502
## 119   NA  femenino 40.660     0      no  noreste  9875.680
## 120   41 masculino     NA     1      no noroeste  6664.686
## 121   41  femenino     NA     1      no  sureste  6781.354
## 122   24  femenino     NA     3      no suroeste  4234.927
## 123   59  femenino     NA     3      no suroeste 14007.222
## 124   49  femenino 34.770     1      no noroeste        NA
## 125   NA masculino 31.730     3   s\xed  noreste 36189.102
## 126   19 masculino 21.755     0      no noroeste        NA
## 127   45  femenino 25.175     2      no  noreste        NA
## 128   NA  femenino 23.180     0      no  noreste  2731.912
## 129   NA  femenino 31.825     2      no  noreste 16069.085
## 130   36  femenino 25.840     0      no noroeste        NA
## 131   36 masculino 31.500     0      no suroeste        NA
## 132   NA  femenino 32.780     2   s\xed  sureste        NA
## 133   41 masculino 28.800     1      no suroeste        NA
## 134   NA  femenino 30.020     0      no noroeste  5272.176
## 135   NA masculino 46.530     1      no  sureste  2927.065
## 136   NA masculino 22.990     2   s\xed noroeste 17361.766
## 137   63 masculino 21.660     1      no noroeste        NA
## 138   54  femenino 31.900     1      no  sureste        NA
## 139   47  femenino 32.000     1      no suroeste        NA
## 140   NA  femenino 30.400     0   s\xed noroeste        NA
## 141   54  femenino 31.240     0      no  sureste        NA
## 142   NA masculino 32.340     2      no  sureste  6338.076
## 143   28  femenino 33.110     0      no  sureste        NA
## 144   55 masculino 37.715     3      no noroeste        NA
## 145   22  femenino 30.400     0      no  noreste        NA
## 146   NA masculino 42.900     1      no suroeste  4536.259
data <- data %>% 
  mutate(across(c(sexo, fumador, region), as.factor))

Eliminación de duplicados y creación de identificador único

data <- distinct(data)
data <- data %>% mutate(id = paste(sexo, region, edad, sep = "*"))

Imputación de valores faltantes

moda <- function(x) names(sort(table(x), decreasing = TRUE))[1]
data <- data %>% mutate(
  imc = ifelse(is.na(imc), mean(imc, na.rm = TRUE, trim = 0.2), imc),
  clm = ifelse(is.na(clm), mean(clm, na.rm = TRUE, trim = 0.2), clm),
  sexo = ifelse(is.na(sexo), moda(sexo), sexo),
  fumador = ifelse(is.na(fumador), moda(fumador), fumador),
  region = ifelse(is.na(region), moda(region), region)
)

Resumen estadístico de variables numéricas

summary(select(data, edad, imc, hijos, clm))
##       edad            imc            hijos            clm       
##  Min.   :18.00   Min.   :15.96   Min.   :0.000   Min.   : 1122  
##  1st Qu.:27.00   1st Qu.:26.40   1st Qu.:0.000   1st Qu.: 4878  
##  Median :39.00   Median :30.41   Median :1.000   Median : 9705  
##  Mean   :39.24   Mean   :30.61   Mean   :1.096   Mean   :13183  
##  3rd Qu.:51.00   3rd Qu.:34.40   3rd Qu.:2.000   3rd Qu.:16115  
##  Max.   :64.00   Max.   :53.13   Max.   :5.000   Max.   :63770  
##  NA's   :72

Análisis exploratorio

a) Distribución del Índice de Masa Corporal (IMC)

ggplot(data, aes(x = imc)) +
  geom_histogram(binwidth = 2, fill = "white", color = "black", alpha = 0.5) +
  theme_minimal() +
  labs(title = "Distribución del Índice de Masa Corporal",
       x = "IMC",
       y = "Frecuencia")

b) Media de reclamaciones por sexo

data %>% 
  group_by(sexo) %>% 
  summarise(media_clm = mean(clm, na.rm = TRUE))
## # A tibble: 2 × 2
##    sexo media_clm
##   <int>     <dbl>
## 1     1    12396.
## 2     2    13954.

c) Media de reclamaciones por fumador y sexo

data %>% 
  group_by(fumador, sexo) %>% 
  summarise(media_clm = mean(clm, na.rm = TRUE))
## `summarise()` has grouped output by 'fumador'. You can override using the
## `.groups` argument.
## # A tibble: 4 × 3
## # Groups:   fumador [2]
##   fumador  sexo media_clm
##     <int> <int>     <dbl>
## 1       1     1     8825.
## 2       1     2     8148.
## 3       2     1    29383.
## 4       2     2    32797.

d) Región con mayor monto promedio de reclamación

data %>% 
  group_by(region) %>% 
  summarise(media_clm = mean(clm, na.rm = TRUE)) %>%
  arrange(desc(media_clm)) %>% slice(1)
## # A tibble: 1 × 2
##   region media_clm
##    <int>     <dbl>
## 1      3    14443.

e) Creación de variable de obesidad

data <- data %>% 
  mutate(obesidad = ifelse(imc > 30, "Requiere atención", "Bajo el límite"))

f) Top 10 de reclamaciones en personas obesas

data %>% 
  filter(obesidad == "Requiere atención") %>% 
  select(edad, sexo, hijos, clm, region) %>% 
  arrange(desc(clm)) %>% 
  head(10)
##    edad sexo hijos      clm region
## 1    54    1     0 63770.43      3
## 2    45    2     0 62592.87      3
## 3    52    2     3 60021.40      2
## 4    31    1     1 58571.07      1
## 5    33    1     0 55135.40      2
## 6    60    2     0 52590.83      4
## 7    28    2     1 51194.56      4
## 8    64    2     2 49577.66      3
## 9    59    2     1 48970.25      3
## 10   44    1     0 48885.14      3

Conclusiones

cat("El análisis exploratorio realizado a las principales variables como IMC buscó intuir relaciones con el tabaquismo, edad, sexo y costos médicos, permitiendo identificar patrones clave para la gestión de seguros y la salud de los asegurados.")
## El análisis exploratorio realizado a las principales variables como IMC buscó intuir relaciones con el tabaquismo, edad, sexo y costos médicos, permitiendo identificar patrones clave para la gestión de seguros y la salud de los asegurados.