平滑 - 何時使用,何時不使用?
William Briggs 的博客上有一篇相當古老的文章,它著眼於平滑數據並將平滑數據進行分析的缺陷。關鍵論點是:
如果在精神錯亂的時刻,您對時間序列數據進行了平滑處理,並將其用作其他分析的輸入,那麼您自欺欺人的可能性就會大大增加!這是因為平滑會產生虛假信號——在其他分析方法看來是真實的信號。無論如何你都會太確定你的最終結果!
但是,我正在努力尋找關於何時平滑和何時不平滑的全面討論。
是否僅在使用該平滑數據作為其他分析的輸入時不贊成平滑,或者在不建議進行平滑的情況下是否存在其他情況?相反,是否存在建議進行平滑的情況?
指數平滑是用於非因果時間序列預測的經典技術。只要您僅在直接預測中使用它並且不使用樣本內平滑擬合作為另一個數據挖掘或統計算法的輸入,Briggs 的批評並不適用。(因此,正如維基百科所說,我對使用它“生成用於演示的平滑數據”持懷疑態度——這很可能會產生誤導,因為它隱藏了平滑的可變性。)
編輯:似乎對布里格斯批評的有效性有些懷疑,可能受到其包裝的影響。我完全同意布里格斯的語氣可能很粗暴。但是,我想說明為什麼我認為他有觀點。
下面,我正在模擬 10,000 對時間序列,每對有 100 個觀察值。所有系列都是白噪聲,沒有任何相關性。因此,運行標準相關性測試應該會產生在 [0,1] 上均勻分佈的 p 值。就像它一樣(左下角的直方圖)。
但是,假設我們首先對每個系列進行平滑處理,並將相關性檢驗應用於平滑後的數據。出現了一些令人驚訝的事情:因為我們已經從數據中消除了很多可變性,所以我們得到的 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")