A continuación se muestran los códigos necesarios para la estimación de las pruebas del taller.
Código del Desarrollo del Punto 4
library(tseries)
library(lmtest)
library(uroot)
library(urca)
library(broom)
library(aTSA)
library(egcm)
library(readxl)
library(stargazer)
#|----------------------------------------------------------------------------|#
#| Directorio
setwd("C:/Programacion en R/5. ECONOMETRIA 2/ECO-EJ9")
#| Datos como CT
DATA <- read_excel("Punto4.xlsx")
View(DATA)
#| Conversión a ST
X <- ts(DATA[,2], start = c(1960,1), frequency = 4)
Y <- ts(DATA[,3], start = c(1960,1), frequency = 4)
X
#| Graficas de las ST
par(mfrow=c(1,1))
ts.plot(Y,main="Gráfica de las Series de Tiempo", col = "red",lwd=2)
ts.plot(X,main="Gráfica de las Series de Tiempo", col = "red",lwd=2)
#|---------------------------------------------------------------------------|#
#| PRUEBAS DE INTEGRACIÓN
#| En Niveles
PDF1 <- ur.df(Y, type="drift", selectlags = 'AIC')
summary(PDF1) #| ADF>VC => Tiene RU
PDF2 <- ur.df(X, type="drift", selectlags = 'AIC')
summary(PDF2) #| ADF>VC => Tiene RU
#| En Diferencias
PDF1 <- ur.df(diff(Y), type="none", selectlags = 'AIC')
summary(PDF1) #| ADF<VC => No Tiene RU
PDF2 <- ur.df(diff(X), type="none", selectlags = 'AIC')
summary(PDF2) #| ADF<VC => No Tiene RU
#| Ya que X e Y son I(1)
#| Se requiere probar si X e Y estan cointegradas
#| Siempre se debe probar la integración de orden 1
#|-------------------->>| PRUEBA DE ENGLE-GRANGER - EG |<<--------------------|#
#| Prueba EG Manual
#| Paso 1. Estimar la Relación de Interés
OLS <- lm(Y~X)
summary(OLS)
coeftest(OLS)
stargazer(OLS,title="Resultados de la Regresión",
dep.var.labels=c("INDPROD"),
covariate.labels=c("M1NSA"),
single.row=TRUE,
type = "text",out="ResultsPunto4.doc")
ERR <- OLS$residuals
#| Paso 2. Prueba ADF caso 1
PC_ADF <- ur.df(ERR,type="none",lags = 0)
PC_ADF <- ur.df(ERR,type="none",selectlags = "AIC")
summary(PC_ADF)
Código del Desarrollo del Punto 5
library(writexl)
library(WriteXLS)
library(xts)
library(ecm)
library(stargazer)
library(dynlm)
library(tseries)
library(uroot)
library(urca)
library(cointReg)
library(readxl)
#|----------------------------------------------------------------------------|#
#| Directorio
setwd("C:/Programacion en R/5. ECONOMETRIA 2/ECO-EJ9")
dir()
#| Datos como CT
DATA <- read_excel("Rendimientos.xlsx")
View(DATA)
#| Datos como ST
X_r3 <- ts(DATA[,2], start = c(1), frequency = 4)
Y_r6 <- ts(DATA[,3], start = c(1), frequency = 4)
par(mfrow=c(1,1))
ts.plot(X_r3, main="Gráfica de las Series de Tiempo", col = "red",lwd=2)
lines(Y_r6,lwd=2)
#|----------------------------------------------------------------------------|#
#| PRUEBAS DE RAÍZ UNITARIA
#| En Niveles
ADFX1 <- ur.df(X_r3, type="drift", selectlags = "AIC")
summary(ADFX1) #| No se Rechaza Ho => Tiene RU
#| En Diferencias
ADFX2 <- ur.df(diff(X_r3), type="none", selectlags = "AIC")
summary(ADFX2) #| Si se Rechaza Ho => No Tiene RU
#| En Niveles
ADFY1 <- ur.df(Y_r6, type="drift", selectlags = "AIC")
summary(ADFY1 ) #| No se Rechaza Ho => Tiene RU
#| En Diferencias
ADFY2 <- ur.df(diff(Y_r6), type="none", selectlags = "AIC")
summary(ADFY2) #| Si se Rechaza Ho => No Tiene RU
#| Es decir que ambas series de tiempo son I(1)
#|----------------------------------------------------------------------------|#
#| PRUEBAS DE COINTEGRACIÓN
#|----------------------------------------------------------------------------|#
#| PRUEBA EG (Engle y Granger)
#| Paso 1. Estimar la relación de interés y obtener los errores
MODEL <- lm(Y_r6~X_r3)
summary(MODEL)
ERR_EG <- MODEL$residuals
#| Paso 2. Prueba de RU sobre los errores
EG <- ur.df(ERR_EG,type="none",lags = 0)
summary(EG)
#|----------------------------------------------------------------------------|#
#| Pruepa PO (Phillips y Ouliaris)
#| Paso 1. Estimar la relación de interés y obtener los errores
MODEL <- lm(Y_r6~X_r3)
summary(MODEL)
ERR_EG <- MODEL$residuals
#| Paso 2. Prueba PP caso 1
PO_zt <- ur.pp(ERR_EG, type="Z-tau")
summary(PO_zt)
PO_za <- ur.pp(ERR_EG, type="Z-alpha")
summary(PO_za)
data <- ts(cbind(Y_r6,X_r3))
PO_pu <- ca.po(data, demean = "constant", type = "Pu")
summary(PO_pu)
PO_pz <- ca.po(data, demean = "constant", type = "Pz")
summary(PO_pz)
#|----------------------------------------------------------------------------|#
#| ESTIMACIÓN DE LA ECUACIÓN DE COINTEGRACIÓN
#| 1. OLS
OLS <- lm(Y_r6~X_r3)
summary(OLS)
#| 2. FM-OLS
deter <- rep(1, times = 124)
FM_OLS <- cointReg("FM", X_r3,Y_r6, deter, kernel = "ba", bandwidth = "and")
print(FM_OLS)
#| 3. DOLS (ACA SE CORRIGE PORBLEMAS DE AC Y ENDOGENEIDAD)
D_OLS <- cointReg("D", X_r3,Y_r6, deter, kernel = "ba", bandwidth = "and", n.lead = NULL, n.lag = NULL, info.crit = "AIC")
print(D_OLS)
#|----------------------------------------------------------------------------|#
#| RELACIÓN DE LARGO PLAZO
#| Residuales de MCO
OLS_E<- ts(OLS$residuals, start = c(1), frequency = 4)
#| Residuales de FMOLS
FMOLS_E <- ts(FM_OLS$residuals, start = c(1), frequency = 4)
#| Residuales de DOLS
DOLS_E <- ts(D_OLS$residuals, start = c(1), frequency = 4)
par(mfrow=c(1,1))
plot(OLS_E, main = "Relacion de Equilibrio de Largo Plazo", col="purple")
lines(FMOLS_E, col="blue")
lines(DOLS_E, col="red")
abline(h = 0, col = "black") #| Linea Horizontal- Equilibrio de LP
RESULTS5 <- as.data.frame(FMOLS_E)
write_xlsx(RESULTS5,"ResultsPunto5.xlsx")
#|----------------------------------------------------------------------------|#
#| MODELO DE CORRECCIÓN DE ERRORES
MCE <- dynlm(diff(Y_r6)~diff(X_r3)+L(OLS_E,1))
summary(MCE)
stargazer(MCE,title="Modelo de Corrección de Errores (MCE) - MCO",
dep.var.labels=c("r6"),
covariate.labels=c("r3"),
single.row=TRUE,
type = "text",out="ResultsPunto5.doc")
#|----------------------------------------------------------------------------|#