Conceptos Matemáticos de la Regresión Lineal Múltiple

1. Introducción

La regresión lineal múltiple es una extensión de la regresión lineal simple, que permite modelar la relación entre una variable dependiente y varias variables independientes. Este modelo permite estudiar el efecto combinado de múltiples variables predictoras sobre la variable respuesta.

2. Fórmula de la Regresión Lineal Múltiple

La ecuación de un modelo de regresión lineal múltiple con \(n\) variables independientes es la siguiente:

\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_n X_n + \epsilon \]

Donde: - \(Y\) es la variable dependiente (respuesta). - \(X_1, X_2, \dots, X_n\) son las variables independientes (predictoras). - \(\beta_0\) es el intercepto o valor de \(Y\) cuando todas las \(X_i\) son 0. - \(\beta_1, \beta_2, \dots, \beta_n\) son los coeficientes de regresión que indican cuánto cambia \(Y\) por cada unidad de cambio en la variable independiente correspondiente, manteniendo las otras constantes. - \(\epsilon\) es el término de error, que captura la variabilidad en \(Y\) no explicada por las variables independientes.

3. Interpretación de los Coeficientes

  • Intersección (\(\beta_0\)): Representa el valor esperado de \(Y\) cuando todas las variables independientes son iguales a 0.
  • Pendientes (\(\beta_1, \beta_2, \dots, \beta_n\)): Cada coeficiente \(\beta_i\) indica el cambio esperado en \(Y\) por cada unidad de aumento en \(X_i\), manteniendo las otras variables constantes. Este concepto se conoce como el efecto marginal de cada variable independiente.

4. Ajuste del Modelo

El modelo se ajusta utilizando el método de los mínimos cuadrados, que busca minimizar la suma de los cuadrados de los errores (residuos) entre los valores observados y los valores predichos.

La suma de los cuadrados de los residuos (SSE) se calcula como:

\[ SSE = \sum_{i=1}^{n} (Y_i - \hat{Y}_i)^2 \]

Donde: - \(Y_i\) son los valores observados de la variable dependiente. - \(\hat{Y}_i\) son los valores predichos por el modelo.

5. Supuestos de la Regresión Lineal Múltiple

Para que los resultados de la regresión lineal múltiple sean válidos, se deben cumplir ciertos supuestos: 1. Linealidad: La relación entre las variables independientes y la dependiente debe ser lineal. 2. Independencia: Las observaciones deben ser independientes entre sí. 3. Homoscedasticidad: La varianza de los errores debe ser constante (ausencia de heterocedasticidad). 4. Normalidad: Los errores deben seguir una distribución normal.

6. Gráfica de un Plano de Regresión

En la regresión lineal múltiple con dos variables independientes (\(X_1\) y \(X_2\)), el modelo ajusta un plano de regresión en un espacio tridimensional para predecir la variable dependiente \(Y\). Veamos un código en R que nos genera un plano de regresión, utilizando el dataset que hemos venido revisando en clases. Para hacer esta gráfica debemos hacer uso de la librería plotly.

library(plotly)
## Cargando paquete requerido: ggplot2
## 
## Adjuntando el paquete: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
# Definir las variables independientes (wt y hp) y la variable dependiente (mpg)
x1 <- mtcars$wt
x2 <- mtcars$hp
y <- mtcars$mpg

# Ajustar un modelo de regresión lineal múltiple
modelo <- lm(y ~ x1 + x2)

# Crear una cuadrícula de valores para x1 y x2 para construir el plano de regresión
x1_grid <- seq(min(x1), max(x1), length.out = 30)
x2_grid <- seq(min(x2), max(x2), length.out = 30)
grid <- expand.grid(x1 = x1_grid, x2 = x2_grid)

# Realizar predicciones en la cuadrícula
pred_grid <- predict(modelo, newdata = grid)

# Reshape para hacer una matriz de predicciones en 3D
z_grid <- matrix(pred_grid, nrow = length(x1_grid), ncol = length(x2_grid))

# Graficar el plano de regresión en 3D usando plotly
plot_ly(x = ~x1, y = ~x2, z = ~y, type = "scatter3d", mode = "markers", 
        marker = list(size = 3, color = 'blue', opacity = 0.6)) %>%
  add_trace(x = ~x1_grid, y = ~x2_grid, z = ~z_grid, 
            type = "surface", showscale = FALSE, opacity = 0.6) %>%
  layout(scene = list(xaxis = list(title = 'Peso (wt)'),
                      yaxis = list(title = 'Potencia (hp)'),
                      zaxis = list(title = 'Millas por galón (mpg)')))
## Warning: 'surface' objects don't have these attributes: 'mode', 'marker'
## Valid attributes include:
## '_deprecated', 'autocolorscale', 'cauto', 'cmax', 'cmid', 'cmin', 'coloraxis', 'colorbar', 'colorscale', 'connectgaps', 'contours', 'customdata', 'customdatasrc', 'hidesurface', 'hoverinfo', 'hoverinfosrc', 'hoverlabel', 'hovertemplate', 'hovertemplatesrc', 'hovertext', 'hovertextsrc', 'ids', 'idssrc', 'legendgroup', 'legendgrouptitle', 'legendrank', 'lighting', 'lightposition', 'meta', 'metasrc', 'name', 'opacity', 'opacityscale', 'reversescale', 'scene', 'showlegend', 'showscale', 'stream', 'surfacecolor', 'surfacecolorsrc', 'text', 'textsrc', 'type', 'uid', 'uirevision', 'visible', 'x', 'xcalendar', 'xhoverformat', 'xsrc', 'y', 'ycalendar', 'yhoverformat', 'ysrc', 'z', 'zcalendar', 'zhoverformat', 'zsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'

Como puedes observar, si queremos hacer la gráfica, se hace un poco más complejo el código. Al tener más de 2 variables independientes se complica aún más, pues nos salimos de las 3 dimensiones. ¿Qué se te ocurre para graficar datos con más de 3 dimensiones?