Carga de Librerías
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
library(ggplot2)
library(zoo)
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(mice)
##
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
##
## filter
## The following objects are masked from 'package:base':
##
## cbind, rbind
library(modeest)
Carga de Datos
datos <- read.csv(file.choose(), stringsAsFactors = FALSE)
1. Revisión de Datos
a) Identificación de Valores Nulos o Vacíos
colSums(datos == "")
## edad sexo imc hijos fumador region clm X
## 53 0 24 0 0 0 27 NA
b) Conversión de Variables a Tipo Numérico
datos$edad <- as.numeric(as.character(datos$edad))
## Warning: NAs introducidos por coerción
datos$imc <- as.numeric(as.character(datos$imc))
## Warning: NAs introducidos por coerción
datos$clm <- as.numeric(as.character(datos$clm))
## Warning: NAs introducidos por coerción
datos[c("edad", "imc", "clm", "hijos")] <- lapply(datos[c("edad", "imc", "clm", "hijos")], as.numeric)
d) Eliminación de Duplicados
duplicados <- datos %>% duplicated()
sum(duplicados)
## [1] 0
datos <- datos %>% distinct()
2. Manejo de Valores Faltantes
3. Análisis Exploratorio de Datos
a) Histogramas
ggplot(datos_interpol, aes(x = imc)) +
geom_histogram(binwidth = 2, fill = "blue", color = "black", alpha = 0.7) +
labs(title = "Distribución del IMC", x = "IMC", y = "Frecuencia") +
theme_minimal()

ggplot(datos_interpol, aes(x = clm)) +
geom_histogram(binwidth = 1000, fill = "green", color = "black", alpha = 0.7) +
labs(title = "Distribución del Monto de Reclamación (CLM)", x = "Monto de Reclamación", y = "Frecuencia") +
theme_minimal()

d) Región con Mayor Monto Promedio de Reclamación
region_max <- aggregate(clm ~ region, data = datos_interpol, FUN = mean)
region_max[which.max(region_max$clm), ]
## region clm
## 3 sureste 14588.32
e) Creación de la Variable “Obesidad”
datos_interpol$obesidad <- ifelse(datos_interpol$imc > 30, "Sí", "No")
f) Top 10 Personas Obesas con Mayor Monto de Reclamación
top10_obesos <- datos_interpol %>%
filter(obesidad == "Sí") %>%
select(edad, sexo, hijos, clm, region) %>%
arrange(desc(clm)) %>%
head(10)
top10_obesos
## edad sexo hijos clm region
## 1 54 femenino 0 63770.43 sureste
## 2 45 masculino 0 62592.87 sureste
## 3 52 masculino 3 60021.40 noroeste
## 4 31 femenino 1 58571.07 noreste
## 5 33 femenino 0 55135.40 noroeste
## 6 60 masculino 0 52590.83 suroeste
## 7 28 masculino 1 51194.56 suroeste
## 8 64 masculino 2 49577.66 sureste
## 9 59 masculino 1 48970.25 sureste
## 10 44 femenino 0 48885.14 sureste