Este es el desarrollo de la cuarta evaluación del curso de “Modelo Econométrico con RStudio” realizado por EDUCATE Perú Consultores.
Se recomienda ingresar al siguiente enlace para visualizar resultados:
Para realizar este set de preguntas, trabajaremos con el paquete “car”, el cual contiene la base de datos “Prestige”.
# Instalaremos y llamaremos a los siguientes paquetes:
install.packages("car")
install.packages("carData")
library("carData")
library("car")
# Asignamos el nombre "data" a la base "Prestige" y Visualizamos el resultado:
data <- Prestige
head(data)
## education income women prestige census type
## gov.administrators 13.11 12351 11.16 68.8 1113 prof
## general.managers 12.26 25879 4.02 69.1 1130 prof
## accountants 12.77 9271 15.70 63.4 1171 prof
## purchasing.officers 11.42 8865 9.11 56.8 1175 prof
## chemists 14.62 8403 11.68 73.5 2111 prof
## physicists 15.64 11030 5.13 77.6 2113 prof
Cree el siguiente modelo:
\[ Prestigio = \beta_0 + \beta_1*educ + \beta_2 * \sqrt{ing} + \epsilon \]
Para el desarrollo de este modelo se requiere cargar el paquete “tseries”:
# Instalamos y llamamos al paquete tseries:
install.packages("tseries")
library("tseries")
Luego realizamos el modelo lineal. A continuación desarrollamos el siguiente código:
# Fijamos la data
attach(data)
# Construimos el modelo
modelo <- lm(prestige ~ education + sqrt(income), data=data)
# Presentamos el modelo
summary(modelo)
##
## Call:
## lm(formula = prestige ~ education + sqrt(income), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.2402 -5.1954 -0.3229 4.2815 17.9898
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -18.17457 3.13510 -5.797 8.06e-08 ***
## education 3.91380 0.33209 11.785 < 2e-16 ***
## sqrt(income) 0.29018 0.03933 7.379 5.01e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.349 on 99 degrees of freedom
## Multiple R-squared: 0.8212, Adjusted R-squared: 0.8175
## F-statistic: 227.3 on 2 and 99 DF, p-value: < 2.2e-16
Realice una interpretación de los coeficientes del modelo.
Para interpretar los coeficientes, presentamos el modelo resultante:
\[ Prestigio = -18.17 + 3.91*educ + 0.29 * \sqrt{ing} \]
De donde podemos interpretar:
\(\beta_1\) = 3.91: Por cada año más de estudios, el prestigio incrementa en 3.91 puntos adicionales.
\(\beta_2\) = 0.29: Por cada incremento de la raíz cuadrada de los ingresos en un 1%, el prestigio incrementa en 0.29 puntos adicionales.
Evalúe e interprete la bondad de ajuste del modelo (\(R^2\)).
\(R^2\) = 82.12%:
Análisis: Al observar el valor del \(R^2\), podemos decir que el modelo tiene buen ajuste, ya que el modelo explica el 82.12% de la variabilidad de la variable Prestigio.
Evalúe e interprete la prueba de significancia individual del modelo.
Para evaluar la prueba de significancia individual se contrasta la prueba T con el valor de tabla; sin embargo, el mismo resultado surge de analizar el contraste del pvalor versus el 1%, 5% o 10% de significancia, resultando lo siguiente:
\(\beta_1\) = 3.91***: Este coeficiente es significativo al 1%, por lo que la variable educación si influye sobre el Prestigio.
\(\beta_2\) = 0.29***: Este coeficiente es significativo al 1%, por lo que la variable ingresos si influye sobre el Prestigio.
Es una prueba para contrastar la significancia individual de los coeficientes, siendo su prueba de hipótesis como sigue:
\[ \begin{array}{l} Ho: \beta_i = 0 \\ Ha: \beta_i \neq 0 \end{array} \]
Evalúe e interprete la prueba de significancia global del modelo.
Para evaluar la prueba de significancia global del modelo se contrasta la prueba F con el valor de tabla; sin embargo, el mismo resultado surge de analizar el contraste de su pvalor versus el 1%, 5% o 10% de significancia, resultando lo siguiente:
F-statistic= 227.3 y p-value: < 2.2e-16
Análisis: Del resultado anterior, podemos observar que el pvalor es menor al 1%, por lo que concluimos que existe al menos una variable que explica significativamente al modelo.
Es una prueba para contrastar la significancia global del modelo. Esta prueba determina si existe una relación lineal entre la variable respuesta y alguna de las variables regresoras; siendo su prueba de hipótesis como sigue:
\[ \begin{array}{l} Ho: \overrightarrow{\beta_i} = 0 \\ Ha: \mbox{al menos un } \beta_i \neq 0 \end{array} \]
Verifique la existencia de error de especificación en el modelo. De haber error corríjalo (puede hacer uso de variables dummies si usted cree que es necesario). Realice su interpretación, en cualquiera de los casos.
El error de especificación es ocasionados por la omisión de variables independientes, por la posible existencia de correlación entre las variables en \(X\) y \(\epsilon\) o bien, porque la forma funcional de las variables independientes no son la apropiada.
Para ello se evalúa la prueba RESEST, cuya prueba de hipótesis es la siguiente:
\[ \begin{array}{l} Ho: \mbox{Forma funcional correcta} \\ Ha: \mbox{Forma funcional incorrecta} \end{array} \]
Para evaluar esta prueba se requiere utilizar el paquete “lmtest”, seguidamente, dado que ya se corrió el modelo, se ejecuta el código para evaluar la prueba RESET.
# Instalamos y llamamos al paquete lmtest:
install.packages("lmtest")
library("lmtest")
# Evaluación de la Prueba RESET:
resettest(modelo)
##
## RESET test
##
## data: modelo
## RESET = 1.8168, df1 = 2, df2 = 97, p-value = 0.168
Análisis: Del resultado anterior, podemos observar que el pvalor es mayor al 10%, por lo que no se rechaza la Ho, concluyendo que la forma funcional es la correcta.
Evalúe e interprete la multicolinealidad del modelo usando la matriz de correlaciones.
A continuación presentamos el siguiente código que nos permitirá evaluar la matriz de correlaciones de las varaibles del modelo.
# Instalamos y llamamos al paquete picante:
install.packages("picante")
library(picante)
Y utilizamos el siguiente código:
subdata <- data.frame(prestige,education,income)
corre=cor.table(subdata, cor.method="pearson")
corre
## $r
## prestige education income
## prestige 1.0000000 0.8501769 0.7149057
## education 0.8501769 1.0000000 0.5775802
## income 0.7149057 0.5775802 1.0000000
##
## $df
## [1] 100
##
## $P
## prestige education income
## prestige 0.000000e+00 1.286264e-29 3.192004e-17
## education 1.286264e-29 0.000000e+00 2.079192e-10
## income 3.192004e-17 2.079192e-10 0.000000e+00
Análisis: Del resultado anterior, podemos observar que el pvalor entre las variables exógenas es casi cero, por lo que no existiría relación lineal entre estas variables.
Evalúe e interprete la multicolinealidad del modelo usando la matriz de dispersiones.
Para ello utilizaremos el paquete “psych” y seguiremos la siguiente línea de comando:
# Instalamos y llamamos al siguiente paquete:
install.packages("psych")
library("psych")
# Y ejecutamos el siguiente comando para la matriz de correlaciones
subdata <- data.frame(prestige,education,income)
pairs.panels(subdata, pch=21,main="Matriz de Dispersión, Histograma y Correlación")
Análisis: Del resultado anterior, podemos observar que existe una relación entre las variables explicativas y la variable respuesta; sin embargo, la relación entre lineal entre variables exógenas es débil, por lo que no existiría Multicolinealidad en el modelo.
Evalúe e interprete la existencia de multicolinealidad del modelo usando el Factor de Inflación de Varianzas (VIF).
Para analizar la multicolinealidad del modelo, evaluaremos el factor de inflación de la varianza (VIF), como sigue en la tabla:
| VIF | Estado de los predictores |
|---|---|
| VIF=1 | No correlacionados |
| 1<VIF<5 | Moderadamente correlacionados |
| 5<VIF<10 | Altamente correlacionados |
# Resultado VIF
kable(vif(modelo),col.names = c("VIF"))
| VIF | |
|---|---|
| education | 1.535454 |
| sqrt(income) | 1.535454 |
Análisis: Del resultado anterior, podemos observar que los VIF son cercanos a 1, por lo que habría una multicolinealidad baja o moderada.
Evalúe e interprete la existencia de heterocedasticidad del modelo usando cualquiera de los tests vistos en clase.
Para evaluar la existencia de heterocedasticidad del modelo, realizaremos la prueba de “Breusch-Pagan”, la cual consiste en evaluar si el residuo depende de las variables exógenas y sus cuadrados.
Para ello evaluaremos la siguiente prueba de hipótesis:
\[ \begin{array}{l} Ho: \mbox{Homocedasticidad} \\ Ha: \mbox{Heterocedasticidad} \end{array} \]
# Prueba de Breusch-Pagan
bptest(modelo)
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 5.8367, df = 2, p-value = 0.05402
Análisis: Al evaluar el pvalue de la prueba, observamos que este es mayor al 5%, por lo que no rechazaríamos la hipotesis nula, concluyendo que existe homocedasticidad en el modelo.
Para la base de datos adjuntada a la tarea que representa la evolución de la inflación, desde 1950 hasta 2015, estime un modelo donde la inflación sea explicada por ella misma en un periodo rezagado, tal y como se hizo en los ejemplos. Luego de esto pruebe con los tres métodos propuestos en clase la existencia de autocorrelación. De existir autocorrelación, corríjala.
Para iniciar la evaluación del modelo, se requiere cargar la bade de datos, ella la realizamos de la siguiente forma:
# Instalamos y llamamos al siguiente paquete:
install.packages("readxl")
library("readxl")
# Cambiamos la dirección de trabajo e importamos la data
setwd("D:/1. ECONOMETRIA/ECONOMETRIA CON R 25.04.2020/Clase 5/TAREA 4")
base11 <- read_excel("PREGUNTA 11.xlsx")
A continuación modelamos la inflación:
\[ \mbox{inf}_t = \beta_0 + \beta_1*\mbox{inf}_{t-1} + \epsilon_t \]
Para estimar el siguiente modelo se requiere utlizar el siguiente paquete:
install.packages("dynlm")
library("dynlm")
A continuación, fijaremos la base de datos y estimamos el modelo propuesto.
# Fijamos la data
attach(base11)
# Construimos el modelo
modelo11 <- dynlm(inf ~ L(inf), data=base11)
# Presentamos el modelo
summary(modelo11)
##
## Time series regression with "numeric" data:
## Start = 1, End = 66
##
## Call:
## dynlm(formula = inf ~ L(inf), data = base11)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.062e-12 5.380e-14 5.560e-14 6.030e-14 5.217e-13
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.399e-13 6.477e-14 -2.16e+00 0.0345 *
## L(inf) 1.000e+00 6.370e-17 1.57e+16 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.156e-13 on 64 degrees of freedom
## Multiple R-squared: 1, Adjusted R-squared: 1
## F-statistic: 2.464e+32 on 1 and 64 DF, p-value: < 2.2e-16
A continuación verificaremos si el modelo presenta autocorrelación, significando esto que la correlación entre los distintos momentos del tiempo son distintos de cero. Para ello realizaremos las siguientes pruebas estadísticas:
Estas pruebas tienen como prueba de hipótesis:
\[ \begin{array}{l} Ho: \mbox{Ausencia de autocorrelación} \\ Ha: \mbox{Presencia de autocorrelación} \end{array} \]
Para esta prueba realizaremos el siguiente código:
dwtest(modelo11)
##
## Durbin-Watson test
##
## data: modelo11
## DW = 2.2369, p-value = 0.8194
## alternative hypothesis: true autocorrelation is greater than 0
Análisis: Al evaluar el pvalue de la prueba, observamos que este es mayor al 5% (pvalue = 81.94% > 5%), por lo que no rechazaríamos la hipotesis nula, concluyendo que el modelo no presenta autocorrelación.
Para esta prueba realizaremos el siguiente código:
Box.test(residuals(modelo11),type="Ljung-Box")
##
## Box-Ljung test
##
## data: residuals(modelo11)
## X-squared = 1.1054, df = 1, p-value = 0.2931
Análisis: Al evaluar el pvalue de la prueba, observamos que este es mayor al 5% (pvalue = 29.31% > 5%), por lo que no rechazaríamos la hipotesis nula, concluyendo que el modelo no presenta autocorrelación.
Para esta prueba realizaremos el siguiente código:
bgtest(modelo11)
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: modelo11
## LM test = 1.0575, df = 1, p-value = 0.3038
Análisis: Al evaluar el pvalue de la prueba, observamos que este es mayor al 5% (pvalue = 30.38% > 5%), por lo que no rechazaríamos la hipotesis nula, concluyendo que el modelo no presenta autocorrelación.
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS, coperquispe@gmail.com↩︎