Test di significatività dei picchi nella densità spettrale


20

A volte utilizziamo il diagramma di densità spettrale per analizzare la periodicità in serie temporali. Normalmente analizziamo la trama mediante ispezione visiva e quindi proviamo a trarre una conclusione sulla periodicità. Ma gli statistici hanno sviluppato test per verificare se eventuali picchi nella trama sono statisticamente diversi dal rumore bianco? Gli esperti R hanno sviluppato un pacchetto per l'analisi della densità spettrale e per fare quel tipo di test? Ottimo se qualcuno potesse aiutare.

Saluti,
P.


1
Premuto da @Wesley, ho cancellato le mie idee rapide sulle funzioni di autocorrelazione e sul periodogramma (potrebbe essere davvero un guru dell'analisi del dominio della frequenza, ma personalmente non penso Bartlett, mentre lavoro con le autocorrelazioni nel dominio del tempo), ma penso ancora che il mio un secondo suggerimento in merito bootspecdenspotrebbe essere utile.
Dmitrij Celov,

Sto basando il mio presupposto sulla risposta della gente a "cos'è un'autocorrelazione?" sugli aspetti della letteratura, in cui quasi tutti i casi in cui viene utilizzata un'autocorrelazione sono standard, calcolati nel dominio del tempo, autocorrelazione di Barlett. E, sfortunatamente, questo è male! :) Apprezzo il suggerimento di bootspecdensDmitrij; non vedo l'ora di provarlo.
Wesley Burr,

Risposte:


9

Dovresti essere consapevole che la stima degli spettri di potenza usando un periodogramma non è raccomandata, e in effetti è stata una cattiva pratica dal ~ 1896. È uno stimatore incoerente per qualcosa di meno di milioni di campioni di dati (e anche allora ...), e in generale parziale. La stessa identica cosa si applica all'utilizzo di stime standard delle autocorrelazioni (cioè Bartlett), in quanto sono coppie di trasformate di Fourier. Se si utilizza uno stimatore coerente, sono disponibili alcune opzioni.

Il migliore di questi è una stima a finestra multipla (o conica) degli spettri di potenza. In questo caso, utilizzando i coefficienti di ciascuna finestra a una frequenza di interesse, è possibile calcolare una statistica F armonica rispetto a un'ipotesi nulla del rumore bianco. Questo è uno strumento eccellente per il rilevamento di componenti di linea nel rumore ed è altamente raccomandato. È la scelta predefinita nella comunità di elaborazione del segnale per il rilevamento di periodicità nel rumore in base alla stazionarietà.

È possibile accedere sia al metodo multitaper di stima dello spettro sia al test F associato tramite il multitaperpacchetto in R (disponibile tramite CRAN). La documentazione fornita con il pacchetto dovrebbe essere sufficiente per iniziare; l'F-test è una semplice opzione nella funzione call for spec.mtm.

Il riferimento originale che definisce entrambe queste tecniche e fornisce gli algoritmi per esse è la stima dello spettro e l'analisi armonica , DJ Thomson, Atti dell'IEEE, vol. 70, pag. 1055-1096, 1982.

Ecco un esempio usando il set di dati incluso con il multitaperpacchetto.

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) 

I parametri di cui dovresti essere a conoscenza sono k e nw : questi sono il numero di finestre (impostato su 10 sopra) e il prodotto time-bandwidth (5.0 sopra). Puoi facilmente lasciarli a questi valori quasi predefiniti per la maggior parte delle applicazioni. Il comando centreWithSlepians rimuove una stima attendibile della media delle serie temporali usando una proiezione su finestre Slepiane - questo è anche raccomandato, poiché lasciare la media in produce molta potenza alle basse frequenze.

Consiglierei anche di tracciare l'output dello spettro da 'spec.mtm' su una scala logaritmica, poiché pulisce le cose in modo significativo. Se hai bisogno di ulteriori informazioni, basta pubblicare e sono felice di fornirle.


A Burr, Silva e Celov - grazie mille per le vostre interessanti risposte e suggerimenti. Non vedo l'ora di testare questi stimatori. Cordiali saluti
Pantera,

(+1) Questa notte ho riflettuto attentamente sui tuoi suggerimenti e ho deciso che il dominio del tempo è davvero l'ultima cosa (a causa del troncamento del ritardo e delle proprietà deboli in piccoli campioni) per provare a cercare il comportamento in bicicletta. Ciò di cui sono personalmente preoccupato sono le ipotesi per le statistiche F e le proprietà di piccole dimensioni del campione dello schema suggerito. Bene e probabilmente è bene iniziare una domanda separata per quanto riguarda la selezione ottimale della finestra, perché ce ne sono davvero molte.
Dmitrij Celov,

Esistono davvero molte scelte di finestre, sebbene le due più comuni siano le Sequenze sferoidali discrete e proliferate (o Slepians ) e le sine saper. Se stai cercando la massima concentrazione di energia in una larghezza di banda locale, gli Slepiani si sono dimostrati ottimali, e in effetti sono l'output dalla forma di equazione integrale della densità spettrale (vedi il documento che ho citato per tutti i dettagli). Per quanto riguarda le statistiche F, ci sono certamente alcuni problemi con i gradi di libertà, ma nel complesso funzionano abbastanza bene, con ~ 2k-2 dof disponibili.
Wesley Burr,

Il periodogramma levigato usa anche la conicità, consente la FFT, il libro di David Stoffer ti insegna come calcolare anche gli intervalli di confidenza. Questo multitaperpacchetto sembra aver impiegato tecniche più avanzate per il tapering e il calcolo dell'intervallo di confidenza. Ma penso che l'idea fosse la stessa, secondo David Stoffer. Questa è l'unica cosa che mi viene in mente che insegnare il peridogoram alla vaniglia in realtà abbia ancora senso oggi.
Stucash

ok, quindi sei uno degli autori di questo pacchetto e hai usato alcune parole molto forti contro il periodogramma Spero che un giorno potresti tornare con più prove. Pro e contro comuni per Periodogram sono ben noti, come la sua varianza esplosiva, motivo per cui non è un buon stimatore coerente per lo spettro ma il periodogramma levigato non è poi così male, non così male come hai affermato qui penso.
Stucash

3

Abbiamo recentemente tentato di risolvere questo problema con una trasformazione wavelet di un test spettrale di recente in questo articolo . In sostanza, è necessario considerare la distribuzione delle ordinate del periodogramma, analogamente all'articolo di Fisher, menzionato nelle risposte precedenti. Un altro articolo di Koen è questo . Di recente abbiamo pubblicato un pacchetto R hwwntest .


Savchev, grazie mille per il tuo commento e riferimenti. Non vedo l'ora di testare il tuo pacchetto R.
Pantera,

2

f(ωK)

È possibile ottenere maggiori dettagli sul test in MB Priestley, Analisi spettrale e serie storiche, Academic Press, Londra, 1981, pagina 406.

In R, il pacchetto GeneCycle contiene la funzione fisher.g.test():

library(GeneCycle)
?fisher.g.test

Spero che sia di aiuto.


questo è fantastico ma il test g del pacchetto si basa sulla sua funzione periodogramma che ha opzioni molto limitate per il calcolo degli spettri di potenza ...
Stucash
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.