# Re: [R] first derivative of a time series

From: Spencer Graves <spencer.graves_at_pdf.com>
Date: Tue 17 Jan 2006 - 14:57:18 EST

First, I have to say that R is great. I'd never heard of "cyclone" before I read your post, but in only a couple of minutes, I was able to install it, try it out, and form a (perhaps erroneous) opinion thereof.

The function "coefFit" fits a polynomial of degree N-1 to a timeseries of degree N-1. For most applications, this is a bad idea, because the higher order coefficents are largely noise -- and the greater the noise, the fewer sensible coefficients one can get. In other words, the more noise, the more nonsense on will likely get from such a procedure. As evidence, I present the following:

set.seed(1)
ts.values <- rnorm(11)

## first calculate coefficients to pass to coefDeriv (ts.coef <- coefFit(ts.values))
> (ts.coef <- coefFit(ts.values))
\$coefs
 -0.8204684 2.1309962 39.9775982 -53.9342218 -254.8143434    281.8953570 611.4776909 -476.4068559 -634.0601417 247.3838420  238.6823281 NA
<snip>

The absolute values of ts.coef\$coefs increase monotonically up to the 7th coefficient, beyond which the smallest coefficient in absolute value is over 200 -- estimated from 11 pseudo-random numbers drawn per N(0,1).   I think it is conservative to describe this as merely silly.

From what I know, "the first derivative of an original time series" is not anything that has a standard definition. If you would like more help from this listserve, please tell us a bit more about the problem you are trying to solve, for which you think "the first derivative of an original time series" might be useful.

spencer graves
p.s. The fact that you included an almost reprodicible example was critical in permitting me to reply. Without that, the most constructive comment I might have been able to make might have been, "PLEASE do read the posting guide! 'www.R-project.org/posting-guide.html'." With your future posts, it might help increase the utility and frequency of replies if you include a self-contained snippet of R code. I almost gave up on my attempt to reply to your question, because I when I tried, 'read.table("timeseries.1d")', I got, 'Error in file(file, "r") : unable to open connection'. You might get better help if you make it easier for people to help you.

gj wrote:

```> Hi,
>
> I need to derive a time series that represents the first derivative of an
> original time series. The function coefDeriv in the cyclones package seemed to
> be the ticket, but I'm not sure if I am interpreting the output of the function
> correctly...or even using the function correctly.
>
> This is a snipbit of what I've been trying:
> --------
> library(cyclones)
>
> ## read in my 1-column of values, each line is a different time step
> ts.values <- ts.table[,1]
>
> ## first calculate coefficients to pass to coefDeriv
> ts.coef <- coefFit(ts.values)
>
> d.ts <- coefDeriv(ts.coef)
> -------
>
> However, when I try to look at d.ts\$y.deriv, assumning that this will plot the
> derivative I want, all the numbers are huge (on the order of e+02 to e+08) when
> my original time series ranged from 0 to 970. Am I going about this the wrong
> way? Or are there other tools that would lead me to estimating the derivative
> of a time series?
>
> Thanks in advance for any help!
> g
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help