วิธีการคำนวณ r-squared ที่ปรับแล้วใน python
R-squared ซึ่งมักเขียน ว่า R2 คือสัดส่วนของความแปรปรวนใน ตัวแปรตอบสนอง ที่สามารถอธิบายได้ด้วยตัวแปรทำนายใน แบบจำลองการถดถอยเชิงเส้น
ค่าของ R กำลังสองสามารถอยู่ในช่วงตั้งแต่ 0 ถึง 1 ค่า 0 บ่งชี้ว่าตัวแปรตอบสนองไม่สามารถอธิบายได้ด้วยตัวแปรทำนายเลย ในขณะที่ค่า 1 บ่งชี้ว่าตัวแปรตอบสนองสามารถอธิบายได้ด้วยตัวแปรทำนาย ผู้ทำนายอธิบายได้ครบถ้วนไม่มีข้อผิดพลาด ตัวแปร
R-squared ที่ปรับปรุงแล้ว คือ R-squared เวอร์ชันแก้ไขที่ปรับตามจำนวนตัวทำนายในแบบจำลองการถดถอย มีการคำนวณดังนี้:
ปรับแล้ว R 2 = 1 – [(1-R 2 )*(n-1)/(nk-1)]
ทอง:
- R 2 : R 2 ของรุ่น
- n : จำนวนการสังเกต
- k : จำนวนตัวแปรทำนาย
เนื่องจาก R2 จะเพิ่มขึ้นเสมอเมื่อคุณเพิ่มตัวทำนายให้กับโมเดล R2 ที่ปรับปรุงแล้วจึงสามารถใช้เป็นตัวชี้วัดที่บอกคุณว่าแบบจำลองนั้นมีประโยชน์เพียงใด โดยปรับตามจำนวนตัวทำนายในแบบจำลอง
บทช่วยสอนนี้แสดงสองตัวอย่างของการคำนวณ R2 ที่ปรับแล้วสำหรับโมเดลการถดถอยใน Python
ที่เกี่ยวข้อง: ค่า R-squared ที่ดีคืออะไร?
ตัวอย่างที่ 1: คำนวณ R-squared ที่ปรับแล้วด้วย sklearn
รหัสต่อไปนี้แสดงวิธีปรับโมเดลการถดถอยเชิงเส้นหลายตัวให้พอดี และคำนวณค่า R-squared ของโมเดลโดยใช้ sklearn:
from sklearn. linear_model import LinearRegression import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv" #read in data data = pd. read_csv (url) #fit regression model model = LinearRegression () x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp model. fit (x,y) #display adjusted R-squared 1 - (1-model. score (X, y))*( len (y)-1)/( len (y)-X. shape [1]-1) 0.7787005290062521
ค่า R-squared ที่ปรับแล้วของโมเดลกลายเป็น 0.7787
ตัวอย่างที่ 2: คำนวณค่า R-squared ที่ปรับปรุงแล้วด้วยแบบจำลองทางสถิติ
รหัสต่อไปนี้แสดงวิธีการปรับโมเดลการถดถอยเชิงเส้นหลายตัวให้พอดี และคำนวณค่า R-squared ของโมเดลโดยใช้แบบจำลองสถิติ:
import statsmodels. api as sm import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv" #read in data data = pd. read_csv (url) #fit regression model x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp X = sm. add_constant (X) model = sm. OLS (y,x). fit () #display adjusted R-squared print ( model.rsquared_adj ) 0.7787005290062521
ค่า R-squared ที่ปรับแล้วของโมเดลกลายเป็น 0.7787 ซึ่งตรงกับผลลัพธ์ของตัวอย่างก่อนหน้านี้
แหล่งข้อมูลเพิ่มเติม
วิธีดำเนินการถดถอยเชิงเส้นอย่างง่ายใน Python
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน Python
วิธีการคำนวณ AIC ของตัวแบบการถดถอยใน Python