Para iniciar nuestros estudios en econometría, lo primero que aprenderemos es el uso de la carga de una serie de datos cualquiera, si bien existen herramientas en R que nos ayudan a hacerlo más rápido, siempre una solución más eficiente es sobre la programación, por ello usaremos el siguiente código:
data = read.table(file.choose(), header = T)
En el código anterior, se entenderá que data es el nombre que tomará de ahora en adelante la base de datos, y obviamente podemos cambiar el nombre data por otro que el usuario guste, siempre y cuando tenga presente el cambio que está ejerciendo.
Este código, nos ayudará a cargar la base de datos desde cualquier parte del sistema, lo más recomendable siempre es trabajar con datos en formatos .txt o .csv, por su facilidad de manejo y bajo peso, lo que permite una carga rapida.
RECUERDE: USE SIEMPRE NOMBRES EN MINUSCULA, R DISCRIMINA SIEMPRE LAS MAYUSCULAS CONFUNDIENDO EL USO DE LAS VARIABLES
Al momento de cargar los datos, siempre es importante tener en cuenta que estos datos se verán como una hoja plana de información, es decir, el programa leerá los datos, pero asumirá que es una impresión, se pueden ver, pero no se pueden manipular; para contrarrestar este inconveniente el código:
attach(data)
nos ayudará a seccionar la información, dándole la opción al programa de transformar la información como si fuera una serie cargada en Excel, brindándonos completa manipulación.
Otro problema identificable en R es el hecho que por defecto los resultados del programa siempre serán vistos en formato de notación cientifica, cuando los resultados presentan muchos decimales.
Entonces, para modificar los resultados, a fin de obtener el resultado con los decimales completos usaremos la función:
options(scipen = 999)
Para crear nuestro primer modelo debemos tener en cuenta que estos obedecerán a la ecuación:
\[\begin{aligned} \hat Y = X\hat\beta+e_i \end{aligned}\]
Este es un modelo lineal simple, el cual muestra la relación de las variables de la función Y y X, pero, a fin de cuentas, las variables Y y X son series de información conocidas, realmente quien nos interesa es el valor \(\beta\), que se obtiene por la siguiente formula:
\[\begin{aligned} \beta = (X^TX)^{-1}*(X^TY) \end{aligned}\]
Para R, este procedimiento se efectuará de la siguiente manera:
rel = y ~ x
model = lm(rel)
summary(model)
Donde:
Una primera forma de revisión de nuestro modelo frente a la realidad de la variable analizada Y, nos da una pequeña visión de que tan eficiente fue nuestro modelo, para ello usaremos el siguiente código:
pmodel = predict(model)
plot(y, ylab = "", xlab = "")
par(new = TRUE)
plot(pmodel,pch = 8,col="red", axes = FALSE, bty = "n", xlab = "observaciones", ylab = "Y Vs Yest")
Esto nos ayuda a comprender que tan alejados quedaron los puntos de nuestro modelo frente a los datos reales.
Otra forma de verificar la eficiencia de nuestro modelo de forma gráfica, es verificando que tan dispersos fueron nuestros errores de su valor esperado; recuerde que el método EMCO nos indica que todos los estimadores serán BLUE (Best Linear Unbiased Estimators), mejores estimadores lineales insesgados, significando que son los estimadores óptimos sin errores, y por lo tanto:
\[\begin{aligned} E(e_i)=0 \end{aligned}\]
Si la gráfica nos arroja que los puntos de los valores de \(\hat Y_i\), están muy dispersos o alejados de cero, significará que el modelo no es el más eficiente, para ello usaremos el siguiente codigo:
error = residuals(model)
plot(error,xlab="observaciones",ylab="errores del modelo")
abline(h=0,col="red")
Teniendo en cuenta las diferentes formas de tomar la información para los modelos lineales, los códigos para verificar las formas funcionales alternativas de los modelos lineales son:
Forma Ecuacional \[\begin{aligned} \hat Y_i=\alpha + \hat \beta X_i+e_i \end{aligned}\]
Codigo en R
model = lm(y ~ x)
summary(model)
Forma Ecuacional \[\begin{aligned} Log \hat Y_i=\alpha + \hat \beta\, Log X_i+e_i\\ \end{aligned}\]
Codigo en R
model = lm(log(y)~log(x)
summary(model)
Forma Ecuacional \[\begin{aligned} \hat Y_i=\alpha + \hat \beta\, Log X_i+e_i\\ \end{aligned}\]
Codigo en R
model = lm(y~log(x))
summary(model)
Forma Ecuacional \[\begin{aligned} Log \hat Y_i=\alpha + \hat \beta X_i+e_i\\ \end{aligned}\]
Codigo en R
model = lm(log(y)~x)
summary(model)
Para verificar la eficiencia de nuestro modelo usaremos los indicadores de bondad de ajuste, que nos permiten revisar la perfección que hay en la comparación de los datos \(Y\) y los datos de \(\hat Y\). Los indicadores de Bondad de ajuste más usados en los modelos lineales son:
Tomando la formula considerada para hallar el coeficiente de determinación:
\[\begin{aligned} R^2 = 1- \frac{SSE}{SST};\qquad R^2 \in\, \mathbb R\: [0,1] \end{aligned}\]
Que tambien puede ser entendida como
\[\begin{aligned} R^2 = \frac{SSR}{SST};\qquad R^2 \in\, \mathbb R\: [0,1] \end{aligned}\]
Los cuales pueden ser programados como:
r2 = 1-(sse/sst)
O bien
r2 = ssr/sst
Para ello, se requiere entonces conocer los valores de \(SSR\), \(SSE\) y \(SST\).
Teniendo en cuenta la fórmula:
\[\begin{aligned} SSR = \sum_{i=1}^{n} {(\hat Y_i - \bar Y)}^2 \end{aligned}\]
El código en R nos muestra que:
ssr = sum((y-mean(y))^2)
Teniendo en cuenta la fórmula:
\[\begin{aligned} SSE = \sum_{i=1}^{n} {(Y_i - \hat Y_i)}^2 \end{aligned}\]
El código en R nos muestra que:
sse = deviance(model)
Teniendo en cuenta la fórmula:
\[\begin{aligned} SST = \sum_{i=1}^{n} {(Y_i - \bar Y_i)}^2 \end{aligned}\]
El código en R nos muestra que:
sst = ssr + sse
O bien
sst = sum((y-mean(y))^2)
Al encontrar que los modelos lineales múltiples tienen problemas de ajuste, la corrección propuesta de la formula \(R^2\) es:
\[\begin{aligned} R^2aj = 1-\frac{n-1}{n-k}*(1-R^2) \end{aligned}\]
En R esta fórmula queda formulada como:
r2a1 = 1-((NROW(y)-1)/(NROW(y)-NROW(coef(model1)))*(1-r2))
Respecto a los criterios de revisión sobre modificar un modelo con una o más variables, los análisis presentados son Criterio de información Akaike y Criterio de Información Schwartz.
Para R, los criterios son:
AIC(model,model1)
BIC(model,model1)
Donde: