วิธีทำนายค่าเดียวโดยใช้แบบจำลองการถดถอยใน r
เพื่อให้พอดีกับโมเดลการถดถอยเชิงเส้นใน R เราสามารถใช้ฟังก์ชัน lm() ซึ่งใช้ไวยากรณ์ต่อไปนี้:
model <- lm(y ~ x1 + x2, data=df)
จากนั้นเราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อใช้แบบจำลองในการทำนายค่าเดียว:
predict(model, newdata = new)
ตัวอย่างต่อไปนี้แสดงวิธีการทำนายค่าเดียวโดยใช้แบบจำลองการถดถอยที่ติดตั้งใน R
ตัวอย่างที่ 1: ทำนายโดยใช้แบบจำลองการถดถอยเชิงเส้นอย่างง่าย
รหัสต่อไปนี้แสดงวิธีปรับโมเดลการถดถอยเชิงเส้นอย่างง่ายใน R:
#create data df <- data. frame (x=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit simple linear regression model model <- lm(y ~ x, data=df)
และเราสามารถใช้โค้ดต่อไปนี้เพื่อทำนายค่าการตอบสนองสำหรับการสังเกตใหม่:
#define new observation new <- data. frame (x=c(5)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) 1 25.36364
แบบจำลองคาดการณ์ว่าการสังเกตใหม่นี้จะมีค่าตอบสนองเป็น 25.36364
ตัวอย่างที่ 2: ทำนายโดยใช้แบบจำลองการถดถอยเชิงเส้นพหุคูณ
รหัสต่อไปนี้แสดงวิธีปรับโมเดลการถดถอยเชิงเส้นหลายตัวใน R:
#create data df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit multiple linear regression model model <- lm(y ~ x1 + x2, data=df)
และเราสามารถใช้โค้ดต่อไปนี้เพื่อทำนายค่าการตอบสนองสำหรับการสังเกตใหม่:
#define new observation new <- data.frame(x1=c(5), x2=c(10)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) 1 26.17073
แบบจำลองคาดการณ์ว่าการสังเกตใหม่นี้จะมีค่าตอบสนองเป็น 26.17073
ข้อผิดพลาดที่อาจเกิดขึ้นเมื่อทำนายค่าใหม่
ข้อผิดพลาดที่พบบ่อยที่สุดที่คุณอาจพบเมื่อพยายามทำนายค่าใหม่คือเมื่อ ชุดข้อมูลที่คุณใช้เพื่อให้เหมาะสมกับแบบจำลองการถดถอยไม่มีชื่อคอลัมน์เดียวกันกับการสังเกตใหม่ที่คุณพยายามคาดการณ์
ตัวอย่างเช่น สมมติว่าเราใส่โมเดลการถดถอยเชิงเส้นพหุคูณต่อไปนี้ใน R:
#createdata df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit multiple linear regression model model <- lm(y ~ x1 + x2, data=df)
ต่อไป สมมติว่าเราพยายามใช้แบบจำลองเพื่อทำนายค่าตอบสนองสำหรับการสังเกตใหม่นี้:
#define new observation new <- data.frame(x_1=c(5), x_2=c(10)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) Error in eval(predvars, data, env): object 'x1' not found
เราได้รับข้อผิดพลาดเนื่องจากชื่อคอลัมน์ของการสังเกตใหม่ (x_1, x_2) ไม่ตรงกับชื่อคอลัมน์ของกรอบข้อมูลดั้งเดิม (x1, x2) ที่เราใช้เพื่อให้พอดีกับแบบจำลองการถดถอย
แหล่งข้อมูลเพิ่มเติม
วิธีดำเนินการถดถอยเชิงเส้นอย่างง่ายใน R
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน R
วิธีสร้างพล็อตที่เหลือใน R