ts_levels | R Documentation |
Use recursive partitioning function rpart::rpart()
to perform a 'classification' of relatively stable levels in a timeseries.
ts_levels(
y,
minDataSplit = NROW(y)/5,
minLevelDuration = round(minDataSplit/3),
changeSensitivity = 0.01,
maxLevels = 30,
method = c("anova", "poisson", "class", "exp")[1],
crossValidations = 10,
minChange = NA,
returnTrends = FALSE,
Trend_minDataSplit = minDataSplit,
Trend_minLevelDuration = minLevelDuration,
Trend_changeSensitivity = changeSensitivity,
Trend_maxLevels = maxLevels,
Trend_method = method,
Trend_crossValidations = crossValidations,
Trend_minChange = NA,
doLevelPlot = FALSE,
doTreePlot = FALSE,
returnTree = FALSE,
returnPlot = FALSE,
silent = FALSE
)
y |
A time series of numeric vector |
minDataSplit |
An integer indicating how many datapoints should be in a segment before it will be analysed for presence of a level or trend change (default = |
minLevelDuration |
Minimum duration (number of datapoint) of a level (default = |
changeSensitivity |
A number indicating a criterion of change that must occur before declaring a new level. Higher numbers indicate higher levels of change must occur before a new level is considered. For example, if |
maxLevels |
Approximately the maximum number of levels tht will be detectd. The value indicates the node-depth of the final tree with the root node being depth 0, see |
method |
The partitioning method to use, see the manual pages of rpart for details. |
crossValidations |
The number of cross-validations (default = |
minChange |
After the call to rpart, adjust detected level changes to a minimum absolute change in |
returnTrends |
Should stationary trends also be estimated and returned? Unless otherwise specified, the arguments will be the same as for the level detection and argument |
Trend_minDataSplit |
see |
Trend_minLevelDuration |
see |
Trend_changeSensitivity |
see |
Trend_maxLevels |
see |
Trend_method |
see |
Trend_crossValidations |
see |
Trend_minChange |
see |
doLevelPlot |
Should a plot with the original series and the levels and/or trends be produced? If |
doTreePlot |
Should a plot of the decision tree be produced. If |
returnTree |
should the tree object from rpart be returned in the output? (default = |
returnPlot |
if |
silent |
silent(-ish) mode |
A list object with fields tree
and pred
. The latter is a data frame with columns x
(time), y
(the variable of interest) and p
the predicted levels in y
and p_adj
, the levels in p
but adjusted for the value passed to minChange
.
Fred Hasselman
Other Time series operations:
ts_center()
,
ts_changeindex()
,
ts_checkfix()
,
ts_detrend()
,
ts_diff()
,
ts_discrete()
,
ts_duration()
,
ts_embed()
,
ts_integrate()
,
ts_peaks()
,
ts_permtest_block()
,
ts_permtest_transmat()
,
ts_rasterize()
,
ts_sd()
,
ts_slice()
,
ts_slopes()
,
ts_standardise()
,
ts_sumorder()
,
ts_symbolic()
,
ts_trimfill()
,
ts_windower()
# Levels in white noise?
set.seed(4321)
y <- rnorm(100)
wn <- ts_levels(y)
plot(wn$pred$x,wn$pred$y, type = "l")
lines(wn$pred$p, col = "red3", lwd = 2)
# This is due to the default changeSensitivity of 0.01
wn2 <- ts_levels(y,changeSensitivity = .1)
lines(wn2$pred$p, col = "steelblue", lwd = 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.