# 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
data <- read.csv("data_prac_2.csv", stringsAsFactors = FALSE)
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…
data %>%
select(edad, imc, hijos, clm) %>%
summarise_all(~sum(!is.numeric(.), na.rm = TRUE))
## edad imc hijos clm
## 1 1 1 0 1
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))
data <- distinct(data)
data <- data %>% mutate(id = paste(sexo, region, edad, sep = "*"))
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)
)
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
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")
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.
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.
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.
data <- data %>%
mutate(obesidad = ifelse(imc > 30, "Requiere atención", "Bajo el límite"))
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
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.