#Una historia con datos 2.- Realice un análisis descriptivo de la variable ingreso trimestral.
library(readxl)
datos_enigh_examen <- read_excel("C:/Users/sugei/Downloads/datos_enigh_examen.xlsx")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.1 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
glimpse(datos_enigh_examen)
## Rows: 194,510
## Columns: 11
## $ folioviv <dbl> 100013605, 100013605, 100013606, 100013606, 100017801, 100…
## $ foliohog <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ numren <dbl> 1, 2, 1, 3, 1, 2, 1, 1, 1, 1, 3, 1, 2, 1, 2, 1, 3, 1, 2, 4…
## $ FVH_numrem <chr> "10001360511", "10001360512", "10001360611", "10001360613"…
## $ Entidad_cod <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ Entidad <chr> "Aguascalientes", "Aguascalientes", "Aguascalientes", "Agu…
## $ Zona <chr> "Centro", "Centro", "Centro", "Centro", "Centro", "Centro"…
## $ parentesco <dbl> 101, 301, 101, 301, 101, 201, 101, 101, 101, 101, 301, 101…
## $ sexo_cod <chr> "Mujer", "Mujer", "Hombre", "Hombre", "Hombre", "Mujer", "…
## $ edad <dbl> 48, 17, 46, 17, 26, 26, 29, 63, 33, 60, 30, 76, 73, 74, 68…
## $ ingreso <dbl> 6295.08, 5409.83, 21639.34, 1573.77, 23606.55, 983.60, 678…
str(datos_enigh_examen)
## tibble [194,510 × 11] (S3: tbl_df/tbl/data.frame)
## $ folioviv : num [1:194510] 1e+08 1e+08 1e+08 1e+08 1e+08 ...
## $ foliohog : num [1:194510] 1 1 1 1 1 1 1 1 1 1 ...
## $ numren : num [1:194510] 1 2 1 3 1 2 1 1 1 1 ...
## $ FVH_numrem : chr [1:194510] "10001360511" "10001360512" "10001360611" "10001360613" ...
## $ Entidad_cod: num [1:194510] 1 1 1 1 1 1 1 1 1 1 ...
## $ Entidad : chr [1:194510] "Aguascalientes" "Aguascalientes" "Aguascalientes" "Aguascalientes" ...
## $ Zona : chr [1:194510] "Centro" "Centro" "Centro" "Centro" ...
## $ parentesco : num [1:194510] 101 301 101 301 101 201 101 101 101 101 ...
## $ sexo_cod : chr [1:194510] "Mujer" "Mujer" "Hombre" "Hombre" ...
## $ edad : num [1:194510] 48 17 46 17 26 26 29 63 33 60 ...
## $ ingreso : num [1:194510] 6295 5410 21639 1574 23607 ...
head(datos_enigh_examen)
## # A tibble: 6 × 11
## folioviv foliohog numren FVH_numrem Entidad_cod Entidad Zona parentesco
## <dbl> <dbl> <dbl> <chr> <dbl> <chr> <chr> <dbl>
## 1 100013605 1 1 10001360511 1 Aguascalie… Cent… 101
## 2 100013605 1 2 10001360512 1 Aguascalie… Cent… 301
## 3 100013606 1 1 10001360611 1 Aguascalie… Cent… 101
## 4 100013606 1 3 10001360613 1 Aguascalie… Cent… 301
## 5 100017801 1 1 10001780111 1 Aguascalie… Cent… 101
## 6 100017801 1 2 10001780112 1 Aguascalie… Cent… 201
## # ℹ 3 more variables: sexo_cod <chr>, edad <dbl>, ingreso <dbl>
tail(datos_enigh_examen)
## # A tibble: 6 × 11
## folioviv foliohog numren FVH_numrem Entidad_cod Entidad Zona parentesco
## <dbl> <dbl> <dbl> <chr> <dbl> <chr> <chr> <dbl>
## 1 3260770717 1 1 326077071711 32 Zacatecas Cent… 101
## 2 3260770717 1 3 326077071713 32 Zacatecas Cent… 301
## 3 3260770717 1 4 326077071714 32 Zacatecas Cent… 301
## 4 3260770718 1 1 326077071811 32 Zacatecas Cent… 101
## 5 3260770718 1 2 326077071812 32 Zacatecas Cent… 301
## 6 3260770718 1 3 326077071813 32 Zacatecas Cent… 301
## # ℹ 3 more variables: sexo_cod <chr>, edad <dbl>, ingreso <dbl>
#Analisis La base de datos cuenta con un total de 194,510 y 11 variables. Entre las variables numericas se encuentran folioviv, foliohog, numren, Entidad_cod, parentesco, edad e ingreso, mientras que en las variables de texto se encuentran FVH_numrem, Entidad, Zona y sexo_cod
3.- Realice un filtro donde el ingreso sea mayor al primer cuartil (1st Qu.) y hasta $30,000 y guárdelo en un objeto nuevo.
cuantil_1<-quantile(datos_enigh_examen$ingreso, 0.25)
cuantil_1
## 25%
## 2373.62
summary(datos_enigh_examen$ingreso)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.000e-01 2.374e+03 8.609e+03 1.378e+04 1.790e+04 1.069e+07
datos_filtrados<-datos_enigh_examen%>%
filter(ingreso>cuantil_1, ingreso<=3000)
datos_filtrados
## # A tibble: 9,662 × 11
## folioviv foliohog numren FVH_numrem Entidad_cod Entidad Zona parentesco
## <dbl> <dbl> <dbl> <chr> <dbl> <chr> <chr> <dbl>
## 1 100021405 1 1 10002140511 1 Aguascali… Cent… 101
## 2 100041903 1 2 10004190312 1 Aguascali… Cent… 201
## 3 100044702 1 3 10004470213 1 Aguascali… Cent… 301
## 4 100044705 1 1 10004470511 1 Aguascali… Cent… 101
## 5 100045304 1 2 10004530412 1 Aguascali… Cent… 603
## 6 100054201 1 2 10005420112 1 Aguascali… Cent… 201
## 7 100054203 1 3 10005420313 1 Aguascali… Cent… 301
## 8 100058701 1 1 10005870111 1 Aguascali… Cent… 101
## 9 100062606 2 2 10006260622 1 Aguascali… Cent… 201
## 10 100117604 1 2 10011760412 1 Aguascali… Cent… 201
## # ℹ 9,652 more rows
## # ℹ 3 more variables: sexo_cod <chr>, edad <dbl>, ingreso <dbl>
max(datos_filtrados$ingreso)
## [1] 2999.99
min(datos_filtrados$ingreso)
## [1] 2375.4
4.- Puede realizar una selección (SELECT) de sus variables con respecto al análisis que va a realizar, así como utilizar group_by o cualquier otro verbo que hayamos visto en clase o tengan en sus diapositivas.
datos_analisis <- datos_filtrados %>%
select(Entidad, Zona, sexo_cod, edad, ingreso) %>%
group_by(Entidad, sexo_cod) %>%
summarise(promedio_ingresos = mean(ingreso, na.rm = TRUE))
## `summarise()` has grouped output by 'Entidad'. You can override using the
## `.groups` argument.
datos_analisis
## # A tibble: 64 × 3
## # Groups: Entidad [32]
## Entidad sexo_cod promedio_ingresos
## <chr> <chr> <dbl>
## 1 Aguascalientes Hombre 2743.
## 2 Aguascalientes Mujer 2709.
## 3 Baja California Hombre 2732.
## 4 Baja California Mujer 2716.
## 5 Baja California Sur Hombre 2703.
## 6 Baja California Sur Mujer 2718.
## 7 CDMX Hombre 2740.
## 8 CDMX Mujer 2720.
## 9 Campeche Hombre 2721.
## 10 Campeche Mujer 2705.
## # ℹ 54 more rows
#Visualizaciones
grafica_datos<-ggplot(datos_analisis, aes(Entidad, promedio_ingresos))+
geom_col(color="pink", fill="plum")+
coord_flip()+
labs(
x="Entidad Federativa",
y="Promedio de ingresos trimestrales",
subtitle="Pesos corrientes",
caption="Fuente: Elaboración propia con datos de la ENIGH"
)+
scale_y_continuous(labels = scales::comma)
grafica_datos