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 http://jmlr.org/proceedings/papers/v28/goerg13.html.

See also

Examples

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