#install.packages("quantmod")  
#install.packages("fBasics") 
#install.packages("sn")  
#install.packages("PerformanceAnalytics") 
#install.packages("car") 
#install.packages("tseries")  
#install.packages("forecast") 
#install.packages("dplyr")
#install.packages("tinytex")
library(quantmod) 
library(fBasics)
library(sn)
library(PerformanceAnalytics)
library(car)
library(tseries)
library(forecast)
library(Matrix)
library(dplyr)
library(tinytex)
#install_tinytex()
#1.A
read.table(file.choose(), header = T)
da=read.table("q-gdpmc1.txt")
str(da)
da1=da[-1,4]
GDP <- as.numeric(da1)
log_GDP=log(GDP)
log_GDP
growth=diff(log_GDP)
growth
par(mfcol=c(2,2))
plot(growth,type='l')
str(growth)
plot(growth[1:262],growth[2:263])
plot(growth[1:261],growth[3:263])
acf(growth,lag=12)
par(mfcol=c(1,1))
pacf(growth,lag.max=12)
#1.B
#given H0 : p1 = p2 = ... = p12 = 0 and H1 : pi != 0
Box.test(growth,lag=12,type='Ljung')
#1.C
t.test(growth)
#since the p-value < 2.2e-16, we can reject null hypothesis H0 : u = 0 at 95 percent confidence interval

#2.A
read.table(file.choose(), header = T)
da1=read.table("d-amzn3dx.txt")
AMZN=da1[-1,2]
VW=da1[-1,3]
EW=da1[-1,4]
SP=da1[-1,5]
AMZN <- as.numeric(AMZN)
VW <- as.numeric(VW)
EW <- as.numeric(EW)
SP <- as.numeric(SP)
returnAMZN=diff(AMZN)
returnVW=diff(VW)
returnEW=diff(EW)
returnSP=diff(SP)
table.Stats(returnAMZN)
table.Stats(returnVW)
table.Stats(returnEW)
table.Stats(returnSP)
#2.B
logAMZN = log(1+AMZN)
logVW = log(1+VW)
logEW = log(1+EW)
logSP = log(1+SP)
table.Stats(logAMZN)
table.Stats(logVW)
table.Stats(logEW)
table.Stats(logSP)
#2.C
t.test(logAMZN)
#since the calculated p-value = 0.9915 exceed 0.05, we cannot reject null hypothesis at 95 percent confidence interval that is H0 : u = 0
#2.D
par(mfcol=c(2,1))
hist(logAMZN, breaks = 40)
chart.Histogram(logAMZN,method=c('add.normal'))

#3
read.table(file.choose(), header = T)
da2=read.table("m-abt3dx.txt")
ABT=da2[-1,2]
VW2=da2[-1,3]
EW2=da2[-1,4]
SP2=da2[-1,5]
ABT <- as.numeric(ABT)
VW2 <- as.numeric(VW2)
EW2 <- as.numeric(EW2)
SP2 <- as.numeric(SP2)
table.Stats(ABT)
table.Stats(VW2)
table.Stats(EW2)
table.Stats(SP2)

logABT = log(1+ABT)
logVW2 = log(1+VW2)
logEW2 = log(1+EW2)
logSP2 = log(1+SP2)
table.Stats(logABT)
table.Stats(logVW2)
table.Stats(logEW2)
table.Stats(logSP2)
t.test(logABT)
#since the calculated p-value = 4.555e-05 less than 0.05, we can reject null hypothesis H0:u = 0 at 95 percent confidence interval
par(mfcol=c(2,1))
hist(logABT, breaks = 40)
chart.Histogram(logABT,method=c('add.normal'))
#4.A
VW2
t.test(VW2)
#since the calculated p-value = 1.912e-05 less than 0.05, we can reject null hypothesis H0 : u = 0 at 95 percent confidence interval
#4.B
T1=length(VW2)
VW2_s3=skewness(VW2)
VW2_s3
TST=VW2_s3/sqrt(6/T1)
TST
PV1=2*pnorm(TST)
PV1
#4.C
VW2_k3=kurtosis(VW2)/sqrt(24/T)
VW2_k3
PV2=2*(1-pnorm(VW2_k3))
PV2


#5.A
logAMZN
T2=length(logAMZN)
AMZN_S3=skewness(logAMZN)
AMZN_S3
TST2=AMZN_S3/sqrt(6/T2)
TST2
PV3=2*(1-pnorm(TST2))
PV3

AMZN_K3=kurtosis(logAMZN)
AMZN_K3
TST3=AMZN_K3/sqrt(24/T2)
TST3
PV4=2*(1-pnorm(TST3))
PV4

t.test(logAMZN)
#since the calculated p-value = 0.3287

#5.B
par(mfcol=c(2,1))
acf(logAMZN, lag=12)
pacf(logAMZN, lag=12)

#6.A
read.table(file.choose(), header = T)
da3=read.table("d-exuseu.txt")
FX=da3[-1,4]
FX <- as.numeric(FX)
logFX=log(FX)
logreturnFX=diff(logFX)
logreturnFX
#6.B
table.Stats(logreturnFX)
#6.C
par(mfcol=c(2,1))
hist(logreturnFX)
chart.Histogram(logreturnFX, method=c('add.normal'))
#6.D
t.test(logreturnFX)
#since the calculated p-value = 0.8066 is greater than 0.0, we cannot reject null hypothesis at 95 percent confidence interval