| panel.tskernel {latticeExtra} | R Documentation |
Plot a smoothed time series.
Description
Compute and plot discrete symmetric smoothing kernels.
These kernels can be used to smooth time series objects.
Options include moving averages, triangular filters, or
approximately Gaussian filters.
Usage
panel.tskernel(x, y, ...,
width, c = 1, sides = 2, circular = FALSE,
kern = kernel("daniell",
rep(floor((width/sides) / sqrt(c)), c)))
Arguments
x, y |
data points. Should define a regular, ordered series.
Alternatively a time series object can be passed as the
first argument, and y can be omitted.
|
... |
further arguments passed on to panel.lines.
|
width |
“width” of the smoothing kernel in time steps. In the default
case, which is a simple moving average, this is the actual width.
When c > 1 the number of time steps used in the kernel
increases but the equivalent bandwidth stays the same.
If only past values are used (with sides = 1) then
width refers to one side of the symmetric kernel.
|
c |
smoothness of the kernel: c = 1 is a moving average,
c = 2 is a triangular kernel, c = 3 and higher
approximate smooth Gaussian kernels.
c is actually the number of times to
recursively convolve a simple moving average kernel with itself.
The kernel size is adjusted to maintain a constant equivalent
bandwidth as c increases.
|
sides |
if sides=1 the smoothed series is calculed from past values
only (using one half of the symmetric kernel); if sides=2 it
is centred around lag 0.
|
circular |
to treat the data as circular (periodic).
|
kern |
a tskernel object; if given, this over-rides width and
c.
|
Note
The author is not an expert on time series theory.
Author(s)
Felix Andrews felix@nfrac.org
See Also
kernel,
filter,
xyplot.ts
Examples
## a Gaussian-like filter (contrast with c = 1 or c = 2)
xyplot(sunspot.year) +
layer(panel.tskernel(x, y, width = 20, c = 3, col = 1, lwd = 2))
## example from ?kernel:
## long and short moving averages, backwards in time
xyplot(EuStockMarkets[,1]) +
layer(panel.tskernel(x, y, width = 100, col = 1, sides = 1)) +
layer(panel.tskernel(x, y, width = 20, col = 2, sides = 1))
## per group, with a triangular filter
xyplot(EuStockMarkets) +
glayer(panel.tskernel(..., width = 100, c = 2),
theme = simpleTheme(lwd = 2))
## plot the actual kernels used; note adjustment of width
width = 100
kdat <- lapply(1:4, function(c) {
k <- kernel("daniell", rep(floor(0.5*width / sqrt(c)), c))
## demonstrate that the effective bandwidth stays the same:
message("c: ", c, ", bandwidth: ", bandwidth.kernel(k))
## represent the kernel as a time series, for plotting
ts(k[-k$m:k$m], start = -k$m)
})
names(kdat) <- paste("m =", 1:4)
xyplot(do.call(ts.union, kdat), type = "h",
scales = list(y = list(relation = "same")))
[Package
latticeExtra version 0.6-6
Index]