指数平滑是非因果时间序列预测中使用的经典技术。只要您仅将其用于直接预测中,并且不将样本内平滑拟合用作另一种数据挖掘或统计算法的输入,那么布里格斯的批评就不适用。(因此,我对使用它“产生平滑的数据以供呈现”表示怀疑,正如Wikipedia所说-通过隐藏平滑的可变性,这很可能会产生误导。)
这是有关指数平滑的教科书介绍。
这是一篇(已有10年历史,但仍然很有意义)的评论文章。
编辑:似乎对布里格斯批评的有效性存有疑问,这可能受到其包装的影响。我完全同意Briggs的语气可能会令人生厌。但是,我想说明为什么我认为他有观点。
在下面,我模拟了10,000对时间序列,每个对100个观测值。所有系列都是白噪声,没有任何关联。因此,运行标准相关性测试应该得出p值,这些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")