Debe tener en cuenta que no se recomienda estimar los espectros de potencia utilizando un periodograma , y de hecho ha sido una mala práctica desde ~ 1896. Es un estimador inconsistente para cualquier cosa menos que millones de muestras de datos (e incluso entonces ...), y en general parcial. Lo mismo se aplica exactamente al uso de estimaciones estándar de autocorrelaciones (es decir, Bartlett), ya que son pares de transformadas de Fourier. Siempre que esté utilizando un estimador consistente, hay algunas opciones disponibles para usted.
Lo mejor de esto es una estimación de ventana múltiple (o conicidad) de los espectros de potencia. En este caso, al usar los coeficientes de cada ventana a una frecuencia de interés, puede calcular una estadística armónica F contra una hipótesis nula de ruido blanco. Esta es una excelente herramienta para la detección de componentes de línea en ruido, y es muy recomendable. Es la opción predeterminada en la comunidad de procesamiento de señales para la detección de periodicidades en ruido bajo la suposición de estacionariedad.
Puede acceder tanto al método multitaper de estimación de espectro como a la prueba F asociada a través del multitaper
paquete en R (disponible a través de CRAN). La documentación que viene con el paquete debería ser suficiente para comenzar; la prueba F es una opción simple en la llamada a la función spec.mtm
.
La referencia original que define ambas técnicas y proporciona los algoritmos para ellas es la Estimación del espectro y el análisis armónico , DJ Thomson, Proceedings of the IEEE, vol. 70, pág. 1055-1096, 1982.
Aquí hay un ejemplo usando el conjunto de datos incluido con el multitaper
paquete.
require(multitaper);
data(willamette);
resSpec <- spec.mtm(willamette, k=10, nw=5.0, nFFT = "default",
centreWithSlepians = TRUE, Ftest = TRUE,
jackknife = FALSE, maxAdaptiveIterations = 100,
plot = TRUE, na.action = na.fail)
Los parámetros que debe tener en cuenta son k y nw : estos son el número de ventanas (establecido en 10 arriba) y el producto de ancho de banda de tiempo (5.0 arriba). Puede dejarlos fácilmente con estos valores casi predeterminados para la mayoría de las aplicaciones. El comando centreWithSlepians elimina una estimación robusta de la media de la serie temporal mediante una proyección en ventanas Slepian; esto también se recomienda, ya que dejar la media en produce mucha potencia en las frecuencias bajas.
También recomendaría trazar la salida del espectro de 'spec.mtm' en una escala logarítmica, ya que limpia las cosas significativamente. Si necesita más información, simplemente publique y me complace proporcionarla.
bootspecdens
puede ser útil.