#EE435 
setwd("/Users/mew/Desktop")
cat(rep("\n",50))  #clear R Console
#3
library(fGarch)
library(quantmod)
library(fUnitRoots)
require(vars)
getSymbols("CLVMNACSCAB1GQUK",src = "FRED")
getSymbols("NAEXKP01CAQ189S",src = "FRED")
getSymbols("GDPC1",src = "FRED")
uk=CLVMNACSCAB1GQUK[21:146]
ca=NAEXKP01CAQ189S[77:202]
us=GDPC1[133:258]
da=cbind(as.numeric(uk),as.numeric(ca),as.numeric(us))
dim(da)
x=log(da)
zt=diff(x)*100
colnames(zt)<-c("uk","ca","us")
#3.1
varfit=VAR(zt,p=2)
summary(varfit)
m0=restrict(varfit,thres = 1.645)
summary(m0)
#3.2
impresp=irf(varfit)
plot(impresp)
#3.3
fevd(varfit,n.ahead = 10)
#3.4
Zt=as.data.frame(zt)
a=Zt$uk
b=Zt$ca
c=Zt$us
m1=adfTest(a, lags = 2, type = c("ct"), title = NULL, description = NULL)
m1@test$p.value
m2=adfTest(b, lags = 2, type = c("ct"), title = NULL, description = NULL)
m2@test$p.value
m3=adfTest(c, lags = 2, type = c("ct"), title = NULL, description = NULL)
m3@test$p.value
fit <- lm(a~b+c)
summary(fit)
error <- residuals(fit)
m4=adfTest(error, lags = 2, type = c("nc"), title = NULL, description = NULL)
m4@test$p.value
#3.5
a.L.1=lag(a,k=1)
b.L.1=lag(b,k=1)
c.L.1=lag(c,k=1)
error.L.1=lag(error,k=1)
VECM <- lm(a~a.L.1+b.L.1+c.L.1+error.L.1)
summary(VECM)






