Perbedaan antara glm dan lm di r


Bahasa pemrograman R menyediakan fungsi berikut untuk menyesuaikan model linier:

1. lm – Digunakan untuk menyesuaikan model linier

Fungsi ini menggunakan sintaks berikut:

lm(rumus, data,…)

Emas:

  • rumus : Rumus model linier (misal y ~ x1 + x2)
  • data: Nama blok data yang berisi data

2. glm – Digunakan untuk menyesuaikan model linier umum

Fungsi ini menggunakan sintaks berikut:

glm(rumus, keluarga=Gaussian, data, …)

Emas:

  • rumus : Rumus model linier (misal y ~ x1 + x2)
  • keluarga: keluarga statistik yang digunakan agar sesuai dengan model. Standarnya adalah Gaussian, tetapi opsi lainnya antara lain Binomial, Gamma, dan Poisson.
  • data: Nama blok data yang berisi data

Perhatikan bahwa satu-satunya perbedaan antara kedua fungsi ini adalah argumen keluarga yang disertakan dalam fungsi glm() .

Jika Anda menggunakan lm() atau glm() agar sesuai dengan model regresi linier, keduanya akan memberikan hasil yang persis sama .

Namun, fungsi glm() juga dapat digunakan untuk menyesuaikan model yang lebih kompleks seperti:

Contoh berikut menunjukkan cara menggunakan fungsi lm() dan glm() dalam praktiknya.

Contoh penggunaan fungsi lm()

Kode berikut menunjukkan cara menyesuaikan model regresi linier menggunakan fungsi 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

Contoh penggunaan fungsi glm()

Kode berikut menunjukkan cara menyesuaikan model regresi linier yang sama menggunakan fungsi 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

Perhatikan bahwa estimasi koefisien dan kesalahan standar estimasi koefisien sama persis dengan yang dihasilkan oleh fungsi lm().

Perhatikan bahwa kita juga dapat menggunakan fungsi glm() agar sesuai dengan model regresi logistik dengan menentukan family=binomial sebagai berikut:

 #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

Kita juga dapat menggunakan fungsi glm() agar sesuai dengan model regresi Poisson dengan menentukan family=poisson sebagai berikut:

 #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

Sumber daya tambahan

Cara melakukan regresi linier sederhana di R
Cara melakukan regresi linier berganda di R
Cara menggunakan fungsi prediksi dengan glm di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *