كيفية استخدام مجموعة فرعية من إطار البيانات مع وظيفة lm() في r
يمكنك استخدام وسيطة المجموعة الفرعية لاستخدام مجموعة فرعية فقط من إطار البيانات عند استخدام الدالة lm() لتناسب نموذج الانحدار في R:
fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 ))
يتوافق هذا المثال المحدد مع نموذج الانحدار الذي يستخدم النقاط كمتغير الاستجابة والحشود والدقائق كمتغيرات متوقعة.
تحدد وسيطة المجموعة الفرعية أنه يجب استخدام الصفوف فقط في إطار البيانات حيث يكون متغير الدقائق أكبر من 10 عند ملاءمة نموذج الانحدار.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: كيفية استخدام مجموعة فرعية من إطار البيانات مع lm() في R
لنفترض أن لدينا إطار البيانات التالي في R الذي يحتوي على معلومات حول دقائق اللعب، وإجمالي الأخطاء، وإجمالي النقاط التي سجلها 10 لاعبي كرة سلة:
#create data frame df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40), fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1), points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30)) #view data frame df minutes fouls points 1 5 5 6 2 10 5 8 3 13 3 8 4 14 4 7 5 20 2 14 6 22 1 10 7 26 3 22 8 34 2 24 9 38 1 28 10 40 1 30
لنفترض أننا نريد ملاءمة نموذج الانحدار الخطي المتعدد التالي:
النقاط = β 0 + β 1 (دقائق) + β 2 (الأخطاء)
ومع ذلك، لنفترض أننا نريد استخدام الصفوف الموجودة في إطار البيانات فقط حيث يكون متغير الدقائق أكبر من 10.
يمكننا استخدام الدالة lm() مع وسيطة المجموعة الفرعية لتناسب نموذج الانحدار هذا:
#fit multiple linear regression model (only for rows where minutes>10) fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 )) #view model summary summary(fit) Call: lm(formula = points ~ fouls + minutes, data = df, subset = (minutes > 10)) Residuals: 3 4 5 6 7 8 9 10 1.2824 -2.5882 2.2000 -1.9118 2.3588 -1.7176 0.1824 0.1941 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -11.8353 4.9696 -2.382 0.063046 . fouls 1.8765 1.0791 1.739 0.142536 minutes 0.9941 0.1159 8.575 0.000356 *** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 2.255 on 5 degrees of freedom Multiple R-squared: 0.9574, Adjusted R-squared: 0.9404 F-statistic: 56.19 on 2 and 5 DF, p-value: 0.0003744
يمكننا استخدام الدالة nobs() لمعرفة عدد الملاحظات من إطار البيانات التي تم استخدامها بالفعل لتناسب نموذج الانحدار:
#view number of observations used to fit model
nobs(fit)
[1] 8
يمكننا أن نرى أنه تم استخدام 8 صفوف من إطار البيانات لتناسب النموذج.
إذا نظرنا إلى إطار البيانات الأصلي، يمكننا أن نرى أن 8 صفوف بالضبط كانت لها قيمة أكبر من 10 لمتغير الدقائق ، مما يعني أنه تم استخدام تلك الصفوف فقط عند ملاءمة نموذج الانحدار.
يمكننا أيضًا استخدام عامل التشغيل & في وسيطة المجموعة الفرعية لتعيين إطار البيانات فرعيًا بناءً على شروط متعددة.
على سبيل المثال، يمكننا استخدام الصيغة التالية لتناسب نموذج الانحدار باستخدام الصفوف الموجودة في إطار البيانات فقط حيث تكون الدقائق أكبر من 10 والأخطاء أقل من 4:
#fit multiple linear regression model (only where minutes>10 & fouls<4) fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 & fouls< 4 )) #view number of observations used to fit model nobs(fit) [1] 7
من النتيجة يمكننا أن نرى أنه تم استخدام 7 صفوف من إطار البيانات لتناسب هذا النموذج المعين.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية إجراء الانحدار الخطي البسيط في R
كيفية إجراء الانحدار الخطي المتعدد في R
كيفية إنشاء قطعة أرض متبقية في R