الفرق بين 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

Add a Comment

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