วิธีทำนายค่าเดียวโดยใช้แบบจำลองการถดถอยใน 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

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

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