rm(list=ls())
library(fBasics)
library(timeDate)
library(timeSeries)
library(fGarch)
library(quantmod)
library(forecast)
library(fUnitRoots)
getSymbols("NAEXKP01CAQ189S",src="FRED")
head(NAEXKP01CAQ189S)
GDPca=NAEXKP01CAQ189S[77:202,]
logGDPca=log(GDPca)
head(GDPca)
tail(GDPca)
dim(GDPca)
getSymbols("CLVMNACSCAB1GQUK",src="FRED")
head(CLVMNACSCAB1GQUK)
GDPuk=CLVMNACSCAB1GQUK[21:146,]
logGDPuk=log(GDPuk)
head(GDPuk)
tail(GDPuk)
dim(GDPuk)
getSymbols("GDPC1",src="FRED")
head(GDPC1)
GDPus=GDPC1[133:258,]
logGDPus=log(GDPus)
head(GDPus)
tail(GDPus)
dim(GDPus)

yt=cbind(as.numeric(GDPus),as.numeric(GDPuk),as.numeric(GDPca))
zt=log(yt)
colnames(zt) <- c("logGDPUS","logGDPUK","logGDPCA")
#Question1
require(MTS)
VARorder(zt)
detach("package:MTS", unload = TRUE)
require(vars)
varfit1 <- VAR(zt,p=2)
summary(varfit1)
varfit2 <- restrict(varfit1, thresh=1.645)
summary(varfit2)
#Question 2
impresp <- irf(varfit2)
plot(impresp)
#Question3
fevd(varfit2, n.ahead=6)
#Question 4
m0 <- adfTest(logGDPus, lags=3, type=c("ct"), title=NULL)
m0@test$p.value
m01 <- adfTest(diff(logGDPus), lags=3, type=c("ct"), title=NULL)
m01@test$p.value
m1 <- adfTest(logGDPuk, lags=3, type=c("ct"), title=NULL)
m1@test$p.value
m11 <- adfTest(diff(logGDPuk), lags=3, type=c("ct"), title=NULL)
m11@test$p.value
m2 <- adfTest(logGDPca, lags=3, type=c("ct"), title=NULL)
m2@test$p.value
m21 <- adfTest(diff(logGDPca), lags=3, type=c("ct"), title=NULL)
m21@test$p.value

fit <- lm(logGDPca~logGDPuk+logGDPus)
summary(fit)
error=residuals(fit)
m3 <- adfTest(error, lags=3, type=c("nc"), title=NULL)
m3@test$p.value

#Question 5
diff.logGDPus=diff(logGDPus)
diff.logGDPuk=diff(logGDPuk)
diff.logGDPca=diff(logGDPca)
diff.logGDPus.L.1=Lag(diff(logGDPus),k=1)
diff.logGDPuk.L.1=Lag(diff(logGDPuk),k=1)
diff.logGDPca.L.1=Lag(diff(logGDPca),k=1)
error.L.1=Lag(error,k=1)
fit1 <- lm(formula=diff.logGDPca~diff.logGDPus.L.1+diff.logGDPuk.L.1+diff.logGDPca.L.1+error.L.1)
summary(fit1)
fit2 <- lm(formula=diff.logGDPuk~diff.logGDPus.L.1+diff.logGDPuk.L.1+diff.logGDPca.L.1+error.L.1)
summary(fit2)
fit3 <- lm(formula=diff.logGDPus~diff.logGDPus.L.1+diff.logGDPuk.L.1+diff.logGDPca.L.1+error.L.1)
summary(fit3)
