Re: [R] Regression and time series

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Tue 12 Apr 2005 - 10:43:40 EST

On Apr 11, 2005 8:18 PM, Fernando Saldanha <fsaldan1@gmail.com> wrote:
> Can someone shed some light on this obscure portion of the help for lm?
>
> "Considerable care is needed when using 'lm' with time series.
>
> Unless 'na.action = NULL', the time series attributes are stripped
> from the variables before the regression is done. (This is
> necessary as omitting 'NA's would invalidate the time series
> attributes, and if 'NA's are omitted in the middle of the series
> the result would no longer be a regular time series.)
>
> Even if the time series attributes are retained, they are not used
> to line up series, so that the time shift of a lagged or
> differenced regressor would be ignored. It is good practice to
> prepare a 'data' argument by 'ts.intersect(..., dframe = TRUE)',
> then apply a suitable 'na.action' to that data frame and call 'lm'
> with 'na.action = NULL' so that residuals and fitted values are
> time series."
>
> I found that ts.intersect does not shorten a set of time series just
> because the series has NAs. It only shortens a set of time series to
> the length of the shortest time series (with NAs counting for the
> length calculation). That being the case, the utility of ts.inersect
> seems limited to me, unless I am missing something (which I probably
> am).
>
> In particular, I am currently having to pad the beginning of a time
> series when I call diff. For example,
>
> > a <- ts(c(1, 2, 4))
> > b <- ts(c(NA, diff(a)))
> > ab <- ts.intersect(a, b)
> > Time Series:
> Start = 1
> End = 3
> Frequency = 1
> a b
> 1 1 NA
> 2 2 1
> 3 4 2
>
> I was hoping that something like ts.intersect would spare me the
> trouble of explicitly padding b in the example above. However, if I
> don't pad b the time series get misaligned:
>
> > a <- ts(c(1, 2, 4))
> > b <- ts(diff(a))
> > ab <- ts.intersect(a, b)
> Time Series:
> Start = 1
> End = 2
> Frequency = 1
> a b
> 1 1 1
> 2 2 2
>
> Any comments, suggestions?

b <- ts(diff(a)) should be

   b <- diff(a)

By applying ts to diff(a) you are resetting the time.



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 Tue Apr 12 12:17:58 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:07 EST