เพื่อเพิ่มคำตอบมีอยู่แล้ววงดนตรีที่แสดงให้เห็นถึงความเชื่อมั่นของค่าเฉลี่ย แต่จากคำถามของคุณได้อย่างชัดเจนคุณกำลังมองหาช่วงเวลาที่ทำนาย ช่วงเวลาการทำนายเป็นช่วงที่ถ้าคุณดึงจุดใหม่หนึ่งจุดที่ในทางทฤษฎีจะอยู่ในช่วง X% ของเวลา (ซึ่งคุณสามารถตั้งค่าระดับของ X)
library(ggplot2)
set.seed(5)
x <- rnorm(100)
y <- 0.5*x + rt(100,1)
MyD <- data.frame(cbind(x,y))
เราสามารถสร้างพล็อตประเภทเดียวกันกับที่คุณแสดงในคำถามเริ่มต้นของคุณด้วยช่วงความมั่นใจรอบค่าเฉลี่ยของเส้นถดถอยถดถอยเรียบเนียน (ค่าเริ่มต้นคือช่วงความมั่นใจ 95%)
ConfiMean <- ggplot(data = MyD, aes(x,y)) + geom_point() + geom_smooth()
ConfiMean
สำหรับตัวอย่างที่รวดเร็วและสกปรกของช่วงการทำนายที่นี่ฉันสร้างช่วงการทำนายโดยใช้การถดถอยเชิงเส้นที่มีเส้นโค้งเรียบ (ดังนั้นจึงไม่จำเป็นต้องเป็นเส้นตรง) ด้วยข้อมูลตัวอย่างมันค่อนข้างดีสำหรับ 100 คะแนนเพียง 4 อยู่นอกช่วง (และฉันระบุช่วง 90% ในฟังก์ชั่นการทำนาย)
#Now getting prediction intervals from lm using smoothing splines
library(splines)
MyMod <- lm(y ~ ns(x,4), MyD)
MyPreds <- data.frame(predict(MyMod, interval="predict", level = 0.90))
PredInt <- ggplot(data = MyD, aes(x,y)) + geom_point() +
geom_ribbon(data=MyPreds, aes(x=fit,ymin=lwr, ymax=upr), alpha=0.5)
PredInt
ตอนนี้บันทึกเพิ่มเติมอีกไม่กี่ ฉันเห็นด้วยกับ Ladislav ว่าคุณควรพิจารณาวิธีการพยากรณ์อนุกรมเวลาเนื่องจากคุณมีอนุกรมทั่วไปตั้งแต่บางครั้งในปี 2550 และเป็นที่ชัดเจนจากพล็อตของคุณถ้าคุณดูยากมีฤดูกาลตามฤดูกาล สำหรับสิ่งนี้ฉันขอแนะนำให้ตรวจสอบฟังก์ชันforecast.stlในแพ็คเกจพยากรณ์อากาศซึ่งคุณสามารถเลือกหน้าต่างตามฤดูกาลและให้การสลายตัวที่แข็งแกร่งของฤดูกาลและแนวโน้มโดยใช้ Loess ฉันพูดถึงวิธีการที่แข็งแกร่งเพราะข้อมูลของคุณมีหนามแหลมเล็กน้อย
โดยทั่วไปสำหรับข้อมูลอนุกรมที่ไม่ใช่เวลาฉันจะพิจารณาวิธีการที่มีประสิทธิภาพอื่น ๆ หากคุณมีข้อมูลที่มีค่าผิดปกติเป็นครั้งคราว ฉันไม่ทราบวิธีสร้างช่วงเวลาการทำนายโดยใช้ Loess โดยตรง แต่คุณอาจพิจารณาการถดถอยเชิงปริมาณ (ขึ้นอยู่กับว่าช่วงเวลาการทำนายนั้นต้องมากเพียงใด) ไม่เช่นนั้นถ้าคุณต้องการให้พอดีที่จะเป็นแบบไม่เป็นเชิงเส้นคุณสามารถพิจารณา splines เพื่ออนุญาตให้ฟังก์ชั่นเปลี่ยนแปลงมากกว่า x