#EE 435 Assignment 3 Thunyaporn 6004640451
setwd("/Users/CHATKEAWPAISAL/Desktop/4 term 2/EE435/Assignment3_Thunyaporn")
cat(rep("\n", 50)) 

library(fBasics)
library(quantmod)
library(sn)
library(PerformanceAnalytics)
library(car)
library(tseries)
library(forecast)
library(Matrix)
da=read.table("q-gdpmc1.txt", skip=1)
GDP=da[,4]
par("mar")
par(mfcol=c(2,1))
plot(GDP,type='l')
logGDP=log(GDP)
GDPgrowth=diff(log(GDP))
plot(GDPgrowth, type="l")
#Answer 1a

#H0: p1=...=p12=0
#Ha: p!=0
Box.test(GDPgrowth,lag=12, type='Ljung')
# X-square = 64.259 > 1.96.
# We reject H0 at 95% confidence interval
# It means the variation of past information can
# explain the variation of rt
#Answer 1b

# H0: E(r) = 0
# Ha: E(r)!= 0
t.test(GDPgrowth)
# t=12.786 > 1.96.
# We reject H0 at 95% confidence interval
# It means that E(r) is not equal to 0.
# Answer 1c

da2=read.table("d-amzn3dx.txt", skip=1)
getSymbols("AMZN",from="2008-01-02",to="2012-12-31")
dim(AMZN)
head(AMZN)
tail(AMZN)
daAMZN=AMZN
priceAMZN=daAMZN[,6]
logpriceAMZN=log(priceAMZN)
logreturnAMZN=diff(log(priceAMZN))
newlogreturnAMZN<-logreturnAMZN[2:nrow(logreturnAMZN),]
table.Stats(logreturnAMZN)

getSymbols("VW",from="2008-01-02",to="2012-12-31")
dim(VW)
head(VW)
tail(VW)
daVW=VW
priceVW=daVW[,6]
logpriceVW=log(priceVW)
logreturnVW=diff(log(priceVW))
table.Stats(logreturnVW)

getSymbols("EW",from="2008-01-02",to="2012-12-31")
dim(EW)
head(EW)
tail(EW)
daEW=EW
priceEW=daEW[,6]
logpriceEW=log(priceEW)
logreturnEW=diff(log(priceEW))
table.Stats(logreturnEW)

getSymbols("SP",from="2008-01-02",to="2012-12-31")
dim(SP)
head(SP)
tail(SP)
daSP=SP
priceSP=daSP[,6]
logpriceSP=log(priceSP)
logreturnSP=diff(log(priceSP))
table.Stats(logreturnSP)
# Answer 2b

simplereturnAMZN <-exp(logreturnAMZN)-1
table.Stats(simplereturnAMZN)

simplereturnVW <-exp(logreturnVW)-1
table.Stats(simplereturnVW)

simplereturnEW <-exp(logreturnEW)-1
table.Stats(simplereturnEW)

simplereturnSP <-exp(logreturnSP)-1
table.Stats(simplereturnSP)
# Answer 2a

# H0: E(R_AMZN) = 0
# Ha: E(R_AMZN) != 0
t.test(newlogreturnAMZN)
# t=0.91788 < 1.96
# H0 is not rejected at 95% confidence interval
# mean of the logreturn of AMZN is zero.
# Answer 2c

hist(logreturnAMZN, breaks=40, col="slateblue")
chart.Histogram(logreturnAMZN,methods = c("add.normal"))
# Answer 2d

da3=read.table("m-abt3dx.txt", skip=1)
getSymbols("ABT",from="1972-01-01",to="2012-12-31")
dim(ABT)
head(ABT)
tail(ABT)
daABT=ABT
priceABT=daABT[,6]
logpriceABT=log(priceABT)
logreturnABT=diff(log(priceABT))
newlogreturnABT<-logreturnABT[2:nrow(logreturnABT),]
table.Stats(logreturnABT)

getSymbols("VW",from="1972-01-01",to="2012-12-31")
dim(VW)
head(VW)
tail(VW)
daVW=VW
priceVW=daVW[,6]
logpriceVW=log(priceVW)
logreturnVW=diff(log(priceVW))
newlogreturnVW<-logreturnVW[2:nrow(logreturnVW),]
table.Stats(logreturnVW)

getSymbols("EW",from="1972-01-01",to="2012-12-31")
dim(EW)
head(EW)
tail(EW)
daEW=EW
priceEW=daEW[,6]
logpriceEW=log(priceEW)
logreturnEW=diff(log(priceEW))
table.Stats(logreturnEW)

getSymbols("SP",from="1972-01-01",to="2012-12-31")
dim(SP)
head(SP)
tail(SP)
daSP=SP
priceSP=daSP[,6]
logpriceSP=log(priceSP)
logreturnSP=diff(log(priceSP))
table.Stats(logreturnSP)
# Answer 3b

simplereturnABT <-exp(logreturnABT)-1
table.Stats(simplereturnABT)

simplereturnVW <-exp(logreturnVW)-1
table.Stats(simplereturnVW)

simplereturnEW <-exp(logreturnEW)-1
table.Stats(simplereturnEW)

simplereturnSP <-exp(logreturnSP)-1
table.Stats(simplereturnSP)
# Answer 3a

# H0: E(R_ABT) = 0
# Ha: E(R_ABT) != 0
t.test(newlogreturnABT)
# t=3.2394 > 1.96
# H0 is rejected at 95% confidence interval
# mean of the logreturn of ABT is not equal to zero.
# Answer 3c

hist(logreturnABT, breaks=40, col="slateblue")
chart.Histogram(logreturnABT,methods = c("add.normal"))
# Answer 3d

# H0: E(R_VW) = 0
# Ha: E(R_VW) != 0
t.test(newlogreturnVW)
# t=-0.19361 < 1.96
# H0 is not rejected at 95% confidence interval
# mean of the logreturn of VW is zero.
# Answer 4a

# H0: m3 = 0
# Ha: m3 != 0
T = length(newlogreturnVW)
s3=skewness(newlogreturnVW)
s3
tst = s3/sqrt(6/T)
tst
pv = 2*pnorm(tst)
pv
# s_VW = |-26.46|>2
# H0 is rejected at 95% confidence interval
# Hence, the skewness is not equal to 0
# Answer 4b

# H0: K = 3
# Ha: K != 3
k4 = kurtosis(newlogreturnVW)
tst = k4/sqrt(24/T)
tst
pv = 2*pnorm(tst)
pv
# k_VW = |256.4973|>2
# H0 is rejected at 95% confidence interval
# Hence, the kurtosis is not equal to 3
# Answer 4c

# H0: s_AMZN = 0
# Ha: s_AMZN != 0
getSymbols("AMZN",from="2008-01-02",to="2012-12-31")
T = length(newlogreturnAMZN)
s3=skewness(newlogreturnAMZN)
s3
tst = s3/sqrt(6/T)
tst
pv = 2*pnorm(tst)
pv
# s_AMZN = |9.1466|>2
# H0 is rejected at 95% confidence interval
# Hence, the log return is not symmetric with respect to its mean
# Answer 5a)i)

# H0: K = 3
# Ha: K != 3
k4 = kurtosis(newlogreturnAMZN)
tst = k4/sqrt(24/T)
tst
pv = 2*pnorm(tst)
pv
# k_VW = |52.74143|>2
# H0 is rejected at 95% confidence interval
# Hence, the excess kurtosis is not equal to 0
# Answer 5a)ii)

t_test = t.test(newlogreturnAMZN)
print(paste("Confidence Interval, Confidence Level 95%: ", t_test[4]))
# Answer 5a)iii)

acf(da[,4],lag=12)
par(mfcol=c(1,1))
pacf(da[,4],lag.max=12)
m1=acf(newlogreturnAMZN)
names(m1)
m1$acf
m2=pacf(newlogreturnAMZN)
names(m2)
m2$acf
Box.test(newlogreturnAMZN,lag=12,type='Ljung')
#H0: p1=...=p12=0
#Ha: p!=0
# X-square = 12.151 > 1.96.
# We reject H0 at 95% confidence interval
# It means the variation of past information can
# explain the variation of rt
#Answer 5b

da6=read.table("d-exuseu.txt", skip=1)
daEX=da6
priceEX=da6[,4]
logpriceEX=log(priceEX)
logreturnEX=diff(log(priceEX))
# Answer 6a

table.Stats(logreturnEX)
# Answer 6b

hist(logreturnEX, breaks=40, col="slateblue")
chart.Histogram(logreturnEX,methods = c("add.normal"))
# Answer 6c

# H0: E(R_EX) = 0
# Ha: E(R_EX) != 0
t.test(logreturnEX)
# t= 0.24489 < 1.96
# H0 is not rejected at 95% confidence interval
# mean of the daily log return of Dollar-Euro exchange rate is zero.
# Answer 6d