Universidad Autónoma de Campeche

GUÍA INSTRUCCIONAL: VISUALIZACIÓN 3D DE MCO

Contexto: Este recurso constituye un objeto de aprendizaje diseñado para cerrar la brecha entre la abstracción algebraica de los Mínimos Cuadrados Ordinarios y su representación geométrica en el espacio euclidiano.

1. Objetivos de aprendizaje

Al finalizar la interacción con este script, el estudiante será capaz de: * Comprender visualmente la relación funcional entre una variable dependiente (\(Y\)) y un vector de predictores (\(X_1, X_2\)). * Identificar el “Plano de Regresión” como la superficie optimizada que minimiza la suma de los residuos al cuadrado. * Interpretar la bondad de ajuste del modelo mediante la proximidad de las observaciones empíricas respecto al plano estimado.

2. Desarrollo del proceso

El flujo metodológico implementado en este recurso sigue cuatro etapas fundamentales: 1. Preparación de entorno: Gestión de librerías especializadas y vinculación de fuentes de datos externas. 2. Estimación econométrica: Ejecución del algoritmo de optimización mediante la función lm() para la obtención de estimadores \(\hat{\beta}\). 3. Modelado geométrico: Generación de una malla de predicción para la construcción de la superficie de respuesta. 4. Análisis interactivo: Renderizado dinámico con plotly para la exploración multivariante mediante rotación y escala.

3. Síntesis de aprendizaje

La interacción con este modelo permite constatar que la regresión lineal no es únicamente un conjunto de estadísticos tabulares, sino la determinación de una estructura geométrica óptima. La dispersión de los puntos respecto al plano ofrece un diagnóstico visual inmediato sobre la precisión y el error estocástico del modelo.


FUNDAMENTACIÓN PEDAGÓGICA Y CURRICULAR

Objetivo del recurso en el contexto de Econometría I

El propósito fundamental de este recurso digital es facilitar la transición del dominio teórico a la praxis económica, permitiendo la aplicación de métodos cuantitativos a fenómenos de la realidad social.

Dimensiones del recurso:

  • Refuerzo Teórico: Clarificación de los supuestos del Modelo de Regresión Lineal Clásico (MRLC) y las propiedades de insesgadez y eficiencia de MCO.
  • Competencia técnica: Desarrollo de habilidades en software estadístico (R), esenciales para el análisis empírico contemporáneo.
  • Autonomía académica: Provisión de un laboratorio virtual con materiales autogestionables que fomentan la profundización a ritmo individual.

Vínculo con el Programa de la Unidad de Aprendizaje

Este recurso se integra de manera orgánica con los objetivos del programa de estudios bajo la siguiente estructura de vinculación:

Componente del Programa Integración con el Recurso Digital
Objetivo general Aplicación de principios econométricos mediante el uso de datasets reales y herramientas de computación estadística.
Contenido temático Soporte práctico para las unidades de Inferencia Estadística y Modelos de Regresión Múltiple.
Estrategias didácticas Funciona como plataforma para prácticas de laboratorio y resolución de problemas complejos.
Resultados de aprendizaje Fortalece la capacidad del estudiante para emitir informes técnicos con rigor científico y sustento visual.

— Instalación de paquetes requeridos —

# Instalar los paquetes necesarios (solo la primera vez)
# install.packages("readxl")
# install.packages("plotly")
# install.packages("dplyr")
library(plotly)
library(readxl)
library(dplyr)
# Especifica la ruta a tu archivo de Excel, por ejemplo:
ruta_excel <- "C:/Users/uac_facsoc/Desktop/Gráfico_R_MCO.xlsx" 

# Carga la hoja de datos. Asegúrate de que los nombres de las columnas
# sean claros (por ejemplo: 'Y', 'X1', 'X2').
datos_regresion <- read_excel(ruta_excel, sheet = 1) 

# Mostrar las primeras filas para verificar la carga
head(datos_regresion)
## # A tibble: 6 × 5
##     Año     n     Y    X1    X2
##   <dbl> <dbl> <dbl> <dbl> <dbl>
## 1  1971     1    40     6     4
## 2  1972     2    44    10     4
## 3  1973     3    46    12     5
## 4  1974     4    48    14     7
## 5  1975     5    52    16     9
## 6  1976     6    58    18    12
# Define tu modelo: Y en función de X1 y X2
modelo_rlm <- lm(Y ~ X1 + X2, data = datos_regresion)

# Ver el resumen del modelo (opcional, pero útil)
summary(modelo_rlm)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = datos_regresion)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8199 -0.7304  0.1302  0.9173  1.8108 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  31.9807     1.6318  19.598 2.25e-07 ***
## X1            0.6501     0.2502   2.599  0.03550 *  
## X2            1.1099     0.2674   4.150  0.00429 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.397 on 7 degrees of freedom
## Multiple R-squared:  0.9916, Adjusted R-squared:  0.9892 
## F-statistic: 414.8 on 2 and 7 DF,  p-value: 5.356e-08

— A. Generar el plano de regresión (Superficie) —

# 1. Crear rangos basados en los datos reales de tu Excel
range_X1 <- seq(min(datos_regresion$X1), max(datos_regresion$X1), length.out = 30)
range_X2 <- seq(min(datos_regresion$X2), max(datos_regresion$X2), length.out = 30)

# 2. Crear la matriz de predicción usando los nombres de tu modelo (Y ~ X1 + X2)
pred_fun <- function(x1, x2) {
  predict(modelo_rlm, newdata = data.frame(X1 = x1, X2 = x2))
}
Z_predicha <- outer(range_X1, range_X2, Vectorize(pred_fun))

— B. Construcción del gráfico con Plotly —

# 1. Crear la superficie (Plano)
fig <- plot_ly(
  x = ~range_X1, 
  y = ~range_X2, 
  z = ~t(Z_predicha), 
  type = "surface",
  opacity = 0.6, 
  showscale = FALSE,
  name = "Plano de regresión"
) 

# 2. Añadir los puntos reales del Excel
fig <- fig %>% add_markers(
  data = datos_regresion,
  x = ~X1, 
  y = ~X2, 
  z = ~Y,
  marker = list(
    size = 4, 
    color = '#27ae60', 
    line = list(color = 'black', width = 1)
  ),
  name = "Datos Reales",
  inherit = FALSE
)

# 3. PERSONALIZACIÓN DE NOMBRES (Edita lo que está entre comillas)
fig <- fig %>% layout(
  title = "Análisis de regresión múltiple: visualización 3D",
  scene = list(
    xaxis = list(title = "Inversión en publicidad ($)"), # Cambia esto por tu X1
    yaxis = list(title = "Fuerza de ventas (Pers.)"),    # Cambia esto por tu X2
    zaxis = list(title = "Ingresos totales (Y)")        # Cambia esto por tu Y
  )
)

# 4. Mostrar el gráfico final
fig

— C. Resultados estadísticos —

A continuación, se presentan los coeficientes estimados del modelo. Estos valores representan el impacto de cada variable independiente sobre la variable dependiente.

library(stargazer)
stargazer(modelo_rlm, 
          type = "html", 
          title = "Tabla 1: Resultados de la regresión múltiple",
          dep.var.labels = "Ingresos Totales (Y)",
          covariate.labels = c("Inversión en publicidad (X1)", "Fuerza de ventas (X2)"),
          digits = 3)
Tabla 1: Resultados de la regresión múltiple
Dependent variable:
Ingresos Totales (Y)
Inversión en publicidad (X1) 0.650**
(0.250)
Fuerza de ventas (X2) 1.110***
(0.267)
Constant 31.981***
(1.632)
Observations 10
R2 0.992
Adjusted R2 0.989
Residual Std. Error 1.397 (df = 7)
F Statistic 414.849*** (df = 2; 7)
Note: p<0.1; p<0.05; p<0.01

— D. Predicción de escenario —

Utilizando el modelo ajustado, podemos predecir un valor esperado. Por ejemplo, si invertimos 50 en Publicidad y contamos con 30 personas en la Fuerza de Ventas:

Resultado de la predicción: El valor estimado para la variable dependiente (Y) es de: 97.78.

— E. Diagnóstico del modelo (Visualización de residuos 3D) —

En este gráfico, las líneas verticales representan el residuo. Los puntos con colores más intensos indican dónde el modelo tiene mayor error de predicción.

— F. Interpretación de significancia —

Conclusión técnica:

  • La variable X1 (Publicidad) es estadísticamente significativa (p < 0.05), lo que implica que tiene un impacto real sobre las ventas.
  • La variable X2 (Fuerza de Ventas) es estadísticamente significativa (p < 0.05) para explicar el comportamiento de Y.