الفرق بين glm وlm في r
توفر لغة البرمجة R الوظائف التالية لتركيب النماذج الخطية:
1.lm – يستخدم لتناسب النماذج الخطية
تستخدم هذه الوظيفة بناء الجملة التالي:
lm(الصيغة، البيانات،…)
ذهب:
- الصيغة: صيغة النموذج الخطي (على سبيل المثال y ~ x1 + x2)
- البيانات: اسم كتلة البيانات التي تحتوي على البيانات
2.glm – يستخدم لملاءمة النماذج الخطية المعممة
تستخدم هذه الوظيفة بناء الجملة التالي:
glm(الصيغة، الأسرة=غاوسي، البيانات، …)
ذهب:
- الصيغة: صيغة النموذج الخطي (على سبيل المثال y ~ x1 + x2)
- العائلة: العائلة الإحصائية المستخدمة لملاءمة النموذج. الإعداد الافتراضي هو Gaussian، لكن الخيارات الأخرى تتضمن Binomial وGamma وPoisson وغيرها.
- البيانات: اسم كتلة البيانات التي تحتوي على البيانات
لاحظ أن الاختلاف الوحيد بين هاتين الوظيفتين هو وسيطة العائلة المضمنة في الدالة glm() .
إذا كنت تستخدم lm() أو glm() لملاءمة نموذج الانحدار الخطي، فسوف ينتجون نفس النتائج تمامًا .
ومع ذلك، يمكن أيضًا استخدام الدالة glm() لتناسب النماذج الأكثر تعقيدًا مثل:
- الانحدار اللوجستي (العائلة = ذو الحدين)
- انحدار بواسون (عائلة = سمكة)
توضح الأمثلة التالية كيفية استخدام الدالتين lm() و glm() عمليًا.
مثال على استخدام الدالة lm()
يوضح التعليمة البرمجية التالية كيفية ملاءمة نموذج الانحدار الخطي باستخدام الدالة lm():
#fit multiple linear regression model model <- lm(mpg ~ disp + hp, data=mtcars) #view model summary summary(model) Call: lm(formula = mpg ~ disp + hp, data = mtcars) Residuals: Min 1Q Median 3Q Max -4.7945 -2.3036 -0.8246 1.8582 6.9363 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 30.735904 1.331566 23.083 < 2nd-16 *** available -0.030346 0.007405 -4.098 0.000306 *** hp -0.024840 0.013385 -1.856 0.073679 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.127 on 29 degrees of freedom Multiple R-squared: 0.7482, Adjusted R-squared: 0.7309 F-statistic: 43.09 on 2 and 29 DF, p-value: 2.062e-09
أمثلة على استخدام الدالة glm()
يوضح التعليمة البرمجية التالية كيفية ملاءمة نفس نموذج الانحدار الخطي باستخدام الدالة glm():
#fit multiple linear regression model model <- glm(mpg ~ disp + hp, data=mtcars) #view model summary summary(model) Call: glm(formula = mpg ~ disp + hp, data = mtcars) Deviance Residuals: Min 1Q Median 3Q Max -4.7945 -2.3036 -0.8246 1.8582 6.9363 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 30.735904 1.331566 23.083 < 2nd-16 *** available -0.030346 0.007405 -4.098 0.000306 *** hp -0.024840 0.013385 -1.856 0.073679 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for gaussian family taken to be 9.775636) Null deviance: 1126.05 on 31 degrees of freedom Residual deviance: 283.49 on 29 degrees of freedom AIC: 168.62 Number of Fisher Scoring iterations: 2
لاحظ أن تقديرات المعامل والأخطاء المعيارية لتقديرات المعامل هي تمامًا نفس تلك التي تنتجها الدالة lm().
لاحظ أنه يمكننا أيضًا استخدام الدالة glm() لملاءمة نموذج الانحدار اللوجستي عن طريق تحديد Family=binomial كما يلي:
#fit logistic regression model model <- glm(am ~ disp + hp, data=mtcars, family=binomial) #view model summary summary(model) Call: glm(formula = am ~ disp + hp, family = binomial, data = mtcars) Deviance Residuals: Min 1Q Median 3Q Max -1.9665 -0.3090 -0.0017 0.3934 1.3682 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 1.40342 1.36757 1.026 0.3048 available -0.09518 0.04800 -1.983 0.0474 * hp 0.12170 0.06777 1.796 0.0725 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 43,230 on 31 degrees of freedom Residual deviance: 16,713 on 29 degrees of freedom AIC: 22,713 Number of Fisher Scoring iterations: 8
يمكننا أيضًا استخدام الدالة glm() لتناسب نموذج انحدار Poisson عن طريق تحديد Family=poisson كما يلي:
#fit Poisson regression model model <- glm(am ~ disp + hp, data=mtcars, family=fish) #view model summary summary(model) Call: glm(formula = am ~ disp + hp, family = fish, data = mtcars) Deviance Residuals: Min 1Q Median 3Q Max -1.1266 -0.4629 -0.2453 0.1797 1.5428 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 0.214255 0.593463 0.361 0.71808 available -0.018915 0.007072 -2.674 0.00749 ** hp 0.016522 0.007163 2.307 0.02107 * --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for fish family taken to be 1) Null deviance: 23,420 on 31 degrees of freedom Residual deviance: 10,526 on 29 degrees of freedom AIC: 42,526 Number of Fisher Scoring iterations: 6
مصادر إضافية
كيفية إجراء الانحدار الخطي البسيط في R
كيفية إجراء الانحدار الخطي المتعدد في R
كيفية استخدام وظيفة التنبؤ مع glm في R