كيفية حساب المخلفات الطالبية في بايثون


الطالب المتبقي هو ببساطة المتبقي مقسومًا على انحرافه المعياري المقدر.

من الناحية العملية، نقول بشكل عام أن أي ملاحظة في مجموعة البيانات التي يكون فيها الطالب المتبقي أكبر من القيمة المطلقة البالغة 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، لذلك لا توجد قيم متطرفة واضحة في مجموعة البيانات.

مصادر إضافية

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

Add a Comment

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