#take home exam EE435_6004641699 library(vars) library(abind) library(xts) library(MTS) library(quantmod) library(tseries) library(timeSeries) library(timeDate) library(urca) getSymbols("IPDCONGD",src="FRED") dim(IPDCONGD) tail(IPDCONGD) getSymbols("IPNCONGD",src="FRED") dim(IPNCONGD) getSymbols("IPBUSEQ",src="FRED") dim(IPBUSEQ) getSymbols("IPMAT",src="FRED") dim(IPMAT) IP= cbind(as.numeric(IPDCONGD),as.numeric(IPNCONGD),as.numeric(IPBUSEQ),as.numeric(IPMAT[-c(1:96)])) dim(IP) colnames(IP) = c("IPD","IPN","IPB","IPM") #question 1-1 zt=diffM(log(IP))*100 par(mar=c(1,1,1,1)) ts.plot(zt) MTSplot(zt) ccm(zt) adf=adf.test(diffM(log(as.numeric(IP)))) #question 1-2 VARorder(zt) m1=VAR(zt,2) m11 = refVAR(m1,thres=1.645) par("mar") par(mar=c(1,1,1,1)) MTSdiag(m11) #question 1-3 detach("package:MTS", unload = TRUE) varfit=VAR(zt,p=2) summary(varfit) impresp=irf(varfit) plot(impresp) #question 1-4 fevd(varfit,n.ahead=6) #question 1-5 varfit.prd=predict(varfit,n.ahead=1,ci=0.95) varfit.prd=predict(varfit,n.ahead=2,ci=0.95) varfit.prd=predict(varfit,n.ahead=3,ci=0.95) varfit.prd=predict(varfit,n.ahead=4,ci=0.95) varfit.prd=predict(varfit,n.ahead=5,ci=0.95) varfit.prd=predict(varfit,n.ahead=6,ci=0.95) detach("package:vars", unload = TRUE) require(MTS) VARpred(m11,6,orig=879) #Question 2 #forecast return and volatilities model library(ggplot2) library(caTools) library(dygraphs) library(xts) library(forecast) library(fGarch) library(tseries) library(ggplot2) getSymbols("ETH-USD",from="2015-01-01",to="2021-05-24") head(`ETH-USD`) da = `ETH-USD` price = da[,6] price = as.ts(price) plot(price,type="l") logprice=log(price) plot(logprice) logreturn=diff(log(price)) plot(logreturn) typeof(logreturn) da$data.Date = as.Date(da$c[,0]) acf(logreturn) pacf(logreturn) adf.test(logreturn) fit1 = auto.arima(logreturn, trace = TRUE, test = "kpss", ic = "bic") Box.test(fit1$residuals, lag = 12, type = "Ljung-Box") acf(fit1$residuals^2) tsdisplay(fit1$residuals) tsdiag(fit1) model=garchFit(~arma(1,0)+garch(1,1), data=diff(da$sqrt), trace=F, cond.dist ='std') summary (model) resid=residuals(model, standardize=T) Box.test(resid) plot(resid,type='l', main="Residual plot for model") Box.test(resid^2) tsdisplay(resid^2) pred=predict(model,n.ahead=15,plot=TRUE,crit_val =1) #Question 3 #import dataset in environment daa = NAEXKP01CAQ189S[,2] dab = CLVMNACSCAB1GQUK[,2] dac = GDPC1[,2] GDP = cbind(daa$NAEXKP01CAQ189S,dab$CLVMNACSCAB1GQUK,dac$GDPC1) colnames(GDP) <- c("UK","CA","US") ztx = diff(long(GDP)) VARorder(ztx) mx = VAR(ztx,1) MTSdiag(mx) my = refVAR(mx,thres=1.645) MTSdiag(my) impresp1=irf(varfit) plot(impresp1) impresp2=irf(varfit) plot(impresp2) VARfore(mx, n.ahead = 20) VARfore(my, n.ahead = 20) fevd(mx, n.ahead = 20) fevd(my, n.ahead = 20)