Econometría Avanzada en R

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 17

ECONOMETRÍA AVANZADA EN R

R Studio- Aplicaciones econométricas


Econometría

Análisis de componentes
principales
Por medio del análisis de componentes principales se busca reducir el número de variables
sin perder mucha información.
Los componentes resultado serán una combinación lineal de las variables originales y serán
independientes entre sí.
Para realizar el análisis de componentes principales se debe verificar la correlación de los
datos ya que utilizar componentes principales solo se justifica
si existen altas correlaciones entre las variables, esto por que la correlación está indicando
que hay información repetida que podría resumirse.
Para llevar a cabo este análisis en el software R studio, lo primero que se debe hacer es
cargar la base de datos, para esto utilizamos el comando:
datosACP<-read.csv(file.choose(),T)
datosACP<-read.xlsx(file.choose(),T)
Este comando abrirá una nueva ventana donde debemos escoger el archivo que estamos
buscando, es necesario recordar que la función depende del formato, en
este caso es una base es csv, pero también es posible leer bases en formato .xlsx
(mediante el paquete xlsx), o bases .dta (mediante el paquete foreign)
entre otras.
Mediante el siguiente comando:

attach(datosACP)

fijamos la base en la memoria del programa para facilitar el uso de las variables ya que
solo tienen que ser llamadas por el nombre exacto que tienen en la
base.
Por medio de la función cbind podemos unir los objetos por columnas, en este caso se
guardara en el objeto X los datos de las variables a trabajar

X <- cbind(Ecopetrol, Pacific, Canacol, Bancolombia,Pdavivi, Bogota)


Analizar la estadística descriptiva es siempre de utilidad para ver el comportamiento
general de las variables, para obtenerla se utilizará el siguiente
comando:

summary(X)
Para el análisis de componentes principales es importante ver cuanta correlación hay entre
variables ya que esta indica que es posible que la información
entre variables se repita por lo que se justifica utilizar este tipo de análisis, de no haber
mucha correlación es posible que el análisis de componentes
principales no sea adecuado.
Para realizar la matriz de correlación en R, se empleará el siguiente comando:
cor(X)
Para realizar el análisis de componentes principales se utilizará el comando princomp que
se guardará en el objeto pca:
pca <- princomp(X, scores=TRUE, cor=TRUE)
para ver los resultados del análisis de componentes principales utilizaremos el comando:
summary(pca)

El indicador standard deviation indica que porcentaje del total de la varianza de los datos
está siendo explicada por el componente, en este caso el
componente 1 explica el 52% de la varianza de todas las variables.
Cumulative proportion muestra la varianza acumulada entre componentes, en el ejemplo
hasta el componente 3 se explica el 86% de la varianza de los
componentes.

Para un análisis más detallado por medio del comando:


loadings(pca) o pca$loadings

Se puede observar la correlación del componente con cada variable en específico, es


posible que se presenten espacio en la matriz, esto se da cuando la
correlación entre el componente y la variable es muy baja, es decir que el componente
explica muy poco porcentaje de la variable
Variables Instrumentales
Las variables instrumentales son utilizadas cuando se tiene un modelo con problemas de
endogeneidad, esta se refiere a la relación que tiene una variable explicativa se relaciona
con el error, dejar esta variable implica que los estimadores sean insesgados e
inconsistentes, para corregir este problema se usan
las variables instrumentales.
Una variable instrumental es una variable que se utiliza como “instrumento” de la variable
que tiene problemas de endogeneidad, esta variable instrumental
debe cumplir con dos supuestos para poder ser utilizada, estos son: relevancia y
exogeneidad.
La relevancia se refiere a que la correlación entre la variable instrumental y la variable
endógena debe ser diferente de cero.
La exogeneidad se refiere a que la variable instrumento no debe estar relacionada con el
error.
Para utilizar variables instrumentales en R es necesario instalar los paquetes “AER” y
“Systemfit”, además es necesario activarlos por medio del comando library,
posteriormente cargamos la base de datos a utilizar:
>install.packages("AER")
>library(AER)
>install.packages("systemfit")
>library(systemfit)
>datos1<-read.dta(file.choose(),T)
Fijamos los datos en la memoria para mayor facilidad con el comando attach(datos1).

Posteriormente se definen definir las variables que serán utilizadas en el modelo


Y1 <- cbind(logmedexpense)
Y2 <- cbind(healthinsu)
X1 <- cbind(illnesses, age, logincome)
X2 <- cbind(ssiratio)
X2alt <- cbind(ssiratio, firmlocation)
Para ver el comportamiento general de las variables, como por ejemplo datos atípicos, se
utiliza estadística descriptiva
Y1 <- cbind(logmedexpense)
Y2 <- cbind(healthinsu)
X1 <- cbind(illnesses, age, logincome)
X2 <- cbind(ssiratio)
X2alt <- cbind(ssiratio, firmlocation)
Para ver el comportamiento general de las variables, como por ejemplo datos atípicos, se
utiliza estadística descriptiva
summary(Y1)
summary(Y2)
summary(X1)
summary(X2)
Lo que arroja el siguiente resultado, gracias al cual es posible determinar el
comportamiento general de las variables

Se procede a estimar el modelo por medio de una regresión lineal común por medio de los
siguientes comandos:
> olsreg <- lm(Y1 ~ Y2 + X1)
> summary(olsreg)
El primero permite que R estime la regresión mientras el segundo nos muestra
detalladamente los resultados de esta, estos nos indican que la variable Y2
resulta significativa al 1%, mientas que el intercepto y la variable X1 illnesses resultan
significativas al 0% sin embargo aun existen dos variables que
resultan no significativas para el modelo a pesar de que teóricamente esta significancia
tiene un sustento, esto puede deberse a un error de especificación
en el modelo, en este caso se sospecha de una correlación de las variables dependiente
con el termino de error, además se tiene otra variable que puede
servir como instrumento por lo que resulta conveniente el uso de variables instrumentales.

Para usar variables instrumentales en R es necesario el paquete AER, el cual se activo al


principio. El comando a utilizar es:
ivreg <- ivreg(Y1 ~ Y2 + X1 | X1 + X2)
Por medio del cual se le indica al programa que realice una regresión con variables
instrumentales utilizando a X2 como instrumento de Y2 dado que la
segunda presenta problemas de endogeneidad.
La salida mostrada en la consola de R nos muestra todas las variables significativas al
mayor nivel de significancia posible lo que muestra que el nuevo
modelo es mejor que el anterior por lo que es posible concluir que en el anterior había
problemas de endogeneidad que fueron solucionados gracias a la nueva
variable instrumental.
Regresión Cuantílica
La regresión cuantílica a diferencia de la regresión lineal no requiere los supuestos de
aleatoriedad para estimar los parámetros del modelo, por lo que se clasifica como un
método semiparametrico. Mientras la regresión lineal busca minimizar la suma de los
residuos al cuadrado, la regresión cuantílica busca minimizar la suma de los errores
absolutos ponderados con pesos asimétrico.
Una desventaja de no considerar la distribución del error como lo hace la regresión
cuantílica es la limitación de la inferencia, sin embargo, los supuestos sobre los errores con
frecuencia no se cumplen por lo que la regresión cuantílica resulta adecuada. También
gracias a este tipo de regresión es posible tener en cuenta la distribución condicional de
ciertas variables.
Para entender la regresión cuantílica es necesario definir que es un cuantil. Un cuantil Θ de
una muestra corresponde a un valor a que deje una proporción Θ de observaciones por
debajo de a y una proporción (1-Θ) por encima, de tal forma que si Θ=0,25, deben haber
un 25% de datos por encima de Θy 75% por debajo.
Para realizar una regresión cuantílica en R es necesario instalar el paquete quantreg y
activarlo lo cual se realiza por medio de los siguientes comandos:
>install.packages("quantreg")
>library(quantreg)
Basados en el ejemplo utilizado en el blog econometriacademy, cargamos la base de datos
a utilizar, definimos las variables que se van a utilizar, así como también se realiza un
análisis de la estadística descriptiva para verificar el comportamiento general de estos,
gracias a este análisis es posible notar que la varianza de los datos es alta, lo que podría
indicarnos que una regresión lineal no es la mejor opción.

Sin embargo, a modo de comparación se estimará la regresión lineal, la cual arroja los
siguientes resultados.

La salida indica que solo dos variables resultan significativas.


Ahora por medio del comando rq(), se estima la regresión cuantilica, cambiando los
cuantiles para evaluar cual permite capturar de manera más apropiada el comportamiento
de los datos.
Para el cuantil del 25% el código sería:
regquant25 <- rq(Y ~ X, data=datos, tau=c(0.25, 0.75))
summary(regquant2575)
donde tau indica el porcentaje de quantil que se quiere calcular

Como es posible notar los coeficientes cambian bastante entre las regresiones estimadas.
Tambien es posible realizar una prueba ANOVA para saber si la diferencia entre
coeficientes es significativa y por tanto justifica el uso de la regresión cuantílica, para
realizar esta prueba se utiliza el siguiente
código:
anova(quantreg25, quantreg75)

La prueba ANOVA arroja que las diferencias entre coeficientes son significativas por lo que
se justifica el uso de la regresión cuantílica.
Para ver que variables pueden ser explicadas mejor a partir de una regresión quantílica, es
posible realizar un gráfico que indica con mayor claridad que porcentaje de la variable es
explicada por una regresión lineal, esto se representa por las líneas punteadas rojas que se
encuentran en el gráfico, como es posible ver:

La variable Xtotchr, tiene una variablidad bastante lejana a la explicada por una regresión
simple, por lo que en el caso de esta se justifica el uso de la regresión cuantílica

Series de tiempo
Modelos ARIMA

Un modelos ARIMA se encuentra conformado por un proceso autoregresivo (AR)


integrado(I) de media móvil (MA) para hacer referencia a estos procesos es necesario
considerar que estos son procesos estocásticos, estos son una sucesión de variable
aleatoria indexadas al tiempo, cada variable de este proceso
tiene una distribución que corresponde a determinados momentos, asi como cada conjunto
de ellas tendrá su distribución conjunta, dentro de estos procesos se destacan dos que son
fundamentales para el análisis econométrico:
• Ruido Blanco: sucesión de variables aleatoria con media cero y varianza contante e
independientes
• Proceso estacionario: corresponde al proceso donde las funciones de distribución
conjunta no varían dado un desplazamiento en el tiempo, esta definición corresponde a la
estacionariedad estricta, pero dado que esta no es muy común en los casos de la realidad
es posible definir también la estacionariedad en sentido débil: La media no depende del
tiempo y es contante, la varianza no depende del tiempo y es finita y además las
covarianzas entre dos variables de diferentes periodos de tiempo solo dependen del lapso
de tiempo transcurrido entre ellas.
Un proceso es autoregresivo si la variable endógena se explica por t rezagos de ella misma,
el orden del modelo indica el número de rezagos que son utilizados en la ecuación para
explicar la variable endógena, el término de error de estos modelos debe corresponder a
un ruido blanco, la expresión genérica de estos modelos es AR(p) donde p indica el número
de rezagos que explican la variable, lo más usual es trabajar con modelos de ordenes bajos
o que coincidan con la periodicidad de los datos.
Un proceso de media móvil explica el comportamiento de la variable endógena a partir del
comportamiento de un termino independiente y de los errores de periodos pasados, el
orden del modelo MA se generaliza con la letra q, y suelen usarse igual que en los modelos
AR ordenes bajos o que coincida con la periodicidad de los datos.
Para poder trabajar con series de tiempo es necesario verificar que estas sean
estacionarias como se menciono anteriormente lo cual se realiza por medio de
pruebas y test, que se verán más adelante. Se utiliza por lo general la metodología Box
Jenkins que consiste primero en elegir que rezagos podrían ser utilizados para cada
proceso, recordando que para evitar tendencias o suavizar el comportamiento de la serie
es necesario diferenciar y en algunos casos utilizar transformaciones logarítmicas, luego se
realiza la estimación del modelo, de acuerdo a los resultados arrojados por esto como
niveles de significancia se escoge el más indicado, por último con el modelo mejor
especificado se procede a realizar los pronósticos.
En el software R es necesario utilizar los paquetes “tseries” y “forecast”
install.packages("tseries")
library(tseries)
install.packages("forecast")
library(forecast)
Se carga la base de datos y se definen la variables que van a ser utilizadas:
DatARIMA<-read.csv(file.choose(),T)
Y <- ppi
d.Y <- diff(Y)
que representa la variable Y diferenciada.
t <- yearqrt
Se realiza un análisis general con la estadística descriptiva,
summary(Y)
summary(d.Y)
En series de tiempo resulta crucial graficar las variables que van a ser utilizadas dado que
esto permite un análisis rápido de que problemas podría
presentar la serie y por tanto que soluciones se pueden dar.
La siguiente corresponde a la gráfica de la variable Y, donde es posible observar que hay
tendencia, por esta razón se realiza una diferenciación.

Una vez diferenciada la variable se comporta de manera adecuada.


Se procede a realizar el test de Dickey fuller para comprobar estacionariedad, en R es
posible indicar que se tomará como hipótesis alternativa, el código
que se utilizará para está prueba es:
adf.test(Y, alternative="stationary", k=0)
adf.test(Y, alternative="explosive", k=0)
siendo alternative=”___” lo que queremos definir como hipótesis alternativa

La prueba ha sido realizada a la variable Y y conforme a lo que indicaba la gráfica se


rechaza la hipótesis nula por lo que la serie resulta no estacionaria.
Al realizar la prueba a d.Y, que es la variable Y diferenciada se obtiene:

Lo que indica que se rechaza la hipótesis nula a favor de la alternativa que en este caso es
estacionariedad como también lo había indicado la gráfica
anteriormente analizada.
Una vez se obtiene una serie estacionaria es necesario definir cuantos rezagos resulta
apropiado utilizar para explicar el proceso, para esto pueden ser muy
útiles: la funcion de correlación y la función de correlacion parcial.
La función de correlación puede indicar un aproximado de rezagos AR que deben utilizarse
y se obtiene en R mediante el comando
>acf(d.Y)

Los rezagos que deberían incluirse son los que se encuentran fuera de los rangos
establecidos por las líneas punteadas azules, en este caso los
rezagos:1,2,3,4,5.
La función de correlación parcial puede indicar un aproximado de rezagos MA que deben
utilizarse y se obtiene en R mediante el comando
pacf(d.Y)

Al igual que en el caso anterior deben tenerse en cuenta los rezagos que se encuentran
fuera del rango de las líneas azules, en este caso los rezagos: 1 y 3
Ya teniendo una idea de los rezagos que pueden ser incluidos en el modelo, se procede a
realizar diferentes combinaciones de estos intentando encontrar la
más adecuda, en R se hace mediante el comando
arima(p,i,q), donde p es el orden del proceso AR, i el orden de integración o número de
diferencias realizas y q es el orden del proceso MA.
Es necesario el uso del paquete “lmtest”
arad<-arima(d.Y, order = c(1,0,0))
coeftest(arad)

Se puede observar que el rezago y el intercepto resultan significativos.


El anterior código nos indica un modelo AR(1), hay que tener en cuenta que se está
trabajando con la variable diferenciada por lo que si se integra de nuevo el proceso, este
estaría doblemente diferenciado.
Otra prueba de posibles ordenes podría ser:
arima(d.Y, order = c(1,0,1))

Sin embargo, en este ejemplo es posible ver que no resulta significativo por lo que no
resulta conveniente esta combinación de rezagos.
Probando otra posible combinación se tiene

arad3<-arima(d.Y, order = c(1,0,3))


coeftest(arad3)
Donde es posible ver que no todos los rezagos incluidos son significativos.

Tambien es posible utilizar la función de R llamada auto.arima que determina de manera


automática cual es el mejor modelo a utilizar. El comando a utilizar es:
auto.arima(d.Y)

Bibliografía
de Arce, R. (s.f.). uam . Obtenido de Modelos ARIMA:
https://www.uam.es/personal_pdi/economicas/anadelsur/pdf/Box-Jenkins.PDF
Econometric Aademy. (s.f.). Econometric Aademy. Obtenido de Econometrics
Models: https://sites.google.com/site/econometricsacademy/
Manuel, T. G. (s.f.). Análisis de componentes principales. Obtenido de
www.uoc.com: https://www.uoc.edu/in3/emath/docs/Componentes_principales.pdf
Mayorga, M., & Muñoz, E. (2000). LA TÉCNICA DE DATOS DE PANEL UNA GUIA PARA SU
USO E INTERPRETACIÓN. Banco central de Costa Rica.
Sanchez-Magas, R. (s.f.). uam. Obtenido de
uam: https://www.uam.es/personal_pdi/economicas/rsmanga/docs/Econometria1-Transp-
tema3.pdf

También podría gustarte