Dear All, I can NOT format and create an xts object of my data in order to forecast Volatility. Moreover I can NOT plot the data. basically i cant work with the data i have. I need to finish my project till tomorrow. Could you please help me with those problems? I also attached my data. the problem could be also with the format of excel. when i could like to plot data, the following error appears:Error in plot.window(...) : need finite 'ylim' valuesIn addition: Warning messages:1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion2: In min(x) : no non-missing arguments to min; returning Inf3: In max(x) : no non-missing arguments to max; returning -Inf I have following codes. I can NOT format the date after these codes ****# function assumes that the data is stored in the subdirectory called "data"SP500<-read.csv("Data_Forecast/EURUSD.csv")
SP500<-read.csv("Data_Forecast/EURUSD.csv",stringsAsFactors=F)**** setwd("D:\\NewThesis") # install and load needed librariesinstall.packages("fBasics")install.packages("tseries")install.packages("car")install.packages("FinTS")install.packages("fGarch")install.packages("rugarch") # rugarch# http://cran.r-project.org/web/packages/rugarch/vignettes/Introduction_to_the_rugarch_package.pdf library(xts)library(fBasics) # e.g. basicStats()library(tseries)# e.g. jarque.bera.test()library(car) # e.g. durbinWatsonTest()library(FinTS) # e.g. ArchTest()library(fGarch) # e.g. garchFit()library(rugarch) # e.g. ugarchfit() # !!! Introduction to the rugarch package# http://cran.r-project.org/web/packages/rugarch/vignettes/Introduction_to_the_rugarch_package.pdf # lets load additional functions prepared by the lecturerssource("functions/TSA_lab06_functions.R") #################### Example #1. # stylized facts ################### #1.# To import data we will use a function import_data()# written by lecturers and stored in TSA_lab06_functions.R# (already loaded) rm(list=ls()) # function assumes that the data is stored in the subdirectory called "data"SP500<-read.csv("Data_Forecast/EURUSD.csv") SP500<-read.csv("Data_Forecast/EURUSD.csv",stringsAsFactors=F) #############################################################################3SP500$Date<-as.Date(SP500$Date,format="%Y-%m-%d" , "h:m:s") #format(chron(0, 0), c("d/m/yy", "h:m:s"), sep = " ", enclose = c("", ""))################################################################################### str(SP500)# Date column is already converted to Date format #First 6 head(SP500) #Last 6tail(SP500) # lets leave just date and close priceSP500<-SP500[,c(1,5)] # and change the name of the last column into SP500names(SP500)[2]<-"SP500" SP500.xts<-xts(SP500$SP500,SP500$Date) #First 6 head(SP500) #Last 6tail(SP500) #############################################################################333attach(SP500)x<-Timey<-Closedetach(SP500)plot(x,y)##############################################################################plot(SP500) plot(SP500$Date,SP500$SP500,type="l", main="Daily close price of SP500") # lets add log-returns to the dataSP500$r<-diff.xts(log(SP500$SP500)) # lets limit our data to days since the beginning of 2000SP500<-SP500[SP500$Date>=as.Date("04-09-2015"),] # lets plot the close priceplot(SP500$Date,SP500$SP500,type="l", main="Daily close price of SP500") # ... and it's log-returnsplot(SP500$Date,SP500$r,type="l", col="red", main="Log-returns of SP500")abline(h=0,col="gray",lty=2) #abline functions adds line to the plot # lets also plot the ACF function of log-returnsacf(SP500$r,lag.max=36,na.action=na.pass, ylim=c(-0.1,0.1), # we rescale the vertical axis col="darkblue",lwd=7,main="ACF of log-returns of SP500") # this indicates some autoregressive relations among returns# which can be used to build an ARIMA model # and do the same for the quared log-returnsacf(SP500$r^2,lag.max=36,na.action=na.pass, ylim=c(0,0.5), # we rescale the vertical axis col="darkblue",lwd=7,main="ACF of log-returns of SP500") # this in turn indicates some autoregressive relations among SQUARED returns# (their variance!) which can be used to build a (G)ARCH model # 2.# Do log-returns come from normal distribution? basicStats(SP500$r) hist(SP500$r,prob=T,breaks=40)# lets add a normal density curve for # sample mean and variance # dnorm() generates density function for a specified value# and parameters (mean, sd) curve(dnorm(x, # data vector # dnorm creates a density value for the mean=mean(SP500$r,na.rm=T), # mean # normal distribution sd=sd(SP500$r,na.rm=T)), # sd col="darkblue", lwd=2, add=TRUE) # 3.# Let's also examine:# *) Jarque-Bera statistic jarque.bera.test(SP500$r) # the function doesn't accept missing values # lets omit the missing valuesjarque.bera.test(na.omit(SP500$r)) # na.omit functions omits the missing values # null about normality strongly rejected # *) Durbin-Watson statistic# the durbinWatsonTest() function requires # the linear model as an argument# lets simulate a model with just a constant term durbinWatsonTest(lm(SP500$r~1), # here 1 means a constant max.lag=5) # lets check first 5 orders. # lack of autocorrelation in returns strongly rejected # for lag 1,2 and 5 # *) ARCH effects among log-returns ArchTest(SP500$r,lags=5) #(first 5 lags together) # null stongly rejected # we can also apply a DW test for squared returnsdurbinWatsonTest(lm(SP500$r^2~1), max.lag=5) # lets check first 5 orders# all pvalues 0. It means in all lags wereject autocorrelation # now ALL lags significant !!! ################################################# Example #2 # Choosing the proper order of GARCH(p,q) model ################################################ # 1.# ARCH(1) k.arch1<-garchFit(SP500$r~garch(1,0), # we assume that returns follow an ARCH(1) process cond.dist= "norm", # conditional distribution of errors trace=FALSE) # if we don't want to see history of iterations # summary of results and some diagnostic testssummary(k.arch1) # The intercept in the model above is not significatn so we can drop it.k.arch1<-garchFit(SP500$r~garch(1,0),include.mean=F, cond.dist= "norm", # conditional distribution of errors trace=FALSE) # if we don't want to see history of iterations # summary of results and some diagnostic testssummary(k.arch1) # Let's examine squares of standardized residuals. # we can automatically plot several parts of results# (lets select 11: ACF of Squared Standardized Residuals, # 10: ACF of Standardized Residuals,# and 11: Conditional SD; to quit press ESC)plot(k.arch1) # squared residuals still have significant ACF for lags: 2,3,5,7,8,9,10 # 2.# lets try if ARCH(5) is enough to catch these phenomenonk.arch5<-garchFit(SP500$r~garch(5,0),include.mean=F, cond.dist= "norm", # conditional distribution of errors trace=FALSE) # if we don't want to see history of iterations summary(k.arch5) # all parameters significant# Ljung-box test for R^2 shows there is no more autocorrelation # between the current and past standardized squared residuals (variance) # lets plot the ACF of standardized residuals# and standardized squared residuals (plots 10, 11)# ESC to exit plot(k.arch5) # lag nr 10 in ACF for squared residuals seems to be still significant, but# lets ignore it based on previous tests (LB) # 4.# lets compare it with GARCH(1,1)k.garch11<-garchFit(SP500$r~garch(1,1),include.mean=F, cond.dist= "norm", # conditional distribution of errors trace=FALSE) # if we don't want to see history of iterations summary(k.garch11) # all parameters significant# Ljung-box test for R^2 shows there is no more autocorrelation # between the current and past standardized squared residuals (variance) # lets plot the ACF of standardized residuals# and standardized squared residuals (plots 10, 11)# ESC to exit plot(k.garch11) # 5.# lets check higher order GARCH(1,2)k.garch12<-garchFit(SP500$r~garch(1,2),include.mean=F, cond.dist= "norm", # conditional distribution of errors trace=F) # if we don't want to see history of iterations summary(k.garch12) # lets plot the ACF of standardized residuals# and standardized squared residuals (plots 10, 11)# ESC to exit plot(k.garch12) # all parameters significant# Ljung-box test for R^2 shows there is no more autocorrelation # between the current and past standardized squared residuals (variance) # Which model has most favourable information criteria AIC and SBC? # function written by the lecturers# requires a list of names of EXISTING # (g)arch model results as an argumentcompare.ICs(c("k.arch1","k.arch5","k.garch11","k.garch12")) # Does the best model have all parameters significant? # 6.# Let's assume that the final model is GARCH(1,2) str(k.garch12) # 7.# Plot of conditional variance estimatespar(mfrow=c(2,1))plot(k.garch12@data, # @data = original data values type="l",col="red",ylab="r",main="Log-returns of SP500")plot(k.garch12@h.t, # @h.t = conditional variance type="l",col="darkgreen", ylab="cvar",main="Conditional variance from GARCH(1,2)")par(mfrow=c(1,1)) # 8.# Do standardized residuals come from normal distribution?stdres<-k.garch12@residuals/sqrt(k.garch12@h.t) hist(stdres,breaks=20,prob=T, main="Histogram of standardized residuals \n from GARCH(1,2) for SP500")# lets add a normal density curve for # sample mean and variance curve(dnorm(x, mean=mean(stdres,na.rm=T), sd=sd(stdres,na.rm=T)), col="darkblue", lwd=2, add=TRUE) # Jarque-Bera testjarque.bera.test(stdres) # normalit yrejected # Durbin Watson testdurbinWatsonTest(lm(stdres~1), max.lag=5) # lets check first 5 orders # the first seems to be significant - indicates we can add # an ARIMA component in the mean equation # ARCH effects among standardized residualsArchTest(stdres,lags=5) Thanks in advance, Yours sincerely, Mehmet Dogan ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.