วิธีสร้างช่วงเวลาการทำนายใน r
โมเดลการถดถอยเชิงเส้น มีประโยชน์สองประการ:
(1) หาปริมาณความสัมพันธ์ระหว่างตัวแปรทำนายตั้งแต่หนึ่งตัวขึ้นไปกับตัวแปรตอบสนอง
(2) ใช้แบบจำลองเพื่อทำนายค่าในอนาคต
เกี่ยวกับ (2) เมื่อเราใช้แบบจำลองการถดถอยเพื่อทำนายค่าในอนาคต เรามักจะต้องการทำนายทั้ง ค่าที่แน่นอน และ ช่วงเวลา ที่ประกอบด้วยช่วงของค่าที่เป็นไปได้ ช่วงเวลานี้เรียกว่า ช่วงการทำนาย
ตัวอย่างเช่น สมมติว่าเราติดตั้งแบบจำลองการถดถอยเชิงเส้นอย่างง่ายโดยใช้ ชั่วโมงที่ศึกษา เป็นตัวแปรทำนายและ คะแนนการสอบ เป็นตัวแปรตอบสนอง เมื่อใช้แบบจำลองนี้ เราสามารถคาดการณ์ได้ว่านักเรียนที่เรียนเป็นเวลา 6 ชั่วโมงจะได้คะแนนสอบ 91 คะแนน
อย่างไรก็ตาม เนื่องจากมีความไม่แน่นอนเกี่ยวกับการทำนายนี้ เราจึงสามารถสร้างช่วงการคาดการณ์ที่ระบุว่ามีโอกาส 95% ที่นักเรียนที่เรียนเป็นเวลา 6 ชั่วโมงจะได้คะแนนสอบระหว่าง 85 ถึง 97 ช่วงของค่านี้เรียกว่าช่วงการทำนาย 95% และมักจะมีประโยชน์สำหรับเรามากกว่าการรู้ค่าที่ทำนายไว้อย่างแน่นอน
วิธีสร้างช่วงเวลาการทำนายใน R
เพื่อแสดงให้เห็นวิธีสร้างช่วงเวลาการทำนายใน R เราจะใช้ชุดข้อมูล mtcars ในตัว ซึ่งมีข้อมูลเกี่ยวกับคุณลักษณะของรถยนต์หลายคัน:
#view first six rows of mtcars head(mtcars) # mpg cyl disp hp drat wt qsec vs am gear carb #Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 #Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 #Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 #Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 #Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 #Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
ขั้นแรก เราจะปรับโมเดลการถดถอยเชิงเส้นอย่างง่ายโดยใช้ disp เป็นตัวแปรทำนายและ mpg เป็นตัวแปรตอบสนอง
#fit simple linear regression model model <- lm(mpg ~ disp, data = mtcars) #view summary of fitted model summary(model) #Call: #lm(formula = mpg ~ availability, data = mtcars) # #Residuals: # Min 1Q Median 3Q Max #-4.8922 -2.2022 -0.9631 1.6272 7.2305 # #Coefficients: #Estimate Std. Error t value Pr(>|t|) #(Intercept) 29.599855 1.229720 24.070 < 2e-16 *** #disp -0.041215 0.004712 -8.747 9.38e-10 *** #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 # #Residual standard error: 3.251 on 30 degrees of freedom #Multiple R-squared: 0.7183, Adjusted R-squared: 0.709 #F-statistic: 76.51 on 1 and 30 DF, p-value: 9.38e-10
ต่อไป เราจะใช้โมเดลการถดถอยที่ติดตั้งไว้เพื่อทำนายค่าของ mpg โดยอิงจากค่าใหม่สามค่าสำหรับ disp
#create data frame with three new values for avail new_disp <- data.frame(disp= c(150, 200, 250)) #use the fitted model to predict the value for mpg based on the three new values #for avail predict(model, newdata = new_disp) #1 2 3 #23.41759 21.35683 19.29607
วิธีการตีความค่าเหล่านี้มีดังนี้:
- สำหรับรถยนต์ใหม่ที่มี ค่า EPA 150 เราคาดว่าจะมี MPG อยู่ที่ 23.41759
- สำหรับรถยนต์ใหม่ที่มี ค่า EPA 200 เราคาดว่าจะมี MPG อยู่ที่ 21.35683
- สำหรับรถยนต์ใหม่ที่มี ค่า EPA 250 เราคาดว่าจะมี MPG เท่ากับ 19.29607
ต่อไป เราจะใช้แบบจำลองการถดถอยที่ติดตั้งไว้เพื่อสร้างช่วงการทำนายรอบค่าที่คาดการณ์ไว้เหล่านี้:
#create prediction intervals around the predicted values predict(model, newdata = new_disp, interval = " predict ") # fit lwr upr #1 23.41759 16.62968 30.20549 #2 21.35683 14.60704 28.10662 #3 19.29607 12.55021 26.04194
วิธีการตีความค่าเหล่านี้มีดังนี้:
- ช่วงการคาดการณ์ MPG 95% สำหรับรถยนต์ที่มี EPA 150 อยู่ระหว่าง 16.62968 ถึง 30.20549
- ช่วงการคาดการณ์ MPG 95% สำหรับรถยนต์ที่มี EPA 200 อยู่ระหว่าง 14.60704 ถึง 28.10662
- ช่วงการคาดการณ์ MPG 95% สำหรับรถยนต์ที่มี EPA 250 อยู่ระหว่าง 12.55021 ถึง 26.04194
ตามค่าเริ่มต้น R จะใช้ช่วงการคาดการณ์ 95% อย่างไรก็ตาม เราสามารถเปลี่ยนสิ่งนี้ได้ตามต้องการโดยใช้คำสั่ง ระดับ ตัวอย่างเช่น รหัสต่อไปนี้สาธิตวิธีการสร้างช่วงการคาดการณ์ 99%:
#create 99% prediction intervals around the predicted values predict(model, newdata = new_disp, interval = " predict ", level = 0.99 ) # fit lwr upr #1 23.41759 14.27742 32.55775 #2 21.35683 12.26799 30.44567 #3 19.29607 10.21252 28.37963
โปรดทราบว่าช่วงการคาดการณ์ 99% นั้นกว้างกว่าช่วงการคาดการณ์ 95% ซึ่งสมเหตุสมผลเพราะยิ่งช่วงห่างมากขึ้นเท่าใด ก็มีโอกาสมากขึ้นที่จะมีค่าที่คาดการณ์ไว้มากขึ้นเท่านั้น
วิธีแสดงภาพช่วงเวลาการทำนายใน R
รหัสต่อไปนี้สาธิตวิธีการสร้างแผนภูมิด้วยฟังก์ชันการทำงานต่อไปนี้:
- แผนภาพกระจายจุดข้อมูลสำหรับ ความพร้อมใช้งาน และ mpg
- เส้นสีน้ำเงินสำหรับเส้นถดถอยพอดี
- วงความมั่นใจสีเทา
- แถบทำนายสีแดง
#define dataset data <- mtcars[, c("mpg", "disp")] #create simple linear regression model model <- lm(mpg ~ disp, data = mtcars) #use model to create prediction intervals predictions <- predict(model, interval = " predict ") #create dataset that contains original data along with prediction intervals all_data <- cbind(data, predictions) #load ggplot2 library library(ggplot2) #createplot ggplot(all_data, aes(x = disp, y = mpg)) + #define x and y axis variables geom_point() + #add scatterplot points stat_smooth(method = lm) + #confidence bands geom_line(aes(y = lwr), col = "coral2", linetype = "dashed") + #lwr pred interval geom_line(aes(y = upr), col = "coral2", linetype = "dashed") #upr pred interval
เมื่อใดควรใช้ช่วงความเชื่อมั่นกับช่วงการทำนาย
ช่วงการคาดการณ์ จะจับความไม่แน่นอนรอบค่าเดียว ช่วงความเชื่อมั่น จะจับความไม่แน่นอนรอบๆ ค่าเฉลี่ยที่คาดการณ์ไว้ ดังนั้น ช่วงการทำนายจะกว้างกว่าช่วงความเชื่อมั่นสำหรับค่าเดียวกันเสมอ
คุณควรใช้ช่วงการคาดการณ์เมื่อคุณสนใจการคาดการณ์แต่ละรายการ เนื่องจากช่วงความเชื่อมั่นจะสร้างช่วงของค่าที่แคบเกินไป ส่งผลให้มีความเป็นไปได้มากขึ้นที่ช่วงนั้นจะไม่มีค่าจริง