R'de glm ve lm arasındaki fark


R programlama dili, doğrusal modellerin yerleştirilmesi için aşağıdaki işlevleri sağlar:

1. lm – Doğrusal modelleri sığdırmak için kullanılır

Bu işlev aşağıdaki sözdizimini kullanır:

lm(formül, veri, …)

Altın:

  • formül: Doğrusal model formülü (örneğin y ~ x1 + x2)
  • data: Verileri içeren veri bloğunun adı

2. glm – Genelleştirilmiş doğrusal modellere uymak için kullanılır

Bu işlev aşağıdaki sözdizimini kullanır:

glm(formül, aile=Gauss, veri, …)

Altın:

  • formül: Doğrusal model formülü (örneğin y ~ x1 + x2)
  • aile: modele uymak için kullanılacak istatistiksel aile. Varsayılan Gaussian’dır ancak diğer seçenekler arasında Binom, Gamma ve Poisson da bulunur.
  • data: Verileri içeren veri bloğunun adı

Bu iki işlev arasındaki tek farkın glm() işlevinde yer alan aile argümanı olduğunu unutmayın.

Doğrusal bir regresyon modeline uymak için lm() veya glm()’yi kullanırsanız, bunlar tamamen aynı sonuçları üretecektir .

Ancak glm() işlevi aşağıdaki gibi daha karmaşık modellere uyum sağlamak için de kullanılabilir:

Aşağıdaki örnekler lm() ve glm() işlevlerinin pratikte nasıl kullanılacağını göstermektedir.

lm() işlevini kullanma örneği

Aşağıdaki kod, lm() işlevini kullanarak doğrusal bir regresyon modelinin nasıl sığdırılacağını gösterir:

 #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() işlevini kullanma örnekleri

Aşağıdaki kod, glm() işlevini kullanarak tam olarak aynı doğrusal regresyon modelinin nasıl uygulanacağını gösterir:

 #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

Katsayı tahminlerinin ve katsayı tahminlerinin standart hatalarının, lm() işlevi tarafından üretilenlerle tamamen aynı olduğuna dikkat edin.

Family=binomial’ı aşağıdaki gibi belirterek lojistik regresyon modeline uyum sağlamak için glm() işlevini de kullanabileceğimizi unutmayın:

 #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

Family=poisson’u aşağıdaki gibi belirterek bir Poisson regresyon modeline uyum sağlamak için glm() işlevini de kullanabiliriz:

 #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

Ek kaynaklar

R’de basit doğrusal regresyon nasıl gerçekleştirilir
R’de çoklu doğrusal regresyon nasıl gerçekleştirilir
R’de glm ile tahmin işlevi nasıl kullanılır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir