Computes spectral entropy from a univariate normalized spectral density, estimated using an AR model.

feat_spectral(x, .period = 1, ...)

## Arguments

x

a univariate time series

.period

The seasonal period.

...

Further arguments for stats::spec.ar()

## Value

A non-negative real value for the spectral entropy $$H_s(x_t)$$.

## Details

The spectral entropy equals the Shannon entropy of the spectral density $$f_x(\lambda)$$ of a stationary process $$x_t$$: $$H_s(x_t) = - \int_{-\pi}^{\pi} f_x(\lambda) \log f_x(\lambda) d \lambda,$$ where the density is normalized such that $$\int_{-\pi}^{\pi} f_x(\lambda) d \lambda = 1$$. An estimate of $$f(\lambda)$$ can be obtained using spec.ar with the burg method.

## References

Jerry D. Gibson and Jaewoo Jung (2006). “The Interpretation of Spectral Entropy Based Upon Rate Distortion Functions”. IEEE International Symposium on Information Theory, pp. 277-281.

Goerg, G. M. (2013). “Forecastable Component Analysis”. Journal of Machine Learning Research (JMLR) W&CP 28 (2): 64-72, 2013. Available at https://proceedings.mlr.press/v28/goerg13.html.

spec.ar

Rob J Hyndman

## Examples

feat_spectral(rnorm(1000))
#> spectral_entropy
#>                1
feat_spectral(lynx)
#> spectral_entropy
#>        0.7331515
feat_spectral(sin(1:20))
#> spectral_entropy
#>      0.003481715