Експоненціальне згладжування - класична методика, яка використовується в прогнозуванні позапричинних часових рядів. Поки ви використовуєте його лише для прямого прогнозування і не використовуєте зразкові згладжені пристосування як вхід до іншого алгоритму пошуку даних або статистичного алгоритму, критика Бріггса не застосовується. (Відповідно, я скептично ставлюсь до цього "для створення згладжених даних для презентації", як каже Вікіпедія - це, можливо, вводить в оману, приховуючи згладжену змінність.)
Ось вступ підручника до експоненціального згладжування.
І ось оглядова стаття (10-річна, але все ще актуальна).
EDIT: начебто є певні сумніви щодо обґрунтованості критики Бріггса, можливо, дещо впливає її упаковка . Я повністю згоден, що тон Бріггса може бути абразивним. Однак я хотів би проілюструвати, чому я думаю, що він має точку.
Нижче я моделюю 10 000 пар часових рядів із 100 спостережень у кожній. Усі серії - це білий шум, без кореляції. Отже, використовуючи стандартний тест на кореляцію, слід отримати значення p, які рівномірно розподілені на [0,1]. Як це робиться (гістограма зліва внизу).
Однак припустимо, що ми спочатку згладимо кожну серію і застосуємо кореляційний тест до згладжених даних. З'являється щось дивне: оскільки ми видалили з даних велику кількість варіабельності, ми отримуємо значення p, які занадто малі . Наш кореляційний тест сильно упереджений. Тож ми будемо занадто впевнені в будь-якій асоціації між оригінальною серією, про що говорить Бріггс.
Питання дійсно висить у тому, чи використовуємо ми згладжені дані для прогнозування; в такому випадку згладжування є дійсним, чи включаємо ми його як вхід у якийсь аналітичний алгоритм, і в цьому випадку видалення змінності буде імітувати більшу достовірність наших даних, ніж це гарантовано. Ця необґрунтована визначеність вхідних даних несе в собі кінцеві результати і потребує врахування, інакше всі умовиводи будуть надто певними. (І звичайно, ми також отримаємо занадто малі інтервали прогнозування, якщо для прогнозування будемо використовувати модель, засновану на "завищеній визначеності".)
n.series <- 1e4
n.time <- 1e2
p.corr <- p.corr.smoothed <- rep(NA,n.series)
set.seed(1)
for ( ii in 1:n.series ) {
A <- rnorm(n.time)
B <- rnorm(n.time)
p.corr[ii] <- cor.test(A,B)$p.value
p.corr.smoothed[ii] <- cor.test(lowess(A)$y,lowess(B)$y)$p.value
}
par(mfrow=c(1,2))
hist(p.corr,col="grey",xlab="",main="p values\nunsmoothed data")
hist(p.corr.smoothed,col="grey",xlab="",main="p values\nsmoothed data")