Este es el desarrollo de la evaluación final del curso de “Modelo Econométrico con RStudio” realizado por EDUCATE Perú Consultores.
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":
data <- Prestige
Y antes de iniciar el desarrollo de las siguientes preguntas, creemos necesario realizar el paso siguiente:
data = rename(data,c(education="educ",income="ing",women="mujeres",
prestige="prestigio",census="cod",type="tipo"))
head(data)
## educ ing mujeres prestigio cod tipo
## 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
A continuación pasaremos a estimar el siguiente modelo en el desarrollo de las siguientes preguntas.
\[ Prestigio = \beta_0 + \beta_1*educ + \beta_2 * \sqrt{ing} + \epsilon \]
Desarrollar un análisis gráfico univariado y multivariado
Como parte del análisis univariado, realizaremos un histograma de las varaibles explicativas y su respectiva línea normal, para visualizar el comportamiento de su distribución.
Para ello, utilizaremos el siguiente comando:
par(mfrow=c(2,2))
# ---------------
# Histograma de Educación
hist(data$educ, xlab = "Años de educación", main = "Histograma de educación",
col="gold")
# Histograma de Educación con Curva Normal
z1 <- data$educ
m1<-mean(z1)
std1<-sqrt(var(z1))
hist(z1, xlab = "Años de educación", col = "gold",
main="Histograma y Curva Normal", prob=T)
curve(dnorm(x, mean=m1, sd=std1),col="darkblue", lwd=2, add=TRUE, yaxt="n")
# ---------------
# Histograma de Ingresos
hist(data$ing, xlab = "Ingresos", main = "Histograma de ingresos",
col="orange1")
# Histograma de Educación con Curva Normal
z2 <- data$ing
m2<-mean(z2)
std2<-sqrt(var(z2))
hist(z2, xlab = "Ingresos", col = "orange1",
main="Histograma y Curva Normal", prob=T)
curve(dnorm(x, mean=m2, sd=std2),col="darkblue", lwd=2, add=TRUE, yaxt="n")
Análisis:
Graficamente se puede observar que la variable años de educación tiende a distribuirse como una Normal centrada.
A diferencia de la variable ingresos, la cual tiende a comportarse como una normal con asimetría positiva.
Análisis multivariado
Como parte del análisis multivariado, realizaremos una matriz de dispersión de las variables analizadas con la finalidad de observar la existencia de correlación lineal entre las variables exógenas principalmente y nos de incicios de multicolinealidad.
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
attach(data) # Fijamos la data
subdata <- data.frame(prestigio,educ,ing)
pairs.panels(subdata, pch=21,main="Matriz de Dispersión, Histograma y Correlación")
Análisis:
Crear el mejor modelo a partir de las variables existentes (no es necesario hacer uso de dummies)
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:
attach(data)
# Construimos el modelo
modelo <- lm(prestigio ~ educ + sqrt(ing), data=data)
# Presentamos el modelo
summary(modelo)
##
## Call:
## lm(formula = prestigio ~ educ + sqrt(ing), 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 ***
## educ 3.91380 0.33209 11.785 < 2e-16 ***
## sqrt(ing) 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
Análisis:
A continuación interpretamos los coeficientes y 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.
Elaborar pruebas de especificación.
A continuación verificaremos la significancia individual y conjunta del modelo; así como la prueba de especificación del modelo y
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} \]
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} \]
El error de especificación es ocasionado 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:
Evalúe la multicolinealidad del modelo.
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 | |
|---|---|
| educ | 1.535454 |
| sqrt(ing) | 1.535454 |
Análisis:
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:
Indicar que complicaciones habrían si se desease elaborar una prueba de autocorrelación y para que casos sí se podría.
El análisis realizado utilizó como información datos de corte transversal, y dado que el problema de autocorrelación se presenta frecuentemente en datos de corte transversal, podríamos decir que no se presenta este problema.
Formalmente podríamos verlo de la siguiente manera:
\[ \begin{array}{c} cov(u_i,u_j|x_i,x_j) = E(u_i,u_j) \neq 0 \\ i \neq j \end{array} \] Entonces según la proposición anterior, la autocorrelación se muestra para todo \(i\) \(\neq\) \(j\), por lo que en esta situacións e está utilizando datos de corte transeversal donde \(i\) = \(j\), por lo que las covarianzas son distintas de cero, de hecho son constantes.
Finalmente, esta prueba se puede realizar cuando los datos no son de corte transversal sino de series de tiempo.
** FIN **
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS, coperquispe@gmail.com↩︎