La regresión es una técnica estadística donde se buscar encontrar una relación numérica entre dos variables. En esta técnica se trata de encontrar el parámetro que de la explicación numérica de la relación entra ambas variables. En la regresión lineal simple se maneja solamente una variable independiente, por lo que el modelo a estimarse sólo cuanta con dos parámetros: \[ y=\beta_0=\beta_1X+e_i \] Donde 𝑦 es la variable dependiente, 𝑥 la variable independiente y 𝜀𝑖 es el término que representa al error de estimación en dicho modelo. Dado el modelo de regresión anterior, la esperanza del valor 𝑦 es la siguiente: \[ E(y)= \widehat{y}=E(\beta_o)+E(\beta_1)+E(e_i) \] La solución para ambos parámetros es la siguiente: \[ \widehat{\beta_1}=\frac{\sum(x-\overline{x})(y-\overline{y})}{\sum{(x-\overline{x})^2}} \\ \widehat{\beta_0}=\overline{y}-\widehat{\beta_1}\overline{x} \]
De acuerdo a los valores de los parámetros hallados en modelo netamente lineales la interpretación será que el incremento en una unidad de la variable X generará que Y cambie en \(\beta_1\) unidades. A la hora de hacer un análisis regresión es necesario una exploración de los datos, esto se hace con el comando \(summary()\). Con el siguiente comando, se está construyendo una matriz con las variables empleo (años de experiencia con la empresa actual) e ingresos (ingresos familiares en miles) de la data bankloan, luego con ello se mostrará el sumario de estadísticos para ambos variables.
## V1 V2
## Min. : 0.000 Min. : 13.00
## 1st Qu.: 3.000 1st Qu.: 24.00
## Median : 7.000 Median : 35.00
## Mean : 8.566 Mean : 46.68
## 3rd Qu.:13.000 3rd Qu.: 55.75
## Max. :33.000 Max. :446.00
Una vez que se ha hecho el análisis exploratorio de datos, se puede proceder a estimar el modelo de regresión. Para estimar un modelo de regresión lineal simple en R se debe hacer uso del comando lm().Dicho comando indica que se está generando un objeto llamado reg_sim, que será el modelo de regresión lineal simple donde ingresos es el término dependiente y empleo el independiente, la data usada para estimar dicho modelo es bankloan. Para mostrar los resultados se usa el comando print().
##
## Call:
## lm(formula = ingresos ~ empleo, data = bankloan)
##
## Coefficients:
## (Intercept) empleo
## 16.227 3.555
Los resultados muestran que que la ecuación de regresión para dicho modelo tiene la siguiente forma: \[ ingresos=16.227 + 3.555*empleo \] Ello se interpreta de la siguiente manera: por cada aumento de 1 año en la empresa actual, los ingresos aumentarán en 3.555 miles de dólares para cada observación.
La regresión lineal permite trabajar con una variable a nivel de intervalo o razón. De la misma manera, es posible analizar la relación entre dos o más variables a través de ecuaciones, lo que se denomina regresión múltiple o regresión lineal múltiple. La representación del modelo de regresión múltiple es la siguiente: \[ y=\beta_0+\sum\beta_ix_i+e_i \] Donde \(y\) es la variable dependiente \(x_i\) son las variables dependientes y \(e_i\) es el término que representa el error de estimación en dicho modelo. En la econometría, la mayoría de análisis de regresión contienen a más de un simple regresor. En R, el comando para estimar modelos de regresión es el mismo que para modelos de regresión simple.
De acuerdo con dicho código se está especificando un modelo de regresión donde la variable ingresos, empleo y dirección son los términos independientes. Para observar los resultados del modelo de regresión se hace uso del comando print(), y se indica el nombre del objeto creado.
##
## Call:
## lm(formula = ingresos ~ empleo + edad + direccion, data = bankloan)
##
## Coefficients:
## (Intercept) empleo edad direccion
## -8.8101 2.9618 0.8257 0.1424
De acuerdo con los valores de los parámetros se tiene un aumento en una unidad de los años de empleo con la empresa actual traerá un aumento de casi 3000 dólares, mientras que un aumento de un año en los años de edad trae consigo un aumento de 0.83 miles de dólares a los ingresos mensuales, y finalmente, el aumento de un año en la dirección actual hará que los ingresos familiares aumenten en 0.14 miles de dólares.
Para medir la bondad de ajuste de un modelo o su capacidad explicativa se usa el estadístico R-cuadrado, llamado también el coeficiente de determinación. Se dice que, por lo general, entre mayor sea el valor de este coeficiente, mayor capacidad explicativa tendrá el modelo de estimado. Para poder visualizar el R-cuadrado en R, se debe usar el comando summary(), este mostrará de forma más detallada los estadísticos relacionados a la regresión planteada.
##
## Call:
## lm(formula = ingresos ~ empleo + edad + direccion, data = bankloan)
##
## Residuals:
## Min 1Q Median 3Q Max
## -56.00 -15.15 -3.61 7.63 364.00
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -8.8101 5.0512 -1.744 0.0815 .
## empleo 2.9618 0.1796 16.490 < 2e-16 ***
## edad 0.8257 0.1776 4.648 3.88e-06 ***
## direccion 0.1424 0.1837 0.775 0.4384
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 29.52 on 846 degrees of freedom
## Multiple R-squared: 0.4155, Adjusted R-squared: 0.4134
## F-statistic: 200.4 on 3 and 846 DF, p-value: < 2.2e-16
El valor del R-cuadrado en este modelo es de 41.55%, lo que indica que el 41.55% de la variación de los ingresos es explicado por los regresores en el modelo.
La significancia individual viene dada por la siguiente hipótesis: \[ H_o:\beta_i=0 \\ H_!:\beta_i \neq 0 \] Donde se va a entender, que lo que se quiere evaluar es que los coeficientes son diferentes de cero. El estadístico de prueba sigue una distribución T-student. Para observar la significancia de los coeficientes en el modelo de regresión, se debe hacer uso del comando summary(), este comando mostrará la significancia estadística.
##
## Call:
## lm(formula = ingresos ~ empleo + edad + direccion, data = bankloan)
##
## Residuals:
## Min 1Q Median 3Q Max
## -56.00 -15.15 -3.61 7.63 364.00
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -8.8101 5.0512 -1.744 0.0815 .
## empleo 2.9618 0.1796 16.490 < 2e-16 ***
## edad 0.8257 0.1776 4.648 3.88e-06 ***
## direccion 0.1424 0.1837 0.775 0.4384
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 29.52 on 846 degrees of freedom
## Multiple R-squared: 0.4155, Adjusted R-squared: 0.4134
## F-statistic: 200.4 on 3 and 846 DF, p-value: < 2.2e-16
Los resultados muestran que el p-valor de la prueba T en los coeficientes de las variables empleo y edad es muy cercano a cero, pr lo que se entiende que, a nivel estadístico, los coeficientes de las variables empleo y edad son significativos.
La significancia global parte de la siguiente hipótesis: \[
H_o:\beta_1=\beta_2=...=\beta_k=0 \\
H_1:\beta_1\neq\beta_2\neq...\neq\beta_k\neq0
\] Esto quiere decir que lo que se quiere demostrar es que los coeficientes en conjunto son estadísticamente significativos, es decir, diferentes de cero. El estadístico de prueba sigue una distribución F. Para esto se usa la técnica de análisis de varianzas, que tiene la siguiente estructura:
Para visualizar la tabla ANOVA y realizar la prueba de hipótesis de significancia conjunta se debe usar el comando anova().
## Analysis of Variance Table
##
## Response: ingresos
## Df Sum Sq Mean Sq F value Pr(>F)
## empleo 1 492820 492820 565.5173 < 2.2e-16 ***
## edad 1 30655 30655 35.1771 4.384e-09 ***
## direccion 1 524 524 0.6011 0.4384
## Residuals 846 737247 871
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
El p-valor asociado a la prueba de hipótesis es un valor muy bajo, cercano a 0, por lo que la hipótesis nula es rechazada y se entenderá que el modelo sí es significativo a nivel global.
Cuando se elabora un modelo econométrico, es necesario la evaluación a ivel estadístico del mismo. En esta se hace un análisis de los datos y de los supuestos estadísticos detrás del modelo de regresión lineal. Esta evaluación consta de una variedad de pruebas estadísticas que permiten averiguar si se satisfacen los supuestos. La especificación incorrecta del modelo puede deberse a una formulación no acdecuada de la forma funcional o bien, a que se violan los supuestos del error aleatorio o incluso a la información empírica que se incorpora al modelo para su estimación.
La especificación del modelo incluyendo sus supuestos, conducen a que los estimadores de los parámetros satisfagan propiedades estadísticas deseables, como son el insesgamiento, la eficiencia y a consistencia. Respecto a los errores e espeficiación en la selección de las variables explicativas, se tienen dos tipos:
Suponiendo que se tiene el siguiente modelo y este es verdadero: \[ y = \beta_0+\beta_1x_1+\beta_2x_2+e \] Pero el modelo que se estima es: \[ y=\alpha_o+\alpha_1x_1+v \] Las consecuencias al omitir \(x_2\), pueden ser:
Si la variable excluida está correlacionada con la variable que se ha incluido, el coeficiente de correlación entre las dos variables es diferente de cero, por lo tanto, los estimadores del modelo con la variable omitida (\(\alpha_0\text{ y }\alpha_1\)) serán sesgados e inconsistentes. Esto quiere decir que \(E(\widehat{\alpha_0})\) no es igual a \(\beta_o\) y \(E(\widehat{\alpha_1})\) no es igual a \(\beta_1\), y el sesgo no desaparece conforme aumenta el tamaño de la muestra.
Aunque las variables el modelo verdadero no están correlacionadas, la constante eliminada será sesgada, pese a que el valor de \(\alpha_1\) sea ahora insesgado. La varianza del término de error \(\sigma^2\) está incorrectamente estimada. Es probable que el intervalo de confianza usual y los procedimientos de pruebas de hipótesis conduzcan a conclusiones equivocadas sobre la significancia estadística de los parámetros estimados.
Otra consecuencia es que los valores pronosticados que se hacen de la variable explicada en dichos modelos sean incorrectos, ya que el estimador es inconsistente y sesgado, y los intervalos de confianza del pronóstico no son confiables.
Suponiendo que se tiene el siguiente modelo, y este es verdadero: \[ y=\alpha_o+\alpha_1x_1+v \] Pero el modelo que se estima es: \[ y=\beta_0+\beta_1x_1+\beta_2x_2+e \] Se está cometiendo un error de especificación al incluir una variable innecesaria en el modelo. Las consecuencias de dicho error son las siguientes: Todos los estimadores de MCO de los parámetros del modelo incorrecto son sesgados e inconsistentes, es decir, los parámetros estimados del modelo incorrecto serán estadísticamente iguales a cero. Si bien la varianza estará correctamente estimaday las pruebas de hipótesis conservan su validez, los coeficientes estimados por lo general serán ineficientes, es decir, sus varianzas generalmente serán más grandes que las del verdadero modelo.
Para probar la existencia de un error de especificación en el modelo planteado se hace uso de la prueba RESET. Esta prueba, cuyas siglas quieren decir Regression Specification Error Test, planteado por Ramsey en 1969, sirve para detectar errores de especificación ocasionadas por la omisión de variables independientes, por la existencia de correlación entre los regresores y el error, por la forma funcional incorrecta. Considerando el siguiente modelo: \[ y=\beta_0+\sum_{i=1}^{k}\beta_1x_k \] Este Test va a probar si \((\beta x)^2,(\beta x)^3,...,(\beta x)^k\) tienen algún poder para explicar a \(y\), esto se hará realizando la siguiente regresión lineal: \[ y=\beta_0+\sum_{i=1}^{k}\beta_ix_1+\sum_{i=1}^{m+1}\alpha\widehat{y}^i+v_i \] Donde \(m\) es el número de potencias de la variable \(y\). Si la hiótoesis de que todos los coeficientes que acompañan a \(\widehat{y}\) son cero es rechazada, entonces el modelo sufre de errores de especificación. Por tanto, la prueba RESET es utilizada para analizar si el modelo está bien o mal especificado, donde la hipótesis viene dada por lo siguiente: \[ H_o:\text{Forma funcional correcta} \\ H_1:\text{Forma funcional incorrecta} \] La prueba para analizar esta hipótesis sigue una distribución F. Esta prueba se realiza una vez que se ha estimado el modelo.
Para realizar la prueba RESET en R, se requiere el paquete lmtest y una vez regresionado el modelo, se realizar la prueba haciendo uso del comando resettest(). Los resultados son los siguientes:
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Call:
## lm(formula = wage ~ educ + exper, data = mroz)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.0461 -1.7560 -0.4655 1.2116 23.5483
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.90462 0.60573 -6.446 2.05e-10 ***
## educ 0.43093 0.04785 9.006 < 2e-16 ***
## exper 0.09260 0.01352 6.849 1.55e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.985 on 750 degrees of freedom
## Multiple R-squared: 0.1543, Adjusted R-squared: 0.152
## F-statistic: 68.4 on 2 and 750 DF, p-value: < 2.2e-16
Estos resultados muestran que el modelo es estadísticamente significativo de forma conjunta y también de forma individual para cada uno de sus parámetros. Para probar problemas de errores de especificación, se aplica el test RESET de Ramsey con el comando resettest().
##
## RESET test
##
## data: mod1
## RESET = 4.6609, df1 = 2, df2 = 748, p-value = 0.009734
De los resultados se puede entender que como la hipótesis nula es aceptada, por lo tanto, no se puede detectar una especificación errónea en dicho modelo estimado.
La multicolinealidad es un problema que suele presentarse en la estimación de modelos econométricos. Este problema implica que cierta parte de las variables del modelo guarden relación entre ellas, y esta relación variará en intensidad. La multicolinealidad es un problema que se representa de forma común en los modelos de regresión lineal en donde se hace referencia a la asociación lineal entre las variables explicativas del modelo. Se dice que es un fenómeno muestral porque en la población no se presenta, por ejemplo, se sabe que el consumo puede ser explicado or la riqueza a nivel poblacional, pero cuando se toman muestras ambas variables resultan ser no significativas, ya el valor de sus respectivos estadísticos T no son significativos. Por lo general, se tiende a sospechar de cierto grado de multicolinealidad cuando el valor de coeficiente de determinación R-cuadrado estimado en el modelo es muy alto.
Suponiendo que se tiene un modelo de regresión ineal con \(k\) variables explicativas \(x_1,x_2,...,x_k\) (donde \(x_1=1\) para todas las observaciones de forma que den cabida al intercepto), se dice que existirá una relación lineal exacta si se satisface la siguiente condición: \[ \lambda_1x_1+\lambda_2x_2+...+\lambda_kx_k=0 \] Donde $_1,_2,…,_k, son constantes que son simultáneamente iguales a cero.
Los parámetros estimados son indeterminados debido a que no es posible separar las influencias de las distintas variables explicativas debido a que están relacionadas linealmente.
En este caso a la relación lineal entre las variables explicativas se le suma un término denominado error estocástico. Tiene la siguiente definición: \[ \lambda_1x_1+\lambda_2x_2+...+\lambda_kx_k+v_i=0 \] Donde \(v_i\) es el término de error estocástico.
Podemos estimar parámetros por MCO, pero los valores estimados no son muy confiables. Cuando más grande es la correlación, más próximo a cero será la determinante de la matriz \(X´X\) lo cual incrementará las varianzas y covarianzas de los parámetros estimados.
Aunque los estimadores MCO son MELI (Mejor Estimador Linealmente Insesgado), presenta varianzas y covarianzas grandes, lo que dificulta su estimación precisa. Debido a la primera consecuencia, los intervalos de confianza tienen a ser mucho más amplios, por lo que se hace propicia una aceptación más fácil de la hipótesis nula (el verdadero coeficiente poblacional). El valor estadístico T de uno o más coeficientes tiende a cero. El coeficiente de determinación R-cuadrado al igual que la prueba F como medidas de asociación conjunta mostrarán valores altos. Los estimadores MCO y sus errores estándar se hacen sensibles a pequeños cambios en los datos.
Como la multicolinealidad es en esencia un fenómeno de tipo muestral que surge de información sobre todo no experimental recopilada en la mayoría de las ciencias sociales, no hay un método único para detectarla o medir su fuerza.
Como ya se ha mencionado, es un síntoma “clásico” de multicolinealidad. Si 𝑅2 es alta, es decir, está por encima de 0.8, la prueba 𝐹, en la mayoría de los casos, rechazará la hipótesis de que los coeficientes parciales de pendiente son simultáneamente iguales a cero, pero las pruebas t individuales mostrarán que ningún coeficiente parcial de pendiente, o muy pocos, son estadísticamente diferentes de cero.
Una forma de detectar la alta correlación que puedan existir en cada uno de los predictores es haciendo una matriz de los coeficientes de correlación y observar el valor de cada uno de estos coeficientes. Otra medida para detectar multicolinealidad es hacer dispersiones entre las variables explicativas, y las que tengan una relación lineal muy alta a nivel gráfico, van a generar sospecha de multicolinealidad.
Este factor representa la velocidad con la que crecen las varianzas en el modelo de regresión. El VIF muestra la forma como la varianza de un estimador se infla or la presencia de la multicolinealidad. A medida que el grado de colinealidad entre los regresores se acerca a 1, el VIF se acerca a infinito . Es decir, a medida que el grado de colinealidad aumenta, la varianza de un estimador también y, en el límite, se vuelve infinita. Este factor viene dado por la siguiente expresión: \[ VIF(\beta_i)=\frac{1}{1-R_{xi}^{2}} \] En el análisis de multicolinealidad se considera que un VIF cercado o mayor a 10 indica la existencia de alta multicolinealidad. Se puede utilizar la siguiente regla para interpretar el factor inflador de varianzas:
VIF | ESTADO DE LOS PREDICTORES |
---|---|
VIF=1 | No correlacionados |
1<VIF<5 | Moderadamente correlacionados |
VIF>5 a 10 | Altamente correlacionados |
De acuerdo a las diferentes formas de multicolinealidad vistas en el punto anterior, se verá en esta parte la aplicación práctica de cada una de estas haciendo uso de R.
## lnoutput capital labor
## lnoutput 1.0000000 0.35652230 0.30362168
## capital 0.3565223 1.00000000 -0.01379399
## labor 0.3036217 -0.01379399 1.00000000
De acuerdo a los resultados de la matriz, se podrá intuir cuáles son los términos regresores que generan multicolinealidad en el modelo.
Este método también es válido, y que nos permitirá observar la relación visible entre cada una de las variables que se analizarán. Para hacer matrices de dispersión en R se hace uso del comando pairs(), este comando muestra la matriz de correlación para cada una de las variables de las que se quiere hacer la evaluación.
Para estimar el factor de varianzas haciendo uso de R, se debe usar el comando vif(), que pertenece al paquete car, con el cuál se pueden hacer diversos tests para modelo de regresión lineal.
## Warning: package 'car' was built under R version 4.0.3
## Loading required package: carData
## capital labor
## 1.00019 1.00019
En primer lugar, se carga el paquete car, luego de esto se genera un objeto llamado modelo, definido por una regresión lineal. Una vez generado el objeto se hace uso del comando vif(), indicando que se hará un análisis del factor inflador de varianza del modelo estimado, como los resultados muestran estos factores muy cercanos a 1, se concluye que en este modelo las variable independiente no generan multicolinealidad.
Cuando se ha detectado que el grado de multicolinealidad del modelo estimado es grave, se puede optar por una serie de métodos de corrección. Debe señalarse que si el problema de multicolinealidad no es severo más vale no hacer nada, ya que los remediales generalmente pueden implicar problemas más fuertes que el que se buscaba corregir. Debe considerarse que frente a un problema de multicolinealidad los estimadores de mínimos cuadrados ordinarios siguen siendo insesgados, de modo que si el problema no es grave el modelo puede utilizarse sin que afecte en gran medida a la inferencia estadística. Incluso si el objetivo de la modelación no fuera el análisis estructural sino el mero pronóstico, la multicolinealidad no tendría mayor efecto dado que la relación entre las variables se mantiene tanto en el horizonte histórico como en el futuro de las variables. Existen diversas formas de dar correcciones a la multicolinealidad:
Si en el modelo se incluyen dos variables explicativas que cumplen funciones parecidas, no se pierde consistencia teórica si se elimina alguna de estas variables colineales. Igualmente, si la colinealidad se debe a la inclusión de variables irrelevantes, la eliminación de variables no significativas reducirá el grado de colinealidad. Se debe tener cuidado cuando se eliminan variables en el modelo, esto no es recomendables ya que también se podría incurrir en un problema de variable omitida en el modelo de regresión.
Si la colinealidad ocurre cuando las variables están expresadas en nivele (datos observados), podría modificarse una expresión en primeras diferencias, se deberá tener cuidado por la eventual generación de heterocedasticidad o autocorrelación. Por ejemplo, en el siguiente modelo: \[ y_t=\beta_0+\beta_1x_{1t}+\beta_2x_{2t}+u_t (1) \\ y_{t-1}=\beta_0+\beta_1+x_{1t-1}+\beta_2x_{2t-1}+u_{t-1} (2)\\ (1)-(2) \\ \vartriangle y_t=\beta_1x_{1t}+\beta_2\vartriangle x_{2t}+v_t \] El modelo inicial se transformó en un modelo donde se expresan las primeras diferencias de las variables. Hay casos donde la transformación de pasa por el concepto de deflactores o en términos relativos. La idea es que si 2 variables son colineales en niveles es poco probable que la colinealidad se mantenga en términos relativos. Suponiendo que en el siguiente modelo las variables 𝑥1 y 𝑥2 son colineales: \[ y=\beta_0+\beta_1x_1+\beta_2x_2+e \\ \] Al dividir el modelo entre \(x_1\), se tendrá: \[ \frac{y}{x_1}=\beta_0+\beta_1+\frac{b_2 x_2}{x_1}+\frac{e}{x_1} \]
El modelo básico de regresión lineal tiene como supuesto que la varianza del término de error es constante: \[ Var(\mu_i)=\sigma^2 \] Se debe tener en cuenta dicho supuesto ya que cuando se habla de estimación de parámetros en el modelo de regresión lineal, estos deben ser o mostrar una relación estable entre los predictores y la variable dependiente, por lo que los valores muestrales de la variable Y deben mostrarse igualmente dispersos ante variaciones de los regresores.
Existen diversas situaciones por las cuales se produce la violación al supuesto de homocedasticidad en el modelo de regresión lineal, entre las principales se pueden nombrar las siguientes:
valores Dispersos Esta es la situación más frecuente por la que se presenta el problema de heterocedasticidad en el modelo de regresión. Se da porque frecuentemente las observaciones de los datos en el modelo no suelen tener un comportamiento homogéneo.
Omisión de Variables relevantes Si se omite una variable en la especificación, dicha variable quedará parcialmente recogida en el comportamiento de los errores aleatorios, pudiendo generar heterocedasticidad en el modelo.
Cambio de Estructura Un cambio de estructura en el modelo va a hacer que el modelo este mal ajustado, esto generará una varianza no constante en los términos de error del modelo estimado.
FOrma Funcional Incorrecta Cuando se especifica un modelo de forma incorrecta respecto a su forma funcional, se puede provocar que la calidad del ajuste de la regresión sea muy baja, porque no solo tendrá errores mayores, sino también errores muy dispersos.
Comportamiento del error
La imagen muestra como se distribuye el error, a la izquierda se puede observar que la varianza no es constante (heterocedasticidad), y a la derecha se nota que sí lo es (homocedasticidad).
Existen diversas consecuencias por la estimación de un modelo de regresión ignorando la presencia de homocedasticidad. Las principales son las siguientes:
Existen diversos métodos para detectar el problema de la heterocedasticidad, se puede recurrir a los constrastes o métodos gráficos.
Entre los métodos gráficos se tiene:
Un simple gráfico en donde el error del modelo recorrde las observaciones puede mostrar la distribución de las perturbaciones en el modelo, esto sirve para observar si al transcurrir las observaciones se da lugar a un aumento o disminución del error, lo que puede ser un indicativo de heterocedasticidad. En R, se deberá generar el vector de los residuos del modelo una vez estimado el mismo, luego de esto se hará un gráfico de líneas teniendo en cuenta a los residuos y a las observaciones.
##
## Call:
## lm(formula = gashog2d ~ inghog2d + mieperho, data = sumaria_2015)
##
## Residuals:
## Min 1Q Median 3Q Max
## -308405 -5402 -1870 3782 193311
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.203e+03 1.413e+02 36.81 <2e-16 ***
## inghog2d 4.405e-01 2.041e-03 215.84 <2e-16 ***
## mieperho 1.497e+03 3.402e+01 43.99 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11490 on 32185 degrees of freedom
## Multiple R-squared: 0.6349, Adjusted R-squared: 0.6349
## F-statistic: 2.798e+04 on 2 and 32185 DF, p-value: < 2.2e-16
Una vez especificado el modelo, se debe crear los residuos del mismo, esto se realiza con la opción residuals en el modelo.
De acuerdo al número de observaciones se generará un vector columna que contenga a los números de cada observación.
Luego de haber generado los dos elementos se realiza un gráfico de líneas , para ello se usará el comando plot(), y en una de las opciones del gráfico se especificará que se quiere un gráfico de líneas.
Lo que se puede observar del gráfico es que existe cierta tendencia al incremento en la dispersión de los residuos a lo largo de las observaciones.
Esta representación de los valores cuadráticos del término de error y de la variable endógena puede revelar la existencia de un patrón sistemático en la varianza de la perturbación . En este tipo de gráfico se tendrá una idea preliminar de la existencia de heterocedasticidad en el modelo . En R se deberá generar en base a los residuos del modelo, el cuadrado de los mismos.
Luego de eso se procede a realizar el gráfico de dispersión entre el cuadrado de los residuos y los valores observados de la variable dependiente en el modelo.
En el gráfico se puede observar la existencia de cierto patrón, aunque muy disperso, por lo que no dice mucho acerca de la existencia de la heterocedasticidad en el modelo de regresión.
Existen diversos contrastes o pruebas que permiten saber en base a una prueba de hipótesis si hay o no hay heterocedasticidad.
El test de Breusch-Pagan (1979) es una prueba muy popular para evaluar la haterocedasticidad en el modelo de regresión. Este método analiza si la varianza de los residuos de un modelo de regresión depende de los valores de las variables independientes. El test viene dado por la siguiente prueba: \[ H_o: Homocedasticidad \\ H_1: Heterocedasticidad \] Suponiendo que se tiene el siguiente modelo: \[ y=\beta_0+\beta_1X+\mu_i \] Se debe estimar los residuos \(\widehat{\mu_i}\), de acuerdo a lo estimado se debe estimar el siguiente modelo de regresión: \[ \widehat{\mu_i}^2=y_0+y_1+v_i \] Si el test, que vendrá dado por la prueba de significancia global F confirma que las variables independientes son significativas, entonces se puede rechazar la hipótesis nula de homocedasticidad. En R, existe un comando que permite evaluar de forma directa la heterocedasticidad en el modelo, la función bptest(), que está en el paquete lmtest.
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 6799.3, df = 2, p-value < 2.2e-16
Los resultados del test indican que la hipótesis nula se rechaza, por lo tanto se entiende que el modelo presenta heterocedasticidad.
Esta es otra prueba de heterocedasticidad. Donde la Hipótesis a evaluarse viene dada por: \[ H_o: Homocedasticidad \\ H_1: Heterocedasticidad \] Partiendo del siguiente modelo: \[ y=\beta_0+\beta_1x_1+\beta_2x_2+\mu_i \] Para elaborar la prueba de White se siguen los siguientes pasos:
1.- Se debe estimar el modelo y calcular en base a este los errores del mismo. 2.- Se debe efectuar una regresión auxiliar, con los errores estimados como variable dependiente, de la siguiente forma: \[ \widehat{\mu_i}=\alpha_0+\alpha_1x_1+\alpha_2x_2+\alpha_3x_1^2+\alpha_4x_2^2+\alpha_5x_1x_2+v_i \] 3- En base a ello, se tendrá el R-cuadrado de la regresión y construir el estadístico de prueba. \[ n*R_{aux}^2\text{~}X_{5.g.l}^2 \] Los grados de libertad de esta prueba van a depender del número de parámetros de la regresión auxiliar. La regla de desición está dada por lo siguiente:
Para realizar la prueba de White en R, se tienen que seguir los pasos generando y estimando el modelo, ya que no existe una función que de forma directa realice el test de White en este programa.
Esta prueba sirve para ver si hay o no heterocedasticidad. Viene dada por la siguiente hhipótesis: \[ H_o: Homocedasticidad \\ H_1: Heterocedasticidad \] Suponiendo que se tiene el siguiente modelo: \[ y=\beta_0+\beta_1X+\mu_i \] Donde se cree que la heterocedasticidad es ocasionada por la variable explicativa \(X_i\). Los pasos a seguir para contrastar la hipótesis de la existencia del problema en el modelo son los siguientes:
1.- Ordenar la muestra en función de \(x_i\) , a partir del valor más bajo de \(x_i\). 2.- Eliminar \(C\) observaciones centrales, de tal manera que las \(n-c\) observaciones restantes queden divididas en dos grupos. 3.- Al interior de cada observación realizar un MCO y capturar la suma de cuadrados de los residuos en cada una de las submuestras (\(SCR_1\text{ y }SCR_2\)). \(SCR_1\) representa los valores más bajos de \(x_i\) y \(SCR_2\) representa a los valores más grandes de \(x_i\) . Cada una de estas tiene \((n-c-2k)/2\) grados de libertad. Se capturará el estadístico \(\lambda\) como:
\[ \lambda=\frac{SCR_2/gl_2}{SCR_1/gl_1} \\ \lambda\text{ ~ }F[(gl_1,gl_2);\alpha] \] Donde la regla de desición será la siguiente:
Para realizar el contraste de Goldfeld-Quandt en R se debe hacer uso de la función gqtest(), del paquete lmtest.
##
## Goldfeld-Quandt test
##
## data: modelo
## GQ = 15.109, df1 = 16091, df2 = 16091, p-value < 2.2e-16
## alternative hypothesis: variance increases from segment 1 to 2
Los resultados muestran que se está realizando una prueba de Goldfeld-Quandt para la variable gashog2d. Los resultados muestran que la hipótesis nula es rechazada y la alternativa que afirma la heterocedasticidad es generada por la variable gashog2d se afirma.
Suponiendo el modelo: \[ y=\beta_0+\beta_1x_1+\mu_i \] Si se conocen las varianzas heterocedásticas \(sigma^2\) para transformar el modelo (ponderarlo) y de esa manera disminuir la dispersión se divide a cada uno de los elementos del modelo entre \(\sigma_i\), el modelo quedaría así: \[ \frac{y}{\sigma_i}=\beta_0(\frac{1}{\sigma_i})+\beta_2(\frac{x_1}{\sigma_i})+\frac{\mu_i}{\sigma_i} \] La varianza se hace homoscedástica. De esta manera los estimadores de Mínimos Cuadrados Generalizados son los mejores estimadores lineales insesgados.
Al igual que los modelos de regresión con datos de corte transversal, donde se encuentra heteroscedasticidad en los términos de error, se puede encontrar autocorrelación (o correlación serial) en las regresiones con datos de series de tiempo. En este problema las perturbaciones están relacionadas entre sí, aquí, en este blogsito, se explicará el problema de autocorrelación, sus causas, sus consecuencias y los métodos de detección de la autocorrelación haciendo uso de R.
La autocorrelación es definida como la correlación que se encontrará en las perturbaciones de un modelo de regresión, esto implica una violación del supuesto del modelo de regresión lineal que dice que debe existir independencia entre los términos del error. Este problema es presentado frecuentemente en los modelos de series de tiempo. El supuesto de no correlación es denotado simbólicamente de la siguiente manera: \[ cov(\mu_i,\mu_j|x_i,x_j) = E(\mu_i,\mu_j)=0 \\ i \neq j \]
Existen diversas causas para la autocorrelación, las principales son:
Esta causa se da debido a la incercia en diversos procesos para las variables. Por ejemplo, si la economía está atravesando por la etapa del auge en el crecimiento económico generalmente las variables definidas en el tiempo como, por ejemplo, el PBI, tienden a crecer en un período y así sucesivamente.
Caso de las variables excluidas Cuando un modelo no considera todas las variables explicativas importantes, generará el problema de autocorrelación, pues las variables no explicadas conforman un patrón de comportamiento en la variable de error.
Caso de la forma funcional correcta Cualquier error de la forma funcional de la variable explicativa del modelo de regresión ocasiona autocorrelación.
En aquellos modelos donde la variable endógena aparece como una variable explicativa sesgada en el tiempo se observará el problema de autocorrelación. A dichos modelos se les conoce como autoregresivos.
Con frecuencia se manipula o se transforma la información estadística original, quitándole su comportamiento regular. Así por ejemplo cuando queremos obtener información trimestral de una variable, sumamos tres meses consecutivos y obtenemos su promedio, de esa manera se podría generar autocorrelación serial.
Si se considera el siguiente modelo: \[ y_t=\beta_0+\beta_1x_t+...+\mu_t... (1) \\ t_{t-1}=\beta_0+\beta_1x_{t-1}+\mu_{t-1} ...(2) \\ (1) - (2) \\ y_t-y_{t-1} = \beta_1\vartriangle x_t + v_t \] Esto generará autocorrelación en el término de error vt.
En un modelo de regresión definido en el tiempo, como se desconoce a la variable \(\mu_t\), se supondrá que se genera de la siguiente forma: \[ \mu_t=p\mu_{t-1}+e_t=AR(1) \] Donde:
\[ -1\leq p \leq 1 \] Generalmente las variables que se encuentran en la economía presentan autocorrelación serial. Ante la presencia de autocorrelación, las variables estimadas por MCO si bien siguen siendo insesgados ya no presentán varianza mínima y por lo tanto serán ineficientes.
Considerando el siguiente modelo del PIB, una regresión de series de tiempo se definirá de la siguiente manera:
library(haven)
gnp96 <- read_dta("D:/Renzo Villegas Tello/Cursos/Econometria Aplicada con R/1. R BASICO/Sesion 10 B - Archivos y tarea/gnp96.dta")
Para hacer regresiones con datos de series temporales, se debe usar la librería dynlm, y la función del mismo nombre; en primer lugar, se debería descargar dicho paquete, y luego activarlo en la librería. Se estima un modelo donde la variable dependiente es el producto nacional bruto y el término independiente es el rezago de primer orden de la misma variable.
## Warning: package 'dynlm' was built under R version 4.0.3
##
## Time series regression with "numeric" data:
## Start = 1, End = 142
##
## Call:
## dynlm(formula = gnp96 ~ L(gnp96), data = gnp96)
##
## Coefficients:
## (Intercept) L(gnp96)
## 1.221e-12 1.000e+00
A partir del modelo estimado, existen diversos métodos para detectar autocorrelación, los principales son los siguientes:
El estadístico está definido por: \[ d=\frac{\sum(\widehat{\mu}_t-\widehat{\mu}_{t-1})}{\sum{\mu_t^2}} \] Se pretende conocer el peso de la asociación entre observaciones sucesivas de la variable de error en la variación desigual. Para realizar el cálculo estadístico de forma manual, se debe seguir los siguientes pasos:
La regla para la desición tiene la siguiente forma:
Regla de Desición
El problema con la prueba de Durbin Watson es que cae en la zona de indecisión, cuando sucede esto se realiza la prueba de Durbin Watson modificada, con el nivel de significancia \(\alpha\). Suponiendo el modelo: \[ \mu_t=p\mu_{t-1}+e_t \\ H_o: p = 0 \\ H_1: p>0 \] Si el valor del \(d\) calculado es menos que \(d_U\), se rechaza la hipótesis nula, por lo tanto, existirá autocorrelación positiva automáticamente significativa. \[ H_o: p=0 \\ H_1: p<0 \] Si el valor \(4-dcalc\) es menor a \(d_U\), se rechaza la hupótesis nula, y se entenderá que hay autocorrelación negativa.
Para poder estimar el estadístico Durbin Watson se hace uso de la función dwtest() de la libreríá lmtest, esto arrojará los resultados para el Test de Durbin Watson de forma directa:
##
## Durbin-Watson test
##
## data: reg1
## DW = 2.1421, p-value = 0.7785
## alternative hypothesis: true autocorrelation is greater than 0
Estos resultados , basados en el modelo estimado , entiende que la hipótesis nula es aceptada , por lo tanto , no hay autocorrelación.
Es una prueba estadística que consiste en saber si cualquiera de un grupo de autocorrelaciones de una serie de tiempo son diferentes de cero. El estadístico de contraste viene dado por lo siguiente: \[ Q=n(n+2)\sum_{k=1}^h\frac{\widehat{p}k^2}{n-k} \] Donde \(n\) es el tamaño regular de la muestra, \(\widehat{p}_k\) es la autocorrelación de la muestra en el rezagos k y h esl número de rezagos que se están probando. La prueba de Ljung-Box se pude definir de la siguiente manera:
Para rechazar la hipótesis nula se debe cumplir que: \[ Q>X_h^2 \]
Para hacer el contraste de Ljung-Boxen R se debe hacer uso de la función Box-test() donde se deberá especificar que se quiere hacer el contraste de Ljung-Box. La aplicación es la siguiente:
##
## Box-Ljung test
##
## data: residuals(reg1)
## X-squared = 0.74319, df = 1, p-value = 0.3886
Estos resultados nos dicen que la hipotesis nula es aceptada y por lo tanto no hay evidencia de autocorrelación.
Esta prueba se presenta como otra alternativa para evaluar la existencia de autocorrelación en una regresión lineal , a su vez, esta prueba permite:
El procedimiento es el siguiente, sea el modelo: \[ y_t=\beta_0+\beta_1x_t+\mu_t \] Suponga que el término de error \(\mu_t\) sigue un esquema autoregresivo \(p\), con \(AR(P)\). \[ \mu_t=p_1\mu_{t-1}+p_2\mu_{t-2}+...+p_p\mu_{t-p}+e \] \(e_t\) s el término de error. La hipótesis nula es la siguiente: \[ H_o: p_1=p_2=...=p_p=0 \] Esto nos dice que esta hipótesis afirma que no existe autocorrelación serial de ningún orden. Para realizar este contraste de forma manual se debe hacer lo siguiente:
\[ \widehat{\mu}_t=\alpha_1+\alpha_2x_t+\widehat{p}_1\mu_{t-1}+\widehat{p}_2\mu_{t-2}+...+\widehat{p}_p\mu_{t-p}+e_t \] De esta regresión calcular R-cuadrado , si el tamaño de la muestra es grande se puede mostrar que: \[ (n-p)R^2\text{ ~ }X_p^2 \] Si \((n-p)R^2\) es mayor que \(X_p^2\) se rechaza la hipótesis nula cuyo caso por lo menos un \(p\) es significativamente diferente de cero, es decir, existe autocorrelación.
Para realizar el contraste en R, se debe hacer uso de la función bgtest, por defecto, se usa n orden \(p=1\), así, se obtendrá o siguiente:
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: reg1
## LM test = 0.72771, df = 1, p-value = 0.3936
La prueba acepta la hipótesis nula, por lo que se entenderá de que no existe autocorrelación serial en el modelo estimado.
Según la base de datos, explicar los salarios por hora en función de los años de educación.Para ello, el modelo debe tener la siguiente forma: \[ wage = \beta_0 + \beta_1*education+e \]
En primer lugar, se creará un gráfico de regresión con ambas variables con el siguiente código:
## The following objects are masked from mroz:
##
## age, wage
Ello nos dará una idea de los resultados que se obtendrán en el modelo de regresión. En el modelo a estimarse, wage será la variable dependiente y Education es la variable independiente. Luego de crear el objeto del modelo de regresión se digitará el comando summary(), para mostrar los resultados de dicho modelo.
##
## Call:
## lm(formula = wage ~ education, data = womenwk)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.3781 -3.7422 -0.1346 3.7202 21.7162
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 10.6190 0.6905 15.38 <2e-16 ***
## education 0.9703 0.0500 19.41 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.573 on 1341 degrees of freedom
## (657 observations deleted due to missingness)
## Multiple R-squared: 0.2193, Adjusted R-squared: 0.2187
## F-statistic: 376.7 on 1 and 1341 DF, p-value: < 2.2e-16
Estos resultados muestran que el parámetro que acompaña a la variable de años de educación es estadísticamente significativo a más del 99% de confianza, muestran que a medida que se incremente un año de educación el salario por hora aumentará en 0.9703 dólares. Se debe tener en cuenta en el siguiente modelo que el R-cuadrado asociado a dicha estimación es un valor muy bajo, por lo que el modelo no tiene gran capacidad explicativa; esto indica que se puede mejorar dicho modelo introduciendo más variables explicativas o generar valores logarítmicos para la variable dependiente.
Para colocar la línea de regresión en el gráfico generado se usará la función abline(), indicando el modelo con el cual se trabajará:
Este gráfico dará razón de la relación directa entre las variables analizadas en el modelo de regresión.
Estimar el siguiente modelo con la data del ejemplo anterior: \[ wage=\beta_0+\beta_1*education+\beta_2*age+e \] Para ello usamos la función lm
##
## Call:
## lm(formula = wage ~ education + age, data = womenwk)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.8219 -3.6000 -0.1582 3.7215 19.2203
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.08488 0.88962 6.840 1.20e-11 ***
## education 0.89658 0.04981 18.001 < 2e-16 ***
## age 0.14657 0.01871 7.833 9.66e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.452 on 1340 degrees of freedom
## (657 observations deleted due to missingness)
## Multiple R-squared: 0.2535, Adjusted R-squared: 0.2524
## F-statistic: 227.5 on 2 and 1340 DF, p-value: < 2.2e-16
Los resultados muestran una dirección entre la variable de educación y la variable de edad. Ambos coeficientes de las variables son signficativos, pero el modelo tiene poca capacidad explocativa dado que el r-cuadrado es bajo. Al modelo se le pueden añadir términos regresores, en este caso se le añadirá la variable que representa al número de hijos menores a 12 años en el hogar children.
##
## Call:
## lm(formula = wage ~ education + age + children, data = womenwk)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.5114 -3.5730 -0.0894 3.5698 19.9133
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.01952 0.92517 8.668 < 2e-16 ***
## education 0.86074 0.04936 17.437 < 2e-16 ***
## age 0.14298 0.01844 7.754 1.75e-14 ***
## children -0.66783 0.10255 -6.512 1.04e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.37 on 1339 degrees of freedom
## (657 observations deleted due to missingness)
## Multiple R-squared: 0.2764, Adjusted R-squared: 0.2748
## F-statistic: 170.5 on 3 and 1339 DF, p-value: < 2.2e-16
Estos resultados muestran que la capacidad explicativa del modelo ha aumentado un poco de acuerdo al incremento de su R-cuadrado. Los parámetros estimados son estadísticamente significativos y el p-valor para el estadístico F muestra de que a nivel global el modelo es estadísticamente significativo. Si se quiere mostrar un gráfico de dispersión para las variables que van en el modelo, se deberá hacer uso de la función pairs. Se mostrará el siguiente gráfico:
Estimar el siguiente modelo: \[ price=\beta_o+\beta_1*turn+\beta_2*length+\beta_3*mpg+\beta_4*weight+e \]
Este modelo trata explicar el precio de los vehículos, donde los términos regresores son el grado de giro del vehículo (turn), la longitud (length), las millas por galón (mpg) y el peso (weight). Se hace la regresión en R creando un objeto de nombre mod1.
##
## Call:
## lm(formula = price ~ turn + length + mpg + weight, data = auto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4832.5 -1573.7 -439.6 1425.3 6230.5
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 19581.418 6005.223 3.261 0.00173 **
## turn -323.861 126.882 -2.552 0.01291 *
## length -73.147 40.212 -1.819 0.07324 .
## mpg -94.651 80.879 -1.170 0.24591
## weight 5.030 1.154 4.359 4.46e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2325 on 69 degrees of freedom
## Multiple R-squared: 0.4128, Adjusted R-squared: 0.3788
## F-statistic: 12.13 on 4 and 69 DF, p-value: 1.606e-07
Aquí se puede notar que sólo la variable mpg no es significativa en el modelo, el R-cuadrado del mismo es cercano a 42% y el modelo s estadísticamente significativo a nivel global. Para evaluar el error de espeficiación se debe hacer uso del comando resettest().
##
## RESET test
##
## data: mod1
## RESET = 14.44, df1 = 2, df2 = 67, p-value = 6.106e-06
Esto indicará que la hipótesis nula es rechazada, por lo tanto, se entiende que hay un problema de especificación en el modelo. Puede que exista un sobreajuste del mismo, que implica que hay un exceso de variables explicativas en el modelo, para eso se reduce el número de variablesa dos básicamente, turn y length ; esto implica que ahora se asumirá que el precio esencialmente depende del grado de giro y de la longitud el vehículo. Se hace la estimación del modelo y una vez creado el objeto se realiza la prueba RESET:
##
## RESET test
##
## data: mod2
## RESET = 0.56201, df1 = 2, df2 = 69, p-value = 0.5726
Los resultados del test hacen que se acepte la hipótesis nula y, por lo tanto, no se puede decir que el modelo tiene error de especificación.
El modelo tiene la siguiente forma: \[ bwt=\beta_0+\beta_1*age+e \] Este modelo trata explicar el peso en recién nacidos, este dependerá solamente de la edad de la madre al momento de quedar embarazada, representada por la variable age, se estima en primer lugar el modelo.
Luego de estimar el modelo se le hará la prueba de RESET. Como se puede observar, los resultados indican que la hipótesis nula es rechazada, y el modelo presenta problemas de especificación. Todo hace indicar que como existe solamente un regresor, en el modelo, el error de especificación se debe al subajuste del mismo, por lo que se estimaré un nuevo modelo donde el peso del recién nacido depende además del peso de la madre antes de quedar embarazada (lwt) y de las veces que fue al doctor durante el primer trimestre del embarazo (ftv).
##
## RESET test
##
## data: mod1
## RESET = 3.9396, df1 = 2, df2 = 185, p-value = 0.02111
Se estima un segundo modelo y se vuelve a evaluar.
##
## RESET test
##
## data: mod2
## RESET = 1.1369, df1 = 2, df2 = 183, p-value = 0.3231
Estos resultados hacen aceptar la hipótesis nula y, por tanto, esto indicará que el modelo no tiene errores de especificación.
La base de datos adjunta representa características de autos en EE.UU. En el siguiente ejemplo se detectará la existencia de heteroscedasticidad haciendo uso de la prueba de Breusch-Pagan con R. El modelo presenta la siguiente forma: \[ price=\beta_0+\beta_1+\beta_2length+\beta_3weight+\beta_4+e \] Este modelo trata explicar el precio de los vehículos, donde los términos regresores son el espacio en el maletero (trunk), la longitud (length) , las millas or galón (mpg) y el peso (weight). En primer lugar, se regresiona el modelo planteado:
##
## Call:
## lm(formula = price ~ mpg + length + weight + trunk, data = auto)
##
## Coefficients:
## (Intercept) mpg length weight trunk
## 14896.450 -86.162 -109.062 4.388 25.594
Luego de esto, se tendrá el modelo creado y se podrán hacer las pruebas correspondientes de heteroscedasticidad. Se debe carga primero la librería lmtest, luego de esto se usará la función bptest(), que hará referencia al test de Breusch-Pagan.
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 24.947, df = 4, p-value = 5.155e-05
Los resultados obtenidos indican que la hipótesis nula es rechazada, por lo tanto, el modelo estimado presenta heteroscedasticidad, es decir, la varianza de las perturbaciones no es constante. Se puede corregir este problema haciendo de este modelo que es doblemente lineal, un modelo doblemente logarítmico.
##
## Call:
## lm(formula = price ~ mpg + length + weight + trunk, data = auto)
##
## Coefficients:
## (Intercept) mpg length weight trunk
## 14896.450 -86.162 -109.062 4.388 25.594
La prueba aplicada sobre este modelo tendrá la siguiente:
##
## studentized Breusch-Pagan test
##
## data: modelo2
## BP = 13.005, df = 4, p-value = 0.01125
Estos resultados muestran que la heteroscedasticidad se ha reducido, y se puede decir que al 90% de confianza no existe heteroscedasticidad en dicho modelo estimado.
Estimar el siguiente modelo: \[ pib_t=\beta_0+\beta_1pib_{t-1}+e_t \] El modelo afirma que el rezago de orden 1 de la variable PIB explica el comportamiento del Producto. Para eso se deberá hacer uso del paquete dynlm y de la función del mismo nombre:
##
## Time series regression with "numeric" data:
## Start = 1, End = 64
##
## Call:
## dynlm(formula = pib ~ L(pib), data = pib_trim)
##
## Coefficients:
## (Intercept) L(pib)
## 3.638e-12 1.000e+00
Una vez que se ejecuta dicha sintaxis se debe hacer la prueba de Durbin-Watson. Esta prueba tendrá los siguientes resultados:
##
## Durbin-Watson test
##
## data: reg1
## DW = 2.29, p-value = 0.8515
## alternative hypothesis: true autocorrelation is greater than 0
Nos dirá que no existe autocorrelación para dicho modelo estimado.
El modelo tiene la siguiente forma: \[ pib_t=\beta_0+\beta_1agro_{t-1}+e_t \] El modelo afirma que el rezago de orden 1 de la variable de la producción agropecuaria explica el comportamiento el producto bruto interno. Para eso deberá hacer uso del paquete “dynlm” y de la función del mismo nombre.
library(readxl)
pbi_agro <- read_excel("D:/Renzo Villegas Tello/Cursos/Econometria Aplicada con R/1. R BASICO/Sesion 10 B - Archivos y tarea/01-ARCHIVOS UTILIZADOS-DATA/DATA-ECONR-BAS-SESION 10-EJEMPLO 2.xlsx")
##
## Time series regression with "numeric" data:
## Start = 1, End = 66
##
## Call:
## dynlm(formula = pib ~ L(agro, 1), data = pbi_agro)
##
## Coefficients:
## (Intercept) L(agro, 1)
## -20237.1 18.4
Una vezque se ejecuta dicha sintaxis se debe hacer la prueba de Durbin-Watson. Esta prueba tendrá los siguientes resultados:
##
## Durbin-Watson test
##
## data: reg1
## DW = 0.15621, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Nos dirá que sí existe autocorrelación para dicho modelo estimado y esta es altamente significativa.