kernel {stats} | R Documentation |
The "tskernel"
class is designed to represent discrete
symmetric normalized smoothing kernels. These kernels can be used to
smooth vectors, matrices, or time series objects.
There are print
, plot
and [
methods for these kernel objects.
kernel(coef, m = 2, r, name) df.kernel(k) bandwidth.kernel(k) is.tskernel(k) ## S3 method for class 'tskernel' plot(x, type = "h", xlab = "k", ylab = "W[k]", main = attr(x,"name"), ...)
coef |
the upper half of the smoothing kernel coefficients
(including coefficient zero) or the name of a kernel
(currently |
m |
the kernel dimension(s) if |
name |
the name the kernel will be called. |
r |
the kernel order for a Fejer kernel. |
k, x |
a |
type, xlab, ylab, main, ... |
arguments passed to
|
kernel
is used to construct a general kernel or named specific
kernels. The modified Daniell kernel halves the end coefficients (as
used by S-PLUS).
The [
method allows natural indexing of kernel objects
with indices in (-m) : m
. The normalization is such that for
k <- kernel(*)
, sum(k[ -k$m : k$m ])
is one.
df.kernel
returns the ‘equivalent degrees of freedom’ of
a smoothing kernel as defined in Brockwell and Davis (1991), page
362, and bandwidth.kernel
returns the equivalent bandwidth as
defined in Bloomfield (1976), p. 201, with a continuity correction.
kernel()
returns an object of class "tskernel"
which is
basically a list with the two components coef
and the kernel
dimension m
. An additional attribute is "name"
.
A. Trapletti; modifications by B.D. Ripley
Bloomfield, P. (1976) Fourier Analysis of Time Series: An Introduction. Wiley.
Brockwell, P.J. and Davis, R.A. (1991) Time Series: Theory and Methods. Second edition. Springer, pp. 350–365.
require(graphics) ## Demonstrate a simple trading strategy for the ## financial time series German stock index DAX. x <- EuStockMarkets[,1] k1 <- kernel("daniell", 50) # a long moving average k2 <- kernel("daniell", 10) # and a short one plot(k1) plot(k2) x1 <- kernapply(x, k1) x2 <- kernapply(x, k2) plot(x) lines(x1, col = "red") # go long if the short crosses the long upwards lines(x2, col = "green") # and go short otherwise ## More interesting kernels kd <- kernel("daniell", c(3, 3)) kd # note the unusual indexing kd[-2:2] plot(kernel("fejer", 100, r = 6)) plot(kernel("modified.daniell", c(7,5,3))) # Reproduce example 10.4.3 from Brockwell and Davis (1991) spectrum(sunspot.year, kernel = kernel("daniell", c(11,7,3)), log = "no")