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:
- Regresi logistik (keluarga=binomial)
- Regresi Poisson (keluarga=ikan)
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