Introducción.





Tipos de regressión Uso típico
Lineal simple Predecir una variable respuesta cuantitativa a partir de una variable explicativa cuantitativa.
Polinomial Predecir una variable de respuesta cuantitativa a partir de una variable explicativa cuantitativa, donde la relación se modela como un polinomio de enésimo orden.
Lineal múltiple Predecir una variable respuesta cuantitativa a partir de dos o más variables explicativas.
Multinivel Predecir una variable de respuesta a partir de datos que tienen una estructura jerárquica (por ejemplo, estudiantes dentro de las aulas dentro de las escuelas). También se denominan modelos jerárquicos, anidados o mixtos.
Multivariante Predecir más de una variable de respuesta a partir de una o más variables explicativas.
Logística Predecir una variable de respuesta categórica a partir de una o más variables explicativas.
Poisson Predecir una variable de respuesta que represente recuentos de una o más variables explicativas.
Riesgos proporcionales de Cox Predecir el tiempo hasta un evento (muerte, falla, recaída) a partir de una o más variables explicativas.
Series de tiempo Modelado de datos de series de tiempo con errores correlacionados.
No lineales Predecir una variable de respuesta cuantitativa a partir de una o más variables explicativas, donde la forma del modelo no es lineal.
No paramétricas Predecir una variable de respuesta cuantitativa a partir de una o más variables explicativas, donde la forma del modelo se deriva de los datos y no se especifica a priori.
Robusta Predecir una variable de respuesta cuantitativa a partir de una o más variables explicativas utilizando un enfoque que es resistente al efecto de observaciones influyentes.


En esta clase no centraremos en los métodos de regresión basados en el método de minimos cuadrados tales como la regresión linear simple y regresión múltiple.


Los modelos basados en el método de mínimos cuadrados tienen la siguiente forma:

\(\hat{Y}_{i}=\hat{\beta}_{0}+\hat{\beta}_{j} X_{ji}+...+\hat{\beta}_{k} X_{ki} \quad i= 1 ... n\)

donde \(n\) es el número de observaciones y \(k\) es el número de variables predictoras. En esta ecuación \(Y_{i}\) es el valor a predecir de la variable dependiente para la observación \(i\) (especificamente, es la media estimada de la distribución \(Y\), condicionada por los valores predictivos). \(X_{ji}\) es el valor predictivo \(j\) para la observación \(i\). \({\beta}_{0}\) es la intersección (el valor predicho de \(Y\) cuando todas las variables predictoras valen cero). \({\beta}_{j}\) es el coeficiente de regresión para el predictor en posición \(j\) (representa la pendiente del cambio en \(Y\) por unidad de cambio en \(X_{ji}\)).


Nuestro objetivo es seleccionar los parámetros del modelo (intersección y pendiente) que minimice la diferencia entre los valores de respuesta actual y los valores predichos por el modelo. Específicamente, los parámetros del modelo son seleccionados para minimizar la suma de cuadrados residuales (método de minimos cuadrados):

\(\sum_{i=1}^{n}=(Y_i - \hat{Y_i)}^{2}= \sum_{i=1}^{n} (Y_i-\hat{\beta_0} + \hat{\beta_1} X_{ji} + ...+ \hat{\beta_k} X_{ki})^{2}=\sum_{i=1}^{n} \xi _{i}^{2}\)


Para interpretar los coeficientes del modelo por mínimos cuadrados se debe de satisfacer un número de asunciones estadísticas:

Si las asunciones no se cumplen, los parámetros de significación e intervalo de confianza puede que no sean correctos.

Regresión lineal simple.

Acceso al código R

Utilizaremos la base de datos preinstalada women. Esta base de datos proporciona la altura y peso de un grupo de 15 mujeres.

library(ggplot2)
help(women)
fit <- lm(weight ~ height, data=women)
summary(fit)
## 
## Call:
## lm(formula = weight ~ height, data = women)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7333 -1.1333 -0.3833  0.7417  3.1167 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -87.51667    5.93694  -14.74 1.71e-09 ***
## height        3.45000    0.09114   37.85 1.09e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.525 on 13 degrees of freedom
## Multiple R-squared:  0.991,  Adjusted R-squared:  0.9903 
## F-statistic:  1433 on 1 and 13 DF,  p-value: 1.091e-14

fit.res <- fit$residuals
mean(fit.res)
## [1] 4.808075e-17
plot(women$height, fit.res)

women$weight
##  [1] 115 117 120 123 126 129 132 135 139 142 146 150 154 159 164
residuals(fit)
##           1           2           3           4           5           6 
##  2.41666667  0.96666667  0.51666667  0.06666667 -0.38333333 -0.83333333 
##           7           8           9          10          11          12 
## -1.28333333 -1.73333333 -1.18333333 -1.63333333 -1.08333333 -0.53333333 
##          13          14          15 
##  0.01666667  1.56666667  3.11666667
#par(mfrow=c(1,1))
plot(women$height,women$weight,
               xlab="Height (in inches)",
               ylab="Weight (in pounds)") 

abline(fit)

library(ggplot2)
women$predicted <- predict(fit) 
ggplot(women, aes(x = height, y = weight)) +
  geom_smooth(method = "lm", se = FALSE, color = "lightgrey") +  
  geom_segment(aes(xend = height, yend = predicted), alpha = .2) +
  geom_point() +
  geom_point(aes(y = predicted), shape = 1) +
  theme_bw() 
## `geom_smooth()` using formula 'y ~ x'

Con la información generada se puede predecir que la ecuación es:

\(\hat{weight} = -87.52 + 3.45 x height\)


Una altura de 0 es imposible, por lo tanto, es complicado darle una interpretación a la intersección. La intersección en este caso es solamente un constante de ajuste. De la columna Pr(>|t|), podemos ver que el coeficiente de regresión (3.45) es significativamente diferente de cero (p < 0.001) e indica que hay un incremento esperado de 3.45 libra de peso por cado 1 pulgada de aumento en la altura. La multiple “R-squared” (0.991) indica que el modelo explica el 99.1% de la varianza en pesos. El error residual estándar (1.53 libra) se puede interpretar como la media de error en el peso predicho por la altura usando el presente modelo. Podemos observar que los residuales más grande tiene lugar para las alturas más bajas y altas.


Diagnosticos de la regresión

De momento no sabemos si el modelo generado es adecuado. Hay que tener en cuenta que los parámetros de la regresión dependen del grado con el que se cumplen las asunciones estadísticas de los métodos de mínimos cuadrados.

fit <- lm(weight ~ height, data=women)
#par(mfrow=c(2,2))
plot(fit)

Para entender los gráficos generados, hay que tener en cuenta las asunciones para los modelos de mínimos cuadrados:

  • Normalidad: si la variable dependiente se distribuye normalmente para un conjunto fijo de valores predictores, entonces los valores residuales deben distribuirse normalmente con una media de 0. La gráfica de QQ normal es una gráfica de probabilidad de los residuos estandarizados frente a los valores que se esperaría bajo normalidad. Si ha cumplido con la suposición de normalidad, los puntos de este gráfico deben estar en la línea recta de 45 grados. Como no es así, claramente ha violado ligeramente supuesto de normalidad.

  • Independencia: no se puede saber si los valores de las variables dependientes son independientes. Se debe de conocer cómo se recogieron los datos. No hay ninguna razón a priori para creer que el peso de una mujer influye en el peso de otra. Si se incluyeran datos de una misma familia, es posible que fuera necesario ajustar por el supuesto de independencia.

  • Linealidad: si la variable dependiente está relacionada linealmente con las variables independientes, no debe haber una relación sistemática entre los residuos y los valores predichos (“Residuals vs Fitted”). En otras palabras, el modelo debe capturar toda la varianza sistemática presente en los datos, sin dejar nada más que ruido aleatorio. En el gráfico de Residuos vs. Ajustado, verá una clara evidencia de una relación curva, lo que sugiere que es posible que desee agregar un término cuadrático a la regresión.

  • Homoscedasticidad: si ha cumplido con el supuesto de varianza constante, los puntos en el gráfico Escala-Ubicación (Scale-Location) deben ser una banda aleatoria alrededor de una línea horizontal. Parece cumplir con esta suposición.


Finalmente, el gráfico de Residuals vs. Leverage proporciona información sobre las observaciones individuales que quizás desee atender. El gráfico identifica valores atípicos, puntos de alto apalancamiento y observaciones influyentes. Específicamente:

  • Un valor atípico es una observación que no se predice bien mediante el modelo de regresión ajustado (es decir, tiene un gran residuo positivo o negativo).

  • Una observación con un valor de apalancamiento alto tiene una combinación inusual de valores de predicción. Es decir, es un valor atípico en el espacio de predicción. El valor de la variable dependiente no se usa para calcular el apalancamiento de una observación.

  • Una observación influyente es una observación que tiene un impacto desproporcionado en la determinación de los parámetros del modelo. Las observaciones influyentes se identifican mediante una estadística llamada distancia de Cook o D. de Cook.

Regresión multiple

Cuando hay más de una variable predictora, la regresión linear simple se convierte en regresión lineal múltiple. La regresion multiple se utiliza para el control de factores de confusión.

Utilizaremos la base de datos preinstalada state.x77 como ejemplo. Esta base de datos tiene información sobre población, situación económica, tasa de alfabetismo, tasa de asesinatos, y tasa de graduación en instituto para los 50 Estados de USA en 1977. Para más información sobre la base de datos se puede utilizar help(state.x77).

Imagínate que queremos explorar la relación entre la tasa de asesinatos y otras características de los estados incluyendo la población, tasa de alfabetismo, salario medio, y nivel de congelación (numero medio de días con temperaturas de congelación)


help("state.x77")
states <- as.data.frame(state.x77[,c("Murder", "Population",
                        "Illiteracy", "Income", "Frost")])

Un buen primer paso en regresión múltiple es examinar la relación entre pareja de variables.

cor(states)
##                Murder Population Illiteracy     Income      Frost
## Murder      1.0000000  0.3436428  0.7029752 -0.2300776 -0.5388834
## Population  0.3436428  1.0000000  0.1076224  0.2082276 -0.3321525
## Illiteracy  0.7029752  0.1076224  1.0000000 -0.4370752 -0.6719470
## Income     -0.2300776  0.2082276 -0.4370752  1.0000000  0.2262822
## Frost      -0.5388834 -0.3321525 -0.6719470  0.2262822  1.0000000
library(car)
## Loading required package: carData
scatterplotMatrix(states, spread=FALSE, smoother.args=list(lty=2),
    main="Scatter Plot Matrix")

Diagnostico de la regresión

states <- as.data.frame(state.x77[,c("Murder", "Population",
                        "Illiteracy", "Income", "Frost")])
fit <- lm(Murder ~ Population + Illiteracy + Income + Frost, data=states)
#par(mfrow=c(2,2))
plot(fit)

Los supuestos del modelo parecen estar bien satisfechos, con la excepción de que Nevada es un valor atípico.

Referencias

Kabacoff, R.I., 2011. R in Action.