دليل كامل للانحدار الخطي في بايثون
الانحدار الخطي هو طريقة يمكننا استخدامها لفهم العلاقة بين واحد أو أكثر من متغيرات التوقع ومتغير الاستجابة.
يشرح هذا البرنامج التعليمي كيفية إجراء الانحدار الخطي في بايثون.
مثال: الانحدار الخطي في بايثون
لنفترض أننا نريد معرفة ما إذا كان عدد الساعات التي يقضيها في الدراسة وعدد الاختبارات التدريبية التي تم إجراؤها يؤثر على الدرجة التي يحصل عليها الطالب في اختبار معين.
لاستكشاف هذه العلاقة، يمكننا تنفيذ الخطوات التالية في بايثون لإجراء الانحدار الخطي المتعدد.
الخطوة 1: أدخل البيانات.
أولاً، سنقوم بإنشاء DataFrame الباندا للاحتفاظ بمجموعة البيانات الخاصة بنا:
import pandas as pd #create data df = pd.DataFrame({'hours': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6, 5, 3, 4, 6, 2, 1, 2], 'exams': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2, 4, 4, 4, 5, 1, 0, 1], 'score': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96, 90, 82, 85, 99, 83, 62, 76]}) #view data df hours exam 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 13 5 4 90 14 3 4 82 15 4 4 85 16 6 5 99 17 2 1 83 18 1 0 62 19 2 1 76
الخطوة 2: تنفيذ الانحدار الخطي.
بعد ذلك، سوف نستخدم الدالة OLS() من مكتبة statsmodels لإجراء انحدار عادي بالمربعات الصغرى، باستخدام “الساعات” و”الامتحانات” كمتغيرات متوقعة و”النتيجة” كمتغير الاستجابة:
import statsmodels.api as sm #define response variable y = df['score'] #define predictor variables x = df[['hours', 'exams']] #add constant to predictor variables x = sm.add_constant(x) #fit linear regression model model = sm.OLS(y, x).fit() #view model summary print(model.summary()) OLS Regression Results ==================================================== ============================ Dept. Variable: R-squared score: 0.734 Model: OLS Adj. R-squared: 0.703 Method: Least Squares F-statistic: 23.46 Date: Fri, 24 Jul 2020 Prob (F-statistic): 1.29e-05 Time: 13:20:31 Log-Likelihood: -60.354 No. Observations: 20 AIC: 126.7 Df Residuals: 17 BIC: 129.7 Df Model: 2 Covariance Type: non-robust ==================================================== ============================ coef std err t P>|t| [0.025 0.975] -------------------------------------------------- ---------------------------- const 67.6735 2.816 24.033 0.000 61.733 73.614 hours 5.5557 0.899 6.179 0.000 3.659 7.453 exams -0.6017 0.914 -0.658 0.519 -2.531 1.327 ==================================================== ============================ Omnibus: 0.341 Durbin-Watson: 1.506 Prob(Omnibus): 0.843 Jarque-Bera (JB): 0.196 Skew: -0.216 Prob(JB): 0.907 Kurtosis: 2,782 Cond. No. 10.8 ==================================================== ============================
الخطوة 3: تفسير النتائج.
فيما يلي كيفية تفسير الأرقام الأكثر صلة بالنتيجة:
ص تربيع : 0.734 . وهذا ما يسمى معامل التحديد. هذه هي نسبة التباين في متغير الاستجابة التي يمكن تفسيرها بواسطة المتغيرات المتوقعة. في هذا المثال، يتم تفسير 73.4% من التباين في درجات الامتحان بعدد ساعات الدراسة وعدد الاختبارات الإعدادية التي تم إجراؤها.
إحصائية F : 23.46 . هذه هي إحصائية F الإجمالية لنموذج الانحدار.
إشكالية (إحصائية F): 1.29e-05. هذه هي القيمة p المرتبطة بإحصائيات F الإجمالية. يخبرنا هذا ما إذا كان نموذج الانحدار ككل ذو دلالة إحصائية أم لا. وبعبارة أخرى، فإنه يخبرنا ما إذا كان المتغيران المتنبئان مجتمعان لهما ارتباط ذو دلالة إحصائية مع متغير الاستجابة. في هذه الحالة، تكون القيمة p أقل من 0.05، مما يشير إلى أن المتغيرات المتوقعة “ساعات الدراسة” و”الاختبارات الإعدادية التي تم إجراؤها” مجتمعة لها ارتباط ذو دلالة إحصائية بدرجة الامتحان.
coef: تخبرنا معاملات كل متغير متنبئ بمتوسط التغير المتوقع في متغير الاستجابة، على افتراض أن المتغير المتنبئ الآخر يظل ثابتًا. على سبيل المثال، مقابل كل ساعة إضافية تقضيها في الدراسة، من المتوقع أن يزيد متوسط درجة الاختبار بمقدار 5.56 ، على افتراض أن الاختبارات التدريبية التي تم إجراؤها تظل ثابتة.
إليك طريقة أخرى للنظر إلى الأمر: إذا كان الطالب “أ” والطالب “ب” يأخذان نفس العدد من الاختبارات الإعدادية ولكن الطالب “أ” يدرس لمدة ساعة أطول، فيجب أن يسجل الطالب “أ” 5.56 نقطة أعلى من الطالب “ب”.
نفسر معامل الاعتراض على أنه يعني أن درجة الامتحان المتوقعة للطالب الذي لا يدرس ساعات ولا يقدم امتحانات تحضيرية هي 67.67 .
ف>|ر|. تخبرنا القيم p الفردية ما إذا كان كل متغير متنبئ ذو دلالة إحصائية أم لا. يمكننا أن نرى أن “الساعات” لها دلالة إحصائية (ع = 0.00) في حين أن “الامتحانات” (ع = 0.52) ليست ذات دلالة إحصائية عند α = 0.05. وبما أن مصطلح “الاختبارات” ليس ذا دلالة إحصائية، فقد ينتهي بنا الأمر إلى اتخاذ قرار بإزالته من النموذج.
معادلة الانحدار المقدرة: يمكننا استخدام المعاملات من مخرجات النموذج لإنشاء معادلة الانحدار المقدرة التالية:
درجة الامتحان = 67.67 + 5.56*(ساعات) – 0.60*(الاختبارات التحضيرية)
يمكننا استخدام معادلة الانحدار المقدرة هذه لحساب درجة الاختبار المتوقعة للطالب، بناءً على عدد ساعات الدراسة وعدد الاختبارات التدريبية التي يقدمها. على سبيل المثال، الطالب الذي يدرس لمدة ثلاث ساعات ويتقدم لامتحان الإعدادية يجب أن يحصل على درجة 83.75 :
ضع في اعتبارك أنه نظرًا لأن الاختبارات الإعدادية السابقة لم تكن ذات دلالة إحصائية (ع = 0.52)، فقد نقرر إزالتها لأنها لا تقدم أي تحسين للنموذج العام. في هذه الحالة، يمكننا إجراء انحدار خطي بسيط باستخدام الساعات التي تمت دراستها كمتغير متوقع فقط.
الخطوة 4: التحقق من افتراضات النموذج.
بمجرد قيامك بإجراء الانحدار الخطي، قد ترغب في التحقق من العديد من الافتراضات للتأكد من موثوقية نتائج نموذج الانحدار. وتشمل هذه الافتراضات ما يلي:
الافتراض رقم 1: هناك علاقة خطية بين متغيرات التوقع ومتغير الاستجابة.
- تحقق من هذا الافتراض عن طريق إنشاء مخطط متبقي يعرض القيم المجهزة مقابل القيم المتبقية لنموذج الانحدار.
الفرضية رقم 2: استقلال المخلفات.
- تحقق من هذه الفرضية عن طريق إجراء اختبار دوربين-واتسون .
الفرضية رقم 3: تجانس البقايا.
- تحقق من هذه الفرضية عن طريق إجراء اختبار Breusch-Pagan .
الافتراض رقم 4: الحالة الطبيعية للبقايا.
- تحقق بصريًا من هذا الافتراض باستخدام مخطط QQ .
- تحقق من هذه الفرضية باختبارات رسمية مثل اختبار جارك بيرا أو اختبار أندرسون دارلينج .
الافتراض رقم 5: التحقق من عدم وجود علاقة خطية متعددة بين متغيرات التوقع.
- تحقق من هذه الفرضية عن طريق حساب قيمة VIF لكل متغير متنبئ.
إذا تم استيفاء هذه الافتراضات، فيمكنك أن تكون واثقًا من أن نتائج نموذج الانحدار الخطي المتعدد الخاص بك يمكن الاعتماد عليها.
يمكنك العثور على كود Python الكامل المستخدم في هذا البرنامج التعليمي هنا .