Re: [R] Comparing two time series?

From: Spencer Graves <spencer.graves_at_pdf.com>
Date: Fri 05 May 2006 - 01:58:07 EST

          The standard "ccf" function requires two series sampled concurrently at equally spaced points in time. I think the simplest thing would be to try to transform your data into this form and use "ccf". The "zoo" package provides "aggregate.zoo" and "na.approx" that can be used to do this, after you've first selected an appropriate series of regular points in time. I found vignette("zoo") especially useful. [You may know that vignettes are essential Adobe Acrobat files with companion R script files that you can process one line at a time while reading the text, modifying R commands and trying different things to test your understanding. The acrobat file is opened by "printing" vignette("zoo"). Under Rgui, edit(vignette("zoo")) will open the script in a local window. Under XEmacs, Stangle(vignette("zoo")$file) will create a file "zoo.R" in the working directory, getwd(), which you can then open in XEmacs.]

          If you would like more help from this listserve, please submit another post. Be advised, however, that there is substantive anecdotal evidence suggesting that questions more consistent with the posting guide! "www.R-project.org/posting-guide.html" are more likely to generate quicker, more informative replies. This is particularly true if you can express your question in terms of a relatively simple, self-contained, example, like the following:

> x <- rep(1:3, 4)
> y <- rep(1:4, 3)
> x[3] <- NA
> y[4] <- NA
> ccf(x, y)

Error in na.fail.default(ts.union(as.ts(x), as.ts(y))) :

        missing values in object

          Some poor semi-literate such as I can then copy these few lines into R, and in a minute or so test something like the following:

library(zoo)
  print(ccf(x,y, na.action=na.approx))

Autocorrelations of series 'X', by lag

     -7     -6     -5     -4     -3     -2     -1      0      1      2
     3

-0.198 0.251 0.018 -0.159 0.066 0.269 0.000 0.106 0.207 0.040 -0.026

      4 5 6 7
-0.044 0.040 0.172 -0.282

          Without such examples, I don't know how close your series are to being sampled regularly, how much they overlap, what other things you've tried, etc.

	  hope this helps,
	  spencer graves

Robert Lundqvist wrote:

> I have got pairs of time series, where one usually is shorter (n typically
> about 5400) than the other (n typically about 52000). I would like to
> calculate the ccf for these series, but I haven't found a smart way to let
> the shorter "slide" along the longer one in steps.
>
> Manually splitting the longer series into shorter ones of the same length
> as the shorter is possible, but tedious. Any suggestions, either for doing
> it (i e the ccf calculations for series of different lengths) in one round
> or for doing a split of a long series into shorter pieces? (I know I have
> seen a description of the later in the documentation, but now I can't
> find where it was...)
>
> Robert
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri May 05 02:01:39 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Fri 05 May 2006 - 04:09:58 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.