Skip to content

first derivative of a time series

2 messages · gj, Spencer Graves

gj
#
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.table <- read.table("timeseries.1d")
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
3 days later
#
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
  [1]   -0.8204684    2.1309962   39.9775982  -53.9342218 -254.8143434
  [6]  281.8953570  611.4776909 -476.4068559 -634.0601417  247.3838420
[11]  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: