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.

See also

Author

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