Você deve estar ciente de que estimar espectros de potência usando um periodograma não é recomendado e, de fato, é uma prática ruim desde ~ 1896. É um estimador inconsistente para algo menos que milhões de amostras de dados (e mesmo assim ...) e geralmente tendencioso. O mesmo se aplica ao uso de estimativas padrão de autocorrelações (por exemplo, Bartlett), pois são pares de transformadas de Fourier. Desde que você esteja usando um estimador consistente, existem algumas opções disponíveis.
O melhor deles é uma estimativa de várias janelas (ou conicidade) dos espectros de potência. Nesse caso, usando os coeficientes de cada janela com uma frequência de interesse, você pode calcular uma estatística F harmônica contra uma hipótese nula de ruído branco. Essa é uma excelente ferramenta para detecção de componentes de linha em ruídos e é altamente recomendada. É a opção padrão na comunidade de processamento de sinal para detecção de periodicidades no ruído, sob suposição de estacionariedade.
Você pode acessar o método multitaper de estimativa de espectro e o teste F associado através do multitaper
pacote em R (disponível via CRAN). A documentação que acompanha o pacote deve ser suficiente para você prosseguir; o teste F é uma opção simples na chamada de função spec.mtm
.
A referência original que define essas duas técnicas e fornece os algoritmos para elas é a Estimativa de Espectro e Análise Harmônica , DJ Thomson, Proceedings of the IEEE, vol. 70, pág. 1055-1096, 1982.
Aqui está um exemplo usando o conjunto de dados incluído no multitaper
pacote.
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)
Os parâmetros dos quais você deve estar ciente são k e nw : são o número de janelas (definido como 10 acima) e o produto de largura de banda temporal (5.0 acima). Você pode facilmente deixá-los nesses valores quase padrão para a maioria dos aplicativos. O comando centreWithSlepians remove uma estimativa robusta da média da série temporal usando uma projeção nas janelas do Slepian - isso também é recomendado, pois deixar a média produz muita energia nas baixas frequências.
Eu também recomendaria plotar a saída do espectro de 'spec.mtm' em uma escala de log, pois isso limpa significativamente as coisas. Se precisar de mais informações, basta postar e será um prazer fornecer.
bootspecdens
pode ser útil.