كيفية حساب r-squared المعدل في بايثون
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 المعدل لنموذج الانحدار في بايثون.
ذات صلة: ما هي قيمة R-squared الجيدة؟
مثال 1: حساب R-squared المعدل باستخدام sklearn
يوضح التعليمة البرمجية التالية كيفية ملاءمة نموذج الانحدار الخطي المتعدد وحساب مربع R الملائم للنموذج باستخدام 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 المعدل للنموذج هو 0.7787 .
مثال 2: حساب مربع R المعدل باستخدام النماذج الإحصائية
يوضح التعليمة البرمجية التالية كيفية ملاءمة نموذج الانحدار الخطي المتعدد وحساب مربع R الملائم للنموذج باستخدام نماذج الإحصاءات:
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 المعدل للنموذج هو 0.7787 ، وهو ما يطابق نتيجة المثال السابق.
مصادر إضافية
كيفية إجراء الانحدار الخطي البسيط في بايثون
كيفية إجراء الانحدار الخطي المتعدد في بايثون
كيفية حساب AIC لنماذج الانحدار في بايثون