Calculate local trends using cumsum
A simple method using cumulated sums that allows to detect changes in the tendency in a time series
local.trend(x, k=mean(x), plotit=TRUE, type="l", cols=1:2, ltys=2:1, xlab="Time", ylab="cusum", ...) ## S3 method for class 'local.trend' identify(x, ...)
x |
a regular time series (a 'ts' object) for |
k |
the reference value to substract from cumulated sums. By default, it is the mean of all observations in the series |
plotit |
if |
type |
the type of plot (as usual notation for this argument) |
cols |
colors to use for original data and for the trend line |
ltys |
line types to use for original data and the trend line |
xlab |
label of the x-axis |
ylab |
label of the y-axis |
... |
additional arguments for the graph |
With local.trend()
, you can:
- detect changes in the mean value of a time series
- determine the date of occurence of such changes
- estimate the mean values on homogeneous intervals
a 'local.trend' object is returned. It has the method identify()
Once transitions are identified with this method, you can use
stat.slide()
to get more detailed information on each phase. A
smoothing of the series using running medians (see decmedian()
) allows
also to detect various levels in a time series, but according to the median
statistic. Under R, see also the 'strucchange' package for a more complete,
but more complex, implementation of cumsum applied to time series.
Frédéric Ibanez (ibanez@obs-vlfr.fr), Philippe Grosjean (phgrosjean@sciviews.org)
Ibanez, F., J.M. Fromentin & J. Castel, 1993. Application de la méthode des sommes cumulées à l'analyse des séries chronologiques océanographiques. C. R. Acad. Sci. Paris, Life Sciences, 316:745-748.
data(bnr) # Calculate and plot cumsum for the 8th series bnr8.lt <- local.trend(bnr[,8]) # To identify local trends, use: # identify(bnr8.lt) # and click points between which you want to compute local linear trends...
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.