วิธีสร้างช่วงเวลาการทำนายใน 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

เมื่อใดควรใช้ช่วงความเชื่อมั่นกับช่วงการทำนาย

ช่วงการคาดการณ์ จะจับความไม่แน่นอนรอบค่าเดียว ช่วงความเชื่อมั่น จะจับความไม่แน่นอนรอบๆ ค่าเฉลี่ยที่คาดการณ์ไว้ ดังนั้น ช่วงการทำนายจะกว้างกว่าช่วงความเชื่อมั่นสำหรับค่าเดียวกันเสมอ

คุณควรใช้ช่วงการคาดการณ์เมื่อคุณสนใจการคาดการณ์แต่ละรายการ เนื่องจากช่วงความเชื่อมั่นจะสร้างช่วงของค่าที่แคบเกินไป ส่งผลให้มีความเป็นไปได้มากขึ้นที่ช่วงนั้นจะไม่มีค่าจริง

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *