Sesión 22 (B) — El caso nox y lnox: la parte propia, el VIF y el error estándar
Índice
- Descripción de la práctica
- Actividad 1 - El modelo y la regresión auxiliar
- Actividad 2 - El error estándar, reconstruido
- Actividad 3 - El comando
vif - Actividad 4 - La misma cuenta sin
lnox - Actividad 5 - Los intervalos y la correlación entre estimadores
- Preguntas de interpretación para la clase
- Para profundizar
- Código completo de la práctica
- Respuestas
Descripción de la práctica
La lección 13 dejó un caso sin explicar y la 14 lo explicó: en price ~ rooms + nox + lnox los dos \(t\) de la contaminación son pequeños y el \(F\) de excluirlas juntas vale \(28\). La explicación fue una longitud: la parte propia de nox, lo que queda de ella después de proyectarla sobre los demás regresores, mide \(2{,}86\), cuando el regresor en desviaciones mide \(26\). Esta práctica hace esa cuenta con Gretl, paso a paso, y comprueba que el error estándar de la tabla es \(\mathfrak s\) dividido por esa longitud.
La práctica es también la comprobación numérica del enunciado de la lección 12, \(\mathrm{ee}(\hat\beta_j)=\mathfrak s/\Vert\tilde{\boldsymbol x}_j\Vert_e\), que allí no se demostró.
Objetivos
- Obtener la parte propia de
noxcon la regresión auxiliar sobreroomsylnox, y medir su longitud de dos maneras: como raíz de la \(\mathrm{SRC}\) auxiliar y como \(\Vert\boldsymbol x_j-\mu_{\boldsymbol x_j}\boldsymbol 1\Vert_e\sqrt{1-R_j^2}\) (las dos coinciden por Pitágoras en la regresión auxiliar: apéndice, sección 5.4 (html)). - Comprobar que \(\mathfrak s/\Vert\tilde{\boldsymbol x}_j\Vert_e\) es el error estándar que imprime Gretl, con todos los decimales.
- Calcular el VIF a mano y con el comando
vif, y leer su raíz como el factor por el que se ha multiplicado el error estándar. - Repetir la cuenta sin
lnoxpara ver de dónde sale el factor \(8{,}7\) de la lección 14. - Leer los intervalos de confianza de
noxcon y sinlnox, y la correlación entre los dos estimadores.
Comandos nuevos de esta práctica. Casi todo se ha visto ya: open, ols y sus accesores $sigma, $stderr, $rsq, $ess, $coeff y $df (sesiones 11 a 18), critical (sesión 18) y $vcv (actividad 3 (html) de la práctica B de la sesión 20). Recuerde que los accesores se refieren siempre al último modelo estimado: por eso, en esta práctica, se guardan en escalares antes de estimar el siguiente. Lo nuevo:
vif- se escribe después de estimar un modelo con al menos dos regresores no constantes, y para cada regresor calcula \(1/(1-R_j^2)\), con \(R_j^2\) el de la regresión de ese regresor sobre los demás. En la ventana del modelo es
Análisis -> Colinealidad. $vcv[3,4]$vcves la matriz de varianzas y covarianzas de los coeficientes, y entre corchetes van la fila y la columna. Los coeficientes siguen el orden de la lista de regresores, así que[3,4]es la covarianza entre el tercero (nox) y el cuarto (lnox), y[3,3]la varianza del tercero.
Actividad 1 - El modelo y la regresión auxiliar
Abra hprice2 y estime price sobre rooms, nox y lnox. Anote \(\mathfrak s\) y el error estándar de nox. Después estime la regresión auxiliar: nox sobre la constante, rooms y lnox. Su \(\mathrm{SRC}\) es la longitud al cuadrado de la parte propia de nox, y su \(R^2\) es el \(R_j^2\) de la lección 14.
Dos regresiones seguidas. La primera es el modelo completo: guardamos en s la ``D.T. de la regresión'' de Gretl, \(\mathfrak s\) ($sigma), y en ee_nox el error estándar de nox. La segunda es la regresión auxiliar: nox como regresando sobre la constante, rooms y lnox. De ella guardamos el \(R^2\) y la raíz de su \(\mathrm{SRC}\) ($ess), que es la longitud de la parte propia de nox. Cinco printf imprimen el \(R^2\) auxiliar, la longitud de la parte propia (\(\sqrt{\mathrm{SRC}}\)), la longitud de nox en desviaciones, \(\sqrt{1-R^2}\) (el seno del ángulo) y el producto de esas dos últimas, que coincide con la parte propia.
o bien teclee en línea de comandos:
open hprice2.gdt --quiet
ols price const rooms nox lnox scalar s = $sigma scalar ee_nox = $stderr(nox)
Modelo 1: MCO, usando las observaciones 1-506
Variable dependiente: price
coeficiente Desv. típica Estadístico t valor p
----------------------------------------------------------------
const -8566,88 9983,25 -0,8581 0,3912
rooms 8161,84 418,340 19,51 1,65e-63 ***
nox 404,190 2198,85 0,1838 0,8542
lnox -13262,2 12655,7 -1,048 0,2952
Media de la vble. dep. 22511,51 D.T. de la vble. dep. 9208,856
Suma de cuad. residuos 1,99e+10 D.T. de la regresión 6290,373
R-cuadrado 0,536175 R-cuadrado corregido 0,533404
F(3, 502) 193,4352 Valor p (de F) 2,36e-83
Log-verosimilitud -5141,843 Criterio de Akaike 10291,69
Criterio de Schwarz 10308,59 Crit. de Hannan-Quinn 10298,32
Sin considerar la constante, el valor p más alto fue el de la variable 3 (nox)
ols nox const rooms lnox scalar R2aux = $rsq scalar longPropia = sqrt($ess) printf "\nR2 de la regresion auxiliar = %.4f\n", R2aux printf "||parte propia de nox|| = sqrt(SRC) = %.4f\n", longPropia printf "||nox en desviaciones|| = %.4f\n", sqrt(sum((nox - mean(nox))^2)) printf "sqrt(1 - R2aux) = %.4f (= seno del angulo)\n", sqrt(1 - R2aux) printf "producto = %.4f\n", sqrt(sum((nox - mean(nox))^2))*sqrt(1 - R2aux)
Modelo 2: MCO, usando las observaciones 1-506
Variable dependiente: nox
coeficiente Desv. típica Estadístico t valor p
--------------------------------------------------------------
const -4,13352 0,0837444 -49,36 5,93e-195 ***
rooms 0,000568365 0,00848297 0,06700 0,9466
lnox 5,71719 0,0295918 193,2 0,0000 ***
Media de la vble. dep. 5,549783 D.T. de la vble. dep. 1,158395
Suma de cuad. residuos 8,183946 D.T. de la regresión 0,127555
R-cuadrado 0,987923 R-cuadrado corregido 0,987875
F(2, 503) 20573,26 Valor p (de F) 0,000000
Log-verosimilitud 325,4808 Criterio de Akaike -644,9615
Criterio de Schwarz -632,2819 Crit. de Hannan-Quinn -639,9886
R2 de la regresion auxiliar = 0,9879
||parte propia de nox|| = sqrt(SRC) = 2,8608
||nox en desviaciones|| = 26,0317
sqrt(1 - R2aux) = 0,1099 (= seno del angulo)
producto = 2,8608
Lo que debe observar
La regresión auxiliar tiene un \(R^2\) de \(0{,}9879\): rooms y lnox reproducen el \(98{,}8\%\) de la variación de nox, casi todo por cuenta de lnox (mire los dos \(t\)). La parte propia mide \(2{,}861\), y las dos maneras de calcularla coinciden: raíz de la \(\mathrm{SRC}\) auxiliar, o longitud en desviaciones por \(\sqrt{1-R_j^2}=0{,}110\), que es el seno del ángulo entre nox y el subespacio de los otros dos regresores, unos \(6^\circ\).
Actividad 2 - El error estándar, reconstruido
Divida \(\mathfrak s\) entre la longitud de la parte propia y compare con la columna ``Desv. típica'' de la tabla (el error estándar). Calcule también el VIF y descomponga el error estándar en los dos factores de la lección 14.
Cinco printf con los escalares guardados: \(\mathfrak s\) del modelo completo; \(\mathfrak s\) entre la longitud de la parte propia; el error estándar que imprimió Gretl; el VIF con su raíz, calculados a partir del \(R^2\) auxiliar; y la descomposición de la lección 14, \(\mathfrak s\) entre la longitud de nox en desviaciones (el error estándar ``como si estuviera solo'') multiplicado por \(\sqrt{\mathrm{VIF}}\).
en línea de comandos:
printf "s del modelo completo = %.4f\n", s printf "s / ||parte propia de nox|| = %.4f\n", s/longPropia printf "error estandar de nox segun Gretl = %.4f\n", ee_nox printf "VIF = 1/(1 - R2aux) = %.3f sqrt(VIF) = %.3f\n", 1/(1-R2aux), 1/sqrt(1-R2aux) printf "s / ||nox en desviaciones|| = %.3f x sqrt(VIF) = %.3f\n", s/sqrt(sum((nox - mean(nox))^2)), s/sqrt(sum((nox - mean(nox))^2))/sqrt(1-R2aux)
s del modelo completo = 6290,3733 s / ||parte propia de nox|| = 2198,8472 error estandar de nox segun Gretl = 2198,8472 VIF = 1/(1 - R2aux) = 82,802 sqrt(VIF) = 9,100 s / ||nox en desviaciones|| = 241,643 x sqrt(VIF) = 2198,847
Lo que debe observar
\(6290{,}37/2{,}8608=2198{,}85\), el error estándar de la tabla con cuatro decimales. El enunciado de la lección 12 se cumple sobre datos reales. Y la descomposición: \(241{,}6\) es el error estándar que nox tendría si no compartiera nada con los demás regresores, \(\mathfrak s\) entre su longitud completa en desviaciones; multiplicado por \(\sqrt{\mathrm{VIF}}=9{,}10\) da los \(2198{,}85\). El VIF es \(82{,}8\): la varianza se ha multiplicado por \(83\), el error estándar por \(9\).
Actividad 3 - El comando vif
Vuelva al modelo completo. En la ventana del modelo, el menú Análisis -> Colinealidad calcula los factores de inflación de todos los regresores.
Hay que volver a estimar el modelo completo (con --quiet, para no repetir la tabla), porque vif actúa sobre el último modelo estimado y el último fue la regresión auxiliar.
o bien teclee en línea de comandos:
ols price const rooms nox lnox --quiet vif
Factores de inflación de varianza (VIF)
Mínimo valor posible = 1.0
Valores mayores que 10.0 pueden indicar un problema de colinealidad
rooms 1,103
nox 82,802
lnox 82,922
VIF(j) = 1/(1 - R(j)^2), donde R(j) es el coeficiente de correlación múltiple
entre la variable j y las demás variables independientes
Lo que debe observar
Gretl devuelve el \(82{,}8\) de la Actividad 2 para nox, \(82{,}9\) para lnox y \(1{,}1\) para rooms: las dos medidas de contaminación comparten casi toda su variación y ninguna comparte casi nada con rooms. La nota al pie de la salida define el VIF como \(1/(1-R_j^2)\) con el \(R_j^2\) de la regresión auxiliar, que es lo que usted acaba de calcular, y da la regla del \(10\). Léala como lo que es, una convención: \(10\) significa error estándar multiplicado por \(3{,}2\).
Actividad 4 - La misma cuenta sin lnox
Estime price ~ rooms + nox y repita: parte propia de nox sobre rooms, \(\mathfrak s\) dividido por ella, VIF.
La misma secuencia con el modelo sin lnox: la estimación, con su tabla y un printf que la resume (coeficiente, error estándar y \(t\) de nox, y \(\mathfrak s\)); \(\mathfrak s\) guardado en s_sin; la regresión auxiliar de nox sobre rooms (ahora un solo regresor), con dos printf: la longitud de la parte propia, el \(R^2\) auxiliar y el VIF, y el cociente \(\mathfrak s\) entre esa longitud; y vif tras volver a estimar el modelo de precios.
en línea de comandos:
ols price const rooms nox printf "price ~ rooms + nox: coef(nox) = %.2f ee(nox) = %.2f t = %.2f s = %.2f\n", $coeff(nox), $stderr(nox), $coeff(nox)/$stderr(nox), $sigma scalar s_sin = $sigma ols nox const rooms --quiet printf "parte propia de nox sobre rooms: ||.|| = %.3f R2aux = %.4f VIF = %.3f\n", sqrt($ess), $rsq, 1/(1-$rsq) printf "s / ||parte propia|| = %.2f\n", s_sin/sqrt($ess) ols price const rooms nox --quiet vif
Modelo 3: MCO, usando las observaciones 1-506
Variable dependiente: price
coeficiente Desv. típica Estadístico t valor p
----------------------------------------------------------------
const -18423,4 3346,66 -5,505 5,89e-08 ***
rooms 8178,56 418,076 19,56 8,62e-64 ***
nox -1884,68 253,573 -7,432 4,62e-13 ***
Media de la vble. dep. 22511,51 D.T. de la vble. dep. 9208,856
Suma de cuad. residuos 1,99e+10 D.T. de la regresión 6290,987
R-cuadrado 0,535161 R-cuadrado corregido 0,533312
F(2, 503) 289,5472 Valor p (de F) 2,12e-84
Log-verosimilitud -5142,396 Criterio de Akaike 10290,79
Criterio de Schwarz 10303,47 Crit. de Hannan-Quinn 10295,77
price ~ rooms + nox: coef(nox) = -1884,68 ee(nox) = 253,57 t = -7,43 s = 6290,99
parte propia de nox sobre rooms: ||.|| = 24,809 R2aux = 0,0917 VIF = 1,101
s / ||parte propia|| = 253,57
Factores de inflación de varianza (VIF)
Mínimo valor posible = 1.0
Valores mayores que 10.0 pueden indicar un problema de colinealidad
rooms 1,101
nox 1,101
VIF(j) = 1/(1 - R(j)^2), donde R(j) es el coeficiente de correlación múltiple
entre la variable j y las demás variables independientes
Lo que debe observar
Sin lnox, la parte propia de nox mide \(24{,}81\), casi toda su longitud en desviaciones (\(26{,}03\)), porque rooms comparte poco con ella: \(\mathrm{VIF}=1{,}1\). El error estándar es \(253{,}57\), y \(6290{,}99/24{,}809=253{,}57\) de nuevo. Entre los dos modelos, \(\mathfrak s\) casi no cambia (\(6291{,}0\) frente a \(6290{,}4\)) y el número de observaciones es el mismo. Lo único que ha cambiado es la longitud propia de nox: de \(24{,}81\) a \(2{,}86\), un factor \(8{,}7\), y el error estándar sube en ese factor, de \(253{,}6\) a \(2198{,}9\).
Actividad 5 - Los intervalos y la correlación entre estimadores
Construya el intervalo al \(95\%\) de nox en los dos modelos, el de lnox en el completo, y lea en la matriz de varianzas de los estimadores (Análisis -> Matriz de covarianzas de los coeficientes) la correlación entre \(\hat\beta_{\text{nox}}\) y \(\hat\beta_{\text{lnox}}\).
Con el modelo completo estimado, critical(t, $df, 0.025) da el valor crítico de la \(t\) con los grados de libertad del modelo (sesión 18), y cada intervalo es el coeficiente más y menos tc por su error estándar: primero el de nox y el de lnox en el modelo completo. En el printf, %% imprime un signo de tanto por ciento (un % solo abriría un hueco). La correlación entre los dos estimadores es su covarianza dividida por la raíz del producto de sus varianzas, las tres leídas en $vcv. Las dos últimas líneas vuelven a estimar el modelo sin lnox e imprimen el intervalo de nox en ese modelo, con el mismo tc.
en línea de comandos:
ols price const rooms nox lnox --quiet scalar tc = critical(t, $df, 0.025) printf "IC 95%% de nox con lnox en el modelo: [%.1f ; %.1f]\n", $coeff(nox) - tc*$stderr(nox), $coeff(nox) + tc*$stderr(nox) printf "IC 95%% de lnox con nox en el modelo: [%.1f ; %.1f]\n", $coeff(lnox) - tc*$stderr(lnox), $coeff(lnox) + tc*$stderr(lnox) printf "correlacion entre los dos estimadores: %.4f\n", $vcv[3,4]/sqrt($vcv[3,3]*$vcv[4,4]) ols price const rooms nox --quiet printf "IC 95%% de nox sin lnox: [%.1f ; %.1f]\n", $coeff(nox) - tc*$stderr(nox), $coeff(nox) + tc*$stderr(nox)
IC 95% de nox con lnox en el modelo: [-3915,9 ; 4724,3] IC 95% de lnox con nox en el modelo: [-38126,8 ; 11602,3] correlacion entre los dos estimadores: -0,9933 IC 95% de nox sin lnox: [-2382,9 ; -1386,5]
Lo que debe observar
Con lnox en el modelo, el intervalo de nox va de \(-3\,900\) a \(+4\,700\) dólares por unidad de contaminación: los datos no determinan ni el signo. Sin lnox, de \(-2\,400\) a \(-1\,400\): un coeficiente negativo medido con precisión. Y la correlación entre los dos estimadores es \(-0{,}993\): es la nube de la práctica A (actividad 2 (html)) con datos reales. Los coeficientes \(404\) y \(-13\,262\) de la tabla son un reparto casi arbitrario de un efecto que, tomado en conjunto, es el de siempre; con otra muestra de viviendas, el reparto sería otro y el ajuste casi el mismo.
Preguntas de interpretación para la clase
- En la Actividad 1, el \(t\) de
roomsen la regresión auxiliar es \(0{,}07\). ¿Qué dice eso sobre la parte propia denox, y por qué el VIF deroomsen el modelo de precios es \(1{,}1\) y no \(1\)? - La descomposición de la Actividad 2 escribe el error estándar como \(241{,}6\cdot9{,}10\). ¿Cuál de los dos factores cambia si se duplican las observaciones manteniendo la misma correlación entre
noxylnox, y cómo? - Un compañero dice: ``el VIF de
noxes \(82\), así que hay que quitarnoxdel modelo''. ¿Qué habría que preguntarle antes de aceptar la recomendación? - Los intervalos de
noxcon y sinlnoxtienen centros muy distintos, \(404\) frente a \(-1\,885\), aunque el segundo está contenido en el primero. ¿Cuál de los dos estima ``el efecto de la contaminación''? ¿Miden lo mismo? - Con la correlación \(-0{,}993\) entre los dos estimadores, ¿qué combinación de \(\beta_{\text{nox}}\) y \(\beta_{\text{lnox}}\) estaría bien medida? Diga cómo la contrastaría.
Para profundizar
- Lección 14 (lección 14), ``Cuánto se acorta: el factor de inflación de la varianza'' y ``El caso
noxylnoxcon números''. - Lección 12 (lección 12), el enunciado del error estándar con \(k\) regresores.
- Wooldridge, J. M. (2020). Introductory Econometrics, cap. 3, sección 3.4, ecuación de \(\mathrm{Var}(\hat\beta_j)\) y discusión del VIF.
- Manual de Gretl: comando
vif; accesores$sigma,$stderry$vcv.
Código completo de la práctica
| Enlace al guión: | S22-Prct-B-hprice2-vif.inp |
Respuestas
- El \(t\) de
roomsen la auxiliar. Que, una vez estálnox,roomsapenas añade nada a la reproducción denox: la parte propia denoxes, en la práctica, lo quenoxno comparte conlnox. El VIF deroomses \(1{,}1\) y no \(1\) porqueroomssí comparte algo con la parejanoxylnox(barrios más contaminados tienen viviendas algo distintas): su \(R_j^2\) es \(0{,}09\). Es un VIF pequeño, y su raíz, \(1{,}05\), dice que el error estándar deroomsapenas se ha inflado. - Duplicar las observaciones. El primer factor: \(\mathfrak s\) apenas cambia y la longitud de
noxen desviaciones se multiplica por \(\sqrt2\), así que \(241{,}6\) pasa a unos \(171\). El segundo, \(\sqrt{\mathrm{VIF}}\), depende solo del ángulo, y con la misma correlación no se mueve. El error estándar baja a \(2198{,}9/\sqrt2\approx1\,555\): mejor, pero sigue siendo nueve veces el quenoxtendría sola. La lección 14 lo dijo: más datos alargan las partes propias sin cambiar el VIF. - ``Hay que quitar
nox''. Para qué se quiere el coeficiente. Si la pregunta es el efecto de la contaminación sobre el precio,noxylnoxson la misma contaminación en dos escalas y quedarse con una es razonable: la lección 13 mostró que los dos modelos con una sola medida ajustan igual de bien, y no hay ninguna razón para preferir quitarnoxa quitarlnox. Si la pregunta fuera distinguir un efecto lineal de uno logarítmico, estos datos no lo permiten, y quitar una de las dos no resuelve la pregunta: la esconde. El VIF mide un coste; no dicta el remedio. - Qué mide cada intervalo. Cosas distintas. Sin
lnox, \(\beta_{\text{nox}}\) es el efecto de la contaminación conroomsfijo, y el intervalo lo estima con precisión. Conlnox, \(\beta_{\text{nox}}\) es el efecto denoxmanteniendo fijo su propio logaritmo, que en la muestra casi no ocurre: la parte propia mide \(2{,}86\). El segundo coeficiente responde a una pregunta que los datos apenas contienen, y su intervalo lo refleja. Ninguno de los dos está mal; el segundo está mal leído si se toma por el primero. - La combinación bien medida. La que corresponde a mover
noxylnoxjuntas, como van en los datos: en torno a la media denox, \(\bar x\approx5{,}55\), un aumento de una unidad denoxaumentalnoxen aproximadamente \(1/5{,}55=0{,}18\), así que la combinación \(\beta_{\text{nox}}+0{,}18\,\beta_{\text{lnox}}\) es la que la muestra puede estimar; con \(404\) y \(-13\,262\) da unos \(-1\,985\), cerca del \(-1\,885\) del modelo sinlnox. Se contrasta conrestrictescribiendob[nox] + 0.18*b[lnox] = cpara el valor \(c\) que se quiera, o pidiendo su intervalo con la matriz de varianzas: la varianza de la combinación es \(a^\top Va\) con \(a=(0,0,1,0{,}18)\).