Planeación estratégica basada en analítica prescriptiva
Grupo 503
Profesor David Saucedo
Equipo 7:
A00833113 - Avril Lobato
La ZMM se ha consolidado como un polo estratégico para el turismo de negocios y entretenimiento en México. De acuerdo con la Secretaría de Turismo de Nuevo León, el estado recibió 4.1 millones de visitantes en 2021, una cifra que aumentó hasta alcanzar los 15 millones en 2024; generando una derrama económica de 17,721 millones de pesos. La ocupación hotelera alcanzó un promedio del 63.91%, con una tarifa promedio de $1,776.06 pesos.
El posicionamiento de Nuevo León como un hub de interconexión global, con vuelos directos a América Latina a través de Bogotá, a Asia mediante Tokio y Seúl, y a Europa con conexión a Madrid ha permitido que el Aeropuerto Internacional de Monterrey opere 64 destinos nacionales e internacionales, un crecimiento notable desde los 45 destinos registrados por la Secretaría de Turismo en 2021. A pesar de estos esfuerzos, el turismo en el estado sigue siendo predominantemente local, ya que el 86% de los visitantes provienen de otras partes de México (Secretaría de Turismo de Nuevo León. 2024).
Asimismo, Monterrey es un importante centro financiero y sede de convenciones, atrayendo viajeros corporativos. Por ello, el turismo de reuniones es un motor clave, con más de 250 eventos anuales, como congresos y exposiciones internacionales. Además, la región ha diversificado su oferta turística, impulsando segmentos como naturaleza y aventura, gastronomía, salud y cinematografía.
Dicho crecimiento acelerado junto con la participación de Nuevo León en eventos d egran nivel como el Mundial FIFA 2026 subrayan la necesidad de contar con indicadores robustos y mecanismos de análisis prospectivo que permitan anticipar riesgos. La volatilidad del entorno económico, los cambios en la movilidad nacional e internacional, así como la concentración de la demanda turística en ciertos segmentos, plantean desafíos para la sostenibilidad del crecimiento. Por ello, se vuelve crucial generar herramientas analíticas que faciliten la toma de decisiones estratégicas, minimicen vulnerabilidades y orienten políticas públicas más resilientes.
Industria Hotelera: Llegada de Turistas Nacionales & Turistas Extranjeros
Variables de ocupación y habitaciones muy relacionadas con la derrama:
Turistas_Noche_Ext (noches de extranjeros) y Cuartos_Ocupados muestran correlaciones con la derrama de r ≈ 0.88 y r ≈ 0.86 respectivamente.
Llegada_Tur_Ext, Turistas_Noche_Nac y %Ocupacion_Hoteles también superan r ≈ 0.8.
Lo anterior confirma que a más ocupación y llegadas de turistas, mayor derrama.
df_log <- df_log[!is.na(df_log$"Derrama_Economica_Est_mdp"), ]
derrama_ts <- ts(df_log$"Derrama_Economica_Est_mdp", start = c(2004, 1), end = c(2024, 12), frequency = 12)
plot(derrama_ts, type = "l", col = "darkgreen", lwd = 2,
xlab = "Año", ylab = "Derrama Económica",
main = "Serie Temporal de Derrama_Economica_Est_mdp")
Meses de “temporada alta”
Meses de “temporada baja”
Enero (1) es el más bajo en mediana, con pocos outliers, reflejando el típico bajón tras la temporada navideña.
Septiembre (9) y febrero (2) también presentan medianas reducidas , posiblemente por vacaciones cortas o periodos de baja actividad turística.
boxplot(derrama_ts ~ cycle(derrama_ts),
xlab = "Mes", ylab = "Derrama",
main = "Estacionalidad mensual", col = "lightblue")
Un incremento sostenido del 50 % en las llegadas nacionales a partir de junio-2026 añadiría, en promedio, +46 mdp mensuales a la derrama hotelera durante el siguiente año, reduciendo a la mitad las caídas estacionales de diciembre y abril. Elevar el escenario al 75 % aportaría +15 mdp extra, pero con rendimientos decrecientes. Los meses de octubre y enero son los puntos de mayor sensibilidad: concentrar promociones en dichos momentos maximizaría el retorno por cada peso invertido en captar turistas nacionales. El coeficiente VAR de Llegada_Tur_Nac_diff es positivo, por ende, se calcula que:
Un alza del 25 % sólo ajusta la derrama mensual ±3 a 15 mdp según el signo de la serie (aliviana pérdidas, pero recorta leves ganancias).
Impacto proporcional: Junio-26: un +25 % / +50 % / +75 % en llegadas nacionales mejora la variación de derrama de -35 → -21 / -18 / -15 mdp
En meses con derrama positiva (p.ej. Jul-26 = 118 mdp), el aumento de turistas resta ~3-4 mdp al nivel registrado.
Incrementar 25-75 % las llegadas nacionales no genera saltos significativos: el rango completo de impacto está dentro de ±17 mdp mensuales.
Dic-26 y Abr-27 son los peores meses en el escenario real (-136 y -43 mdp). Con +50 % de turistas las caídas se recortan 19 % y 27 % respectivamente.
turistas_nacionales_ts <- ts(df_final$Llegada_Tur_Nac_diff, start = c(2015, 1), frequency = 12)
seasonplot(turistas_nacionales_ts, year.labels = TRUE, col = 1:20, main = "Estacionalidad por mes")
forecast_nacionales <- forecast::forecast(auto_nacionales, h = 30)
plot(forecast_nacionales,
main = "Pronóstico Llegada de Turistas Nac para el Mundial 2026",
ylab = "Llegadas de Turistas Nacionales",
xlab = "Año")
# Extraer fechas a partir del último dato
fec_forecast <- function(ts_obj, h){
ult <- end(ts_obj) # c(año, mes) del último dato
m_ini <- ifelse(ult[2] == 12, 1, ult[2] + 1)
a_ini <- ifelse(ult[2] == 12, ult[1] + 1, ult[1])
seq(as.Date(sprintf("%d-%02d-01", a_ini, m_ini)),
by = "1 month", length.out = h)
}
h<-30
fechas_nac<- fec_forecast(turistas_nacionales_ts,h)
# Creación del data frame con resultados
df_forecast <- data.frame(
Fecha = fechas_nac,
Pronostico = as.numeric(forecast_nacionales$mean),
Lower80 = as.numeric(forecast_nacionales$lower[,1]),
Upper80 = as.numeric(forecast_nacionales$upper[,1]),
Lower95 = as.numeric(forecast_nacionales$lower[,2]),
Upper95 = as.numeric(forecast_nacionales$upper[,2])
)
ggplot(df_forecast, aes(x = Fecha, y = Pronostico)) +
geom_ribbon(aes(ymin = Lower95, ymax = Upper95), fill = "lightblue", alpha = 0.4) +
geom_ribbon(aes(ymin = Lower80, ymax = Upper80), fill = "blue", alpha = 0.4) +
geom_line(color = "darkblue", size = 1) +
labs(title = "Pronóstico Llegada Turistas Nacionales hasta Mayo 2026",
x = "Fecha", y = "Llegadas") +
scale_x_date(date_labels = "%b-%Y", date_breaks = "2 months") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
El coeficiente de Llegada_Tur_Ext_diff en el VAR es negativo; por eso, al simular +25 % / +50 % / +75 % las curvas de color (rojo, verde, azul) se mueven ligeramente por debajo de la línea morada (Real) en casi todos los meses:
Dic-26 es el escenario más profundo (-154 mdp real). El aumento del 75 % de turistas ext. empeora la caída a -159 mdp: un ajuste -5 mdp adicional.
Ago-26 y Abr-27 muestran pequeños deterioros (-4 a -6 mdp) al comparar Real vs +75 %.
Para la derrama hotelera, un shock de turistas extranjeros no es rentable en el corto plazo bajo la estructura actual:
La elasticidad estimada es negativa y pequeña.
Incrementar flujos foráneos hasta +75 % apenas modifica la derrama (entre 0 y -6 mdp por mes).
turistas_ext_ts <- ts(df_final$Llegada_Tur_Ext_diff, start = c(2015, 1), frequency = 12)
seasonplot(turistas_ext_ts, year.labels = TRUE, col = 1:20, main = "Estacionalidad por mes")
forecast_extranjeros <- forecast::forecast(modelo_mejorado_log, h = 30)
plot(forecast_extranjeros,
main = "Pronóstico Llegada de Turistas Extranjeros a un año del Mundial 2026",
ylab = "Llegadas de Turistas Extranjeros",
xlab = "Año")
sigma2 <- modelo_mejorado_log$sigma2 # varianza de los residuos
fc_exp <- forecast_extranjeros # copia
fc_exp$mean <- exp(forecast_extranjeros$mean + 0.5 * sigma2)
fc_exp$lower <- exp(forecast_extranjeros$lower)
fc_exp$upper <- exp(forecast_extranjeros$upper)
fc_exp$fitted <- exp(forecast_extranjeros$fitted)
fechas_ext<- fec_forecast(turistas_ext_ts,h)
df_forecast_ext <- data.frame(
Fecha = fechas_ext,
Pronostico = as.numeric(fc_exp$mean),
Lower80 = as.numeric(fc_exp$lower[,1]),
Upper80 = as.numeric(fc_exp$upper[,1]),
Lower95 = as.numeric(fc_exp$lower[,2]),
Upper95 = as.numeric(fc_exp$upper[,2])
)
library(ggplot2)
ggplot(df_forecast_ext, aes(x = Fecha, y = Pronostico)) +
geom_ribbon(aes(ymin = Lower95, ymax = Upper95),
fill = "lightblue", alpha = 0.4) +
geom_ribbon(aes(ymin = Lower80, ymax = Upper80),
fill = "skyblue", alpha = 0.4) +
geom_line(color = "darkblue", size = 1) +
labs(title = "Pronóstico de Llegada de Turistas Extranjeros (escala original)",
x = "Fecha", y = "Llegadas de turistas") +
scale_x_date(date_labels = "%b-%Y", date_breaks = "2 months") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
PRONÓSTICO DERRAMA PARA VAR
El análisis prospectivo de la derrama económica asociada al turismo nacional revela un comportamiento fluctuante entre 2025 y 2027, con un crecimiento moderado en 2025 seguido de una marcada desaceleración y una severa contracción en los dos años posteriores, lo que subraya la necesidad de estrategias de mitigación y adaptación para enfrentar este escenario económico desafiante.
2025: Se proyecta una derrama económica mensual promedio de 1,880 mdp, impulsada por el turismo nacional, la ocupación hotelera y la estadía promedio. Aunque positiva, el crecimiento es moderado, con un alza de solo +79 mdp por mes.
2026: La derrama cae a 351 mdp mensuales en promedio, marcando una desaceleración significativa. El crecimiento se revierte, con una pérdida promedio de –169 mdp por mes.
2027: Se anticipa una contracción severa, con un promedio mensual de –2,452 mdp. La caída se agrava mes a mes, con una reducción de –290 mdp, reflejando un declive económico preocupante.
forecast_derrama <- forecast::forecast(auto2_derrama, h = 30)
plot(forecast_derrama,
main = "Pronóstico Derrama Ec. Hoteles haia el Mundial 2026",
ylab = "Derrama Económica Hoteles",
xlab = "Año")
fechas_derrama <- fec_forecast(derrama_timeseries, h)
df_forecast_derrama <- data.frame(
Fecha = fechas_derrama,
Pronostico = as.numeric(forecast_derrama$mean),
Lower80 = as.numeric(forecast_derrama$lower[,1]),
Upper80 = as.numeric(forecast_derrama$upper[,1]),
Lower95 = as.numeric(forecast_derrama$lower[,2]),
Upper95 = as.numeric(forecast_derrama$upper[,2])
)
ggplot(df_forecast_derrama, aes(x = Fecha, y = Pronostico)) +
geom_ribbon(aes(ymin = Lower95, ymax = Upper95), fill = "lightgreen", alpha = 0.4) +
geom_ribbon(aes(ymin = Lower80, ymax = Upper80), fill = "green", alpha = 0.4) +
geom_line(color = "darkgreen", size = 1) +
labs(title = "Pronóstico de Derrama Económica hasta Mayo 2026",
x = "Fecha", y = "Derrama") +
scale_x_date(date_labels = "%b-%Y", date_breaks = "2 months") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(df_completo, aes(x = Fecha, y = Derrama, color = Escenario)) +
geom_line(size = 1) +
labs(title = "Serie histórica + escenarios de impacto",
subtitle = "Impacto de aumento de turistas desde junio 2026",
x = "Fecha", y = "Derrama Estimada (diff)") +
scale_x_date(date_labels = "%b-%Y", date_breaks = "3 months") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Se presentan escenarios de derrama económica estimada desde junio de 2026, comparando un valor base (denominado “Real”) con tres escenarios de incremento: 25%, 50% y 75%, con periodicidad mensual hasta junio de 2027.
Impactos en Turistas Nacionales
Julio 2026: Pico significativo en derrama económica para todos los escenarios, con el “Real” siendo el más alto.
Agosto-septiembre 2026: Caída abrupta de la derrama; el “Real” vuelve a diferenciarse marcadamente hacia abajo.
Octubre 2026 y enero 2027: Recuperaciones notorias, con el “Real” por encima de los escenarios de aumento.
Marzo-abril 2027: Se percibe una reversión: el escenario “Real” cae mientras los aumentos se mantienen relativamente estables.
library(tidyr)
df_tabla_long <- pivot_longer(
df_tabla,
cols = -Fecha,
names_to = "Escenario",
values_to = "Derrama"
)
ggplot(df_tabla_long, aes(x = Fecha, y = Derrama, color = Escenario)) +
geom_line(size = 1.2) +
labs(title = "Escenarios de derrama económica pronosticada con Incremento único en Turistas Nacionales",
subtitle = "Desde junio 2026: base + aumento del 25%, 50% y 75%",
x = "Fecha", y = "Derrama Estimada (diff)") +
scale_x_date(date_labels = "%b-%Y", date_breaks = "1 month") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Impactos en Turistas Extranjeros
Alta estabilidad: A partir de junio de 2026, todos los escenarios crecen y decrecen de manera casi idéntica.
Picos y valles coincidentes: Todos los máximos y mínimos (julio, octubre, enero) son compartidos entre escenarios.
Escasa diferenciación: No hay una ventaja clara en los escenarios con aumento frente al “Real”, lo que podría reflejar supuestos conservadores o falta de sensibilidad en el modelo.
ggplot(df_completo_ext, aes(x = Fecha, y = Derrama, color = Escenario)) +
geom_line(size = 1) +
labs(title = "Serie histórica + escenarios de impacto",
subtitle = "Impacto de aumento de turistas extranjeros desde junio 2026",
x = "Fecha", y = "Derrama Estimada (diff)") +
scale_x_date(date_labels = "%b-%Y", date_breaks = "3 months") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
df_tabla_ext <- df_impacto_ext[, c(
"Fecha",
"Derrama_Economica_Est_mdp_diff", # Pronóstico base
"Derrama_25",
"Derrama_50",
"Derrama_75"
)]
colnames(df_tabla_ext) <- c("Fecha", "Real", "Aumento_25", "Aumento_50", "Aumento_75")
df_tabla_ext
## Fecha Real Aumento_25 Aumento_50 Aumento_75
## 138 2026-06-01 -35.501838 -39.032956 -39.739179 -40.445403
## 139 2026-07-01 117.642616 114.044209 113.324527 112.604846
## 140 2026-08-01 -3.354487 -6.889639 -7.596669 -8.303700
## 141 2026-09-01 -115.904502 -119.444804 -120.152865 -120.860926
## 142 2026-10-01 95.907766 92.392914 91.689944 90.986974
## 143 2026-11-01 68.347485 64.895798 64.205460 63.515123
## 144 2026-12-01 -153.577720 -157.146837 -157.860660 -158.574484
## 145 2027-01-01 -3.383341 -6.864210 -7.560384 -8.256558
## 146 2027-02-01 55.310428 51.776406 51.069602 50.362797
## 147 2027-03-01 68.337945 64.802780 64.095747 63.388714
## 148 2027-04-01 -41.829730 -45.343962 -46.046808 -46.749655
## 149 2027-05-01 -2.776601 -6.301542 -7.006530 -7.711518
## 150 2027-06-01 -12.697490 -16.228608 -16.934831 -17.641055
df_tabla_long_ext <- pivot_longer(
df_tabla_ext,
cols = -Fecha,
names_to = "Escenario",
values_to = "Derrama"
)
ggplot(df_tabla_long_ext, aes(x = Fecha, y = Derrama, color = Escenario)) +
geom_line(size = 1.2) +
labs(title = "Escenarios de derrama económica pronosticada con Incremento único en Turistas Extranjeros",
subtitle = "Desde junio 2026: base + aumento del 25%, 50% y 75%",
x = "Fecha", y = "Derrama Estimada (diff)") +
scale_x_date(date_labels = "%b-%Y", date_breaks = "1 month") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Industria Hotelera & Turismo de Negocios: Group Mix
En el contexto turístico de Nuevo León, donde se cuenta con demanda generada por eventos masivos como festivales musicales, congresos y partidos del Mundial 2026, resulta fundamental contar con métricas que permitan anticipar y optimizar la capacidad de respuesta del ecosistema hotelero. Uno de los indicadores clave propuestos es el Group Mix, que representa el porcentaje de reservas totales que provienen de grupos grandes (típicamente de 10 o más habitaciones), como delegaciones deportivas, convenciones, bodas o viajes corporativos.
Fórmula del KPI: Group Mix (%) = (Reservas del segmento grupal / Reservas totales) × 100
Relevancia:
Facilita la detección de eventos con alta concentración de grupos, lo
que permite optimizar ingresos. Al identificar el peso del segmento
grupal en diferentes periodos, se pueden ajustar tarifas, ofrecer
paquetes promocionales o negociar alianzas con organizadores de eventos.
Dicho indicador es útil no solo para hoteles, sino también para
recintos, operadores turísticos y autoridades del clúster, al permitir
una lectura coordinada de la demanda futura.
Estado Actual del KPI:
Usando como base las reservas generadas bajo los eventos de la OCV
podemos visualizar el impacto que las conferencias u otros eventos del
consorcio generan en la ocupación hotelera total de la ZMM. Durante el
año pasado el índice ha promediado 4.4%. Lo que indica que el 4.4% de la
ocupación hotelera proviene de los asistentes o stakeholders de la
OCV.
df_OCV <- read.xlsx("Tabla_Macro_EventosOCV.xlsx")
kpi_df <- df_OCV %>%
select("Año", "MesNombre", "Cuartos", "Cuartos_Ocupados")
kpi_df$Fecha <- as.Date(paste(kpi_df$Año, kpi_df$MesNombre, "01", sep = "-"))
kpi_df <- kpi_df %>%
mutate(GroupMix = (Cuartos / Cuartos_Ocupados) * 100)
kpi_df %>%
tail(48) %>%
ggplot(aes(x = Fecha, y = GroupMix)) +
geom_line(color = "steelblue") +
geom_point(color = "steelblue") +
geom_smooth(method = "lm", se = FALSE, color = "darkgrey", linetype = "dashed") +
labs(title = "Tendencia de GroupMix", x = "Fecha", y = "GroupMix") +
theme_minimal()
Rango Crítico:
groupmix_rangos <- data.frame(
Rango = c("Riesgo", "Estable", "Oportunidad"),
Desde = c(0, percentiles[1], percentiles[3]),
Hasta = c(percentiles[1], percentiles[3], 100)
)
print(groupmix_rangos)
## Rango Desde Hasta
## Riesgo 0.00 1.55
## 25% Estable 1.55 11.31
## 75% Oportunidad 11.31 100.00
Interpretación
En los últimos tres meses del 2024 la métrica promedio 5.86%, dentro del rango Normal. Lo cual indica que a pesar de estar manteniendo el rendimiento común presenta la oportunidad de impulsar la atracción de eventos.
kpi_df <- subset(kpi_df, Fecha >= as.Date("2020-01-01"))
background_bands <- data.frame(
ymin = c(0, percentiles[1], percentiles[3]),
ymax = c(percentiles[1], percentiles[3], 100),
fill = c("Riesgo", "Estable", "Oportunidad")
)
# Gráfico base con ggplot
g <- ggplot() +
# Zonas de fondo
geom_rect(data = background_bands,
aes(xmin = min(kpi_df$Fecha), xmax = max(kpi_df$Fecha),
ymin = ymin, ymax = ymax, fill = fill),
alpha = 0.2) +
# Línea de evolución del KPI
geom_line(data = kpi_df, aes(x = Fecha, y = GroupMix), color = "#2c3e50", size = 1) +
geom_point(data = kpi_df, aes(x = Fecha, y = GroupMix,
text = paste("Fecha:", Fecha,
"<br>Group Mix:", round(GroupMix, 2), "%")),
color = "#2980b9", size = 2) +
# Líneas horizontales de referencia
geom_hline(yintercept = percentiles[1], linetype = "dashed", color = "red") +
geom_hline(yintercept = percentiles[2], linetype = "dashed", color = "orange") +
geom_hline(yintercept = percentiles[3], linetype = "dashed", color = "green") +
scale_fill_manual(values = c("Riesgo" = "red", "Estable" = "orange", "Oportunidad" = "green")) +
labs(title = "Evolución del KPI Group Mix en la ZMM",
subtitle = "Con rangos de interpretación: Riesgo, Estable, Oportunidad",
x = "Fecha", y = "Group Mix (%)", fill = "Rango Crítico") +
theme_minimal()
# Convertir a gráfico interactivo
plotly::ggplotly(g, tooltip = "text")
tabla_final <- data.frame(
"Rango del KPI" = c("0% – 3.2%", "3.2% – 6.1%", ">6.1%"),
Interpretación = c("Crítico / Riesgo", "Estable / Normal", "Oportunidad"),
"Acción Estratégica" = c("Reforzar atracción de eventos grandes", "Mantener y monitorear relaciones OCV", "Promover inversiones en turismo de reuniones")
)
tabla_final
## Rango.del.KPI Interpretación Acción.Estratégica
## 1 0% – 3.2% Crítico / Riesgo Reforzar atracción de eventos grandes
## 2 3.2% – 6.1% Estable / Normal Mantener y monitorear relaciones OCV
## 3 >6.1% Oportunidad Promover inversiones en turismo de reuniones
Industria Turismo de Negocios: Índice de Impacto del Turismo de Negocios (IITN)
Con base en lo anterior, se construye un KPI compuesto o índice agregador que concentre una visión sintética pero integral del impacto del Turismo de Negocios en la Zona Metropolitana de Monterrey (ZMM), especialmente considerando la cercanía de eventos como el Mundial FIFA 2026.
El Índice de Impacto del Turismo de Negocios (IITN) es un indicador compuesto que refleja el impacto total del turismo de negocios en la economía regional a partir de tres dimensiones clave:
Derrama Económica Generada: pondera el efecto monetario del turismo de negocios.
Participación de Ocupación Hotelera por Eventos de Negocios: mide la intensidad del turismo de negocios frente al turismo general.
Número y Escala de Eventos Realizados: captura la dinámica y volumen de la actividad.
Se observa que la raíz cuadrada aplicada a la derrama económica otorga mayor peso al componente económico, sin que este domine por completo. Por su parte, las raíces ponderadas de los otros dos indicadores capturan adecuadamente el dinamismo y el uso de infraestructura asociada al turismo de negocios.
Escala de Interpretación del IITN
Sin embargo, se observa que una meta fija implica que el KPI estará en constante aumento, por ende, se realizan alternativas de visualización del indicador con el fin de no solamente determinar un impacto
IITN mensual (no acumulado)
Mide el desempeño real de cada mes frente a las metas mensuales estimadas.
Ventaja: Detecta de inmediato si un mes está por debajo del objetivo.
Observación: Los primeros cuatro meses están por debajo de 0.50, a excepción de Febrero, el cual junto con Mayo, Agosto, Septiembre, Octubre y Noviembre alcanzan un impacto moderado.
IITN acumulado ajustado
Compara el acumulado real hasta el mes con el acumulado esperado.
Ventaja: Evalúa si vas adelantado o atrasado en el año.
Observación: El índice supera 1 a partir de marzo–abril, lo que indica que el desempeño acumulado ya va por delante del ritmo esperado.
Subindicadores individuales
Permiten aislar el análisis: saber si los avances son gracias a derrama, ocupación o eventos.
La derrama se comporta muy bien desde marzo.
La ocupación de cuartos por negocios está más estable y en algunos meses por debajo de 1.
Los eventos son clave para el crecimiento desde julio en adelante.
# df_OCV_numeric debe tener columnas: Año, Mes (número), Derrama
library(dplyr)
library(reshape2)
library(data.table)
library(tidyr)
# Filtrar años históricos (ej. 2020 a 2023)
df_hist <- df_OCV_numeric %>% filter(Año >= 2023 & Año <= 2024)
# Calcular derrama total por año
derrama_anual <- df_hist %>%
group_by(Año) %>%
summarise(Derrama_total_anual = sum(Derrama))
# Unir con el original para calcular proporción mensual
df_hist <- df_hist %>%
left_join(derrama_anual, by = "Año") %>%
mutate(Proporcion_mensual = Derrama / Derrama_total_anual)
# Promedio por mes entre años
pesos_estacionales <- df_hist %>%
group_by(MesNombre) %>%
summarise(Peso = mean(Proporcion_mensual)) %>%
arrange(MesNombre)
# Vector de pesos (suma ≈ 1)
pesos_estacionales_vector <- pesos_estacionales$Peso
print(pesos_estacionales_vector)
## [1] 0.009072928 0.056278612 0.059782285 0.107626317 0.050895092 0.052970227
## [7] 0.102028056 0.107742556 0.101017732 0.140514859 0.182167924 0.029903412
# Calcular metas mensuales
pesos_estacionales <- c(
0.009072928, 0.056278612, 0.059782285, 0.107626317,
0.050895092, 0.052970227, 0.102028056, 0.107742556,
0.101017732, 0.140514859, 0.182167924, 0.029903412
)
Meta_derrama_mensual <- Meta_derrama * pesos_estacionales
Meta_eventos_mensual <- Meta_eventos * pesos_estacionales
# Índice mensual NO acumulado
df_2024$IITN_mensual <- with(df_2024,
(Derrama / Meta_derrama_mensual)^0.5 *
(Cuartos / Cuartos_ocupados_mes)^0.25 *
(Eventos / Meta_eventos_mensual)^0.25)
# Meta acumulada esperada por mes (lineal)
df_2024$Meta_derrama_acumulada <- Meta_derrama * (1:12)/12
df_2024$Meta_eventos_acumulados <- Meta_eventos * (1:12)/12
df_2024$IITN_t_ajustado <- with(df_2024,
(Derrama_acumulada / Meta_derrama_acumulada)^0.5 *
(Cuartos_acumulados / Cuartos_ocupados_mes)^0.25 *
(Eventos_acumulados / Meta_eventos_acumulados)^0.25)
df_2024$Indicador_Derrama <- df_2024$Derrama / Meta_derrama_mensual
df_2024$Indicador_Cuartos <- df_2024$Cuartos / df_2024$Cuartos_ocupados_mes
df_2024$Indicador_Eventos <- df_2024$Eventos / Meta_eventos_mensual
# Gráficos
# IITN acumulado ajustado
ggplot(df_2024, aes(x = factor(MesNombre, levels = unique(MesNombre)), y = IITN_t_ajustado)) +
geom_line(group = 1, color = "darkgreen", size = 1.2) +
geom_point(size = 3, color = "darkgreen") +
geom_hline(yintercept = 1, linetype = "dashed", color = "gray") +
labs(title = "IITN Acumulado Ajustado por Mes",
x = "Mes",
y = "Índice IITN acumulado ajustado") +
theme_minimal()
# Subindicadores
subindicadores <- df_2024[, c("MesNombre", "Indicador_Derrama", "Indicador_Eventos")]
subindicadores_largo <- pivot_longer(subindicadores,
cols = -MesNombre,
names_to = "Indicador",
values_to = "Valor")
ggplot(subindicadores_largo, aes(x = factor(MesNombre, levels = unique(MesNombre)),
y = Valor, color = Indicador, group = Indicador)) +
geom_line(size = 1.2) +
geom_point(size = 3) +
geom_hline(yintercept = 1, linetype = "dashed", color = "gray") +
labs(title = "Subindicadores por Variable (Mensual)",
x = "Mes",
y = "Valor relativo a meta",
color = "Indicador") +
theme_minimal()
library(ggplot2)
library(dplyr)
# 1. IITN mensual
# Crear variable categórica de impacto según umbrales
df_2024 <- df_2024 %>%
mutate(Nivel_Impacto = case_when(
IITN_mensual > 1.00 ~ "Alto impacto",
IITN_mensual >= 0.75 ~ "Impacto adecuado",
IITN_mensual >= 0.50 ~ "Impacto moderado",
TRUE ~ "Bajo impacto"
))
colores_impacto <- c(
"Alto impacto" = "#1b9e77",
"Impacto adecuado" = "#66a61e",
"Impacto moderado" = "#e6ab02",
"Bajo impacto" = "#d95f02"
)
# Crear data.frame para los rectángulos de fondo
fondos <- data.frame(
ymin = c(0, 0.50, 0.75, 1.00),
ymax = c(0.50, 0.75, 1.00, max(df_2024$IITN_mensual, na.rm = TRUE) + 0.1),
fill = c("Bajo impacto", "Impacto moderado", "Impacto adecuado", "Alto impacto")
)
fondos$xmin <- -Inf
fondos$xmax <- Inf
ggplot(df_2024, aes(x = factor(MesNombre, levels = unique(MesNombre)), y = IITN_mensual)) +
geom_rect(data = fondos, aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax, fill = fill),
inherit.aes = FALSE, alpha = 0.15) +
geom_line(group = 1, color = "black", size = 1.2) +
geom_point(aes(color = Nivel_Impacto), size = 3) +
scale_color_manual(values = colores_impacto) +
scale_fill_manual(values = colores_impacto, guide = "none") +
geom_hline(yintercept = 1, linetype = "dashed", color = "gray") +
labs(title = "IITN Mensual (No Acumulado)",
x = "Mes",
y = "Índice IITN mensual",
color = "Nivel de Impacto") +
theme_minimal() +
theme(legend.position = "bottom")
Riesgo Potencial: Saturación de la Capacidad y Volatilidad Tarifaria
Durante el Mundial de la FIFA la demanda hotelera suele dispararse de manera abrupta. En la ZMM, donde ya existe una alta concentración de oferta en zonas céntricas y de lujo (Monterrey y San Pedro), un incremento masivo de visitantes podría superar la capacidad actual, provocando:
Escasez de habitaciones disponibles para segmentos no relacionados al evento, con el consecuente riesgo de desplazamiento de clientes habituales.
Incrementos excesivos en las tarifas (price gouging), que, si bien generan ingresos adicionales en el corto plazo, pueden derivar en críticas mediáticas, quejas en plataformas de reseñas y daños a la reputación de la ciudad como destino.
Por consiguiente, con el objetivo de garantizar una experiencia turística equitativa y ordenada durante el periodo FIFA, se propone una estrategia enfocada en la transparencia tarifaria, la distribución eficiente de la demanda y la protección del consumidor. Se recomienda establecer un sistema de monitoreo dinámico en colaboración con plataformas como Booking o Expedia, que emitirá alertas cuando los precios superen umbrales predefinidos. Paralelamente, se lanzará una campaña de fomento al turismo nacional pre-FIFA, con paquetes promocionales para incentivar reservas anticipadas. Asimismo, para evitar la saturación de zonas premium, se impulsará la promoción de zonas hoteleras alternas como Apodaca, Guadalupe y Santa Catarina, apoyada en infraestructura y transporte. Finalmente, se establecerán alianzas con plataformas digitales para verificar hospedajes temporales, incorporando distintivos digitales de confianza que protejan a los visitantes de fraudes en línea.
Con base en las estrategias de mitigación planteadas, se propone utilizar el indicador de % Ocupación Hoteleraya sea utilizando tal cual el valor o realizando el siguiente cálculo: % = (Cuartos ocupados / Cuartos disponibles) × 100. Acorde a los gráficos, se observa que la ocupación hotelera mostró una tendencia fluctuante entre el 40% y 70%, con picos ocasionales superiores al 75%. Se identificó un patrón estacional semanal asociado posiblemente a fines de semana y temporadas vacacionales. Un evento disruptivo provocó una caída abrupta a niveles por debajo del 10%, seguido de una recuperación gradual que llevó la ocupación a estabilizarse nuevamente entre el 60% y 70%.
Se recomienda que a futuro se integre al valor una división ya sea por zona y/o por segmento. De esta manera, se identificarían los puntos de saturación o desequilibrio regional (ej. San Pedro vs Guadalupe).
library(ggplot2)
library(dplyr)
# Crear variable de fecha a partir de AÑO y MES
df <- df %>%
mutate(Fecha = as.Date(paste(AÑO, MES, "01", sep = "-")))
# Gráfico de %Ocupacion_hoteles a través del tiempo
ggplot(df, aes(x = Fecha, y = `%Ocupacion_Hoteles`)) +
geom_line(color = "steelblue", size = 1.2) +
geom_point(color = "steelblue") +
labs(title = "% de Ocupación Hotelera a lo largo del tiempo",
x = "Fecha",
y = "% Ocupación") +
theme_minimal()
df$Ocupacion_Porc <- (df$Cuartos_Ocupados / df$Cuartos_Disponibles) * 100
ggplot(df, aes(x = Fecha, y = Ocupacion_Porc)) +
geom_line(color = "steelblue", size = 1.2) +
geom_point(color = "darkblue", size = 2) +
labs(title = "% de Ocupación Hotelera a lo largo del tiempo",
x = "Fecha",
y = "% Ocupación") +
theme_minimal() +
scale_x_date(date_labels = "%b-%Y", date_breaks = "3 months") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Riesgo Potencial: Desvinculación entre Eventos FIFA y Eventos de Negocios
Existe la posibilidad de que los eventos organizados por FIFA en la ZMM, principalmente partidos y actividades deportivas, no se articulen de forma efectiva con la agenda de turismo de negocios (congresos, ferias, ruedas de inversión, networking empresarial), lo que resultaría en: * Subutilización de la infraestructura turística.
Baja captación de derrama económica por parte del sector empresarial local.
Pérdida de una ventana de oportunidad única para posicionar a Monterrey como destino MICE (Meetings, Incentives, Conferences, Exhibitions).
Lo anterior tiene el potencial de generar mayor impacto y probabilidad en riesgos como:
Menor afluencia de visitantes corporativos: Se traduce en una baja ocupación en hoteles orientados al segmento ejecutivo, lo cual afecta directamente la rentabilidad de la infraestructura diseñada para este tipo de turismo.
Afectación en economía local: La falta de visitantes de negocios implica una pérdida significativa de ingresos potenciales para sectores clave como la hospitalidad, el transporte y los servicios empresariales (B2B), limitando el dinamismo económico de la ciudad.
Bajo Posicionamiento de Monterrey: Al no aprovechar oportunidades para atraer grandes eventos internacionales, especialmente a partir de 2026, Monterrey pierde la posibilidad de posicionarse como un destino estratégico en el mapa global de congresos y convenciones.
Ineficiente Coordinación institucional: Existen problemas de duplicidad de esfuerzos entre distintas entidades, así como una dispersión de recursos y una calendarización ineficaz, lo que reduce la efectividad de las estrategias de promoción y atracción de eventos.
Por lo tanto, con el fin de mitigar los impactos negativos en el turismo de negocios y capitalizar las oportunidades que brinda el Mundial 2026, se propone una estrategia integral centrada en la coordinación público-privada y la planificación anticipada. La Mesa de Integración FIFA–OCV–Empresariado (2025) funcionará como plataforma colaborativa para alinear calendarios, sedes, públicos objetivos y paquetes integrados, evitando duplicidades y maximizando sinergias. Se diseñará un calendario complementario de eventos MICE, con al menos 12 meses de anticipación, que vincule temáticamente actividades empresariales con el Mundial, como congresos sobre innovación deportiva, turismo o smart cities. Además, se impulsarán ruedas de negocios y sesiones de networking en fechas cercanas a partidos de alto perfil, para atraer a líderes empresariales nacionales e internacionales. Se promoverá internacionalmente a Monterrey como sede del Mundial y hub de negocios, mediante una oferta integrada que combine partidos, eventos corporativos y hospedaje ejecutivo, atrayendo al turismo de negocios con una propuesta diferenciada. Con base en las estrategias de mitigación planteadas, se propone un KPI para dicho riesgo para medir qué porcentaje de los eventos de negocios (congresos, ferias, ruedas, etc.) están temáticamente o logísticamente integrados con el calendario FIFA 2026 en Monterrey.
Se estima que un valor ≥ 60% de los eventos MICE del primer semestre de 2026 deberían tener algún grado de vinculación con el Mundial (temática, sede, fechas, promoción conjunta, paquetes).
Industria Hotelera
Establecer un acuerdo de tarifas máximas recomendadas con asociaciones hoteleras para evitar escaladas injustificadas.
Promover alojamientos alternativos certificados (Airbnb regulado, hostales de calidad) para diversificar la oferta y aliviar la presión sobre los hoteles tradicionales. Incluyendo la creación de un programa de sello de calidad para anfitriones de Airbnb y hostales, asegurando estándares mínimos de limpieza, atención y seguridad.
Industria Turismo de Negocios
Corto Plazo (2025 - 2026, pre y durante Mundial FIFA)
Alianzas OCV - FIFA - Gobierno Estatal: Desarrollar un calendario complementario de eventos de negocios en paralelo a partidos clave, integrando foros empresariales, expos temáticas y ruedas de inversión.
Integración de una Estrategia Binaria “Mundial + Turismo de Reuniones”: Usar hoteles, centros de convenciones y recintos deportivos para eventos duales (reuniones + entretenimiento).
Largo Plazo (2026 en adelante)
Legado FIFA para el turismo de negocios: Posicionar a Monterrey como sede internacional recurrente de congresos y eventos.
Clúster de turismo MICE (Meetings, Incentives, Conferences, Exhibitions): Formalizar una red local que articule a hoteles, agencias, gobierno, cámaras empresariales y universidades.
La analítica prescriptiva aplicada al turismo en la Zona Metropolitana de Monterrey destaca la importancia de contar con indicadores clave que permitan anticipar y gestionar la demanda turística, especialmente en un contexto de eventos de gran escala como el Mundial FIFA 2026. El monitoreo de la llegada de turistas nacionales se confirma como un KPI fundamental, cuyo impacto económico positivo está cuantificado mediante modelos estadísticos. Asimismo, el Group Mix revela la relevancia de los grupos grandes en la ocupación hotelera, ofreciendo oportunidades para optimizar ingresos y diseñar estrategias segmentadas. Por otra parte, el Índice de Impacto del Turismo de Negocios (IITN) permite evaluar el dinamismo y la efectividad de la agenda de eventos corporativos, evidenciando la necesidad de fortalecer la coordinación institucional y la planificación para evitar subutilización de infraestructura y maximizar la derrama económica. Frente a los riesgos asociados al Mundial 2026, se propone una serie de estrategias de mitigación centradas en la transparencia tarifaria, diversificación de la oferta hotelera y una integración efectiva entre eventos deportivos y de negocios. En conjunto, estos esfuerzos buscan posicionar a Monterrey como un destino turístico competitivo y sostenible, garantizando beneficios económicos amplios y un legado duradero para la región. Por ello, se presentan los insights de mayor relevancia:
La llegada de turistas nacionales genera una derrama económica significativa, estimada en +147.8 mdp por cada mil turistas adicionales, especialmente durante picos de actividad.
El porcentaje de reservas provenientes de grupos grandes (Group Mix) promedia 4.4%, lo que representa una oportunidad para diseñar paquetes y estrategias específicas para eventos masivos y corporativos.
El Índice de Impacto del Turismo de Negocios (IITN) ha mostrado volatilidad y un desempeño generalmente inferior al esperado, indicando la necesidad de mejorar la coordinación y promoción de eventos MICE.
Los riesgos de saturación hotelera y volatilidad tarifaria durante el Mundial FIFA 2026 pueden mitigarse mediante acuerdos de tarifas máximas, diversificación de la oferta y monitoreo dinámico con plataformas digitales.
La integración efectiva entre eventos deportivos y de negocios es crucial para maximizar la derrama económica y posicionar a Monterrey como un hub internacional de turismo MICE.