# kernel

##### Smoothing Kernel Objects

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.

- Keywords
- ts

##### 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`"daniell"`

,`"dirichlet"`

,`"fejer"`

or`"modified.daniell"`

. - m
- the kernel dimension(s) if
`coef`

is a name. When`m`

has length larger than one, it means the convolution of kernels of dimension`m[j]`

, for`j in 1:length(m)`

. Currently this is supported only for the named "*daniell" kernels. - name
- the name the kernel will be called.
- r
- the kernel order for a Fejer kernel.
- k, x
- a
`"tskernel"`

object. - type, xlab, ylab, main, ...
- arguments passed to
`plot.default`

.

##### Details

`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 `bandwidth.kernel`

returns the equivalent bandwidth as
defined in Bloomfield (1976), p.

##### 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"`

.

##### 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.

##### See Also

##### Examples

`library(stats)`

```
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")
```

*Documentation reproduced from package stats, version 3.3, License: Part of R 3.3*