كيفية إجراء انحدار المربعات الصغرى المرجحة في بايثون


أحد الافتراضات الرئيسية للانحدار الخطي هو أن البقايا يتم توزيعها بتباين متساوي عند كل مستوى من متغير التوقع. يُعرف هذا الافتراض بالمثلية الجنسية .

عندما لا يتم احترام هذا الافتراض، يقال أن التغايرية موجودة في البقايا. عندما يحدث هذا، تصبح نتائج الانحدار غير موثوقة.

إحدى طرق حل هذه المشكلة هي استخدام انحدار المربعات الصغرى المرجحة ، والذي يعين أوزانًا للملاحظات بحيث تتلقى تلك ذات تباين الخطأ المنخفض وزنًا أكبر لأنها تحتوي على معلومات أكثر مقارنة بالملاحظات ذات تباين الخطأ الأكبر.

يقدم هذا البرنامج التعليمي مثالاً خطوة بخطوة لكيفية تنفيذ انحدار المربعات الصغرى المرجحة في بايثون.

الخطوة 1: إنشاء البيانات

أولاً، لنقم بإنشاء إطار بيانات الباندا التالي الذي يحتوي على معلومات حول عدد ساعات الدراسة ودرجة الاختبار النهائي لـ 16 طالبًا في الفصل:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 8],
                   ' score ': [48, 78, 72, 70, 66, 92, 93, 75, 75, 80, 95, 97,
                             90, 96, 99, 99]})

#view first five rows of DataFrame
print ( df.head ())

   hours score
0 1 48
1 1 78
2 2 72
3 2 70
4 2 66

الخطوة 2: تناسب نموذج الانحدار الخطي البسيط

بعد ذلك، سوف نستخدم الوظائف الموجودة في وحدة statsmodels لتناسب نموذج الانحدار الخطي البسيط باستخدام الساعات كمتغير متوقع والنتيجة كمتغير الاستجابة:

 import statsmodels.api as sm

#define predictor and response variables
y = df[' score ']
X = df[' hours ']

#add constant to predictor variables
X = sm. add_constant (x)

#fit linear regression model
fit = sm. OLS (y,x). fit ()

#view model summary
print ( fit.summary ())

                            OLS Regression Results                            
==================================================== ============================
Dept. Variable: R-squared score: 0.630
Model: OLS Adj. R-squared: 0.603
Method: Least Squares F-statistic: 23.80
Date: Mon, 31 Oct 2022 Prob (F-statistic): 0.000244
Time: 11:19:54 Log-Likelihood: -57.184
No. Observations: 16 AIC: 118.4
Df Residuals: 14 BIC: 119.9
Model: 1                                         
Covariance Type: non-robust                                         
==================================================== ============================
                 coef std err t P>|t| [0.025 0.975]
-------------------------------------------------- ----------------------------
const 60.4669 5.128 11.791 0.000 49.468 71.465
hours 5.5005 1.127 4.879 0.000 3.082 7.919
==================================================== ============================
Omnibus: 0.041 Durbin-Watson: 1.910
Prob(Omnibus): 0.980 Jarque-Bera (JB): 0.268
Skew: -0.010 Prob(JB): 0.875
Kurtosis: 2.366 Cond. No. 10.5

من ملخص النموذج، يمكننا أن نرى أن قيمة R للنموذج هي 0.630 .

ذات صلة: ما هي قيمة R-squared الجيدة؟

الخطوة 3: تناسب نموذج المربعات الصغرى المرجحة

بعد ذلك، يمكننا استخدام الدالة statsmodels WLS() لإجراء المربعات الصغرى المرجحة عن طريق تعيين الأوزان بحيث تتلقى الملاحظات ذات التباين الأقل وزنًا أكبر:

 #define weights to use
wt = 1/smf. ols (' fit.resid.abs() ~ fit.fittedvalues ', data=df). fit (). fitted values **2

#fit weighted least squares regression model
fit_wls = sm. WLS (y, X, weights=wt). fit ()

#view summary of weighted least squares regression model
print ( fit_wls.summary ())

                            WLS Regression Results                            
==================================================== ============================
Dept. Variable: R-squared score: 0.676
Model: WLS Adj. R-squared: 0.653
Method: Least Squares F-statistic: 29.24
Date: Mon, 31 Oct 2022 Prob (F-statistic): 9.24e-05
Time: 11:20:10 Log-Likelihood: -55.074
No. Comments: 16 AIC: 114.1
Df Residuals: 14 BIC: 115.7
Model: 1                                         
Covariance Type: non-robust                                         
==================================================== ============================
                 coef std err t P>|t| [0.025 0.975]
-------------------------------------------------- ----------------------------
const 63.9689 5.159 12.400 0.000 52.905 75.033
hours 4.7091 0.871 5.407 0.000 2.841 6.577
==================================================== ============================
Omnibus: 2,482 Durbin-Watson: 1,786
Prob(Omnibus): 0.289 Jarque-Bera (JB): 1.058
Skew: 0.029 Prob(JB): 0.589
Kurtosis: 1.742 Cond. No. 17.6
==================================================== ============================

من النتيجة، يمكننا أن نرى أن قيمة R-squared لنموذج المربعات الصغرى الموزونة هذا قد زادت إلى 0.676 .

يشير هذا إلى أن نموذج المربعات الصغرى المرجحة قادر على تفسير التباين في درجات الامتحانات أكثر من نموذج الانحدار الخطي البسيط.

يخبرنا هذا أن نموذج المربعات الصغرى الموزونة يوفر ملاءمة أفضل للبيانات مقارنة بنموذج الانحدار الخطي البسيط.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في بايثون:

كيفية إنشاء مؤامرة المتبقية في بيثون
كيفية إنشاء مؤامرة QQ في بايثون
كيفية اختبار الخطية المتعددة في بايثون

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *