เอ็กซ์โปเนนเชียลสมูทติ้งเป็นเทคนิคคลาสสิคที่ใช้ในการพยากรณ์อนุกรมเวลาที่ไม่ใช่สาเหตุ ตราบใดที่คุณใช้มันในการคาดการณ์ที่ตรงไปตรงมาและไม่ได้ใช้การปรับแบบเรียบในตัวอย่างให้เป็นอินพุตสำหรับการทำเหมืองข้อมูลอื่นหรืออัลกอริทึมทางสถิติบทวิจารณ์ของ Briggs ไม่ได้ใช้ (ดังนั้นฉันสงสัยเกี่ยวกับการใช้มัน "เพื่อสร้างข้อมูลที่ราบรื่นสำหรับงานนำเสนอ" ตามที่ Wikipedia กล่าว - สิ่งนี้อาจทำให้เข้าใจผิดได้โดยซ่อนความแปรปรวนแบบเรียบไป)
นี่คือการแนะนำหนังสือเรียนเรื่องการทำให้เรียบแบบเอ็กซ์โปเนนเชียล
และนี่คือบทความทบทวน (อายุ 10 ปี แต่ยังมีความเกี่ยวข้อง)
แก้ไข: ดูเหมือนว่าจะมีบางคนสงสัยเกี่ยวกับความถูกต้องของบริกส์วิจารณ์ที่อาจจะค่อนข้างได้รับอิทธิพลจากบรรจุภัณฑ์ ฉันเห็นด้วยอย่างเต็มที่ว่าน้ำเสียงของบริกส์สามารถขัดได้ อย่างไรก็ตามฉันต้องการแสดงให้เห็นว่าทำไมฉันถึงคิดว่าเขามีประเด็น
ด้านล่างนี้ฉันจำลองซีรีย์ 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")