วิธีใช้ฟังก์ชัน predict() กับ lm() ใน r


สามารถใช้ฟังก์ชัน lm() ใน R เพื่อให้พอดีกับโมเดลการถดถอยเชิงเส้น

เมื่อเราติดตั้งแบบจำลองแล้ว เราสามารถใช้ฟังก์ชัน คาดการณ์() เพื่อทำนายค่าการตอบสนองของ การสังเกต ใหม่

ฟังก์ชันนี้ใช้ไวยากรณ์ต่อไปนี้:

ทำนาย (วัตถุ, ข้อมูลใหม่, ประเภท = “การตอบสนอง”)

ทอง:

  • object: ชื่อของการปรับโมเดลโดยใช้ฟังก์ชัน glm()
  • newdata: ชื่อของกรอบข้อมูลใหม่ที่จะทำการคาดการณ์
  • type: ประเภทของการคาดการณ์ที่จะทำ

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชัน lm() เพื่อให้พอดีกับโมเดลการถดถอยเชิงเส้นใน R และจากนั้นจะใช้ฟังก์ชัน Predict() เพื่อทำนายค่าตอบสนองของการสังเกตแบบใหม่ที่โมเดลไม่เคยเห็นมาก่อน

ตัวอย่าง: การใช้ฟังก์ชัน Predict() กับ lm() ใน R

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 #create data frame
df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40),
                 fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1),
                 points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30))

#view data frame
df

   minutes fouls points
1 5 5 6
2 10 5 8
3 13 3 8
4 14 4 7
5 20 2 14
6 22 1 10
7 26 3 22
8 34 2 24
9 38 1 28
10 40 1 30

สมมติว่าเราต้องการใช้ โมเดลการถดถอยเชิงเส้นพหุคูณ ต่อไปนี้โดยใช้จำนวนนาทีที่เล่นและฟาล์วรวมเพื่อทำนายจำนวนคะแนนที่ผู้เล่นแต่ละคนทำได้:

คะแนน = β 0 + β 1 (นาที) + β 2 (ฟาวล์)

เราสามารถใช้ฟังก์ชัน lm() เพื่อปรับเปลี่ยนโมเดลนี้ได้:

 #fit multiple linear regression model
fit <- lm(points ~ minutes + fouls, data=df)

#view summary of model
summary(fit)

Call:
lm(formula = points ~ minutes + fouls, data = df)

Residuals:
    Min 1Q Median 3Q Max 
-3.5241 -1.4782 0.5918 1.6073 2.0889 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -11.8949 4.5375 -2.621 0.0343 *  
minutes 0.9774 0.1086 9.000 4.26e-05 ***
fouls 2.1838 0.8398 2.600 0.0354 *  
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.148 on 7 degrees of freedom
Multiple R-squared: 0.959, Adjusted R-squared: 0.9473 
F-statistic: 81.93 on 2 and 7 DF, p-value: 1.392e-05

การใช้ค่าสัมประสิทธิ์จากผลลัพธ์ของแบบจำลอง เราสามารถเขียนสมการถดถอยที่ติดตั้งได้:

คะแนน = -11.8949 + 0.9774 (นาที) + 2.1838 (ฟาวล์)

จากนั้นเราสามารถใช้ฟังก์ชัน คาดการณ์() เพื่อคาดเดาว่าผู้เล่นที่เล่นเป็นเวลา 15 นาทีและกระทำฟาล์วทั้งหมด 3 ครั้งจะได้คะแนนเท่าใด:

 #define new observation
newdata = data. frame (minutes=15, fouls=3)

#use model to predict points value
predict(fit, newdata)

       1 
9.317731

แบบจำลองทำนายว่าผู้เล่นรายนี้จะได้คะแนน 9.317731 คะแนน

โปรดทราบว่าเราสามารถคาดการณ์ได้หลายครั้งหากเรามีกรอบข้อมูลที่มีการสังเกตใหม่หลายรายการ

ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีใช้แบบจำลองการถดถอยที่ติดตั้งเพื่อทำนายค่าคะแนนของผู้เล่นสามคน:

 #define new data frame of three cars
newdata = data. frame (minutes=c(15, 20, 25),
                     fouls=c(3, 2, 1))

#view data frame
newdata

  minutes fouls
1 15 3
2 20 2
3 25 1

#use model to predict points for all three players
predict(model, newdata)

        1 2 3 
 9.317731 12.021032 14.724334 

ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:

  • จำนวนแต้มที่คาดหวังสำหรับผู้เล่นในนาทีที่ 15 และฟาล์ว 3 ครั้งคือ 9.32
  • จำนวนแต้มที่คาดหวังสำหรับผู้เล่นในนาทีที่ 20 และฟาล์ว 2 ครั้งคือ 12.02
  • แต้มที่คาดหวังของนักเตะในนาทีที่ 25 และฟาวล์ 1 ครั้งคือ 14.72 แต้ม

หมายเหตุเกี่ยวกับการใช้การทำนาย()

ชื่อคอลัมน์ในกรอบข้อมูลใหม่จะต้องตรงกับชื่อคอลัมน์ในกรอบข้อมูลที่ใช้ในการสร้างแบบจำลองทุกประการ

โปรดทราบว่าในตัวอย่างก่อนหน้านี้ กรอบข้อมูลที่เราใช้ในการสร้างแบบจำลองมีชื่อคอลัมน์ต่อไปนี้สำหรับตัวแปรทำนายของเรา:

  • นาที
  • ความผิดพลาด

ดังนั้นเมื่อเราสร้าง data frame ใหม่ที่เรียกว่า newdata เราจึงต้องตั้งชื่อคอลัมน์ด้วย:

  • นาที
  • ความผิดพลาด

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

 Error in eval(predvars, data, env)

โปรดคำนึงถึงสิ่งนี้เมื่อใช้ฟังก์ชัน ทำนาย ()

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีดำเนินการถดถอยเชิงเส้นอย่างง่ายใน R
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน R
วิธีดำเนินการถดถอยพหุนามใน R
วิธีสร้างช่วงเวลาการทำนายใน R

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

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