كيفية إجراء الانحدار الخطي المتعدد في r
يوضح هذا الدليل مثالاً لكيفية تنفيذ الانحدار الخطي المتعدد في R، بما في ذلك:
- فحص البيانات قبل تركيب النموذج
- تعديل النموذج
- التحقق من افتراضات النموذج
- تفسير مخرجات النموذج
- تقييم جودة النموذج المناسب
- استخدم النموذج لعمل تنبؤات
دعنا نذهب!
منشأة
في هذا المثال، سنستخدم مجموعة بيانات R mtcars المدمجة، والتي تحتوي على معلومات حول سمات مختلفة لـ 32 سيارة مختلفة:
#view first six lines of mtcars
head(mtcars)
# mpg cyl disp hp drat wt qsec vs am gear carb
#Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
في هذا المثال، سنقوم ببناء نموذج انحدار خطي متعدد يستخدم mpg كمتغير الاستجابة و disp و hp و drat كمتغيرات متوقعة.
#create new data frame that contains only the variables we would like to use to data <- mtcars[, c("mpg", "disp", "hp", "drat")] #view first six rows of new data frame head(data) # mpg disp hp drat #Mazda RX4 21.0 160 110 3.90 #Mazda RX4 Wag 21.0 160 110 3.90 #Datsun 710 22.8 108 93 3.85 #Hornet 4 Drive 21.4 258 110 3.08 #Hornet Sportabout 18.7 360 175 3.15 #Valiant 18.1 225 105 2.76
مراجعة البيانات
قبل ملاءمة النموذج، يمكننا النظر إلى البيانات لفهمها بشكل أفضل وكذلك تقييم ما إذا كان الانحدار الخطي المتعدد نموذجًا جيدًا لملاءمة هذه البيانات أم لا.
على وجه الخصوص، نحتاج إلى التحقق مما إذا كانت متغيرات التوقع لها ارتباط خطي مع متغير الاستجابة، مما يشير إلى أن نموذج الانحدار الخطي المتعدد قد يكون مناسبًا.
للقيام بذلك، يمكننا استخدام الدالة أزواج () لإنشاء مخطط تبعثر لكل زوج محتمل من المتغيرات:
pairs(data, pch = 18, col = "steelblue")
من هذا الرسم البياني للأزواج يمكننا أن نرى ما يلي:
- يبدو أن ميلا في الغالون والتوافر لهما علاقة خطية سلبية قوية
- يبدو أن هناك علاقة خطية إيجابية قوية بين ميلا في الغالون وحصان
- يبدو أن mpg و drat لديهما علاقة خطية سلبية متواضعة
لاحظ أنه يمكننا أيضًا استخدام الدالة ggpairs() من مكتبة GGally لإنشاء مخطط مماثل يحتوي على معاملات الارتباط الخطي الفعلية لكل زوج من المتغيرات:
#install and load the GGally library install.packages("GGally") library(GGally) #generate the pairs plot ggpairs(data)
يبدو أن كل متغير من متغيرات التوقع له علاقة خطية ملحوظة مع متغير الاستجابة mpg ، لذلك سنشرع في ملاءمة نموذج الانحدار الخطي للبيانات.
تعديل النموذج
بناء الجملة الأساسي لتركيب نموذج الانحدار الخطي المتعدد في R هو:
lm(response_variable ~ predictor_variable1 + predictor_variable2 + ..., data = data)
باستخدام بياناتنا، يمكننا ملاءمة النموذج باستخدام الكود التالي:
model <- lm(mpg ~ disp + hp + drat, data = data)
التحقق من افتراضات النموذج
قبل الشروع في التحقق من نتائج النموذج، يجب علينا أولا التحقق من استيفاء افتراضات النموذج. أي أننا بحاجة إلى التحقق مما يلي:
1. يجب أن يكون توزيع بقايا النموذج طبيعيًا تقريبًا.
يمكننا التحقق من استيفاء هذا الافتراض عن طريق إنشاء رسم بياني بسيط للبقايا:
hist(residuals(model), col = "steelblue")
على الرغم من أن التوزيع منحرف قليلاً نحو اليمين ، إلا أنه ليس غير طبيعي بدرجة كافية لإثارة قلق كبير.
2. يجب أن يكون تباين البقايا متسقاً لجميع الملاحظات.
تُعرف هذه الحالة المفضلة بالمثلية الجنسية. يُعرف انتهاك هذا الافتراض باسم التغايرية .
للتحقق من استيفاء هذا الافتراض، يمكننا إنشاء رسم بياني للقيمة المعدلة/المتبقية:
#create fitted value vs residual plot plot(fitted(model), residuals(model)) #add horizontal line at 0 abline(h = 0, lty = 2)
ومن الناحية المثالية، نود أن يتم توزيع البقايا بالتساوي عند كل قيمة مناسبة. يمكننا أن نرى من الرسم البياني أن التشتت يميل إلى أن يصبح أكبر قليلاً بالنسبة للقيم المجهزة الأكبر، ولكن هذا الاتجاه ليس متطرفًا بما يكفي ليسبب الكثير من القلق.
تفسير مخرجات النموذج
بمجرد التحقق من استيفاء افتراضات النموذج بشكل كافٍ، يمكننا فحص مخرجات النموذج باستخدام الدالة Summary() :
summary(model) #Call: #lm(formula = mpg ~ disp + hp + drat, data = data) # #Residuals: # Min 1Q Median 3Q Max #-5.1225 -1.8454 -0.4456 1.1342 6.4958 # #Coefficients: #Estimate Std. Error t value Pr(>|t|) #(Intercept) 19.344293 6.370882 3.036 0.00513 ** #disp -0.019232 0.009371 -2.052 0.04960 * #hp -0.031229 0.013345 -2.340 0.02663 * #drat 2.714975 1.487366 1.825 0.07863 . #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 # #Residual standard error: 3.008 on 28 degrees of freedom #Multiple R-squared: 0.775, Adjusted R-squared: 0.7509 #F-statistic: 32.15 on 3 and 28 DF, p-value: 3.28e-09
ومن النتيجة يمكننا أن نرى ما يلي:
- إجمالي إحصائيات F للنموذج هو 32.15 والقيمة p المقابلة هي 3.28e-09 . يشير هذا إلى أن النموذج العام ذو دلالة إحصائية. وبعبارة أخرى، فإن نموذج الانحدار ككل مفيد.
- disp ذو دلالة إحصائية عند مستوى دلالة 0.10. على وجه الخصوص، يشير المعامل من نتائج النموذج إلى أن زيادة وحدة واحدة في التوفر ترتبط بانخفاض -0.019 وحدة، في المتوسط، في ميل لكل جالون ، على افتراض أن القدرة الحصانية واستهلاك الوقود يظلان ثابتين. .
- hp ذات دلالة إحصائية عند مستوى دلالة 0.10. على وجه الخصوص، يشير المعامل من نتائج النموذج إلى أن زيادة وحدة واحدة في القدرة الحصانية ترتبط بانخفاض قدره -0.031 وحدة، في المتوسط، في ميلا في الغالون ، على افتراض أن التوزيع والسحب يظلان ثابتين.
- drat ذات دلالة إحصائية عند مستوى دلالة 0.10. على وجه الخصوص، يشير المعامل من نتائج النموذج إلى أن زيادة وحدة واحدة في استهلاك البنزين ترتبط بمتوسط زيادة قدرها 2715 وحدة ميل لكل جالون ، على افتراض أن معدل التدفق والقدرة الحصانية يظلان ثابتين.
تقييم جودة النموذج المناسب
لتقييم مدى ملاءمة نموذج الانحدار للبيانات، يمكننا أن ننظر إلى بعض المقاييس المختلفة:
1. مربعات R المتعددة
يقيس هذا قوة العلاقة الخطية بين متغيرات التوقع ومتغير الاستجابة. يشير مضاعف R-squared للـ 1 إلى علاقة خطية مثالية بينما يشير مضاعف R-squared للـ 0 إلى عدم وجود علاقة خطية.
متعدد R هو أيضًا الجذر التربيعي لـ R تربيع، وهو نسبة التباين في متغير الاستجابة الذي يمكن تفسيره بواسطة المتغيرات المتوقعة. في هذا المثال، مضاعف R هو 0.775 . إذن R تربيع هو 0.775 2 = 0.601 . يشير هذا إلى أن 60.1% من التباين في الميل لكل جالون يمكن تفسيره من خلال تنبؤات النموذج.
ذات صلة: ما هي قيمة R-squared الجيدة؟
2. الخطأ المعياري المتبقي
يقيس هذا متوسط المسافة بين القيم المرصودة وخط الانحدار. في هذا المثال، تنحرف القيم المرصودة في المتوسط بمقدار 3.008 وحدة عن خط الانحدار .
متعلق ب: فهم الخطأ القياسي للانحدار
استخدم النموذج لعمل تنبؤات
ومن نتائج النموذج نعلم أن معادلة الانحدار الخطي المتعدد المجهزة هي:
ميل لكل جالون = -19.343 – 0.019*ديسب – 0.031*حصان + 2.715*درات
يمكننا استخدام هذه المعادلة لعمل تنبؤات حول ما سيكون عليه ميلا في الغالون للملاحظات الجديدة. على سبيل المثال، يمكننا العثور على قيمة ميل لكل جالون متوقعة لسيارة تتمتع بالصفات التالية:
- العرض = 220
- الفصل = 150
- درات = 3
#define the coefficients from the model output intercept <- coef(summary(model))["(Intercept)", "Estimate"] disp <- coef(summary(model))["disp", "Estimate"] hp <- coef(summary(model))["hp", "Estimate"] drat <- coef(summary(model))["drat", "Estimate"] #use the model coefficients to predict the value for mpg intercept + disp*220 + hp*150 + drat*3 #[1] 18.57373
بالنسبة لسيارة ذات قوة عرض = 220 وقوة حصانية = 150 وقوة دفع = 3، يتوقع النموذج أن تحصل السيارة على 18.57373 ميلاً في الغالون .
يمكنك العثور على رمز R الكامل المستخدم في هذا البرنامج التعليمي هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية ملاءمة الأنواع الأخرى من نماذج الانحدار في R:
كيفية إجراء الانحدار التربيعي في R
كيفية إجراء الانحدار متعدد الحدود في R
كيفية إجراء الانحدار الأسي في R