كيفية استخراج القيم p من الانحدار الخطي في النماذج الإحصائية


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

 #extract p-values for all predictor variables
for x in range(0, 3):
    print ( model.pvalues [x])

#extract p-value for specific predictor variable name
model. pvalues . loc [' predictor1 ']

#extract p-value for specific predictor variable position
model. pvalues [0]

توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا.

مثال: استخراج القيم P من الانحدار الخطي في النماذج الإحصائية

لنفترض أن لدينا DataFrame الباندا التالية التي تحتوي على معلومات حول ساعات الدراسة والامتحانات التحضيرية التي تم إجراؤها والدرجة النهائية التي حصل عليها الطلاب في فصل معين:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6],
                   ' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2],
                   ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96]})

#view head of DataFrame
df. head ()

	hours exam score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72

يمكننا استخدام الدالة OLS() ‎ في وحدة statsmodels لتناسب نموذج الانحدار الخطي المتعدد ، وذلك باستخدام “الساعات” و”الامتحانات” كمتغيرات للتنبؤ و”النتيجة” كمتغير للاستجابة :

 import statsmodels. api as sm

#define predictor and response variables
y = df['score']
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.718
Model: OLS Adj. R-squared: 0.661
Method: Least Squares F-statistic: 12.70
Date: Fri, 05 Aug 2022 Prob (F-statistic): 0.00180
Time: 09:24:38 Log-Likelihood: -38.618
No. Observations: 13 AIC: 83.24
Df Residuals: 10 BIC: 84.93
Df Model: 2                                         
Covariance Type: non-robust                                         
==================================================== ============================
                 coef std err t P>|t| [0.025 0.975]
-------------------------------------------------- ----------------------------
const 71.4048 4.001 17.847 0.000 62.490 80.319
hours 5.1275 1.018 5.038 0.001 2.860 7.395
exams -1.2121 1.147 -1.057 0.315 -3.768 1.344
==================================================== ============================
Omnibus: 1,103 Durbin-Watson: 1,248
Prob(Omnibus): 0.576 Jarque-Bera (JB): 0.803
Skew: -0.289 Prob(JB): 0.669
Kurtosis: 1.928 Cond. No. 11.7
==================================================== ============================

افتراضيًا، تعرض الدالة Summary() القيم الاحتمالية لكل متغير متنبئ حتى ثلاث منازل عشرية:

  • القيمة P للتقاطع: 0.000
  • القيمة P للساعات: 0.001
  • القيمة P للامتحانات: 0.315

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

 #extract p-values for all predictor variables
for x in range(0, 3):
    print ( model.pvalues [x])

6.514115622692573e-09
0.0005077783375870773
0.3154807854805659

يتيح لنا ذلك رؤية القيم الاحتمالية مع المزيد من المنازل العشرية:

  • القيمة P للتقاطع: 0.00000000651411562269257
  • القيمة P للساعات: 0.0005077783375870773
  • القيمة P للامتحانات: 0.3154807854805659

ملاحظة : استخدمنا 3 في دالة range() الخاصة بنا نظرًا لوجود ثلاثة معاملات إجمالية في نموذج الانحدار الخاص بنا.

يمكننا أيضًا استخدام الصيغة التالية لاستخراج القيمة p لمتغير “الساعات” على وجه التحديد:

 #extract p-value for 'hours' only
model. pvalues . loc [' hours ']

0.0005077783375870773

أو يمكننا استخدام الصيغة التالية لاستخراج القيمة p لمعامل متغير في موضع محدد من نموذج الانحدار:

 #extract p-value for coefficient in index position 0
model. pvalues [0]

6.514115622692573e-09

مصادر إضافية

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

كيفية تنفيذ الانحدار اللوجستي في بايثون
كيفية حساب AIC لنماذج الانحدار في بايثون
كيفية حساب R-squared المعدل في بايثون

Add a Comment

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