Clase 23-10

Repaso general y exhaustivo de regresión lineal múltiple

Autor/a

Juan Creide

Enunciado y datos

Enunciado Gujarati1

La base de datos presenta datos trimestrales de la demanda de rosas sobre las siguientes variables:

  • \(Y\) = cantidad de rosas vendidas (docenas)

  • \(X_2\) = precio promedio al mayoreo de las rosas ($/docena)

  • \(X_3\) = precio promedio al mayoreo de los claveles ($/docena)

  • \(X_4\) = ingreso familiar disponible promedio semanal ($/semana)

  • \(X_5\) = variable de tendencia que toma valores de 1, 2, y así sucesivamente, durante el periodo 1971-III a 1975-II en el área metropolitana de Detroit.

Se le pide considerar las siguientes funciones de demanda:

\[ \begin{array}{c} Y_t = \alpha_1 + \alpha_2 X_{2t} + \alpha_3 X_{3t} + \alpha_4 X_{4t} + \alpha_5 X_{5t} + u_t \\ \ln Y_t = \beta_1 + \beta_2 \ln X_{2t} + \beta_3 \ln X_{3t} + \beta_4 \ln X_{4t} + \beta_5 X_{5t} + u_t \end{array} \]

a) Estime los parámetros del modelo lineal e interprete los resultados.

b) Estime los parámetros del modelo log-lineal e interprete los resultados.

Importar datos

library(readr)
datos <- read.csv2("clase 23-10_files/7_6rosas.csv", sep=";", dec=",")
head(datos)
      Y   X2   X3     X4 X5
1 11484 2.26 3.49 158.11  1
2  9348 2.54 2.85 173.36  2
3  8429 3.07 4.06 165.26  3
4 10079 2.91 3.64 172.92  4
5  9240 2.73 3.21 178.46  5
6  8862 2.77 3.66 198.62  6

Análisis exploratorio

Matriz de correlación:

plot(datos)

correlacion <- cor(datos)
correlacion
             Y         X2          X3         X4         X5
Y   1.00000000 -0.7841546 -0.02268586 -0.4130362 -0.8517602
X2 -0.78415462  1.0000000  0.47249050  0.2892452  0.6531345
X3 -0.02268586  0.4724905  1.00000000 -0.1043957 -0.1273472
X4 -0.41303617  0.2892452 -0.10439569  1.0000000  0.5498847
X5 -0.85176024  0.6531345 -0.12734716  0.5498847  1.0000000
library(corrplot)
corrplot 0.95 loaded
corrplot(correlacion, addCoef.col= TRUE, method="ellipse")

Modelo 1

\[ Y_t = \alpha_1 + \alpha_2 X_{2t} + \alpha_3 X_{3t} + \alpha_4 X_{4t} + \alpha_5 X_{5t} + u_t \]

attach(datos)
modelo1_lm <- lm(Y ~ X2 + X3 + X4 + X5)
summary(modelo1_lm)

Call:
lm(formula = Y ~ X2 + X3 + X4 + X5)

Residuals:
     Min       1Q   Median       3Q      Max 
-1095.47  -670.22   -76.67   569.51  1945.14 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)  
(Intercept) 10816.043   5988.348   1.806   0.0983 .
X2          -2227.704    920.466  -2.420   0.0340 *
X3           1251.141   1157.021   1.081   0.3027  
X4              6.283     30.622   0.205   0.8412  
X5           -197.400    101.561  -1.944   0.0780 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 969.9 on 11 degrees of freedom
Multiple R-squared:  0.8347,    Adjusted R-squared:  0.7746 
F-statistic: 13.89 on 4 and 11 DF,  p-value: 0.0002805
plot(modelo1_lm, 1)

Beta 2 mide el cambio de la demanda de rosas a medida que aumenta el precio promedio al mayoreo de rosas ($/docena).

Interpretación de \(\beta_2\)

Por cada dólar que aumenta el precio promedio de las rosas, la cantidad demandada promedio de rosas disminuye en 2227 unidades (suponiendo que las demás variables permanecen constantes).

Interpretación de \(\beta_3\)

Por cada dolar que aumenta el precio de los claveles, la cantidad demandada promedio de rosas aumenta en 1251 (suponiendo que las demás variables permanecen constantes).

Interpretación de \(\beta_5\)

A medida que se avanza un trimestre/cuatrimestre, la demanda de rosas disminuye en promedio 197 unidades (suponiendo que las demás variables permanecen constantes).

Interpretación del \(R^2\)

El 83% de la variabilidad de la demanda de rosas está explicada de forma conjunta por el precio de las rosas, el precio de los claveles, el ingreso y el transcurso del tiempo.

Diferencia entre \(R^2\) y \(R^2\) ajustado

A diferencia del \(R^2\) usual, el \(R^2\) ajustado tiene en cuenta el tamaño de la muestra y la cantidad de variables regresoras del modelo. “Penaliza” la incorporación de variables regresoras.

Prueba F incremental

El F incremental muestra la ganancia incremental de añadir coeficientes: aumenta la suma de cuadrados explicados pero disminuyen los grados de libertad Los grados de libertad repercuten sobre la variabilidad de los coeficientes beta. Menos grados de libertad impica más incertidumbre asociada a ellos.

Como tenemos un valor P asociado a la prueba F de 0.0002805, podemos concluir que el modelo es significativo.

Modelo 2

Transformación de las variables:

lnY <- log(Y)
lnX2 <- log(X2)
lnX3 <- log(X3)
lnX4 <- log(X4)

Creación del modelo:

modelo2_lm <- lm(lnY ~ lnX2 + lnX3 + lnX4 + X5)
summary(modelo2_lm)

Call:
lm(formula = lnY ~ lnX2 + lnX3 + lnX4 + X5)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.27262 -0.06195  0.00202  0.05777  0.31723 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  3.57216    4.69516   0.761   0.4628  
lnX2        -1.17073    0.48832  -2.397   0.0354 *
lnX3         0.73794    0.65286   1.130   0.2824  
lnX4         1.15321    0.90199   1.279   0.2274  
X5          -0.03011    0.01642  -1.834   0.0938 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1607 on 11 degrees of freedom
Multiple R-squared:  0.7988,    Adjusted R-squared:  0.7256 
F-statistic: 10.92 on 4 and 11 DF,  p-value: 0.0007981
plot(modelo2_lm, 1)

Intepretación de los coeficientes y R²:

  • A medida que el precio de las rosas aumenta en un 1%, la demanda de rosas disminuye en promedio 1,17% (suponiendo que las demás variables permanecen constantes). Entonces, la demanda de rosas es elástica

  • A medida que el precio de claveles aumenta en un 1%, la demanda de rosas aumenta un 0,73%, manteniendo las demás variables constantes.

  • A medida que transcurre un cuatrimestre, la cantidad demandada de rosas disminuye en promedio un -0,03%.

  • El cambio relativo de la cantidad demandada de rosas se explica por las variables que intervienen en el modelo en un 79,88%.

Los valores R de distintos modelos no son directamente comparables

Los valores R^2 no son comparables en los modelos lineal y log-log, ya que se están expresados en unidades diferentes. Hay que realizar una transformación.

Otra posibilidad que imposibilite dicha comparación es si se tuviera distintos tamaños de muestra.

anova_modelo1 <- anova(modelo1_lm)
anova_modelo1
Analysis of Variance Table

Response: Y
          Df   Sum Sq  Mean Sq F value    Pr(>F)    
X2         1 38490403 38490403 40.9187 5.103e-05 ***
X3         1  9749329  9749329 10.3644  0.008168 ** 
X4         1   455799   455799  0.4846  0.500810    
X5         1  3553605  3553605  3.7778  0.077955 .  
Residuals 11 10347220   940656                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
SCT <- sum(anova_modelo1$Sum) #Suma de Cuadrados Totales
y_sombrero <- predict(modelo2_lm)
y_sombrero
       1        2        3        4        5        6        7        8 
9.348877 9.138720 9.092688 9.096909 9.085150 9.258249 8.870484 8.925690 
       9       10       11       12       13       14       15       16 
9.016246 8.896663 8.643225 8.663696 8.776709 8.759752 8.330946 8.531341 

Tener en cuenta que los valores de y_sombrero se encuentran en escala logarítmica.

\[ SCRes = \sum (Y_i - \hat{Y_i})^2 \]

SCRes <- sum((datos$Y - exp(y_sombrero))^2)
R2 <- 1-(SCRes/SCT)
R2
[1] 0.8001989

Entonces, el primer modelo tiene un \(R^2\) asociado de 83,47%, mientras que el segundo tiene uno de 80%. Por lo tanto, puedo elegir el primer modelo ya que se ajusta mejor a los datos.

Test F incremental

La idea es considerar un nuevo modelo más parsimonioso (es decir, más sencillo, con menos variables regresoras).

Modelo nuevo

\[ Y_t = \alpha_1 X_1 + \alpha_2 X_2 + \alpha_3 X_3 + \alpha_4 X_4 + \alpha_5 X_5 \]

Modelo Viejo

\[ Y_t = \alpha_1 + \alpha X_2 + \alpha_5 X5 + u_t \]

modelo_viejo <- lm(Y ~ X2 + X5)
summary(modelo_viejo)

Call:
lm(formula = Y ~ X2 + X5)

Residuals:
    Min      1Q  Median      3Q     Max 
-1123.0  -702.1  -106.5   657.9  1999.0 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 14494.09    1559.88   9.292 4.19e-07 ***
X2          -1509.26     596.73  -2.529  0.02516 *  
X5           -254.12      67.41  -3.770  0.00234 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 941.2 on 13 degrees of freedom
Multiple R-squared:  0.816, Adjusted R-squared:  0.7877 
F-statistic: 28.83 on 2 and 13 DF,  p-value: 1.663e-05

¿Vale la pena incluir las variables \(\alpha_3\) y \(\alpha_3\)?

Cálculo del F incremental

\[ H_0: \beta_3 = \beta_4 = 0 \]

Si la adición de un grupo de variables al modelo genera un valor F significativamente mayor que 1, éstas deben incorporarse (la adición de un grupo de variables incrementa de modo significativo el poder explicativo del modelo de regresión).

SCExpN <- SCT - 10347220
SCExpV <- 38490403 + 12589825
SCResN <- 10347220

F_parcial = ((SCExpN-SCExpV)/2)/(SCResN/(16-5))
F_parcial
[1] 0.6213257

No rechazo la hipótesis nula,por lo que no incorporo las nuevas variables.

Se puede hacer directamente de la siguiente forma:

Prueba F incremental
anova(modelo_viejo, modelo1_lm)
Analysis of Variance Table

Model 1: Y ~ X2 + X5
Model 2: Y ~ X2 + X3 + X4 + X5
  Res.Df      RSS Df Sum of Sq      F Pr(>F)
1     13 11516128                           
2     11 10347220  2   1168908 0.6213 0.5551

Se obtiene el mismo F parcial, y además se obtiene el valor p asociado.

Notas

  1. Página 218, ejercicio 7.16↩︎