Introducción

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.

Resultados

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