El Módulo sobre Eventos Culturales Seleccionados (MODECULT) genera información estadística sobre la asistencia a eventos culturales y la participación en actividades artísticas de la población en México. Lo anterior, a fin de proporcionar datos clave para contribuir al diseño de políticas públicas. Desde 2016 y hasta mayo de 2024, el módulo se levantó como parte de la Encuesta Nacional sobre Confianza del Consumidor (ENCO). A partir de 2025 el programa tiene un actualización conceptual y metodológica y se levanta con un operativo y muestra de viviendas independientes a la ENCO.
En este trabajo se analizan los promedios de las asistencias a diferentes eventos culturales en función del numero de veces que se asisten en el ultimo año, es decir, entre junio del 2024 y junio de 2025 ya que la encuesta fue levantada en este mes.
En el cuadro uno se presentan los resultados en general.
### Trabajaremos con una base de datos de la MODECULT
## La información la proporciona el INEGI
### Empezaremos por definir la ruta de trabajo, el derectorio (la carpeta)setwd("D:/Uribe/conjunto_de_datos_modecult_modecult2025/conjunto_de_datos")
setwd("D:/Uribe/conjunto_de_datos_modecult_modecult2025/conjunto_de_datos")
## Voy a abrir la base de datos importarla desde el formato cvslibrary(readr)
library(readr) ## Abrimos el paquete redr
## Warning: package 'readr' was built under R version 4.5.3
base <- read_csv("conjunto_de_datos_tmodecult_modecult2025.csv")
## Rows: 4240 Columns: 76
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (17): llaveviv, p1_1, p1_2, p1_3, p1_4, p1_5, p1_6, p1_7, p1_7_esp, p1_...
## dbl (58): p2_1, p2_2, p2_3, p2_4, p2_5, p2_6, p3_1, p3_2, p3_3, f_s2_5, p4_...
## dttm (1): llavemod
##
## ℹ 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.
library(dplyr) ### Paquete importante
## Warning: package 'dplyr' was built under R version 4.5.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
base <- base %>%
mutate(across(p1_1:p1_7,as.numeric))
# Creamos la columna "promedio_p1" en tu dataset
library(dplyr)
## medir las medias en la consola
medias <- base %>%
summarise(across(p1_1:p1_7, \(x) mean(x, na.rm = TRUE)))
attr(base$p1_1, "label") <- "Obra de teatro (comedia, musical, títeres)"
attr(base$p1_2, "label") <- "Concierto o presentación de música en vivo"
attr(base$p1_3, "label") <- "Espectáculo de danza (contemporánea, folclórica, ballet)"
attr(base$p1_4, "label") <- "Exposición o museo (pintura, fotografía, ciencia, historia)"
attr(base$p1_5, "label") <- "Proyección de películas o cine"
attr(base$p1_6, "label") <- "Ferias (muestras artesanales, gastronómicas, productos locales)"
attr(base$p1_7, "label") <- "Otro espectáculo cultural (circo, charrería)"
library(expss)
## Warning: package 'expss' was built under R version 4.5.3
## Cargando paquete requerido: maditr
## Warning: package 'maditr' was built under R version 4.5.3
##
## To aggregate several columns with one summary: take(mtcars, mpg, hp, fun = mean, by = am)
##
##
## Adjuntando el paquete: 'maditr'
##
## The following objects are masked from 'package:dplyr':
##
## between, coalesce, first, last
##
## The following object is masked from 'package:readr':
##
## cols
##
##
## Adjuntando el paquete: 'expss'
##
## The following objects are masked from 'package:dplyr':
##
## compute, contains, na_if, recode, vars, where
# Creamos la tabla calculando la media para tus variables p1_1 a p1_7
tabla_medias = base %>%
tab_cells(p1_1, p1_2, p1_3, p1_4, p1_5, p1_6, p1_7) %>%
tab_stat_fun("Media" = w_mean) %>%
tab_pivot()
# Imprimir la tabla en la consola con sus etiquetas
tabla_medias
| #Total | |
|---|---|
| Obra de teatro (comedia, musical, títeres) | |
| Media | 0.3 |
| Concierto o presentación de música en vivo | |
| Media | 0.8 |
| Espectáculo de danza (contemporánea, folclórica, ballet) | |
| Media | 0.4 |
| Exposición o museo (pintura, fotografía, ciencia, historia) | |
| Media | 0.3 |
| Proyección de películas o cine | |
| Media | 1.8 |
| Ferias (muestras artesanales, gastronómicas, productos locales) | |
| Media | 0.9 |
| Otro espectáculo cultural (circo, charrería) | |
| Media | 0.0 |
## la variable sexo
base %>% count(sexo)
## # A tibble: 2 × 2
## sexo n
## <dbl> <int>
## 1 1 1949
## 2 2 2291
base$sexo = factor(base$sexo,
levels = c(1, 2),
labels = c("Hombres", "Mujeres"))
Ahora comparamos por sexo
library(dplyr)
library(tidyr)
## Warning: package 'tidyr' was built under R version 4.5.3
##
## Adjuntando el paquete: 'tidyr'
## The following objects are masked from 'package:expss':
##
## contains, nest
library(purrr)
## Warning: package 'purrr' was built under R version 4.5.3
##
## Adjuntando el paquete: 'purrr'
## The following objects are masked from 'package:expss':
##
## keep, modify, modify_if, when
## The following object is masked from 'package:maditr':
##
## transpose
tabla_df_sexo = base %>%
# Agrupamos por sexo
group_by(sexo) %>%
# Calculamos la media de cada pregunta omitiendo valores perdidos
summarise(across(p1_1:p1_7, \(x) mean(x, na.rm = TRUE)), .groups = 'drop') %>%
# Pasamos a formato largo
pivot_longer(cols = p1_1:p1_7, names_to = "Variable", values_to = "Media") %>%
# Agregamos las etiquetas de texto de las preguntas
mutate(Etiqueta = map_chr(Variable, \(v) attr(base[[v]], "label") %||% v)) %>%
# Acomodamos las columnas para que sea fácil de leer
select(sexo, Variable, Etiqueta, Media)
print(tabla_df_sexo)
## # A tibble: 14 × 4
## sexo Variable Etiqueta Media
## <fct> <chr> <chr> <dbl>
## 1 Hombres p1_1 Obra de teatro (comedia, musical, títeres) 0.273
## 2 Hombres p1_2 Concierto o presentación de música en vivo 0.847
## 3 Hombres p1_3 Espectáculo de danza (contemporánea, folclórica, bal… 0.347
## 4 Hombres p1_4 Exposición o museo (pintura, fotografía, ciencia, hi… 0.348
## 5 Hombres p1_5 Proyección de películas o cine 2.00
## 6 Hombres p1_6 Ferias (muestras artesanales, gastronómicas, product… 0.890
## 7 Hombres p1_7 Otro espectáculo cultural (circo, charrería) 0.0395
## 8 Mujeres p1_1 Obra de teatro (comedia, musical, títeres) 0.289
## 9 Mujeres p1_2 Concierto o presentación de música en vivo 0.684
## 10 Mujeres p1_3 Espectáculo de danza (contemporánea, folclórica, bal… 0.429
## 11 Mujeres p1_4 Exposición o museo (pintura, fotografía, ciencia, hi… 0.281
## 12 Mujeres p1_5 Proyección de películas o cine 1.62
## 13 Mujeres p1_6 Ferias (muestras artesanales, gastronómicas, product… 0.856
## 14 Mujeres p1_7 Otro espectáculo cultural (circo, charrería) 0.0340