كيفية إجراء الانحدار الخطي مع المتغيرات الفئوية في r
الانحدار الخطي هو أسلوب يمكننا استخدامه لقياس العلاقة بين واحد أو أكثر من متغيرات التوقع ومتغير الاستجابة .
في كثير من الأحيان، قد ترغب في ملاءمة نموذج الانحدار باستخدام واحد أو أكثر من المتغيرات الفئوية كمتغيرات تنبؤية.
يوفر هذا البرنامج التعليمي مثالاً خطوة بخطوة لكيفية إجراء الانحدار الخطي مع المتغيرات الفئوية في R.
مثال: الانحدار الخطي مع المتغيرات الفئوية في R
لنفترض أن لدينا إطار البيانات التالي في R الذي يحتوي على معلومات حول ثلاثة متغيرات لـ 12 لاعب كرة سلة مختلف:
- تم تسجيل النقاط
- ساعات قضاها في ممارسة
- البرنامج التدريبي المستخدم
#create data frame df <- data. frame (points=c(7, 7, 9, 10, 13, 14, 12, 10, 16, 19, 22, 18), hours=c(1, 2, 2, 3, 2, 6, 4, 3, 4, 5, 8, 6), program=c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3)) #view data frame df points hours program 1 7 1 1 2 7 2 1 3 9 2 1 4 10 3 1 5 13 2 2 6 14 6 2 7 12 4 2 8 10 3 2 9 16 4 3 10 19 5 3 11 22 8 3 12 18 6 3
لنفترض أننا نريد ملاءمة نموذج الانحدار الخطي التالي:
النقاط = β 0 + β 1 ساعة + β 2 برنامج
في هذا المثال، الساعات هي متغير مستمر ولكن البرنامج هو متغير قاطع يمكن أن يأخذ ثلاث فئات محتملة: البرنامج 1، البرنامج 2 أو البرنامج 3.
من أجل ملاءمة نموذج الانحدار هذا وإخبار R أن متغير “البرنامج” هو متغير فئوي، نحتاج إلى استخدام as.factor() لتحويله إلى عامل، ثم ملاءمة النموذج:
#convert 'program' to factor
df$program <- as. factor (df$program)
#fit linear regression model
fit <- lm(points ~ hours + program, data = df)
#view model summary
summary(fit)
Call:
lm(formula = points ~ hours + program, data = df)
Residuals:
Min 1Q Median 3Q Max
-1.5192 -1.0064 -0.3590 0.8269 2.4551
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.3013 0.9462 6.660 0.000159 ***
hours 0.9744 0.3176 3.068 0.015401 *
program2 2.2949 1.1369 2.019 0.078234 .
program3 6.8462 1.5499 4.417 0.002235 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.403 on 8 degrees of freedom
Multiple R-squared: 0.9392, Adjusted R-squared: 0.9164
F-statistic: 41.21 on 3 and 8 DF, p-value: 3.276e-05
من القيم الموجودة في عمود التقدير يمكننا كتابة نموذج الانحدار المناسب:
النقاط = 6.3013 + 0.9744 (ساعات) + 2.2949 (برنامج 2) + 6.8462 (برنامج 3)
إليك كيفية تفسير قيم المعاملات في النتيجة:
- الساعات : مقابل كل ساعة إضافية تقضيها في التدريب، تزداد النقاط المسجلة بمعدل 0.9744، على افتراض بقاء البرنامج ثابتا.
- القيمة p هي 0.015، مما يشير إلى أن الساعات التي يقضيها التدريب هي مؤشر ذو دلالة إحصائية للنقاط المسجلة عند مستوى α = 0.05.
- الجدول 2 : سجل اللاعبون الذين استخدموا الجدول 2 في المتوسط 2.2949 نقطة أكثر من اللاعبين الذين استخدموا الجدول 1، بافتراض بقاء الساعات ثابتة.
- القيمة p هي 0.078، مما يشير إلى عدم وجود فرق ذو دلالة إحصائية في النقاط التي سجلها اللاعبون الذين استخدموا البرنامج 2 مقارنة باللاعبين الذين استخدموا البرنامج 1، عند المستوى α = 0.05.
- الجدول 3 : سجل اللاعبون الذين استخدموا الجدول 3 في المتوسط 2.2949 نقطة أكثر من اللاعبين الذين استخدموا الجدول 1، بافتراض بقاء الساعات ثابتة.
- القيمة p هي 0.002، مما يشير إلى وجود فرق ذو دلالة إحصائية في النقاط التي سجلها اللاعبون الذين استخدموا الجدول 3 مقارنة باللاعبين الذين استخدموا الجدول 1، عند مستوى α = 0.05.
باستخدام نموذج الانحدار المجهز، يمكننا التنبؤ بعدد النقاط التي سجلها اللاعب بناءً على إجمالي عدد الساعات التي قضاها في التدريب والبرنامج الذي استخدمه.
على سبيل المثال، يمكننا استخدام الكود التالي للتنبؤ بالنقاط التي سجلها اللاعب الذي تدرب لمدة 5 ساعات واستخدم جدول التدريب 3:
#define new player new <- data. frame (hours=c(5), program=as. factor (c(3))) #use the fitted model to predict the points for the new player predict(fit, newdata=new) 1 18.01923
يتوقع النموذج أن يسجل هذا اللاعب الجديد 18.01923 نقطة.
يمكننا التأكد من صحة ذلك عن طريق إدخال قيم اللاعب الجديد في معادلة الانحدار الملائمة:
- النقاط = 6.3013 + 0.9744 (ساعات) + 2.2949 (برنامج 2) + 6.8462 (برنامج 3)
- النقاط = 6.3013 + 0.9744(5) + 2.2949(0) + 6.8462(1)
- النقاط = 18,019
وهذا يطابق القيمة التي حسبناها باستخدام الدالة التنبؤ () في R.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية إجراء الانحدار الخطي البسيط في R
كيفية إجراء الانحدار الخطي المتعدد في R
كيفية إنشاء قطعة أرض متبقية في R