Тестова значимість піків у спектральній щільності


20

Ми іноді використовуємо графік спектральної щільності для аналізу періодичності у часових рядах. Зазвичай ми аналізуємо сюжет шляхом візуального огляду, а потім намагаємось зробити висновок про періодичність. Але чи розробив статистик будь-який тест, щоб перевірити, чи якісь шипи на ділянці статистично відрізняються від білого шуму? Чи розробили R-експерти який-небудь пакет для аналізу спектральної щільності та для проведення такого випробування? Чудово, якщо хтось міг допомогти.

З повагою,
П.


1
Натиснувши @Wesley, я видалив свої швидкі думки щодо функцій автокореляції та періодограми (можливо, він справді є гуру аналізу частотної області, але я особисто не вважаю Бартлетта, працюючи з автокореляціями у часовій області), але все одно думаю, що мій друга пропозиція щодо bootspecdensможе бути корисною.
Дмитро Челов

Я грунтуюся на своєму припущенні щодо реакції людей на "що таке автокореляція?" про літературні виступи, в яких майже всі випадки, коли використовується автокореляція, є стандартними, обчисленими в часовій області, автокореляцією Барлетта. І, на жаль, це погано! :) Я ціную пропозицію bootspecdensвід Дмитра; з нетерпінням чекаю перевірки.
Уеслі Берр

Відповіді:


9

Вам слід пам’ятати, що оцінювати спектри потужності за допомогою періодограми не рекомендується, а насправді це погана практика з ~ 1896 р. Це непослідовний оцінювач нічого, ніж мільйони зразків даних (і навіть тоді ...), і взагалі упереджений Точно те саме стосується використання стандартних оцінок автокореляцій (тобто Бартлетта), оскільки вони є парами перетворення Фур'є. Якщо ви використовуєте послідовний оцінювач, вам доступні деякі варіанти.

Найкраще з них - оцінка багаторазового (або конусного) спектрів потужності. У цьому випадку, використовуючи коефіцієнти кожного вікна з частотою, що цікавить, ви можете обчислити Гармонічну статистику F проти нульової гіпотези білого шуму. Це відмінний інструмент для виявлення лінійних компонентів у шумі, і настійно рекомендується. Це вибір за замовчуванням у спільноті обробки сигналів для виявлення періодичності шуму при допущенні стаціонарності.

Ви можете отримати доступ до мультитаперного методу оцінки спектру та пов'язаного з ним F-тесту через multitaperпакет в R (доступний через CRAN). Документації, яка постачається з пакетом, повинна бути достатньою для того, щоб ви їхали; F-тест - це проста опція у виклику функції для spec.mtm.

Оригінальна посилання, яка визначає обидві ці методи та дає алгоритми для них, - Оцінка спектра та гармонійний аналіз , DJ Thomson, Proceedings of IEEE, vol. 70, пг. 1055–1096, 1982.

Ось приклад використання включеного набору даних із multitaperпакетом.

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) 

Параметри, про які слід пам’ятати, - k і nw : це кількість вікон (встановлено на 10 вище) та добуток пропускної здатності (на 5,0 вище). Ви можете легко залишити їх за цими квазі-типовими значеннями для більшості програм. Команда centreWithSlepians видаляє надійну оцінку середнього часового ряду за допомогою проекції на сліпі вікна - це також рекомендується, оскільки залишення середнього значення виробляє багато енергії при низьких частотах.

Я також рекомендую побудувати графік виведення спектру від 'spec.mtm' за шкалою журналу, оскільки він значно очищує речі. Якщо вам потрібна додаткова інформація, просто опублікуйте, і я з радістю надаю її.


Бурру, Сільві та Челові - велике спасибі за ваші цікаві відповіді та пропозиції. Я з нетерпінням чекаю перевірки цих оцінювачів. З найкращими побажаннями
Пантера

(+1) Цієї ночі я ретельно продумав ваші пропозиції та вирішив, що часова область справді є останньою справою (через укорочення відставання та слабких властивостей у невеликих зразках), щоб спробувати пошукати поведінки на велосипеді. Мене особисто турбують припущення щодо статистики F та малі властивості розміру вибірки запропонованої схеми. Ну і, мабуть, добре почати окреме питання щодо оптимального вибору вікон, адже їх дійсно багато.
Дмитро Челов

Дійсно існує багато варіантів вікон, хоча два найпоширеніших - це сфероїдальні послідовності дискретних пролатів (або сліпіани ) та синусоїди. Якщо ви шукаєте максимальну концентрацію енергії в локальній ширині смуги, сліпіани виявились оптимальними, і насправді це вихід з інтегральної форми рівняння спектральної щільності (детальну інформацію див. У статті, яку я згадував). Що стосується статистики F, то, безумовно, є деякі проблеми зі ступенем свободи, але в цілому вони працюють досить добре, маючи ~ 2k-2 dof.
Веслі Берр

Згладжена періодограма також використовує конусність, дозволяє використовувати FFT, книга Девіда Стоффера також навчає, як розраховувати довірчі інтервали. Цей multitaperпакет, схоже, використовував більш досконалі методики конусування та обчислення довірчого інтервалу. Але я думаю, що ідея була такою ж, на думку Девіда Стоффера. Це єдине, що я міг би придумати, що викладання ванільного перидогораму насправді має сенс і сьогодні.
ліпнина

гаразд, ви один з авторів цього пакету, і ви використали кілька дуже сильних слів проти періодограми. Я сподіваюся, що ви могли одного разу повернутися з більшою кількістю доказів. Загальні плюси і мінуси періодограми добре відомі, як і її вибухонебезпечна дисперсія, і тому це не дуже хороший послідовний оцінювач спектру, але згладжена періодограма насправді не така погана, не така погана, як ви заявили тут, я думаю.
ліпнина

3

Ми намагалися вирішити цю проблему шляхом вейвлет-перетворення тесту на основі спектра, нещодавно в цій роботі . По суті, вам слід розглянути розподіл ординат періодограми, подібно до статті Фішера, згаданої в попередніх відповідях. Ще один документ від Коена - це . Нещодавно ми опублікували R пакет hwwntest .


Савчев, велике спасибі за ваш коментар та посилання. Я з нетерпінням чекаю тестування вашого R-пакету.
Пантера

2

f(ωк)

Ви можете отримати більш детальну інформацію про тест у MB Priestley, Spectral Analysis and Time Series , Academic Press, London, 1981, стор. 406.

У R пакунок GeneCycle містить функцію fisher.g.test():

library(GeneCycle)
?fisher.g.test

Сподіваюсь, це допомагає.


це чудово, але тест g пакету покладається на власну функцію періодограми, яка має дуже обмежені можливості для обчислення спектрів потужності ...
stucash
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.