Üstel Düzgünleştirme nedensel olmayan zaman serisi tahmininde kullanılan klasik bir tekniktir. Sürece sadece basit kullanmak olarak tahmin ve kullanmayan in-örneklem düzleştirilmiş uyuyor başka bir veri madenciliği veya istatistik algoritmaya girdi olarak, Briggs' eleştirisi geçerli değildir. (Buna göre, Wikipedia'nın dediği gibi, "sunum için düzgünleştirilmiş veriler üretmek için" kullanma konusunda şüpheliyim - bu, düzeltilmiş değişkenliği gizleyerek yanıltıcı olabilir.)
İşte Üstel Düzgünleştirme ders kitabına giriş.
Ve işte (10 yaşında ama yine de alakalı) bir inceleme makalesi.
DÜZENLEME: var gibi görünüyor bazı şüpheler muhtemelen Briggs' eleştirisi geçerliliği hakkında biraz ambalajından etkilenmiştir . Briggs'in tonunun aşındırıcı olabileceğine tamamen katılıyorum. Ancak, neden bir anlamı olduğunu düşündüğümü göstermek istiyorum.
Aşağıda, her biri 100 gözlemden oluşan 10.000 çift zaman serisini simüle ediyorum. Tüm seriler hiçbir korelasyon olmadan beyaz gürültüdür. Bu nedenle standart bir korelasyon testi yapmak [0,1] üzerinde eşit olarak dağıtılmış p değerleri vermelidir. Olduğu gibi (aşağıdaki soldaki histogram).
Bununla birlikte, ilk önce her seriyi düzelttiğimizi ve düzeltilmiş verilere korelasyon testini uyguladığımızı varsayalım . Şaşırtıcı bir şey ortaya çıkıyor: verilerden çok fazla değişkenlik çıkardığımız için çok küçük p değerleri alıyoruz . Korelasyon testimiz ağır önyargılı. Bu yüzden Briggs'in söylediği orijinal seri arasındaki herhangi bir ilişkiden çok emin olacağız.
Soru gerçekten tahmin için düzeltilmiş verileri kullanıp kullanmadığımız, bu durumda da düzeltmenin geçerli olup olmadığı veya bazı analitik algoritmalara girdi olarak dahil edip etmeyeceğimize dayanır. Girdi verilerindeki bu garanti edilmemiş kesinlik sonuçlara ulaşır ve dikkate alınması gerekir, aksi takdirde tüm çıkarımlar çok kesindir. (Ve tahmin için "şişirilmiş kesinlik" temelli bir model kullanırsak, elbette çok küçük tahmin aralıkları da alırız.)
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")