[R] Please read **Urgent** Need help with R
John Kane
jrkrideau at inbox.com
Sun Sep 13 20:29:52 CEST 2015
Hi Mehmet,
Did you send this in HTML? That's what it looks like.
It is currently almost unreadable.
You need to reformat it and send it as plain text.
You need to reduce the code to the key parts if possible. It looks like most of the code is unneeded for the problem and is just a distraction.
Your data did not arrive. The R-help list is very fussy about what kind of files it allows, in order to prevent viruses and malware.
Here are a couple of links with suggestions on how to ask a question on R-help. In particular read about supplying data in dput() form. That is the best way to send data to R-help.
http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example and http://adv-r.had.co.nz/Reproducibility.html
> I also attached my data. the problem could be also with the format of
> excel.
What has Excel got to do with this?
This looks like homework and we have a no-homework policy but get things cleaned up and we may be able to make some suggestions.
John Kane
Kingston ON Canada
> -----Original Message-----
> From: mehmetdogan_07 at windowslive.com
> Sent: Sun, 13 Sep 2015 15:31:15 +0300
> To: r-help at r-project.org
> Subject: [R] Please read **Urgent** Need help with R
>
> 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 at data, # @data = original data
> values type="l",col="red",ylab="r",main="Log-returns of
> SP500")plot(k.garch12 at 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 at residuals/sqrt(k.garch12 at 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 at 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.
____________________________________________________________
FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on your desktop!
More information about the R-help
mailing list