วิธีการคำนวณ r-squared ใน python (พร้อมตัวอย่าง)
R-squared ซึ่งมักเขียน ว่า R2 คือสัดส่วนของความแปรปรวนใน ตัวแปรตอบสนอง ที่สามารถอธิบายได้ด้วยตัวแปรทำนายใน แบบจำลองการถดถอยเชิงเส้น
ค่าของ R กำลังสองอาจแตกต่างกันตั้งแต่ 0 ถึง 1 โดยที่:
- 0 บ่งชี้ว่าตัวแปรตอบสนองไม่สามารถอธิบายได้ด้วยตัวแปรทำนายเลย
- 1 บ่งชี้ว่าตัวแปรตัวทำนายสามารถอธิบายตัวแปรตอบสนองได้อย่างสมบูรณ์แบบโดยไม่มีข้อผิดพลาด
ตัวอย่างต่อไปนี้แสดงวิธีคำนวณ R 2 สำหรับโมเดลการถดถอยใน Python
ตัวอย่าง: คำนวณ R-squared ใน Python
สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6], ' prep_exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2], ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96]}) #view DataFrame print (df) hours prep_exams score 0 1 1 76 1 2 3 78 2 2 3 85 3 4 5 88 4 2 2 72 5 1 2 69 6 5 1 94 7 4 1 94 8 2 0 88 9 4 3 92 10 4 4 90 11 3 3 75 12 6 2 96
เราสามารถใช้ฟังก์ชัน LinearRegression() ของ sklearn เพื่อให้พอดีกับโมเดลการถดถอยและฟังก์ชัน Score() เพื่อคำนวณค่า R-squared ของโมเดล:
from sklearn.linear_model import LinearRegression
#initiate linear regression model
model = LinearRegression()
#define predictor and response variables
x, y = df[[" hours ", " prep_exams "]], df. score
#fit regression model
model. fit (x,y)
#calculate R-squared of regression model
r_squared = model. score (x,y)
#view R-squared value
print (r_squared)
0.7175541714105901
ตาราง R ของแบบจำลองกลายเป็น 0.7176 .
ซึ่งหมายความว่า 71.76% ของการเปลี่ยนแปลงของคะแนนสอบสามารถอธิบายได้ด้วยจำนวนชั่วโมงเรียนและจำนวนข้อสอบฝึกหัดที่สอบ
หากเราต้องการ เราก็สามารถเปรียบเทียบค่า R-squared นี้กับแบบจำลองการถดถอยอื่นที่มีชุดตัวแปรทำนายอื่นได้
โดยทั่วไป ควรใช้แบบจำลองที่มีค่า R-squared สูงกว่า เนื่องจากหมายความว่าชุดของตัวแปรทำนายในแบบจำลองสามารถอธิบายความแปรผันของตัวแปรตอบสนองได้ดี
ที่เกี่ยวข้อง: ค่า R-squared ที่ดีคืออะไร?
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน Python:
วิธีดำเนินการถดถอยเชิงเส้นอย่างง่ายใน Python
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน Python
วิธีการคำนวณ AIC ของตัวแบบการถดถอยใน Python