# Base de datos
Grupo_5 <- read_csv("Grupo_5.csv")
## Rows: 100 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (6): Ciudad, Nivel_Educativo, Estado_Civil, Sector_Laboral, Propietario_...
## dbl (6): ID, Edad, Salario, Experiencia, Horas_Trabajo_Semana, Cantidad_Hijos
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
summary(Grupo_5)
## ID Edad Salario Experiencia
## Min. : 1.00 Min. :18.00 Min. :20393 Min. : 1.00
## 1st Qu.: 25.75 1st Qu.:32.00 1st Qu.:32892 1st Qu.:13.00
## Median : 50.50 Median :41.00 Median :45581 Median :22.00
## Mean : 50.50 Mean :43.14 Mean :47654 Mean :21.61
## 3rd Qu.: 75.25 3rd Qu.:56.00 3rd Qu.:61180 3rd Qu.:32.00
## Max. :100.00 Max. :65.00 Max. :79430 Max. :39.00
## NA's :5 NA's :7 NA's :17
## Ciudad Nivel_Educativo Horas_Trabajo_Semana Estado_Civil
## Length:100 Length:100 Min. :20.00 Length:100
## Class :character Class :character 1st Qu.:28.25 Class :character
## Mode :character Mode :character Median :39.00 Mode :character
## Mean :38.71
## 3rd Qu.:47.75
## Max. :60.00
## NA's :10
## Sector_Laboral Cantidad_Hijos Propietario_Vivienda Rango_Salario
## Length:100 Min. :0.0 Length:100 Length:100
## Class :character 1st Qu.:1.0 Class :character Class :character
## Mode :character Median :3.0 Mode :character Mode :character
## Mean :2.7
## 3rd Qu.:4.0
## Max. :5.0
## NA's :10
# Visión general de toda la base de datos
skimr::skim(Grupo_5)
| Name | Grupo_5 |
| Number of rows | 100 |
| Number of columns | 12 |
| _______________________ | |
| Column type frequency: | |
| character | 6 |
| numeric | 6 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| Ciudad | 3 | 0.97 | 5 | 8 | 0 | 4 | 0 |
| Nivel_Educativo | 2 | 0.98 | 8 | 13 | 0 | 3 | 0 |
| Estado_Civil | 2 | 0.98 | 6 | 10 | 0 | 3 | 0 |
| Sector_Laboral | 10 | 0.90 | 7 | 13 | 0 | 3 | 0 |
| Propietario_Vivienda | 7 | 0.93 | 2 | 2 | 0 | 2 | 0 |
| Rango_Salario | 7 | 0.93 | 4 | 5 | 0 | 3 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| ID | 0 | 1.00 | 50.50 | 29.01 | 1 | 25.75 | 50.5 | 75.25 | 100 | ▇▇▇▇▇ |
| Edad | 5 | 0.95 | 43.14 | 13.81 | 18 | 32.00 | 41.0 | 56.00 | 65 | ▃▇▅▅▇ |
| Salario | 7 | 0.93 | 47654.06 | 17391.44 | 20393 | 32892.00 | 45581.0 | 61180.00 | 79430 | ▇▇▆▆▆ |
| Experiencia | 17 | 0.83 | 21.61 | 10.99 | 1 | 13.00 | 22.0 | 32.00 | 39 | ▅▆▅▆▇ |
| Horas_Trabajo_Semana | 10 | 0.90 | 38.71 | 11.45 | 20 | 28.25 | 39.0 | 47.75 | 60 | ▇▅▇▅▅ |
| Cantidad_Hijos | 10 | 0.90 | 2.70 | 1.63 | 0 | 1.00 | 3.0 | 4.00 | 5 | ▇▅▆▅▅ |
# Información de las primeras filas de la base de datos
head(Grupo_5)
## # A tibble: 6 × 12
## ID Edad Salario Experiencia Ciudad Nivel_Educativo Horas_Trabajo_Semana
## <dbl> <dbl> <dbl> <dbl> <chr> <chr> <dbl>
## 1 1 47 35465 27 Ponce Primaria 39
## 2 2 31 30399 37 Bayamón Secundaria NA
## 3 3 29 32214 36 San Juan Secundaria 46
## 4 4 56 28196 38 San Juan Primaria 57
## 5 5 45 66854 10 San Juan Universitario 25
## 6 6 34 22328 32 San Juan Primaria NA
## # ℹ 5 more variables: Estado_Civil <chr>, Sector_Laboral <chr>,
## # Cantidad_Hijos <dbl>, Propietario_Vivienda <chr>, Rango_Salario <chr>
# Características de las variables de la base de datos
glimpse(Grupo_5)
## Rows: 100
## Columns: 12
## $ ID <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15…
## $ Edad <dbl> 47, 31, 29, 56, 45, 34, 63, 19, NA, NA, 37, 45, 6…
## $ Salario <dbl> 35465, 30399, 32214, 28196, 66854, 22328, 33669, …
## $ Experiencia <dbl> 27, 37, 36, 38, 10, 32, NA, 9, 7, NA, 25, 17, 38,…
## $ Ciudad <chr> "Ponce", "Bayamón", "San Juan", "San Juan", "San …
## $ Nivel_Educativo <chr> "Primaria", "Secundaria", "Secundaria", "Primaria…
## $ Horas_Trabajo_Semana <dbl> 39, NA, 46, 57, 25, NA, 32, 56, 43, 20, 44, 51, 4…
## $ Estado_Civil <chr> "Soltero", "Soltero", "Soltero", NA, "Casado", "S…
## $ Sector_Laboral <chr> "Independiente", "Público", "Independiente", "Ind…
## $ Cantidad_Hijos <dbl> NA, NA, 1, 5, 0, 3, 4, 2, 2, 4, NA, 3, 0, 1, 0, 3…
## $ Propietario_Vivienda <chr> "No", "Sí", "Sí", "Sí", "No", "No", NA, "No", "No…
## $ Rango_Salario <chr> "Medio", "Medio", "Medio", "Bajo", "Alto", "Bajo"…
# Datos faltantes por columnas
gg_miss_var(Grupo_5)
# Datos faltantes en "Data Frame"
vis_miss(Grupo_5) +
theme(
plot.margin = margin(80, 40, 10, 10)
)
# Porcentaje total de valores faltantes
pct_miss(Grupo_5)
## [1] 6.666667
# Identificación de valores que faltan
is.na(Grupo_5)
## ID Edad Salario Experiencia Ciudad Nivel_Educativo
## [1,] FALSE FALSE FALSE FALSE FALSE FALSE
## [2,] FALSE FALSE FALSE FALSE FALSE FALSE
## [3,] FALSE FALSE FALSE FALSE FALSE FALSE
## [4,] FALSE FALSE FALSE FALSE FALSE FALSE
## [5,] FALSE FALSE FALSE FALSE FALSE FALSE
## [6,] FALSE FALSE FALSE FALSE FALSE FALSE
## [7,] FALSE FALSE FALSE TRUE FALSE FALSE
## [8,] FALSE FALSE FALSE FALSE FALSE FALSE
## [9,] FALSE TRUE FALSE FALSE FALSE FALSE
## [10,] FALSE TRUE FALSE TRUE TRUE FALSE
## [11,] FALSE FALSE FALSE FALSE FALSE FALSE
## [12,] FALSE FALSE FALSE FALSE FALSE FALSE
## [13,] FALSE FALSE FALSE FALSE FALSE FALSE
## [14,] FALSE TRUE FALSE FALSE FALSE FALSE
## [15,] FALSE FALSE FALSE FALSE FALSE FALSE
## [16,] FALSE FALSE FALSE TRUE FALSE FALSE
## [17,] FALSE FALSE FALSE TRUE FALSE FALSE
## [18,] FALSE FALSE FALSE TRUE FALSE FALSE
## [19,] FALSE FALSE FALSE FALSE FALSE FALSE
## [20,] FALSE FALSE FALSE TRUE FALSE FALSE
## [21,] FALSE FALSE FALSE FALSE FALSE FALSE
## [22,] FALSE FALSE TRUE FALSE FALSE FALSE
## [23,] FALSE FALSE FALSE FALSE FALSE FALSE
## [24,] FALSE FALSE FALSE FALSE FALSE FALSE
## [25,] FALSE FALSE FALSE FALSE FALSE FALSE
## [26,] FALSE FALSE FALSE FALSE FALSE FALSE
## [27,] FALSE FALSE FALSE FALSE FALSE FALSE
## [28,] FALSE FALSE FALSE FALSE FALSE FALSE
## [29,] FALSE FALSE TRUE FALSE FALSE FALSE
## [30,] FALSE FALSE FALSE TRUE FALSE FALSE
## [31,] FALSE FALSE FALSE FALSE FALSE FALSE
## [32,] FALSE FALSE TRUE TRUE FALSE FALSE
## [33,] FALSE FALSE FALSE FALSE FALSE FALSE
## [34,] FALSE FALSE FALSE FALSE FALSE FALSE
## [35,] FALSE FALSE TRUE FALSE FALSE TRUE
## [36,] FALSE FALSE FALSE FALSE FALSE FALSE
## [37,] FALSE FALSE FALSE FALSE FALSE FALSE
## [38,] FALSE FALSE FALSE FALSE FALSE FALSE
## [39,] FALSE FALSE FALSE FALSE FALSE FALSE
## [40,] FALSE FALSE FALSE FALSE FALSE FALSE
## [41,] FALSE FALSE FALSE FALSE FALSE FALSE
## [42,] FALSE FALSE FALSE FALSE FALSE FALSE
## [43,] FALSE FALSE FALSE FALSE FALSE FALSE
## [44,] FALSE FALSE FALSE FALSE FALSE FALSE
## [45,] FALSE FALSE FALSE FALSE FALSE FALSE
## [46,] FALSE FALSE TRUE FALSE FALSE FALSE
## [47,] FALSE FALSE FALSE FALSE FALSE FALSE
## [48,] FALSE FALSE FALSE FALSE FALSE FALSE
## [49,] FALSE FALSE FALSE TRUE FALSE FALSE
## [50,] FALSE FALSE FALSE FALSE FALSE FALSE
## [51,] FALSE FALSE FALSE FALSE FALSE FALSE
## [52,] FALSE FALSE FALSE FALSE FALSE FALSE
## [53,] FALSE FALSE TRUE FALSE TRUE FALSE
## [54,] FALSE FALSE FALSE FALSE FALSE FALSE
## [55,] FALSE FALSE FALSE FALSE FALSE FALSE
## [56,] FALSE FALSE FALSE FALSE FALSE FALSE
## [57,] FALSE FALSE FALSE FALSE FALSE FALSE
## [58,] FALSE FALSE FALSE FALSE FALSE FALSE
## [59,] FALSE FALSE FALSE FALSE FALSE FALSE
## [60,] FALSE FALSE FALSE FALSE FALSE FALSE
## [61,] FALSE FALSE FALSE TRUE TRUE FALSE
## [62,] FALSE FALSE FALSE FALSE FALSE FALSE
## [63,] FALSE FALSE FALSE FALSE FALSE FALSE
## [64,] FALSE TRUE FALSE TRUE FALSE FALSE
## [65,] FALSE FALSE FALSE FALSE FALSE FALSE
## [66,] FALSE FALSE FALSE FALSE FALSE FALSE
## [67,] FALSE FALSE FALSE FALSE FALSE FALSE
## [68,] FALSE FALSE FALSE FALSE FALSE FALSE
## [69,] FALSE FALSE FALSE FALSE FALSE FALSE
## [70,] FALSE FALSE FALSE FALSE FALSE FALSE
## [71,] FALSE FALSE FALSE TRUE FALSE FALSE
## [72,] FALSE FALSE FALSE FALSE FALSE FALSE
## [73,] FALSE FALSE FALSE TRUE FALSE FALSE
## [74,] FALSE FALSE FALSE FALSE FALSE FALSE
## [75,] FALSE FALSE TRUE FALSE FALSE TRUE
## [76,] FALSE FALSE FALSE FALSE FALSE FALSE
## [77,] FALSE FALSE FALSE FALSE FALSE FALSE
## [78,] FALSE FALSE FALSE FALSE FALSE FALSE
## [79,] FALSE FALSE FALSE FALSE FALSE FALSE
## [80,] FALSE TRUE FALSE FALSE FALSE FALSE
## [81,] FALSE FALSE FALSE FALSE FALSE FALSE
## [82,] FALSE FALSE FALSE FALSE FALSE FALSE
## [83,] FALSE FALSE FALSE FALSE FALSE FALSE
## [84,] FALSE FALSE FALSE TRUE FALSE FALSE
## [85,] FALSE FALSE FALSE FALSE FALSE FALSE
## [86,] FALSE FALSE FALSE FALSE FALSE FALSE
## [87,] FALSE FALSE FALSE FALSE FALSE FALSE
## [88,] FALSE FALSE FALSE FALSE FALSE FALSE
## [89,] FALSE FALSE FALSE TRUE FALSE FALSE
## [90,] FALSE FALSE FALSE FALSE FALSE FALSE
## [91,] FALSE FALSE FALSE FALSE FALSE FALSE
## [92,] FALSE FALSE FALSE TRUE FALSE FALSE
## [93,] FALSE FALSE FALSE FALSE FALSE FALSE
## [94,] FALSE FALSE FALSE FALSE FALSE FALSE
## [95,] FALSE FALSE FALSE FALSE FALSE FALSE
## [96,] FALSE FALSE FALSE TRUE FALSE FALSE
## [97,] FALSE FALSE FALSE FALSE FALSE FALSE
## [98,] FALSE FALSE FALSE FALSE FALSE FALSE
## [99,] FALSE FALSE FALSE FALSE FALSE FALSE
## [100,] FALSE FALSE FALSE FALSE FALSE FALSE
## Horas_Trabajo_Semana Estado_Civil Sector_Laboral Cantidad_Hijos
## [1,] FALSE FALSE FALSE TRUE
## [2,] TRUE FALSE FALSE TRUE
## [3,] FALSE FALSE FALSE FALSE
## [4,] FALSE TRUE FALSE FALSE
## [5,] FALSE FALSE FALSE FALSE
## [6,] TRUE FALSE FALSE FALSE
## [7,] FALSE FALSE FALSE FALSE
## [8,] FALSE FALSE FALSE FALSE
## [9,] FALSE FALSE FALSE FALSE
## [10,] FALSE FALSE FALSE FALSE
## [11,] FALSE FALSE FALSE TRUE
## [12,] FALSE FALSE FALSE FALSE
## [13,] FALSE FALSE FALSE FALSE
## [14,] FALSE FALSE TRUE FALSE
## [15,] FALSE FALSE FALSE FALSE
## [16,] FALSE FALSE FALSE FALSE
## [17,] TRUE FALSE FALSE TRUE
## [18,] FALSE FALSE FALSE FALSE
## [19,] FALSE FALSE FALSE FALSE
## [20,] FALSE FALSE FALSE FALSE
## [21,] FALSE FALSE FALSE FALSE
## [22,] FALSE FALSE FALSE FALSE
## [23,] FALSE FALSE FALSE FALSE
## [24,] FALSE FALSE FALSE FALSE
## [25,] FALSE FALSE TRUE TRUE
## [26,] FALSE FALSE FALSE TRUE
## [27,] TRUE FALSE FALSE FALSE
## [28,] FALSE FALSE FALSE FALSE
## [29,] FALSE FALSE FALSE FALSE
## [30,] FALSE FALSE TRUE FALSE
## [31,] FALSE FALSE FALSE FALSE
## [32,] FALSE FALSE FALSE FALSE
## [33,] FALSE FALSE FALSE FALSE
## [34,] FALSE FALSE FALSE FALSE
## [35,] FALSE FALSE FALSE TRUE
## [36,] FALSE FALSE FALSE FALSE
## [37,] FALSE TRUE TRUE FALSE
## [38,] TRUE FALSE FALSE FALSE
## [39,] FALSE FALSE FALSE FALSE
## [40,] FALSE FALSE FALSE FALSE
## [41,] FALSE FALSE FALSE TRUE
## [42,] FALSE FALSE FALSE FALSE
## [43,] FALSE FALSE TRUE TRUE
## [44,] FALSE FALSE FALSE FALSE
## [45,] FALSE FALSE FALSE FALSE
## [46,] FALSE FALSE TRUE FALSE
## [47,] FALSE FALSE FALSE FALSE
## [48,] TRUE FALSE FALSE FALSE
## [49,] FALSE FALSE FALSE FALSE
## [50,] FALSE FALSE FALSE FALSE
## [51,] FALSE FALSE FALSE FALSE
## [52,] FALSE FALSE FALSE FALSE
## [53,] FALSE FALSE FALSE FALSE
## [54,] FALSE FALSE FALSE FALSE
## [55,] FALSE FALSE FALSE FALSE
## [56,] FALSE FALSE FALSE FALSE
## [57,] FALSE FALSE FALSE FALSE
## [58,] FALSE FALSE FALSE FALSE
## [59,] FALSE FALSE FALSE FALSE
## [60,] FALSE FALSE TRUE FALSE
## [61,] FALSE FALSE FALSE FALSE
## [62,] FALSE FALSE FALSE FALSE
## [63,] FALSE FALSE FALSE FALSE
## [64,] FALSE FALSE FALSE FALSE
## [65,] FALSE FALSE FALSE FALSE
## [66,] FALSE FALSE FALSE TRUE
## [67,] FALSE FALSE FALSE FALSE
## [68,] TRUE FALSE FALSE FALSE
## [69,] FALSE FALSE FALSE FALSE
## [70,] FALSE FALSE FALSE FALSE
## [71,] FALSE FALSE TRUE FALSE
## [72,] FALSE FALSE FALSE FALSE
## [73,] FALSE FALSE FALSE FALSE
## [74,] FALSE FALSE FALSE FALSE
## [75,] FALSE FALSE FALSE FALSE
## [76,] FALSE FALSE FALSE FALSE
## [77,] TRUE FALSE FALSE FALSE
## [78,] FALSE FALSE FALSE FALSE
## [79,] FALSE FALSE FALSE FALSE
## [80,] FALSE FALSE FALSE FALSE
## [81,] FALSE FALSE FALSE FALSE
## [82,] FALSE FALSE FALSE FALSE
## [83,] FALSE FALSE FALSE FALSE
## [84,] FALSE FALSE FALSE FALSE
## [85,] TRUE FALSE FALSE FALSE
## [86,] FALSE FALSE TRUE FALSE
## [87,] FALSE FALSE FALSE FALSE
## [88,] FALSE FALSE FALSE FALSE
## [89,] FALSE FALSE FALSE FALSE
## [90,] FALSE FALSE FALSE FALSE
## [91,] FALSE FALSE FALSE FALSE
## [92,] FALSE FALSE TRUE FALSE
## [93,] FALSE FALSE FALSE FALSE
## [94,] FALSE FALSE FALSE FALSE
## [95,] FALSE FALSE FALSE FALSE
## [96,] TRUE FALSE FALSE FALSE
## [97,] FALSE FALSE FALSE FALSE
## [98,] FALSE FALSE FALSE FALSE
## [99,] FALSE FALSE FALSE FALSE
## [100,] FALSE FALSE FALSE FALSE
## Propietario_Vivienda Rango_Salario
## [1,] FALSE FALSE
## [2,] FALSE FALSE
## [3,] FALSE FALSE
## [4,] FALSE FALSE
## [5,] FALSE FALSE
## [6,] FALSE FALSE
## [7,] TRUE FALSE
## [8,] FALSE FALSE
## [9,] FALSE FALSE
## [10,] FALSE FALSE
## [11,] FALSE FALSE
## [12,] FALSE FALSE
## [13,] FALSE FALSE
## [14,] FALSE FALSE
## [15,] FALSE FALSE
## [16,] FALSE FALSE
## [17,] FALSE FALSE
## [18,] FALSE FALSE
## [19,] FALSE FALSE
## [20,] FALSE FALSE
## [21,] FALSE FALSE
## [22,] FALSE TRUE
## [23,] FALSE FALSE
## [24,] FALSE FALSE
## [25,] TRUE FALSE
## [26,] FALSE FALSE
## [27,] FALSE FALSE
## [28,] FALSE FALSE
## [29,] TRUE TRUE
## [30,] FALSE FALSE
## [31,] FALSE FALSE
## [32,] FALSE TRUE
## [33,] FALSE FALSE
## [34,] FALSE FALSE
## [35,] FALSE TRUE
## [36,] FALSE FALSE
## [37,] FALSE FALSE
## [38,] FALSE FALSE
## [39,] TRUE FALSE
## [40,] FALSE FALSE
## [41,] FALSE FALSE
## [42,] FALSE FALSE
## [43,] FALSE FALSE
## [44,] FALSE FALSE
## [45,] FALSE FALSE
## [46,] FALSE TRUE
## [47,] FALSE FALSE
## [48,] TRUE FALSE
## [49,] FALSE FALSE
## [50,] FALSE FALSE
## [51,] FALSE FALSE
## [52,] FALSE FALSE
## [53,] FALSE TRUE
## [54,] FALSE FALSE
## [55,] FALSE FALSE
## [56,] FALSE FALSE
## [57,] FALSE FALSE
## [58,] FALSE FALSE
## [59,] FALSE FALSE
## [60,] FALSE FALSE
## [61,] FALSE FALSE
## [62,] FALSE FALSE
## [63,] FALSE FALSE
## [64,] FALSE FALSE
## [65,] FALSE FALSE
## [66,] FALSE FALSE
## [67,] FALSE FALSE
## [68,] FALSE FALSE
## [69,] FALSE FALSE
## [70,] TRUE FALSE
## [71,] FALSE FALSE
## [72,] FALSE FALSE
## [73,] FALSE FALSE
## [74,] FALSE FALSE
## [75,] FALSE TRUE
## [76,] FALSE FALSE
## [77,] TRUE FALSE
## [78,] FALSE FALSE
## [79,] FALSE FALSE
## [80,] FALSE FALSE
## [81,] FALSE FALSE
## [82,] FALSE FALSE
## [83,] FALSE FALSE
## [84,] FALSE FALSE
## [85,] FALSE FALSE
## [86,] FALSE FALSE
## [87,] FALSE FALSE
## [88,] FALSE FALSE
## [89,] FALSE FALSE
## [90,] FALSE FALSE
## [91,] FALSE FALSE
## [92,] FALSE FALSE
## [93,] FALSE FALSE
## [94,] FALSE FALSE
## [95,] FALSE FALSE
## [96,] FALSE FALSE
## [97,] FALSE FALSE
## [98,] FALSE FALSE
## [99,] FALSE FALSE
## [100,] FALSE FALSE
# Número de valores que faltan en total
sum(is.na(Grupo_5))
## [1] 80
# Identificación de inconsistencias
inconsistentes <- Grupo_5 %>%
filter(!is.na(Edad),
!is.na(Experiencia),
Experiencia > Edad)
inconsistentes
## # A tibble: 11 × 12
## ID Edad Salario Experiencia Ciudad Nivel_Educativo Horas_Trabajo_Semana
## <dbl> <dbl> <dbl> <dbl> <chr> <chr> <dbl>
## 1 2 31 30399 37 Bayamón Secundaria NA
## 2 3 29 32214 36 San Juan Secundaria 46
## 3 19 30 32892 34 Ponce Primaria 37
## 4 23 19 20751 38 Ponce Universitario 41
## 5 24 34 46274 35 Bayamón Universitario 39
## 6 52 32 45581 33 Ponce Primaria 20
## 7 65 30 63138 34 Ponce Universitario 50
## 8 79 33 25462 34 Ponce Secundaria 29
## 9 81 18 26948 24 Ponce Secundaria 35
## 10 85 20 20393 28 Bayamón Universitario NA
## 11 95 23 69554 32 Ponce Primaria 29
## # ℹ 5 more variables: Estado_Civil <chr>, Sector_Laboral <chr>,
## # Cantidad_Hijos <dbl>, Propietario_Vivienda <chr>, Rango_Salario <chr>
# Corrección de inconsistencia
Grupo_5Nuevo <- Grupo_5 %>%
mutate(
Experiencia = ifelse(
Experiencia > Edad,
NA,
Experiencia))
Grupo_5Nuevo %>%
filter(Experiencia > Edad)
## # A tibble: 0 × 12
## # ℹ 12 variables: ID <dbl>, Edad <dbl>, Salario <dbl>, Experiencia <dbl>,
## # Ciudad <chr>, Nivel_Educativo <chr>, Horas_Trabajo_Semana <dbl>,
## # Estado_Civil <chr>, Sector_Laboral <chr>, Cantidad_Hijos <dbl>,
## # Propietario_Vivienda <chr>, Rango_Salario <chr>
# 1) Variables continuas (mean)
Data_cont <- Grupo_5Nuevo %>% select(Edad, Salario, Experiencia, Horas_Trabajo_Semana, Cantidad_Hijos)
Imput_mean <- mice(Data_cont, method = "mean", print = F)
complete_mean <- mice::complete(Imput_mean)
# 2) Variables categóricas (cart)
Data_cat <- Grupo_5Nuevo %>% select(Sector_Laboral, Propietario_Vivienda, Rango_Salario)
Imput_mode <- mice(Data_cat, method = "cart", print = F)
complete_mode <- mice::complete(Imput_mode)
Grupo_5_final <- bind_cols(complete_mean, complete_mode)
# Convertir datos a formato largo
data_long <- bind_rows(
Data_cont %>%
select(Edad, Salario, Experiencia, Horas_Trabajo_Semana, Cantidad_Hijos) %>%
mutate(Origen = "Original"),
complete_mean %>%
select(Edad, Salario, Experiencia, Horas_Trabajo_Semana, Cantidad_Hijos) %>%
mutate(Origen = "Imputado")) %>%
pivot_longer(cols = c(Edad, Salario, Experiencia, Horas_Trabajo_Semana, Cantidad_Hijos), names_to = "Variable", values_to = "Valor")
# Crear gráfico de densidad
p1 <- ggplot(data_long, aes(x = Valor,
color = Origen,
fill = Origen,
text = paste("Origen:", Origen))) +
geom_density(alpha = 0.2) +
facet_wrap(~Variable, scales = "free") +
labs(title = "Comportamiento de la Imputación",
x = "Variables",
y = "Densidad") +
theme_minimal()
ggplotly(p1, tooltip = c("text", "x", "y"))
### Para Variable Categórica: Sector_Laboral
# Crear data.frame antes y después de la imputación
data_cat <- bind_rows(
Data_cat %>% select(Sector_Laboral) %>% mutate(Origen = "Original"),
complete_mode %>% select(Sector_Laboral) %>% mutate(Origen = "Imputado")
) %>%
filter(!is.na(Sector_Laboral))
# Crear gráfico de barras
p2 <- ggplot(data_cat,
aes(x = Sector_Laboral,
fill = Origen,
text = paste("Origen:", Origen))) +
geom_bar(position = "dodge") +
labs(title = "",
x = "Sector Laboral",
y = "Frecuencia") +
theme_minimal()
ggplotly(p2, tooltip = c("text", "x", "y"))
### Para Variable Categórica: Propietario_Vivienda
# Crear data.frame antes y después de la imputación
data_cat <- bind_rows(
Data_cat %>% select(Propietario_Vivienda) %>% mutate(Origen = "Original"),
complete_mode %>% select(Propietario_Vivienda) %>% mutate(Origen = "Imputado")
) %>%
filter(!is.na(Propietario_Vivienda))
# Crear gráfico de barras
p3 <- ggplot(data_cat,
aes(x = Propietario_Vivienda,
fill = Origen,
text = paste("Origen:", Origen))) +
geom_bar(position = "dodge") +
labs(title = "",
x = "Propietario_Vivienda",
y = "Frecuencia") +
theme_minimal()
ggplotly(p3, tooltip = c("text", "x", "y"))
### Para Variable Categórica: Rango_Salario
# Crear data.frame antes y después de la imputación
data_cat <- bind_rows(
Data_cat %>% select(Rango_Salario) %>% mutate(Origen = "Original"),
complete_mode %>% select(Rango_Salario) %>% mutate(Origen = "Imputado")
) %>%
filter(!is.na(Rango_Salario))
# Crear gráfico de barras
p4 <- ggplot(data_cat,
aes(x = Rango_Salario,
fill = Origen,
text = paste("Origen:", Origen))) +
geom_bar(position = "dodge") +
labs(title = "",
x = "Rango_Salario",
y = "Frecuencia") +
theme_minimal()
ggplotly(p4, tooltip = c("text", "x", "y"))
Grupo_5_final <- Grupo_5Nuevo %>%
mutate(
Ciudad = as.factor(Ciudad),
Nivel_Educativo = as.factor(Nivel_Educativo),
Estado_Civil = as.factor(Estado_Civil),
Sector_Laboral = as.factor(Sector_Laboral),
Propietario_Vivienda = as.factor(Propietario_Vivienda),
Rango_Salario = as.factor(Rango_Salario)
)
str(Grupo_5_final)
## tibble [100 × 12] (S3: tbl_df/tbl/data.frame)
## $ ID : num [1:100] 1 2 3 4 5 6 7 8 9 10 ...
## $ Edad : num [1:100] 47 31 29 56 45 34 63 19 NA NA ...
## $ Salario : num [1:100] 35465 30399 32214 28196 66854 ...
## $ Experiencia : num [1:100] 27 NA NA 38 10 32 NA 9 NA NA ...
## $ Ciudad : Factor w/ 4 levels "Bayamón","Caguas",..: 3 1 4 4 4 4 1 1 4 NA ...
## $ Nivel_Educativo : Factor w/ 3 levels "Primaria","Secundaria",..: 1 2 2 1 3 1 1 1 3 3 ...
## $ Horas_Trabajo_Semana: num [1:100] 39 NA 46 57 25 NA 32 56 43 20 ...
## $ Estado_Civil : Factor w/ 3 levels "Casado","Divorciado",..: 3 3 3 NA 1 3 2 2 2 1 ...
## $ Sector_Laboral : Factor w/ 3 levels "Independiente",..: 1 3 1 1 2 1 2 2 1 2 ...
## $ Cantidad_Hijos : num [1:100] NA NA 1 5 0 3 4 2 2 4 ...
## $ Propietario_Vivienda: Factor w/ 2 levels "No","Sí": 1 2 2 2 1 1 NA 1 1 1 ...
## $ Rango_Salario : Factor w/ 3 levels "Alto","Bajo",..: 3 3 3 2 1 2 3 3 2 2 ...
library(dplyr)
library(plotly)
library(RColorBrewer)
corr <- cor(dplyr::select_if(Grupo_5Nuevo, is.numeric),
use = "pairwise.complete.obs")
pal <- colorRampPalette(brewer.pal(11, "RdBu"))(30)
plot_ly() %>%
add_heatmap(
x = colnames(corr),
y = rownames(corr),
z = corr,
colors = pal,
zmin = -1, zmax = 1
) %>%
colorbar(limits = c(-1, 1))
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.1 ✔ purrr 1.2.1
## ✔ lubridate 1.9.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ magrittr::extract() masks tidyr::extract()
## ✖ plotly::filter() masks mice::filter(), dplyr::filter(), stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ purrr::set_names() masks magrittr::set_names()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(plotly)
# Resumir la cantidad de hijos por rango de salario
datos_hijos <- Grupo_5Nuevo %>%
group_by(Rango_Salario) %>%
summarise(prom_hijos = mean(Cantidad_Hijos, na.rm = TRUE))
# Gráfico de barras
g <- ggplot(datos_hijos, aes(x = Rango_Salario, y = prom_hijos, fill = Rango_Salario)) +
geom_bar(stat = "identity")
# Convertir a gráfico interactivo
ggplotly(g)
library(plotly)
plot_ly(Grupo_5Nuevo,
x = ~Experiencia,
y = ~Salario,
type = "scatter",
mode = "markers")