Modelo lineal clásico

Regresión lineal simple




logo

Especialización en Estadística Aplicada

Roberto Trespalacios

Modelo lineal clásico

  • Dado un conjunto de datos \( \displaystyle \{y_i,x_{i1},\ldots ,x_{ip}\}_{i=1}^{n} \)
  • la relación entre la variable dependiente \( y_i \) y el vector \( \boldsymbol{x}_i \) de \( p \) regresores es lineal.

Esta relación se debe modelar la variable de error:

  • \( \varepsilon_i \stackrel{i.i.d}{\sim} N(0, \sigma^2) \)

(i.i.d. significa independiente e identicamente distribuidos),

\[ {\displaystyle y_i=\beta_{0}1+\beta_1 x_{i1}+\cdots +\beta_p x_{ip}+\varepsilon_i\\ = \boldsymbol{x}_i'{\boldsymbol{\beta} }+\varepsilon_i,\qquad i=1,\ldots ,n,} \]

de forma compacta

\[ \boldsymbol{y} = \boldsymbol{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon}, \]

Se deben satisfacer los siguientes supuestos:

  • \( E(y_i|\boldsymbol{x}_i)=\boldsymbol{x}_i'\boldsymbol{\beta} \) (media cero)
  • \( Var(y_i|\boldsymbol{x}_i)=\sigma^2 \) (vatianza constante)
  • \( y_i|\boldsymbol{x}_i \stackrel{ind}{\sim} N(\boldsymbol{x}'_i\boldsymbol{\beta}, \sigma^2) \) (independencia de los errores)

Forma matricial expandida del modelo lineal

\[ \underbrace{\begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix}}_{\boldsymbol{y}} = \underbrace{\begin{bmatrix}1&x_{11}&\cdots &x_{1p}\\1&x_{21}&\cdots &x_{2p}\\\vdots &\vdots &\ddots &\vdots \\1&x_{n1}&\cdots &x_{np}\end{bmatrix}}_{\boldsymbol{X}} \underbrace{ \begin{bmatrix}\beta_{0}\\\beta_1\\\beta_{2}\\\vdots \\\beta_p\end{bmatrix}}_{\boldsymbol{\beta}} + \underbrace{\begin{bmatrix} \varepsilon_1 \\ \varepsilon_2 \\ \vdots \\ \varepsilon_n \end{bmatrix}}_{\boldsymbol{\varepsilon}} \]

Que son los elementos del modelo

\[ \boldsymbol{y} = \boldsymbol{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon}, \]

Regresión lineal simple (p = 1)

  • La regresión lineal simple es un caso particular del modelo lineal multiple.
  • Intenta predecir el comportamiento de una variable \( Y \) usando otra variable \( X \).
  • El modelo de regresión lineal simple tiene la forma matricial:

\[ \underbrace{\begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} }_{\boldsymbol{y}} = \underbrace{\begin{bmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_n \end{bmatrix}}_{\boldsymbol{X}} \underbrace{ \begin{bmatrix} \beta_0 \\ \beta_1 \\ \end{bmatrix}}_{\boldsymbol{\beta}} + \underbrace{\begin{bmatrix} \varepsilon_1 \\ \varepsilon_2 \\ \vdots \\ \varepsilon_n \end{bmatrix}}_{\boldsymbol{\varepsilon}} \]

  • \( \boldsymbol y \) es un vector llamado variable respuesta o dependiente,
  • \( \boldsymbol X \) es una matriz llamada variable predictora o independiente,
  • \( \boldsymbol{\beta} \) es el vector de coeficientes del modelo lineal; el cual comprende:
    • \( \beta_0 \) intercepto de la línea con el eje \( y \),
    • \( \beta_1 \) pendiente de la línea de regresión.
  • \( \boldsymbol{\varepsilon} \) errores aleatorios, se supone con media 0 y varianza constante \( \sigma^2 \).

\[ y_i=\beta_0+\beta_1x_i+\varepsilon_i \]

O de forma más simple como:

\[ y=\beta_0+\beta_1x+\varepsilon \]

Estimación de los coeficientes de la recta de regresión lineal simple

El modelo de regresión lineal es estimado por la ecuación

\[ \hat{y} = \hat{\beta}_0 + \hat{\beta}_1x. \]

Los estimados \( \hat{\beta}_0 \) y \( \hat{\beta}_1 \) de \( \beta_0 \) y \( \beta_1 \) respectivamente, son hallados mediante el método de mínimos cuadrados

Recordemos, que la ecuación viene dada por:

\[ y_i=\beta_0+\beta_1x_i+\varepsilon_i \]

Estimación de la recta de regresión (por mínimos cuadrados)

\[ Q(\beta_0,\beta_1) = \sum\limits_i^n \varepsilon_i^2\\ = \sum_i \left(y_i - \hat{y_i} \right)^2 \\ = \sum_i \left(y_i - \beta_0 - \beta_1x_i\right)^2 \]

Derivando parcialmente \( Q \) respecto a \( \beta_0 \) y \( \beta_1 \) e igualando a cero para minimizar

Ecuaciones normales

\[ \frac{\partial{Q}}{\partial{\beta}_0} = \sum_i 2\left(y_i - \beta_0 - \beta_1x_i\right) (-1) = 0 \\ \frac{\partial{Q}}{\partial{\beta}_1} = \sum_i 2\left(y_i - \beta_0 - \beta_1x_i\right) (-x_i)=0 \]

Estimación de la recta de regresión

Reescribiendo las ecuaciones

\[ n \beta_0 + \beta_1 \sum_i- x_i = \sum_i- y_i \label{eq:d6} \\ \beta_0 \sum_i- x_i + \beta_1 \sum_i- x_i^2 = \sum_i- x_i y_i \]

Escribiendo las ecuaciones en forma matricial,

\[ \begin{bmatrix} n & \sum x_i \\ \sum x_i & \sum x_{i}^{2} \end{bmatrix} \begin{bmatrix} \beta_0 \\ \beta_1 \end{bmatrix}= \begin{bmatrix} \sum y_i\\ \sum x_iy_i \end{bmatrix} \]

Estimación de la recta de regresión

Por lo tanto,

\[ \begin{bmatrix} \hat{\beta}_0 \\ \hat{\beta}_1 \end{bmatrix}= \begin{bmatrix} n & \sum x_i \\ \sum x_i & \sum x_i^{2} \end{bmatrix}^{-1} \begin{bmatrix} \sum y_i\\ \sum x_iy_i \end{bmatrix} \]

luego, encontrando la inversa y multiplicando, tenemos

\[ \begin{bmatrix} \hat{\beta}_0 \\ \hat{\beta}_1 \end{bmatrix}= \frac{1}{\sum x_{i}^2- \left(\sum x_i\right)^2} \begin{bmatrix} \sum y_i \sum x_i^2 -\sum x_i \sum x_iy_i \\ n\sum x_iy_i - x_i\sum y_i \end{bmatrix} \]

la ecuación se puede escribir de forma compacta como:

\[ \hat{\boldsymbol{\beta}} = (\boldsymbol{X}'\boldsymbol{X})^{-1}\boldsymbol{X}'\boldsymbol{y} \]

Estimación de coeficientes de la recta de regresión

Finalmente, tenemos los coeficientes estimados de \( \beta_0 \) y \( \beta_1 \) se pueden ver en las ecuaciones

\[ \hat{\beta}_0 = \frac{\sum y_i \sum x_i^2 -\sum x_i \sum x_iy_i}{\sum x_i^2- \left(\sum x_i\right)^2} \\ =\frac{\bar{y}\left(\sum x_i\right)^2-\bar{x}\sum x_iy_i}{\sum x_i^2- n\bar{x}^2} \]

\[ \hat{\beta}_1 = \frac{n\sum x_iy_i - \sum x_{i}\sum y_i}{\sum x_i^2- \left(\sum x_i\right)^2} \\ = \frac{ \sum x_iy_i- n \bar{x}\bar{y}}{\sum x_i^2-n\bar{x}^2} \]

Observación

Recordemos que el proceso de mínimos cuadrados se está usando para estimar la linea de regresión, por lo tanto, los parámetros \( \beta_0 \) y \( \beta_1 \) son estimados por \( \hat{\beta}_0 \) y \( \hat{\beta}_1 \).

Sumas de cuadrados

Estos pueden ser reescritos en una forma más simple al definir las sumas de cuadrados.

  • \( \displaystyle ss_{xx}= \sum_i (x_i - \bar{x})^2 \\ \qquad = \sum_i x_i^2 - n \bar{x}^2 \)

  • \( ss_{yy}=\displaystyle \sum_i (y_i - \bar{y})^2 \\ \qquad = \sum_i y_i^2 - n \bar{y}^2 \)

  • \( ss_{xy}=\displaystyle \sum_i (x_i - \bar{x})(y_i - \bar{y}) \\ \qquad = \sum_i x_iy_i - n \bar{x}\bar{y} \)

Si dividimos por \( n \) cada ecuación, podemos reescribir cada una de ellas, así

  • \( \displaystyle \sigma_x^2 =\frac{ss_{xx}}{n} \)

  • \( \displaystyle \sigma_y^2 =\frac{ss_{yy}}{n} \)

  • \( \displaystyle Cov(x,y) =\frac{ss_{xy}}{n} \)

Aquí, \( Cov(x,y) \) es la covarianza; y \( \sigma_x^2 \) y \( \sigma_y^2 \), son las varianzas. Note que las cantidades \( \sum_i x_iy_i \) and \( \sum_i x_i^2 \) pueden interpretarse como un producto interior.

Estimación de coeficientes de la recta de regresión

Ahora, reescribiendo \( \hat{\beta}_0 \) y \( \hat{\beta}_1 \) en términos de varianzas y covarianzas, tenemos lo siguiente:

\[ \hat{\beta}_1 = \frac{Cov(x,y)}{\sigma_x^2} =\frac{ss_{xy}}{ss_{xx}} \]

substituyendo las sumas de cuadrados, podemos escribir \( \hat{\beta}_0 \) en términos de \( \hat{\beta}_1 \); esto es,

\[ \hat{\beta}_0 = \bar{y} - \hat{\beta}_1\bar{x} \]

Análisis de varianza para regresión lineal simple

Definición: Sesgo de un estimador

Se denomina sesgo de un estimador a la diferencia entre la esperanza (o valor esperado) del estimador y el verdadero valor del parámetro a estimar.

Es deseable que un estimador sea insesgado o centrado, es decir, que su sesgo sea nulo por ser su esperanza igual al parámetro que se desea estimar.

Estimador de la media de una población

El valor esperado de \( \bar{X} \) es igual a la media de la población \( \mu \).

En efecto, si una muestra \( X=(x_1,x_2,...,x_n) \) procede de una población de media \( \mu \), quiere decir que:

\[ E[X=x_i]= \mu , \quad \text{para cualquier}\quad i=1,\dots,n. \]

La media aritmética o media presupuestal, \( \bar{X}=\frac{1}{n}\sum_{i=1}^nX_{i} \), con lo que, al aplicar las propiedades de linealidad de la esperanza matemática se tiene que:

\[ E[\bar{X}]=E\left[{\frac{1}{n}}\sum_{i=1}^{n}X_{i}\right] ={\frac{1}{n}}E\left[\sum_{i=1}^{n}X_{i}\right]\\ \qquad ={\frac{1}{n}}\sum_{i=1}^{n}E\left[X_{i}\right]={\frac{1}{n}}\sum_{i=1}^{n}\mu ={\frac{1}{n}}n\mu =\mu \]

Estimador insesgado para la varianza de los errores

Un estimador insesgado para la varianza \( \sigma^2_{e} \) de los residuales en el modelo de regresión lineal, está dado por

\[ s^2 = \displaystyle \frac{\sum_{i=1}^n \hat{\varepsilon}_i}{n-1-p}= \frac{\sum_{i=1}^n(y_i-\hat{y}_i)^2}{n-1-p} \]

donde

\[ \hat{y}_i=\boldsymbol{x}_i'\hat{\boldsymbol{\beta}} = \begin{bmatrix} 1 & x_i \\ \end{bmatrix} \begin{bmatrix} \hat\beta_0 \\ \hat\beta_1 \end{bmatrix} \]

Note que en la ecuación de la varianza, el número de variables en la regresión lineal simple es \( p=1 \); por lo tanto \( n-1-p=n-2 \). Además, \( s^2 \) se distribuye como una \( t-student \) con \( n-2 \) grados de libertad.

Descomposición de la varianza total del modelo lineal

En el caso de regresión, la descomposición de la variación de la variable de respuesta \( Y \) es como sigue:

\[ \text{V.T DE Y = V. DEB. A LA REGRESIÓN + V. DEB. AL ERROR} \]

Realizando algunos cálculos algebraicos sencillos, tenemos la descomposición de estas variabilidades; que representan las sumas:

\[ \stackrel{\text{SST}}{\sum_{i=1}^n(y_i-\bar{y})^2} = \sum_{i=1}^n(y_i-\hat{y}_i+\hat{y}_i-\bar{y})^2= \stackrel{\text{SSR}}{\sum_{i=1}^n(\hat{y}_i-\bar{y})^2} + \stackrel{\text{SSE}}{\sum_{i=1}^n(y_i-\hat{y}_i)^2} \]

  • SST = Suma de Cuadrados Total
  • SSR = Suma de Cuadrados de Regresión y
  • SSE = Suma de Cuadrados del Error (entiendase Error aquí como residuales).

Cada una de estas sumas de cuadrados tiene una distribución \( \chi^2 \).

Análisis de varianza (anova)

Veamos los constraste de la regresión para la pendiente (\( \beta_1 \)) del modelo de regresión lineal simple.

  • ¿Disponemos de suficiente evidencia muestral para afirmar que \( X \) tiene una influencia significativa sobre \( Y \)?

O dicho de otra manera,

  • ¿disponemos de suficiente evidencia muestral para asegurar que \( X \) es realmente una variable explicativa?

Teniendo en cuenta que la posible influencia de \( X \) desaparecería si su coeficiente \( \beta_1 \) se anulase, esto nos lleva a elegir entre las posibilidades \( \beta_1=0 \) y \( \beta_1 \neq 0 \) y, por tanto, al siguiente contraste de hipótesis:

\[ \begin{align*} &H_0: \beta_1 =0 \quad (X \text{ no influye})\\ &H_1: \beta_1 \neq 0 \quad (X \text{ influye}) \end{align*} \]

Análisis de varianza (anova)

Fuentes de Variación Grados de Libertad Suma de Cuadrados Cuadrados Medios F
Debido a la regresión 1 \( SSR \) \( MSR=\frac{SSR}{1} \) \( \frac{MSR}{MSE} \)
Debido al Error \( n-2 \) \( SSE \) \( MSE=\frac{SSE}{n-2} \)
Total \( n-1 \) \( SST \)

La decisión de aceptar o rechazar \( H_0 \) se va a tomar en base al estadístico que se obtiene a partir de este análisis de la varianza:

\[ \frac{MSR}{MSE}=\frac{\frac{SSR}{1}}{\frac{SSE}{n-2}} \]

Este estadístico tiene una distribución \( F_{1;n-2} \) (bajo \( H_0 \)) y por lo tanto, la regla de decisión es de la siguiente forma: Rechazamos \( H_0 \), al nivel de significación \( \alpha \), cuando

\[ F=\frac{\frac{SSR}{1}}{\frac{SSE}{n-2}}>F_{(\alpha, gl_{num}=1, gl_{den}=n-2)} \]

Análisis de varianza e prueba de hipótesis para

También podemos alcanzar una decisión razonando con el \( p-valor \) de los datos. La manera más sencilla de “interpretar” y utilizar el \( p-valor \), es entendiendo el \( p-valor \) como el “apoyo que los datos dan a \( H_0 \)”. De este modo:

  • Si el \( p-valor < \alpha \), el apoyo a \( H_0 \) es insuficiente, y rechazaremos \( H_0 \) (al nivel de significación \( \alpha \)).
  • Si el \( p-valor > \alpha \), el apoyo a \( H_0 \) es suficiente, y aceptaremos \( H_0 \) (al nivel de significación \( \alpha \)).

Por supuesto, obtendremos la misma decisión, tanto si trabajamos con el estadístico F como si trabajamos con el \( p-valor \).

En R, puede encontrar el valor del cuantil inferior de la distribución \( F_{(\alpha, df_{num};df_{den})} \) usando el comando qf(alpha, dfnum, dfden, lower.tail=F).

En la regresión lineal múltiple es cuando será especialmente importante determinar si una variable explicativa tiene una influencia significativa o no sobre la variable respuesta.

Ejemplo 1: Precio de casas (en dólares)

Los datos a continuación, pertencen a los precios y áreas de una muestra de 15 casas en la ciudad se San juan, PR.

library(readr)
#casas <- read_csv("c:/Desktop/libro_glm/datos/casas.csv")
casas <- read_csv("~/Desktop/libro_glm/datos/casas.csv")
casas$area <- as.numeric(casas$area)
casas$precio <- as.numeric(casas$precio)
head(casas)
# A tibble: 6 x 3
   Casa  area precio
  <int> <dbl>  <dbl>
1     1  3060 179000
2     2  1600 126500
3     3  2000 134500
4     4  1300 125000
5     5  2000 142000
6     6  1956 164000

Gráfico de área vs. précio de casas (datos casas)

library("ggplot2")
# grafico de datos casas (precio por area)
ggplot(data = casas, aes(x=area,y=precio))+
  theme(text=element_text(size = 24))+
  geom_point()

 Gráfico de área vs. précio de casas (datos casas))

Ejercicio 1: Estimación de los coeficientes del modelo

  1. Con los datos precio de casas construir con la ayuda de R los estimados de los coeficientes (\( \hat{\beta} \)'s) del modelo lineal estimado

\[ \hat{y} = \hat{\beta}_0 + \hat{\beta}_1x. \]

  1. Con los datos precio de casas construir la tabla anova, y decir si se rechaza o no las hipótesis \( H_0: \beta_1=0 \) y \( H_0: \beta_0=0 \), con un nivel de significancia \( \alpha= 0.05 \). Luego comparar con la prueba anova en R.
#prueba de hipotesis para beta_1 (anova)
mod.precio <- lm(precio ~ area, data = casas)
anova(mod.precio)
Analysis of Variance Table

Response: precio
          Df     Sum Sq    Mean Sq F value   Pr(>F)    
area       1 7241245891 7241245891    36.3 0.000043 ***
Residuals 13 2591087442  199314419                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Pruebas de inferencia para el modelo de regresión lineal (prueba t-student)

A continuación, presentamos las pruebas de hipótesis más frecuentes para los parámetros \( \beta_0 \) y \( \beta_1 \). En esta prueba, se quiere verificar, si \( \beta_i \), \( i=0,1 \).

La prueba estadística para viene dada por:

\[ t_0= \frac{\hat{\beta}_i}{se(\hat{\beta}_i)} \]

Rechazamos \( H_0:\beta_i=0 \), si en la distribución \( t-student \), se cumple

\[ |t_0| > t_{(\frac{\alpha}{2},n-2)} \]

O en su defecto, si estamos usando por ejemplo, un \( \alpha =0.05 \), entonces rechazamos \( H_0:\beta_i=0 \), si el \( p-valor < 0.05 \).

Prueba t-student para inferencia sobre los coeficientes

Para el caso en que queremos probar la hipótesis \( H_0: \beta_1 =0 \).

Es decir, queremos ver si la pendiente de la recta es cero.

\[ H_0: \beta_1 =0 \\ H_1: \beta_1 \neq 0 \]

donde

\[ se(\hat{\beta}_1)=\frac{s}{\sqrt{ss_{xx}}} \]

Si \( H_0: \beta_1=0 \) se rechaza, significa que la pendiente de la recta es significativo; luego, existe una relación lineal entre la variable predictora \( X \) y la variable respuesta \( Y \).

Para el caso en que queremos probar la hipótesis \( H_0: \beta_0 =0 \).

Es decir, queremos ver si el intercepto de la recta es cero.

\[ H_0: \beta_0 =0 \\ H_1: \beta_0 \neq 0 \]

donde

\[ se(\hat{\beta}_0)=s\sqrt{\frac{1}{n}+\frac{\bar{x}^2}{ss_{xx}}} \]

Si \( H_0: \beta_0=0 \) se rechaza, entonces significa que el intercepto de la recta es significativo; por lo tanto, tiene sentido en el modelo.

Interpretación de coeficientes

Enseguida ilustramos cómo se interpretan los coficientes \( \beta_0 \) y \( \beta_1 \) del modelo de regresión lineal para los datos de precios de casas.

mod1 = lm(precio ~ area, data = casas)
summary(mod1)

Call:
lm(formula = precio ~ area, data = casas)

Residuals:
   Min     1Q Median     3Q    Max 
-19623  -8759  -2745   9157  31263 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 73167.75   12674.14    5.77 0.000065 ***
area           38.52       6.39    6.03 0.000043 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 14100 on 13 degrees of freedom
Multiple R-squared:  0.736, Adjusted R-squared:  0.716 
F-statistic: 36.3 on 1 and 13 DF,  p-value: 0.0000425

Interpretación de coeficientes

Interpretación del intercepto \( \hat{\beta}_0 \)

Indica el valor promedio de la variable de respuesta \( Y \) cuando \( X \) es cero. Si se tiene certeza de que la variable predictora \( X \) no puede asumir el valor 0, entonces la interpretación no tiene sentido.

Interpretación de la pendiente \( \hat{\beta}_1 \)

Indica el cambio promedio en la variable de respuesta \( Y \) cuando \( X \) se incrementa en una unidad.

En nuestro ejemplo (casas) podemos ver que el intercepto estimado es \( \hat{\beta}_0 =73167.75 \) y la pendiente estimada \( \hat{\beta}_1 = \) 38.52. Por lo tanto la ecuación lineal es:

\[ \hat{precio} = 73167.75 + 38.52 \hspace{.1cm} \times \acute{a}rea \]

Observaciones

  • Vemos que por una unidad de área (\( pie^2 \)), el precio promedio de una casa se incrementa en 38.52 dólares. Notemos que para una casa de área 0, el precio estimado sería 73167.75; con lo cual la interpretación, en este caso, de la estimación del parámetro \( \beta_0 \) no tiene sentido.

  • Además, tenemos que la hipótesis nula \( H_0: \beta_1= 0 \) se rechaza si el “\( p-valor \)” de la prueba de F es menor que 0.05. Para el ejemplo de las casas, tememos que el \( p-valor= 0 <0.05 \). Por lo tanto, se rechaza la hipótesis de que \( \beta_1=0 \).

Intervalos de confianza para los parámetros de regresión

Intervalo de confianza del \( 100(1-\beta_0)\% \) para la pendiente \( \beta_1 \).

\[ \hat{\beta_1} \pm t_{(\frac{\alpha}{2}, n-2)} \frac{s}{\sqrt{ss_{xx}}} \]

Podemos calcular el intervalo de confianza del \( 100(1-\beta_0)\% \) para \( \beta_1 \), con la función confint().

confint(mod1, level = 0.95)
            2.5 % 97.5 %
(Intercept) 45787 100549
area           25     52

El Coeficiente de Determinación

  • Es una medida de la bondad de ajuste del modelo de regresión hallado.
  • Se define como el cuadrado del coeficiente de correlación de Pearson. Luego, \( R^2=r^2_{xy} \)

donde

\[ \displaystyle r_{xy} = \frac{Cov(x,y)} {ss_x ss_y} \]

Otras equivalencias de \( R^2 \) son:

\[ R^2 = \frac{SSR}{SST} = 1 - \frac{SSE}{SST} = r^2_{xy}, \]

donde, SSR representa la suma de cuadrados debido a la regresión y SST representa la suma de cuadrados del total. Se puede demostrar que \( R^2=r^2_{xy} \).

  • Puesto que -1<\( r \)<1, el coeficiente de determinación varía entre 0 y 1 (\( 0< R^2 <1) \).
  • Generalmente, \( R^2 \) se interpreta como el porcentaje de la variabilidad de la variable de respuesta \( y \), que es explicada por su relación lineal con \( X \).

El Coeficiente de Determinación ajustado

  • El hecho de agregar variables explicativas \( X \) al modelo de regresión sólo puede aumentar el \( R^2 \) y nunca reducirlo.

  • Se sugiere que cuando se quieran comparar modelos de regresión con distinto número de covariables en vez de usarse el \( R^2 \).

El coeficiente de determinación múltiple ajustado \( R^2_a \)

Ajusta a \( R^2 \) dividiendo cada suma de cuadrados por sus correspondientes grados de libertad y no depende del número de variables que se incluyen en el modelo.

Tiene la de la siguiente forma

\[ \begin{align*} R^2_a & = 1 - \displaystyle \frac{\frac{SSR}{n-p-1}}{\frac{SST}{n-1}} \\ & = 1 - \left(\frac{n-1}{n-p-1}\right)\left( 1- R^2 \right) \end{align*} \]

Coeficiente de Determinación ajustado

  • Este coeficiente de determinación múltiple puede, de hecho, disminuir cuando se agrega una covariable al modelo

  • Si al comparar un modelo con las covariables \( X_1, . . . , X_k \) para explicar a \( Y \) con un modelo que tiene las mismas \( X_1,\dots,X_k \) y además a \( X_{k+1} \) como covariables vemos un aumento de los \( R^2_a \), esto es una indicación de que:

    • la covariable \( X_{k+1} \) es importante para predecir a \( Y \), aún cuando las covariables \( X_1, . . . , X_k \) ya están incluidas en el modelo.
  • Si en cambio, el \( R^2_a \) no aumenta o incluso disminuye al incorporar a \( X_{k+1} \) al modelo, esto es señal de que:

    • una vez que las variables \( X_1,\dots,X_k \) se utilizan para predecir a \( Y \), la variable \( X_{k+1} \) no contribuye a explicarla y de debe incluirse en el modelo.

Gráfico del grado de relación lineal (correlación)

\label{fig:corr} Gráfico del grado de relación lineal(correlación) entre X e Y.

Intervalo de confianza para el valor medio de las Y

Se busca es establecer un intervalo de confianza para la media \( \mu_y \) asumiendo que la relación entre \( X \) e \( Y \) es lineal,

\[ \hat{y} = \hat{\beta}_0 + \hat{\beta}_1 x_0 \]

Un intervalo de confianza del \( (1-\alpha)100\% \) para el valor medio \( \mu_y \) de todos los valores \( y \) dado que \( x = x_0 \) o escrito de una manera formal \( E[y|x=x_0] \) esta dado por:

\[ \hat{y} \pm t_{(1-\frac{\alpha}{2},n-2)} s\sqrt{h_{ii}} \]

\[ \hat{y} \pm t_{(1-\frac{\alpha}{2},n-2)} s \sqrt{\frac{1}{n}+\frac{(x_0-\bar{x})^2}{ss_{xx}}} \]

donde \( s \) es la varianza de los residuales estimada del modelo y \( h_{ii} \) es la llamada matriz sombrero (“hat”) o de proyección ortogonal.

Por ejemplo, si en particular \( x_0=1500 \), entonces podemos estimar el intervalo de confianza del \( 95\% \), para el precio medio de las casas. es decir, para los \( y's \) tales que \( x=x_0 \).

new.dat <- data.frame(area=1500)
predict(mod1,newdata =new.dat,interval='confidence')
     fit    lwr    upr
1 130952 121339 140565

Intervalo de confianza para un valor individual de las Y

Se busca es establecer un intervalo de confianza para un el valor individual de las \( y \), asumiendo que la relación entre \( X \) e \( Y \) es lineal,

\[ \hat{y}_0 = \hat{\beta}_0 + \hat{\beta}_1 x_0 \]

Un intervalo de confianza del \( (1-\alpha)100\% \) para un valor individual de \( y \) dado que \( x = x_0 \) (\( E[y|x=x_0] \)), es de la forma:

\[ \hat{y}_0 \pm t_{(1-\frac{\alpha}{2},n-2)} s \sqrt{1+\frac{1}{n}+\frac{(x_0-\bar{x})^2}{ss_{xx}}} \]

Ahora, un intervalo de confianza del \( 98\% \) para el valor predicho (individual \hat{y}_0) del precio cuando el área de la casas es \( x_0=1500 \) sería:

new.dat <- data.frame(area=1500)
predict(mod1, newdata = new.dat,interval='prediction',level = 0.98)
     fit   lwr    upr
1 130952 91721 170184

Ejemplo 3: Intervalos de confianza

A continuación graficamos el modelo lineal para los datos casas, y sus respectivas bandas de intervalos; para la media de las \( y \) y los valores individuales de \( y \). Es decir, intervalos de confianza para \( \mu_{y|{x=x_0}} \) y \( y_{x=x_0} \).

# Figura 1.10
library("ggplot2")
precio_pred <- predict(mod1, interval="prediction")
new_data <- cbind(casas, precio_pred)

p<-ggplot(new_data, aes(area, precio))+
geom_point()+
geom_line(aes(y=lwr),color="red",linetype="dashed")+
geom_line(aes(y=upr),color="red",linetype="dashed")+
geom_smooth(method=lm, se=TRUE)+
theme(text=element_text(size = 26))
p

plot of chunk unnamed-chunk-9

Análisis de residuales

  • Residuales son: \( r_i = y_i -\hat{y}_i \)
  • El residual se puede considerar como los errores aleatorios \( \hat{\varepsilon}_i \) estimados.
  • También se acostumbra usar el residual estandarizado o el residual estudentizado “deleted”.
d <- casas
d$predicted <- predict(mod1)   
d$residuals <- residuals(mod1) 
library(dplyr)
d %>% select(precio, predicted, residuals) %>% head()
# A tibble: 6 x 3
  precio predicted residuals
   <dbl>     <dbl>     <dbl>
1 179000    191048    -12048
2 126500    134805    - 8305
3 134500    150214    -15714
4 125000    123248      1752
5 142000    150214    - 8214
6 164000    148519     15481
library("ggplot2")
ggplot(d, aes(x = area, y = precio))+
geom_smooth(method="lm",se=FALSE,color="lightgrey")+
geom_segment(aes(xend=area,yend=predicted),alpha=.4)+
geom_point(aes(alpha=abs(residuals)))+ 
guides(alpha = FALSE)+
geom_point(aes(y = predicted), shape = 1)+
theme_bw()+
theme(text=element_text(size = 26))

Gráfico de área vs. précio de casas (datos casas)

En un analisis de residuales se puede detectar:

  • Si efectivamente la relación entre las variables \( X \) e \( Y \) es lineal.
  • Si hay normalidad de los errores.
  • Si hay valores anormales en la distribución de errores.
  • Si hay varianza constante (propiedad de Homocedasticidad) y
  • Si hay independencia de los errores.

1. Gráfico de residuales (Normalidad)

Plot de normalidad

Permite cotejar normalidad. Si los puntos están “cerca” de una línea recta se concluye, que hay normalidad.

library("readr")
casas <- read_csv("~/Desktop/libro_glm/datos/casas.csv")
mod1 = lm(precio ~ area, data = casas)

ind = 1:dim(casas)[1]
v.ajus = residuals(mod1)
resd.est = rstandard(mod1)
resd.stu = rstudent(mod1)
pred = predict(mod1)
area=casas$area

data.res = data.frame(ind, v.ajus, resd.est, resd.stu, pred, area)
library("gridExtra")
library("ggplot2")
ggplot(data = data.res) + stat_qq(aes(sample = resd.est))+
geom_abline(color="blue")+  
labs(title ="Plot de Normalidad",
     x="Teóricos",y ="Observados")+
theme(text=element_text(size = 26))

 Gráfico de residuales (datos casas)

2. Gráficos de residuales (Histograma)

Histograma de residuales o residuales estandarizados

También permite cotejar normalidad. Cuando el histograma es simétrico, con un único pico en el centro, se concluye que hay normalidad. Definimos los residuales como:

\[ \hat{\varepsilon}_i=y_i-\hat{y_i} \]

y los residuales estandarizados como:

\[ r_i=\frac{\hat{\varepsilon}_i}{s^2{\sqrt{1-h_{ii}}}} \]

donde \( s^2=\hat{\sigma}_{\varepsilon} \) es la varianza estimada de los residuales.

Este tipo de gráfico no es adecuado cuando son pocos datos.
ggplot(data = data.res, aes(resd.est)) +  
geom_histogram() +
labs(title = "Histograma de Residuales \nEstandarizados",
     x = "Residuales", y = "Frecuencia")+
theme(text=element_text(size = 26))

 Gráfico de residuales (datos casas)

3. Gráficos de residuales (Predichos)

Plot de residuales versus los valores predichos (Fits)

Se usa para detectar si hay datos anormales, cuando hay datos que caen bastantes alejados, tanto en el sentido vertical como horizontal. También permite detectar si la varianza de los errores es constante con respecto a la variable de respuesta.

ggplot(data.res, aes(x=pred, y=v.ajus)) +
geom_point() +
geom_hline(yintercept = 0)+
labs(title="Plot de Resid. vs. Predichos \n(Fits)", 
     x = "Fitted", y = "Residuales")+
theme(text=element_text(size = 26))

 Gráfico de residuales (datos casas)

4. Gráficos de residuales (Studentizados)

Plot de residuales versus el índice de la observación (Studentizados)

Es más específico para detectar que observación es un dato anormal. Si se usan residuales estandarizados, entonces un dato con residual más allá de 2 ó -2 es considerado un “outlier” en el sentido vertical. A continuación se definen los residuales studentizados.

\[ t_i=\frac{\hat{\varepsilon}_i}{s^2_{R(-i)}{\sqrt{1-h_{ii}}}} \]

donde \( s^2_{R(-i)}=\hat{\sigma}_{\varepsilon_{(-i)}} \), es la varianza residual estimada del modelo de regresión obtenido a partir de la muestra en la que se ha eliminado la observación \( (x_i,y_i) \).

ggplot(data.res, aes(x=pred, y=resd.stu)) +
geom_point() +
geom_hline(yintercept = 0) +
labs(title="Plot de Resid. vs. Indice \nde Obs.",
     x = "Fitted", y = "Resid. \nStudentizados")+
theme(text=element_text(size = 26))

 Gráfico de residuales (datos casas)

5. Gráficos de residuales (predictora)

Plot de residuales versus la variable predictora

  • Es usado para detectar datos anormales

  • Nos dice si la varianza de los errores es constante con respecto a la variable predictora.

ggplot(data.res, aes(x = area, y = v.ajus)) +
geom_point() +
geom_hline(yintercept=0)+
labs(title="Plot de Resid. vs. Var. \nPredictora", 
     x = "Área", y = "Residuales")+
theme(text=element_text(size = 26))

 Gráfico de residuales (datos casas)

6. Gráficos de residuales (autocorrelación)

Plot de residuales versus orden

  • Se usa para detectar si hay dependencia en el tiempo de los datos.

  • Si se nota una tendencia periódica, se dice que la serie de los datos tiene autocorrelación.

Se define como:

\[ r_{k} = \frac{Cov(y_t,y_{t-k})}{\sqrt{Var(y_t)Var(y_{t-k})}} \]

ggplot(data.res, aes(x = ind, y = v.ajus)) +
  geom_point() +
  geom_line(color="red")+
  geom_hline(yintercept=0)+
  labs(title = "Plot de Resid. vs. Orden", 
       x = "Orden", y = "Residuales")+
  theme(text=element_text(size = 26))

 Gráfico de residuales (datos casas)

Taller 1: regresión lineal simple

A continuación presentamos diferentes ejercicios para evaluar lo visto hasta aquí. Debe hacerlo “manualmente” (puede hacer cáculos en R) y mediante la función lm().

  1. Estime los parámetros \( \beta_0 \) y \( \beta_1 \) (intercepto y pendiente de la recta de regresión).

  2. Calcule los intervalos de confianza para los parámetros de regresión \( \beta_0 \) y \( \beta_1 \).

  3. Realice las prueba de hipotesis correspondiente para la pendiente y el intercepto de la recta de regresión. Diga si se rechazan las hipótesis nulas; \( H_0: \beta_i=0 \), \( i=0,1 \) al \( 0.05\% \) (usar la prueba \( t-student \)); luego compare con el summary(mod1).

  4. Calcule intervalos de confianza del \( (1-\alpha)100\% \) para:

    • el valor medio (\( \mu_y \)) de \( y \), dado \( x= 1350 \).
    • el valor individual (\( \hat{y}_y \)) de \( y \), dado \( x_0= 1350 \).
  5. Calcule el coeficiente de determinación usando alguna de las equivalencias de la ecuación que se presentó en clase y mediante la salida del summary(mod1).

Modelos no lineales que pueden ser transformados en lineales

  • En ocaciones el modelo que se está construyendo no tiene un buen desempeño.
    • Por que no cumple los supuestos del modelo lineal,
    • Por que la variable respuesta no es una respuesta lineal de los predictores.
  • Una alternativa para aumentar el coeficiente de \( R^2 \), consiste en usar modelos no lineales que pueden ser convertidos en lineales, a través de transformaciones tanto de la variable independiente como dependiente.

Algunas de las transformaciones más frecuentes.

Nombre del modelo Ecuación del Modelo Transformación Modelo Linealizado
Exponencial \( Y=\beta_0 e^{\beta_1 X} \) \( Z=\log Y, \quad X=X \) \( Z=\log \beta_0 +\beta_1 X \)
Logarítmico \( Y= \beta_0 +\beta_1 \log X \) \( Y=Y, \quad W=\log X \) \( Y= \beta_0 + \beta_1 W \)
Doblemente Logarítmico \( Y=\beta_0 X^{\beta_1} \) \( Z=\log Y, \quad W=\log X \) \( Z= \log \beta_0 + \beta_1 W \)
Hiperbólico \( Y= \beta_0 + \beta_1/X \) \( Y=Y, \quad W=1/X \) \( Y= \beta_0 +\beta_1 W \)
Inverso \( Y=1/(\beta_0 +\beta_1 X) \) \( Z=1/Y, \quad X=X \) \( Z=\beta_0 +\beta_1 X \)

Ejemplo 4: Transformación de modelos

Una marca de coches quiere generar un modelo de regresión que permita predecir el incremento de la distancia en función de la velocidad.

  • Se quiere ajustar un modelo del tipo lineal,

\[ y = \beta_0 + x\beta_1 +\varepsilon \]

attach(cars)
head(cars)
  speed dist
1     4    2
2     4   10
3     7    4
4     7   22
5     8   16
6     9   10

La figura nos muestra la gráfica de puntos de distancia vs. velocidad de los datos cars.

library(ggplot2)
ggplot(cars, aes(x = speed, y = dist)) +
  geom_point(colour = "grey") +
  labs(title="Distancia vs. velocidad") +
  theme_bw()+
  theme(plot.title = element_text(hjust = 0.5))+
  theme(text=element_text(size = 26))

 Gráfico de puentos de distancia vs. velocidad.

Modelo lineal y gráfico de residuales (datos cars)

modelo_lineal <- lm(formula = speed ~ dist, data = cars)
summary(modelo_lineal)

Call:
lm(formula = speed ~ dist, data = cars)

Residuals:
   Min     1Q Median     3Q    Max 
-7.529 -2.155  0.362  2.438  6.418 

Coefficients:
            Estimate Std. Error t value        Pr(>|t|)    
(Intercept)   8.2839     0.8744    9.47 0.0000000000014 ***
dist          0.1656     0.0175    9.46 0.0000000000015 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.2 on 48 degrees of freedom
Multiple R-squared:  0.651, Adjusted R-squared:  0.644 
F-statistic: 89.6 on 1 and 48 DF,  p-value: 0.00000000000149
library("ggfortify")
autoplot(modelo_lineal, which = 1:6, ncol = 2, label.size = 2)

 Gráfico de la recta de regresión lineal entre distancia vs. velocidad.

Comentarios sobre el modelo y sus residuales

  • Residuals vs. Fitted: nos indica que la relación entre la variable predictora y la variable respuesta, no es lineal (tiene forma de parabola).
  • Normal Q-Q: nos dice que los residuales se ditribuyen normal.
  • Scale-Location: este gráfico nos muestra que los residuales son aleatorios (homocedasticidad).
  • Cook's distance: en este caso, vemos que la distancia distancia Cook para la observación 49 es relativamente alta; puede ser un potencial dato atípico “outliers”; por lo que podría estar afectando “halando” la recta de regresión. No obstante, notamos que en el gráfico de residuales Scale-Location, este dato no se aleja mucho de los demás.
  • Residuals vs Leverage: en esta gráfica, la observación 49 tiene una distancia Cook mayor que otros puntos. Esta observación claramente, se destaca de las otras. Una regla general es que un \( CD > k/n \) es signo de atención (\( k \) es # de predictores, \( n \) es el tamaño de la muestra). Se debe de verificar si es un potencial dato atípico.
  • Cook's dist vs Leverage: podemos observar que el dato 49 es un potencial dato atípico (verificar). Se podría eliminar el dato para ver el cambio en el modelo.

Gráfica del modelo lineal

  • La figura nos muestra la recta de regresión para el modelo lineal.

  • Puede observar, que la recta no es la mejor aproximación de los datos.

  • Debería intentarse una transformación lineal o ajustar una regresión polinómica (se verá en regresión múltiple)

library(ggplot2)
ggplot(cars, aes(x = speed, y = dist)) +
geom_point(colour ="grey") +
stat_smooth(method='lm',aes(colour='lineal'),se=F)+
labs(title="Distancia vs. velocidad") +
theme_bw()+
theme(plot.title = element_text(hjust = 0.5))+
theme(text=element_text(size = 26))

\label{fig.mod.lin.cars} Gráfico de la recta de regresión lineal entre distancia vs. velocidad.

Modelo exponencial (datos cars)

Recordemos que en la tabla de transformaciones, se asume que los datos tienen la forma (modelo) de la ecuación

\[ Y= \beta_0 e^{\beta_1 \log X} \]

por lo tanto, tomando logaritmo natural en ambos miembros de la ecuación, se obtiene el siguiente modelo que es lineal en los parámetros:

\[ \qquad Y = \beta_0 e^{\beta_1 \log X}\\ \log(Y)= \beta'_0 +\beta_1 X \]

donde \( \beta'_0 = \log(\beta_0) \). En el modelo exponencial la propensión marginal(incremento instantaneo) de la distancia, viene dada por

\[ \frac{d \ dist}{d\ speed} = \beta_1\ speed \]

La interpretación de \( \beta_1 \) es la siguiente: si la velocidad (speed) se incrementa en 1 unidad, la distancia (dist) recorrida se incrementará en un porcentage de \( \beta_1\% \).

Modelo de la transformación exponencial

modelo_exp <- lm(log(speed) ~ dist, data = cars)
summary(modelo_exp)

Call:
lm(formula = log(speed) ~ dist, data = cars)

Residuals:
   Min     1Q Median     3Q    Max 
-0.878 -0.122  0.051  0.188  0.466 

Coefficients:
            Estimate Std. Error t value     Pr(>|t|)    
(Intercept)  2.14382    0.07699   27.85      < 2e-16 ***
dist         0.01206    0.00154    7.83 0.0000000004 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.28 on 48 degrees of freedom
Multiple R-squared:  0.561, Adjusted R-squared:  0.552 
F-statistic: 61.3 on 1 and 48 DF,  p-value: 0.000000000402

De acuerdo a las estimaciones del modelo exponencial, tenemos que: si incrementamos la velocidad 1 unidad(1 milla/hora), la distancia recorrida se incrementa en un 1.2\( \% \) (millas).

Gráficos de los residuales transformación exponencial

library("ggfortify")
autoplot(modelo_exp, which = 1:6, ncol = 2, label.size = 2)

 Gráfico de la recta de regresión lineal entre distancia vs. velocidad.

Interpretación de residuales modelo exponencial

En la figura anterior haga algunas interpretaciones correspondientes del modelo y sus residuales.

1.

2.

3.

\( \vdots \)

Gráfico del modelo exponencial

  • El ajuste del modelo exponencial, se adecua más a los datos.

  • Se puede verificar una regresión polinómica.

  • El \( R^2 = 0.56 \) y el \( R_a^2= 0.55 \), para el modelo polinomial, es menor que en el modelo lineal (\( R^2= 0.65 \) y el \( R^2_a= 0.64 \)).

  • No hay una ganacia en el \( R^2 \), ni en el \( R^2_a \), debido a que este mide la cantidad de variabilidad que recoge el modelo lineal, y en nuestro caso presentamos un modelo polinomial.

library(ggplot2)
ggplot(cars, aes(x = speed, y = dist)) +
geom_point(colour = "grey") +
geom_smooth(method="glm",
    formula=y~x,aes(colour='Exponencial'),
    method.args = list(family = gaussian(link='log')),se=F)+
scale_colour_discrete(name = "Modelo")+
labs(title="Distancia vs. velocidad") +
theme_bw()+
theme(plot.title = element_text(hjust = 0.5))+
theme(text=element_text(size = 22))

Gráfico del modelo exponencial, luego de la trasformación para distancia vs. velocidad.

Comparación de los modelos (lineal y exponencial)

  • El modelo cuadratico es mucho mejor que el lineal.

  • Para interpretar el modelo cuadrático, se debe desacer la trasformación.

  • La interpretación de los coeficientes en el modelo lineal y el exponencial son diferentes.

library(ggplot2)
ggplot(cars, aes(x = speed, y = dist)) +
geom_point(colour = "grey") +
stat_smooth(method='lm',aes(colour='lineal'),se=F)+
geom_smooth(method ="glm",formula = y~x, 
      aes(colour = 'Exponencial'),
      method.args =list(family=gaussian(link='log')),se=F)+
labs(title="Distancia vs. velocidad") +
theme(plot.title = element_text(hjust = 0.5))+
theme_bw()+
scale_colour_discrete(name = "Modelo")+
theme(text=element_text(size = 22))

 Gráfico del modelo exponencial, luego de la trasformación para distancia vs. velocidad.