logo



Introducción

Después de ajustar un modelo de regresión, el siguiente paso es aprovecharlo para realizar predicciones y explorar posibles escenarios. La predicción consiste en utilizar los coeficientes estimados para calcular el valor esperado de la variable de respuesta cuando se conocen ciertos valores de las variables explicativas. Esto permite estimar tanto la media de la población bajo estudio como el comportamiento de nuevos casos individuales.

La simulación, por otra parte, implica modificar los valores de las variables predictoras con el fin de observar cómo cambia la variable de respuesta. Este enfoque resulta especialmente útil en contextos empresariales, donde interesa evaluar los efectos potenciales de distintas decisiones antes de llevarlas a cabo, por ejemplo, al analizar qué ocurriría con las ventas si se ajusta el precio de un producto o si se aumenta la inversión en publicidad.

Es importante resaltar que la predicción y la simulación no ofrecen certezas absolutas, sino escenarios posibles con un grado de incertidumbre que debe ser considerado. Por ello, además de obtener estimaciones puntuales, se construyen intervalos de confianza y de predicción que reflejan la variabilidad inherente al modelo y permiten cuantificar el margen de error. De este modo, el análisis no solo se convierte en una herramienta para explicar relaciones entre variables, sino también en un instrumento fundamental para la toma de decisiones informadas en situaciones de incertidumbre.

Predicción

Existen tres formas de hacer predicción, que explicamos a continuación.

Predicción puntual:

Es el valor estimado de la variable de respuesta al introducir un conjunto específico de valores para las variables explicativas en el modelo. Representa la mejor aproximación que el modelo puede dar, pero por sí sola no refleja la incertidumbre del proceso. \[ \hat{y}_{\text{est}} = \hat{\beta}_0 + \hat{\beta}_1 x_{1} + \hat{\beta}_2 x_{2} + \dots + \hat{\beta}_p x_{p} \]

Intervalo de confianza:

En lugar de dar un único valor, proporciona un rango dentro del cual se espera que se encuentre la media poblacional de la variable de respuesta, considerando un nivel de confianza. Es útil cuando el interés está en describir tendencias generales o comportamientos promedio. \[ \hat{y}_{\text{est}} \;\pm\; t_{\alpha/2, \, n-p-1} \cdot SE(\hat{y}_{\text{est}}) \]

Intervalo de predicción:

Este intervalo es más amplio que el intervalo de confianza, porque incorpora no solo la incertidumbre asociada a la estimación de la media, sino también la variabilidad natural que se espera en un nuevo individuo. Por tanto, es más adecuado cuando el objetivo es anticipar el valor de una observación futura bajo ciertas condiciones. \[ \hat{y}_{\text{est}} \;\pm\; t_{\alpha/2, \, n-p-1} \cdot \sqrt{SE(\hat{y}_{\text{est}})^2 + \hat{\sigma}^2} \]

Simulación

La simulación consiste en modificar de manera deliberada los valores de las variables explicativas para observar cómo cambia la variable de respuesta estimada por el modelo.A diferencia de la predicción, que calcula valores para un conjunto dado de predictores, la simulación permite explorar escenarios hipotéticos que no necesariamente están presentes en los datos originales.

En estadística aplicada, este procedimiento es muy útil para realizar análisis de escenarios. En el ámbito empresarial, la simulación ayuda a responder preguntas como:

  • ¿Qué ocurriría con las ventas si se reduce el precio de un producto?

  • ¿Cómo cambiarían los ingresos si aumentamos en un 15% la inversión en publicidad?

  • ¿Qué impacto tendría en la productividad la contratación de más empleados?

El modelo de regresión se convierte así en una herramienta no solo para explicar relaciones entre variables, sino también para apoyar la toma de decisiones estratégicas bajo condiciones de incertidumbre.

Ejemplo de clase

Con este ejemplo de motivación, mostraremos el desarrollo para datos simulados y los resultados los aprovechamos para ejemplificar las predicciones.

Contexto del problema:

Una empresa desea estudiar los factores que afectan la rotación de empleados (porcentaje de renuncias anuales). Se consideran como variables explicativas:

  • Salario promedio (en miles de dólares).

  • Nivel de satisfacción laboral (escala 1-10).

  • Horas extra trabajadas al mes.

El objetivo es predecir la rotación en diferentes escenarios y simular el efecto de cambios en las condiciones laborales.

Desarrollo en R

Datos simulados

Datos:

Debemos generar los datos ilustrando la situación planteada. Normalmente para poder hacer este paso nos ayudamos de datos historicos de la empresa o contextualizamos diferentes escenarios para analizarlos. Por ejemplo, supongamos que la rotación disminuye al aumentar el salario y la satisfacción, y aumenta cuando crecen las horas extra.

library(tidyverse)

# Generamos datos simulados
set.seed(1234)
datos <- data.frame(
  Salario      = round(runif(40, 25, 60)),          # salario promedio (25k-60k)
  Satisfaccion = round(runif(40, 4, 10),1),         # satisfacción laboral (1-10)
  Horas_extra  = round(runif(40, 0, 20)),           # horas extra mensuales
  ruido        = round(rnorm(40, 0, 3),2)) %>%
  mutate(Rotacion = 40 - 0.3*Salario - 2*Satisfaccion + 0.8*Horas_extra + ruido)
head(datos)
##   Salario Satisfaccion Horas_extra ruido Rotacion
## 1      29          7.3          19  1.97    33.87
## 2      47          7.9           9  7.65    24.95
## 3      46          5.9           3 -0.10    16.70
## 4      47          7.7          11 -2.01    17.29
## 5      55          6.0           4 -0.02    14.68
## 6      47          7.0          18  5.33    31.63

Modelo ajustado

Ajuste del modelo de regresión:

El modelo estima el efecto de cada variable sobre la rotación.Debemos interpretar correctamente cada coeficiente.

# Ajustar modelo de regresión lineal múltiple
modelo <- lm(Rotacion ~ Salario + Satisfaccion + Horas_extra, data = datos)

# Resumen del modelo
summary(modelo)
## 
## Call:
## lm(formula = Rotacion ~ Salario + Satisfaccion + Horas_extra, 
##     data = datos)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -4.184 -2.071 -0.459  2.015  6.485 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  37.40607    2.75700  13.568 1.01e-15 ***
## Salario      -0.20627    0.04707  -4.382 9.75e-05 ***
## Satisfaccion -2.13932    0.29006  -7.375 1.06e-08 ***
## Horas_extra   0.85044    0.07488  11.357 1.86e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.895 on 36 degrees of freedom
## Multiple R-squared:  0.8476, Adjusted R-squared:  0.8349 
## F-statistic: 66.75 on 3 and 36 DF,  p-value: 8.865e-15

Predicciones

Predicción de nuevos casos:

Supongamos que queremos estimar la rotación en dos escenarios:

  • Empleado 1: salario de 30k, satisfacción 6, 10 horas extra.

  • Empleado 2: salario de 50k, satisfacción 8, 5 horas extra.

# Nuevos casos para predicción
nuevos <- data.frame(
  Salario = c(30, 50),
  Satisfaccion = c(6, 8),
  Horas_extra = c(10, 5)
)

# Predicción puntual
round(predict(modelo, nuevos),2)
##     1     2 
## 26.89 14.23

Predicción puntual: estima el valor esperado de la rotación para esos casos.

# Intervalos de confianza (media esperada)
round(predict(modelo, nuevos, interval = "confidence", level = 0.92),2)
##     fit   lwr   upr
## 1 26.89 25.58 28.20
## 2 14.23 12.83 15.63

Intervalo de confianza (IC 92%): rango donde se espera que esté la media poblacional de rotación bajo esas condiciones.

# Intervalos de predicción (nuevo caso individual)
round(predict(modelo, nuevos, interval = "prediction", level = 0.98),2)
##     fit   lwr   upr
## 1 26.89 19.62 34.15
## 2 14.23  6.93 21.53

Intervalo de predicción (IP 98%): rango más amplio que refleja la variabilidad de un nuevo empleado individual.

Simulaciones

Simulación de diferentes escenarios:

  1. Supongamos que nos interesa analizar alguna situación que no tenemos. Por ejemplo, queremos analizar cómo cambiaría la rotación si se incrementa el salario promedio manteniendo fija la satisfacción (7) y las horas extra (8).
library(plotly)

# Escenarios de simulación 
simulacion1 <- data.frame(
  Salario = seq(25, 60, by = 2),
  Satisfaccion = 7,
  Horas_extra = 8)

# Predicciones con IC
pred_conf <- data.frame(predict(modelo, newdata = simulacion1, interval = "confidence",level = 0.99))
colnames(pred_conf) <- c("fit", "lwr_conf", "upr_conf")

# Predicciones con IP
pred_pred <- data.frame(predict(modelo, newdata = simulacion1, interval = "prediction",level = 0.99))
colnames(pred_pred) <- c("fit_pred", "lwr_pred", "upr_pred")

simulacion2 <- bind_cols(simulacion1, pred_conf, pred_pred)

# Gráfico interactivo con plotly
p <- ggplot() +
  # Observaciones reales
  geom_point(data = datos, aes(x = Salario, y = Rotacion),
             color = "red", size = 1.2, alpha = 0.7) +
  # Línea de predicción puntual
  geom_line(data = simulacion2, aes(x = Salario, y = fit),
            color = "green4", size = 0.5) +
  # Banda de IC
  geom_ribbon(data = simulacion2, aes(x = Salario, ymin = lwr_conf, ymax = upr_conf),
              fill = "purple", alpha = 0.3) +
  # Banda de IP 
  geom_ribbon(data = simulacion2, aes(x = Salario, ymin = lwr_pred, ymax = upr_pred),
              fill = "pink", alpha = 0.15) +
 
  labs(title = "",
       x = "Salario promedio (miles de $)",
       y = "Rotación (%)") +
  theme_minimal()

ggplotly(p)
  1. Ahora, exploremos un escenario alternativo. ¿Qué ocurriría con la rotación si aumentan las horas extra mensuales, manteniendo fijo el salario (40k) y la satisfacción laboral (7)? En este caso, esperamos observar una relación positiva: a medida que crecen las horas extra, la rotación tiende a incrementarse.
# Escenarios de simulación (salario fijo, satisfacción fija)

simulacion3 <- data.frame(
  Horas_extra = seq(0, 20, by = 1),
  Salario = 40,
  Satisfaccion = 7)

# Predicciones con IC
pred_conf2 <- data.frame(predict(modelo, newdata = simulacion3, interval = "confidence",level = 0.99))
colnames(pred_conf2) <- c("fit", "lwr_conf", "upr_conf")

# Predicciones con IP
pred_pred2 <- data.frame(predict(modelo, newdata = simulacion3, interval = "prediction",level = 0.99))
colnames(pred_pred2) <- c("fit_pred", "lwr_pred", "upr_pred")

simulacion4 <- bind_cols(simulacion3, pred_conf2, pred_pred2)

# Gráfico interactivo con plotly
p <- ggplot() +
  # Observaciones reales
  geom_point(data = datos, aes(x = Horas_extra, y = Rotacion),
             color = "red", size = 1.2, alpha = 0.7) +
  # Línea de predicción puntual
  geom_line(data = simulacion4, aes(x = Horas_extra, y = fit),
            color = "green4", size = 0.5) +
  # Banda de IC
  geom_ribbon(data = simulacion4, aes(x = Horas_extra, ymin = lwr_conf, ymax = upr_conf),
              fill = "purple", alpha = 0.3) +
  # Banda de IP 
  geom_ribbon(data = simulacion4, aes(x = Horas_extra, ymin = lwr_pred, ymax = upr_pred),
              fill = "pink", alpha = 0.15) +
 labs(title = "",
       x = "Horas extra al mes",
       y = "Rotación estimada (%)") +
  theme_minimal()

ggplotly(p)

Resumen comparativo

Después de explorar las diferentes formas de predicción y realizar simulaciones en diferentes escenarios empresariales, podemos resumir lo visto en la siguiente tabla.

Enfoque ¿Qué estima? Utilidad
Predicción puntual Un valor esperado Mejor aproximación del modelo
Intervalo de confianza Rango para la media poblacional Tendencias generales
Intervalo de predicción Rango para un individuo nuevo Escenarios futuros más realistas
Simulación Cambios deliberados en variables Evaluación de escenarios hipotéticos

Limitaciones y advertencias

Aunque la predicción y la simulación son herramientas muy útiles para la toma de decisiones, es fundamental reconocer sus limitaciones:

  • Calidad y representatividad de los datos: los escenarios generados se basan en la información disponible. Si los datos están incompletos, sesgados o poco representativos, las conclusiones carecen de validez.

  • Extrapolación peligrosa: predecir o simular fuera del rango de valores observados en los datos originales (por ejemplo, salarios o niveles de satisfacción mucho más altos o bajos que los registrados) puede producir estimaciones irreales.

  • Incertidumbre inherente: todo modelo estadístico tiene un margen de error. Por ello, siempre se deben acompañar las predicciones con intervalos de confianza o de predicción que reflejen la variabilidad del proceso.

  • Factores no observados: las simulaciones no capturan elementos externos que no estén incluidos en el modelo, pero que pueden afectar fuertemente el resultado.

  • Posible malinterpretación en la práctica: los usuarios de los resultados (ej. gerentes o responsables de decisiones) podrían confundir una predicción puntual con una certeza absoluta. Es responsabilidad del analista comunicar las limitaciones de manera clara.

  • Dependencia de los supuestos del modelo: las predicciones solo son confiables si el modelo cumple con los supuestos de regresión (linealidad, independencia, homocedasticidad y normalidad de los residuales). Si estos no se cumplen, los resultados pueden ser engañosos.

La predicción y la simulación deben entenderse como herramientas de apoyo, no como verdades exactas. Su utilidad depende de la correcta interpretación de los resultados y de la verificación constante de la validez del modelo a través del análisis de residuales, que será nuestro próximo tema en clase.

Ejercicio de práctica

Contexto: Una cooperativa agrícola quiere estudiar los factores que influyen en la producción de maíz por hectárea. Se sospecha que:

  • Aumentar la fertilización mejora la producción.

  • Incrementar el riego también incrementa el rendimiento.

  • Altas plagas reducen la producción.

El modelo verdadero (con error aleatorio) podría ser: \[ \text{Produccion} = 50 + 2*\text{fertilizacion} + 1.5*\text{riego} - 3*\text{plagas} + e, \quad e \sim N(0,5) \]

Ejercicio 1: simule un conjunto de datos con 100 observaciones para las variables:

  • Fertilizacion (kg/ha, entre 20 y 100).
  • Riego (mm de agua, entre 50 y 200).
  • Plagas (índice de 0 a 10).
  • error (normal con parámetros 0 y 5)
  • Produccion generada con la fórmula dada.

Ejercicio 2: ajuste un modelo de regresión lineal múltiple con Produccion como variable dependiente.

Ejercicio 3: estime la producción en los siguientes escenarios:

  • Lote A: fertilización = 40, riego = 100, plagas = 2.
  • Lote B: fertilización = 80, riego = 150, plagas = 5.

Ejercicio 4: grafique la simulación del efecto de Plagas sobre la producción, manteniendo fertilización = 60 y fiego = 120. Incluya tanto IC como IP.