kernel {stats} | R Documentation |
Smoothing Kernel Objects
Description
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.
Usage
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"), ...)
Arguments
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 Dirichlet or Fejer kernel. |
k , x |
a |
type , xlab , ylab , main , ... |
arguments passed to
|
Details
kernel
is used to construct a general kernel or named specific
kernels. The modified Daniell kernel halves the end coefficients.
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.
Value
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"
.
Author(s)
A. Trapletti; modifications by B.D. Ripley
References
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.
See Also
Examples
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")