كيفية حساب المخلفات الطالبية في بايثون
الطالب المتبقي هو ببساطة المتبقي مقسومًا على انحرافه المعياري المقدر.
من الناحية العملية، نقول بشكل عام أن أي ملاحظة في مجموعة البيانات التي يكون فيها الطالب المتبقي أكبر من القيمة المطلقة البالغة 3 هي قيمة متطرفة.
يمكننا الحصول بسرعة على بقايا نموذج الانحدار في بايثون باستخدام الدالة OLSResults.outlier_test() الخاصة بـ statsmodels، والتي تستخدم الصيغة التالية:
OLSResults.outlier_test()
حيث OLSResults هو اسم النموذج الخطي المناسب باستخدام الدالة statsmodels ols() .
مثال: حساب المخلفات الطلابية في بايثون
لنفترض أننا قمنا ببناء نموذج الانحدار الخطي البسيط التالي في بايثون:
#import necessary packages and functions import numpy as np import pandas as pd import statsmodels. api as sm from statsmodels. formula . api import ols #create dataset df = pd. DataFrame ({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19]}) #fit simple linear regression model model = ols('rating ~ points', data=df). fit ()
يمكننا استخدام الدالة outlier_test() لإنتاج DataFrame الذي يحتوي على بقايا الطالب لكل ملاحظة في مجموعة البيانات:
#calculate studentized residuals stud_res = model. outlier_test () #display studentized residuals print(stud_res) student_resid unadj_p bonf(p) 0 -0.486471 0.641494 1.000000 1 -0.491937 0.637814 1.000000 2 0.172006 0.868300 1.000000 3 1.287711 0.238781 1.000000 4 0.106923 0.917850 1.000000 5 0.748842 0.478355 1.000000 6 -0.968124 0.365234 1.000000 7 -2.409911 0.046780 0.467801 8 1.688046 0.135258 1.000000 9 -0.014163 0.989095 1.000000
يعرض DataFrame القيم التالية لكل ملاحظة في مجموعة البيانات:
- بقايا الطالب
- القيمة p غير المعدلة للطالب المتبقي
- القيمة p المصححة بواسطة Bonferroni للطالب المتبقي
يمكننا أن نرى أن المتبقي من التلميذ للملاحظة الأولى في مجموعة البيانات هو -0.486471 ، والباقي من التلميذ للملاحظة الثانية هو -0.491937 ، وهكذا.
يمكننا أيضًا إنشاء مخطط سريع لقيم متغيرات التوقع مقابل بقايا الطالب المقابلة:
import matplotlib. pyplot as plt #define predictor variable values and studentized residuals x = df[' points '] y = stud_res[' student_resid '] #create scatterplot of predictor variable vs. studentized residuals plt. scatter (x,y) plt. axhline (y=0, color=' black ', linestyle=' -- ') plt. xlabel (' Points ') plt. ylabel (' Studentized Residuals ')
من الرسم البياني يمكننا أن نرى أن أيًا من الملاحظات لا تحتوي على متبقي للطالب بقيمة مطلقة أكبر من 3، لذلك لا توجد قيم متطرفة واضحة في مجموعة البيانات.
مصادر إضافية
كيفية إجراء الانحدار الخطي البسيط في بايثون
كيفية إجراء الانحدار الخطي المتعدد في بايثون
كيفية إنشاء مؤامرة المتبقية في بيثون