#Cargar dataframe
data_f<-read.csv('data_prac_2 1.csv',header = T, sep = ',',
dec = '.', stringsAsFactors = F)
#Verificar variables dentro del df
names(data_f)
## [1] "edad" "sexo" "imc" "hijos" "fumador" "region" "clm"
## [8] "X"
#Al momento de cargar la base se agrego una variable, por lo tanto, se deben seleccionar la varibles con las que se van a trabajar
data_f<- data_f%>%
select("edad", "sexo","imc","hijos", "fumador","region", "clm")
names(data_f)
## [1] "edad" "sexo" "imc" "hijos" "fumador" "region" "clm"
#Verificar si hay datos faltantes
#Valores NA
any(is.na(data_f))
## [1] FALSE
No hay valores NA’s
#Valores vacios
any(data_f == "", na.rm = TRUE)
## [1] TRUE
colSums(data_f == "", na.rm = TRUE)
## edad sexo imc hijos fumador region clm
## 53 0 24 0 0 0 27
Se presentan valores vacios en las variables: edad, imc y clm. Por lo tanto, se deben reemplazar por NA’s
# Convertir a numérico y reemplazar valores no numéricos con NA
data_f1 <- data_f %>%
mutate(across(c(edad, imc, clm), ~ as.numeric(as.character(.))))
## Warning: There were 3 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(c(edad, imc, clm), ~as.numeric(as.character(.)))`.
## Caused by warning:
## ! NAs introducidos por coerción
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 2 remaining warnings.
#Verificacion
any(data_f1 == "", na.rm = TRUE)
## [1] FALSE
colSums(data_f1 == "", na.rm = TRUE)
## edad sexo imc hijos fumador region clm
## 0 0 0 0 0 0 0
#Verificar que las variables tengan formato adecuado
str(data_f1)
## 'data.frame': 1338 obs. of 7 variables:
## $ edad : num 19 18 28 33 NA 31 46 37 37 60 ...
## $ sexo : chr "femenino" "masculino" "masculino" "masculino" ...
## $ imc : num 27.9 33.8 33 22.7 28.9 ...
## $ hijos : int 0 1 3 0 0 0 1 3 2 0 ...
## $ fumador: chr "yes" "no" "no" "no" ...
## $ region : chr "suroeste" "sureste" "sureste" "noroeste" ...
## $ clm : num 16885 1726 4449 21984 3867 ...
Las variables ya estan en el formato necesario para poder trabajar sobre el mismo dataframe, por lo tanto, no sera necesario hacer la asignacion del tipo de variable
#Comprobacion de valores DUPLICADOS
data_f1%>%
janitor::get_dupes()
## No variable names specified - using all columns.
## edad sexo imc hijos fumador region clm dupe_count
## 1 19 masculino 30.59 0 no noroeste 1639.563 2
## 2 19 masculino 30.59 0 no noroeste 1639.563 2
Si hay forma de saber si en el dataframe existen valores duplicados y es a traves de la paqueteria “Janitor”, una vez identificado es necesario eliminar el valor duplicado para tener un dataframe adecuado
#Eliminacion de valores duplicados
data_f2<- data_f1%>%
distinct()
#Comparacion
dim(data_f1)
## [1] 1338 7
dim(data_f2)
## [1] 1337 7
Se observa que dentro del dataframe solo existia un valor duplicado, ya que se tenian 1338 datos y posteriormente de la eliminacion de duplicados hay 1337 datos
#Reemplazar datos con la MEDIA
data_f2_mean<-data.frame(sapply(data_f2,
function(x) ifelse(is.na(x),
mean(x, na.rm=T),x)))
#Comprobar estructura del dataframe
str(data_f2_mean)
## 'data.frame': 1337 obs. of 7 variables:
## $ edad : chr "19" "18" "28" "33" ...
## $ sexo : chr "femenino" "masculino" "masculino" "masculino" ...
## $ imc : chr "27.9" "33.77" "33" "22.705" ...
## $ hijos : chr "0" "1" "3" "0" ...
## $ fumador: chr "yes" "no" "no" "no" ...
## $ region : chr "suroeste" "sureste" "sureste" "noroeste" ...
## $ clm : chr "16884.924" "1725.5523" "4449.462" "21984.47061" ...
#Convertir a variables numericas
data_f2_mean[,c(1,3:4,7)]<-lapply(data_f2_mean[,c(1,3:4,7)], as.numeric)
Al momento de comprobar la estructura del dataframe, no todas las variables son del tipo necesario para seguir trabajando adecuadamente, por lo tanto, fue necesario cambiar el tipo de variable a numerica para: edad, imc, hijos y clm.
#Comparacion de dataframe's
summary(data_f2)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.22 1st Qu.:0.000
## Median :39.00 Mode :character Median :30.30 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.59 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## NA's :72 NA's :39
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4750
## Mode :character Mode :character Median : 9382
## Mean :13287
## 3rd Qu.:16781
## Max. :63770
## NA's :41
summary(data_f2_mean)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.24 Mode :character Median :30.59 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13287
## 3rd Qu.:16115
## Max. :63770
#Reemplazar datos con la MEDIANA
data_f2_median<-data.frame(sapply(data_f2,
function(x) ifelse(is.na(x),
median(x, na.rm=T),x)))
#Comprobar estructura del dataframe
str(data_f2_median)
## 'data.frame': 1337 obs. of 7 variables:
## $ edad : chr "19" "18" "28" "33" ...
## $ sexo : chr "femenino" "masculino" "masculino" "masculino" ...
## $ imc : chr "27.9" "33.77" "33" "22.705" ...
## $ hijos : chr "0" "1" "3" "0" ...
## $ fumador: chr "yes" "no" "no" "no" ...
## $ region : chr "suroeste" "sureste" "sureste" "noroeste" ...
## $ clm : chr "16884.924" "1725.5523" "4449.462" "21984.47061" ...
#Convertir a variables numericas
data_f2_median[,c(1,3:4,7)]<-lapply(data_f2_mean[,c(1,3:4,7)], as.numeric)
#Comprobar estructura del dataframe despues del cabio deñ tipo de variable
str(data_f2_median)
## 'data.frame': 1337 obs. of 7 variables:
## $ edad : num 19 18 28 33 39.2 ...
## $ sexo : chr "femenino" "masculino" "masculino" "masculino" ...
## $ imc : num 27.9 33.8 33 22.7 28.9 ...
## $ hijos : num 0 1 3 0 0 0 1 3 2 0 ...
## $ fumador: chr "yes" "no" "no" "no" ...
## $ region : chr "suroeste" "sureste" "sureste" "noroeste" ...
## $ clm : num 16885 1726 4449 21984 3867 ...
Al momento de comprobar la estructura del dataframe, no todas las variables son del tipo necesario para seguir trabajando adecuadamente, por lo tanto, fue necesario cambiar el tipo de variable a numerica para: edad, imc, hijos y clm.
#Comparacion de dataframe's
summary(data_f2)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.22 1st Qu.:0.000
## Median :39.00 Mode :character Median :30.30 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.59 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## NA's :72 NA's :39
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4750
## Mode :character Mode :character Median : 9382
## Mean :13287
## 3rd Qu.:16781
## Max. :63770
## NA's :41
summary(data_f2_mean)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.24 Mode :character Median :30.59 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13287
## 3rd Qu.:16115
## Max. :63770
summary(data_f2_median)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.24 Mode :character Median :30.59 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13287
## 3rd Qu.:16115
## Max. :63770
#Reemplazar datos con la MODA
data_f2_mode<-data.frame(lapply(data_f2,
function(x) ifelse(is.na(x),
mfv(x, na_rm=T),x)))
#Comprobar estructura del dataframe
str(data_f2_mode)
## 'data.frame': 1337 obs. of 7 variables:
## $ edad : num 19 18 28 33 18 31 46 37 37 60 ...
## $ sexo : chr "femenino" "masculino" "masculino" "masculino" ...
## $ imc : num 27.9 33.8 33 22.7 28.9 ...
## $ hijos : int 0 1 3 0 0 0 1 3 2 0 ...
## $ fumador: chr "yes" "no" "no" "no" ...
## $ region : chr "suroeste" "sureste" "sureste" "noroeste" ...
## $ clm : num 16885 1726 4449 21984 3867 ...
#Comparacion de dataframe's
summary(data_f2)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.22 1st Qu.:0.000
## Median :39.00 Mode :character Median :30.30 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.59 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## NA's :72 NA's :39
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4750
## Mode :character Mode :character Median : 9382
## Mean :13287
## 3rd Qu.:16781
## Max. :63770
## NA's :41
summary(data_f2_mean)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.24 Mode :character Median :30.59 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13287
## 3rd Qu.:16115
## Max. :63770
summary(data_f2_median)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.24 Mode :character Median :30.59 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13287
## 3rd Qu.:16115
## Max. :63770
summary(data_f2_mode)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:25.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :38.00 Mode :character Median :30.59 Median :1.000
## Mean :38.13 Mean :30.66 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4762
## Mode :character Mode :character Median : 9305
## Mean :13254
## 3rd Qu.:16587
## Max. :63770
#Reemplazar datos con la MEDIA RECORTADA
data_f2_mean_r <- data.frame(lapply(data_f2,
function(x) ifelse(is.na(x),
mean(x, na.rm=T, trim=0.2),
x)))
#Comprobar estructura del dataframe
str(data_f2_mean_r)
## 'data.frame': 1337 obs. of 7 variables:
## $ edad : num 19 18 28 33 39.1 ...
## $ sexo : chr "femenino" "masculino" "masculino" "masculino" ...
## $ imc : num 27.9 33.8 33 22.7 28.9 ...
## $ hijos : int 0 1 3 0 0 0 1 3 2 0 ...
## $ fumador: chr "yes" "no" "no" "no" ...
## $ region : chr "suroeste" "sureste" "sureste" "noroeste" ...
## $ clm : num 16885 1726 4449 21984 3867 ...
#Comparacion de dataframe's
summary(data_f2)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.22 1st Qu.:0.000
## Median :39.00 Mode :character Median :30.30 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.59 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## NA's :72 NA's :39
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4750
## Mode :character Mode :character Median : 9382
## Mean :13287
## 3rd Qu.:16781
## Max. :63770
## NA's :41
summary(data_f2_mean)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.24 Mode :character Median :30.59 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13287
## 3rd Qu.:16115
## Max. :63770
summary(data_f2_median)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.24 Mode :character Median :30.59 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13287
## 3rd Qu.:16115
## Max. :63770
summary(data_f2_mode)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:25.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :38.00 Mode :character Median :30.59 Median :1.000
## Mean :38.13 Mean :30.66 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4762
## Mode :character Mode :character Median : 9305
## Mean :13254
## 3rd Qu.:16587
## Max. :63770
summary(data_f2_mean_r)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.08 Mode :character Median :30.41 Median :1.000
## Mean :39.23 Mean :30.61 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13183
## 3rd Qu.:16115
## Max. :63770
#Reemplazar datos con INTERPOLACION
data_f2_inter<- data.frame(lapply(data_f2,
function(x) ifelse(is.na(x),
na.approx(x, na.rm=T),
x)))
#Comprobar estructura del dataframe
str(data_f2_inter)
## 'data.frame': 1337 obs. of 7 variables:
## $ edad : num 19 18 28 33 32 31 46 37 37 60 ...
## $ sexo : chr "femenino" "masculino" "masculino" "masculino" ...
## $ imc : num 27.9 33.8 33 22.7 28.9 ...
## $ hijos : int 0 1 3 0 0 0 1 3 2 0 ...
## $ fumador: chr "yes" "no" "no" "no" ...
## $ region : chr "suroeste" "sureste" "sureste" "noroeste" ...
## $ clm : num 16885 1726 4449 21984 3867 ...
#Comparacion de dataframe's
summary(data_f2)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.22 1st Qu.:0.000
## Median :39.00 Mode :character Median :30.30 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.59 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## NA's :72 NA's :39
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4750
## Mode :character Mode :character Median : 9382
## Mean :13287
## 3rd Qu.:16781
## Max. :63770
## NA's :41
summary(data_f2_mean)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.24 Mode :character Median :30.59 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13287
## 3rd Qu.:16115
## Max. :63770
summary(data_f2_median)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.24 Mode :character Median :30.59 Median :1.000
## Mean :39.24 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13287
## 3rd Qu.:16115
## Max. :63770
summary(data_f2_mode)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:25.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :38.00 Mode :character Median :30.59 Median :1.000
## Mean :38.13 Mean :30.66 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4762
## Mode :character Mode :character Median : 9305
## Mean :13254
## 3rd Qu.:16587
## Max. :63770
summary(data_f2_mean_r)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.40 1st Qu.:0.000
## Median :39.08 Mode :character Median :30.41 Median :1.000
## Mean :39.23 Mean :30.61 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.40 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4878
## Mode :character Mode :character Median : 9705
## Mean :13183
## 3rd Qu.:16115
## Max. :63770
summary(data_f2_inter)
## edad sexo imc hijos
## Min. :18.00 Length:1337 Min. :15.96 Min. :0.000
## 1st Qu.:27.00 Class :character 1st Qu.:26.22 1st Qu.:0.000
## Median :39.00 Mode :character Median :30.40 Median :1.000
## Mean :39.29 Mean :30.62 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.58 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## fumador region clm
## Length:1337 Length:1337 Min. : 1122
## Class :character Class :character 1st Qu.: 4796
## Mode :character Mode :character Median : 9411
## Mean :13274
## 3rd Qu.:16819
## Max. :63770
De todos los metodos el que mas se sugiere usar es mediante el uso de interpolacion ya que es una opción más precisa y menos invasiva,puesto que considera la relación de los datos y mantiene la coherencia y la variabilidad de las observaciones. Mientras que los otros métodos, pueden afectar la estructura y las características de los datos de manera invasiva.
#Histograma EDAD
ggplot(data_f2_inter, aes(x = edad)) +
geom_histogram(fill = "maroon3", color = "black") +
labs(title = "Histograma Edad", x = "Edad",y="Frecuencia") +
theme_light()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Histograma IMC
ggplot(data_f2_inter, aes(x = imc)) +
geom_histogram(fill = "slategray3", color = "black") +
labs(title = "Histograma IMC", x = "IMC",y="Frecuencia") +
theme_light()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Histograma HIJOS
ggplot(data_f2_inter, aes(x = hijos)) +
geom_histogram(fill = "thistle", color = "black") +
labs(title = "Histograma HIJOS", x = "Hijos",y="Frecuencia") +
theme_light()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Histograma HIJOS
ggplot(data_f2_inter, aes(x = clm)) +
geom_histogram(fill = "darkseagreen1", color = "black") +
labs(title = "Histograma CLM", x = "CLM",y="Frecuencia") +
theme_light()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Es uno de los gráficos más significativos para el análisis univariante de variables numéricas, ya que permite obtener una visión general rápida de la distribución de los datos. Pero, se pueden usar otros graficos como de densidad para obtener más detalles sobre la variabilidad, la presencia de outliers o la forma de la distribución.
#Media de monto de reclamación por sexo.
mean_sex<- data_f2_inter%>%
group_by(sexo)%>%
summarise(media=mean(clm))
mean_sex
## # A tibble: 2 × 2
## sexo media
## <chr> <dbl>
## 1 femenino 12517.
## 2 masculino 14017.
#Grafico
ggplot(mean_sex, aes(x = sexo, y = media, fill = sexo)) +
geom_bar(stat = "identity", color = "black") +
labs(title = "Media del Monto de Reclamación por Sexo",
x = "Sexo",
y = "Media del Monto de Reclamación") +
theme_light() +
scale_fill_manual(values = c("brown4", "darkgoldenrod1"))
De la consulta se puede rescatar que la media es mayor para el sexo masculino
#Media de monto de reclamación por sexo.
mean_sex_fum<- data_f2_inter%>%
group_by(fumador,sexo)%>%
summarise(media_sf=mean(clm), .groups = "drop")
mean_sex_fum
## # A tibble: 4 × 3
## fumador sexo media_sf
## <chr> <chr> <dbl>
## 1 no femenino 8935.
## 2 no masculino 8206.
## 3 yes femenino 29556.
## 4 yes masculino 32874.
#Grafico
ggplot(mean_sex_fum, aes(x = fumador, y = media_sf, fill = sexo)) +
geom_bar(stat = "identity", position = "dodge", color = "black") +
labs(title = "Media del Monto de Reclamación por Sexo y Fumador",
x = "Fumador",
y = "Media del Monto de Reclamación") +
theme_light() +
scale_fill_manual(values = c("brown4", "darkgoldenrod1"))
De la consulta y el grafico se puede rescatar que la media del monto de reclamacion es mas alta para personas del sexo masculino y que son fumadoras
#Media de monto de reclamación por sexo.
mean_reg<- data_f2_inter%>%
group_by(region)%>%
summarise(media_reg=mean(clm))
mean_reg
## # A tibble: 4 × 2
## region media_reg
## <chr> <dbl>
## 1 noreste 13577.
## 2 noroeste 12418.
## 3 sureste 14588.
## 4 suroeste 12354.
mean_reg_max<-mean_reg%>%
filter(media_reg == max(media_reg))
mean_reg_max
## # A tibble: 1 × 2
## region media_reg
## <chr> <dbl>
## 1 sureste 14588.
La region con la media mas alta del monto de reclamacion es la del sureste
#Agregar columna a traves de mutate
data_f2_inter <- data_f2_inter %>%
mutate(obesidad = ifelse(imc > 30, "Sí", "No"))
head(data_f2_inter)
## edad sexo imc hijos fumador region clm obesidad
## 1 19 femenino 27.900 0 yes suroeste 16884.924 No
## 2 18 masculino 33.770 1 no sureste 1725.552 Sí
## 3 28 masculino 33.000 3 no sureste 4449.462 Sí
## 4 33 masculino 22.705 0 no noroeste 21984.471 No
## 5 32 masculino 28.880 0 no noroeste 3866.855 No
## 6 31 femenino 25.740 0 no sureste 3756.622 No
top10_ob<- data_f2_inter %>%
filter(obesidad=='Sí')%>%
top_n(10,imc)%>%
select(edad, sexo, imc,hijos, clm, region)%>%
arrange(desc(imc))
top10_ob
## edad sexo imc hijos clm region
## 1 18 masculino 53.13 0 1163.463 sureste
## 2 22 masculino 52.58 1 44501.398 sureste
## 3 23 masculino 50.38 1 2438.055 sureste
## 4 58 masculino 49.06 0 11381.325 sureste
## 5 52 masculino 47.74 1 9748.911 sureste
## 6 37 femenino 47.60 2 46113.511 suroeste
## 7 47 masculino 47.52 1 8083.920 sureste
## 8 54 femenino 47.41 0 63770.428 sureste
## 9 52 femenino 46.75 5 12592.534 sureste
## 10 54 femenino 46.70 2 11538.421 suroeste