كيفية الإصلاح في r: هناك معاملات مستعارة في النموذج


الخطأ الذي قد تواجهه في R هو:

 Error in vive.default(model): there are aliased coefficients in the model

يحدث هذا الخطأ عادةً عند وجود علاقة خطية متعددة في نموذج الانحدار. أي أن اثنين أو أكثر من متغيرات التنبؤ في النموذج مرتبطان بشكل كبير (أو بشكل كامل).

عندما يحدث هذا، نقول أن المتغير هو “اسم مستعار” لمتغير آخر، مما يسبب مشاكل عند ملاءمة نموذج الانحدار.

يوضح المثال التالي كيفية تصحيح هذا الخطأ عمليًا.

كيفية إعادة إنتاج الخطأ

لنفترض أننا نطبق نموذج الانحدار التالي في R:

 #make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2+x3)

يمكننا استخدام وظيفة vive() الخاصة بحزمة السيارة لحساب قيم VIF لكل متغير متنبئ في النموذج لتحديد ما إذا كانت العلاقة الخطية المتعددة تمثل مشكلة:

 library (car)

#calculate VIF values for predictor variables
lively(model)

Error in vive.default(model): there are aliased coefficients in the model

نتلقى خطأ يفيد ” توجد معاملات مستعارة في النموذج”.

يخبرنا هذا أن اثنين أو أكثر من متغيرات التوقع في النموذج مرتبطان تمامًا.

كيفية اصلاح الخطأ

لتحديد المتغيرات المتنبئة المرتبطة تمامًا، يمكننا استخدام الدالة cor() لإنشاء مصفوفة ارتباط للمتغيرات:

 #place variables in data frame
df <- data. frame (x1, x2, x3, y)

#create correlation matrix for data frame
cor(df)

           x1 x2 x3 y
x1 1.00000000 0.126886263 0.126886263 0.065047543
x2 0.12688626 1.000000000 1.000000000 -0.009107573
x3 0.12688626 1.000000000 1.000000000 -0.009107573
y 0.06504754 -0.009107573 -0.009107573 1.000000000

يمكننا أن نرى أن المتغيرين x2 و x3 لهما معامل ارتباط قدره 1. وهذا يخبرنا أن هذين المتغيرين يسببان الخطأ لأنهما مرتبطان تمامًا.

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

لا يهم المتغير الذي نحذفه حيث أن كلاهما يوفر نفس المعلومات تمامًا في نموذج الانحدار.

للتبسيط، دعونا نزيل x3 ونلائم نموذج الانحدار مرة أخرى:

 library (car)

#make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2)

#calculate VIF values for predictor variables in model
lively(model)

      x1 x2 
1.016364 1.016364 

لاحظ أننا لا نتلقى أي أخطاء هذه المرة عند حساب قيم VIF للنموذج لأن تعدد الخطية لم يعد يمثل مشكلة.

ذات صلة: كيفية حساب وتفسير قيم VIF في R

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في R:

كيفية الإصلاح في R: الاستبدال له طول صفر
كيفية الإصلاح في R: تتضمن الوسائط عددًا مختلفًا من الأسطر
كيفية الإصلاح في R: الوسيطة ليست رقمية ولا منطقية: return na

Add a Comment

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