La diferencia entre glm y lm en R

El lenguaje de programación R ofrece las siguientes funciones para ajustar modelos lineales:

1. lm: se utiliza para adaptarse a modelos lineales

Esta función utiliza la siguiente sintaxis:

lm (fórmula, datos,…)

dónde:

  • fórmula: La fórmula para el modelo lineal (por ejemplo, y ~ x1 + x2)
  • datos: el nombre del marco de datos que contiene los datos

2. glm: se utiliza para adaptarse a modelos lineales generalizados

Esta función utiliza la siguiente sintaxis:

glm (fórmula, familia = gaussiano, datos,…)

dónde:

  • fórmula: La fórmula para el modelo lineal (por ejemplo, y ~ x1 + x2)
  • family: La familia estadística que se utilizará para ajustar el modelo. El valor predeterminado es gaussiano, pero otras opciones incluyen binomial, gamma y poisson, entre otras.
  • datos: el nombre del marco de datos que contiene los datos

Tenga en cuenta que la única diferencia entre estas dos funciones es el argumento de familia incluido en la función glm () .

Si usa lm () o glm () para ajustar un modelo de regresión lineal, producirán exactamente los mismos resultados .

Sin embargo, la función glm () también se puede utilizar para adaptarse a modelos más complejos como:

Los siguientes ejemplos muestran cómo utilizar la función lm () y la función glm () en la práctica.

Ejemplo de uso de la función lm ()

El siguiente código muestra cómo ajustar un modelo de regresión lineal usando la función lm ():

#fit modelo de modelo de regresión lineal múltiple
 <- lm (mpg ~ disp + hp, data = mtcars)

#ver resumen de
 resumen del modelo (modelo)

Llamada:
lm (fórmula = mpg ~ disp + hp, datos = mtcars)

Derechos residuales de autor:
    Mín. 1T Mediana 3T Máx. 
-4,7945 -2,3036 -0,8246 1,8582 6,9363 

Coeficientes:
             Estimar Std. Valor t de error Pr (> | t |)    
(Intercepción) 30.735904 1.331566 23.083 <2e-16 ***
disp -0.030346 0.007405 -4.098 0.000306 ***
CV -0,024840 0,013385 -1,856 0,073679.  
---
Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1

Error estándar residual: 3,127 en 29 grados de libertad
R cuadrado múltiple: 0,7482, R cuadrado ajustado: 0,7309 
Estadístico F: 43,09 en 2 y 29 DF, valor de p: 2,062e-09

Ejemplos de uso de la función glm ()

El siguiente código muestra cómo ajustar exactamente el mismo modelo de regresión lineal usando la función glm ():

#fit modelo de modelo de regresión lineal múltiple
 <- glm (mpg ~ disp + hp, data = mtcars)

#ver resumen de
 resumen del modelo (modelo)

Llamada:
glm (fórmula = mpg ~ disp + hp, data = mtcars)

Residuos de desviación: 
    Mín. 1T Mediana 3T Máx.  
-4,7945 -2,3036 -0,8246 1,8582 6,9363  

Coeficientes:
             Estimar Std. Valor t de error Pr (> | t |)    
(Intercepción) 30.735904 1.331566 23.083 <2e-16 ***
disp -0.030346 0.007405 -4.098 0.000306 ***
CV -0,024840 0,013385 -1,856 0,073679.  
---
Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1

(Se considera que el parámetro de dispersión para la familia gaussiana es 9,775636)

    Desviación nula: 1126.05 en 31 grados de libertad
Desviación residual: 283,49 en 29 grados de libertad
AIC: 168,62

Número de iteraciones de puntuación de Fisher: 2

Observe que las estimaciones de coeficientes y los errores estándar de las estimaciones de coeficientes son exactamente los mismos que los producidos por la función lm ().

Tenga en cuenta que también podemos usar la función glm () para ajustar un modelo de regresión logística especificando family = binomial de la siguiente manera:

#fit modelo de modelo de regresión logística
 <- glm (am ~ disp + hp, data = mtcars, family = binomial)

#ver resumen de
 resumen del modelo (modelo)

Llamada:
glm (fórmula = am ~ disp + hp, family = binomial, data = mtcars)

Residuos de desviación: 
    Mín. 1T Mediana 3T Máx.  
-1,9665 -0,3090 -0,0017 0,3934 1,3682  

Coeficientes:
            Estimar Std. Error z valor Pr (> | z |)  
(Intercepción) 1,40342 1,36757 1,026 0,3048  
disp -0.09518 0.04800 -1.983 0.0474 *
CV 0,12170 0,06777 1,796 0,0725.
---
Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1

(El parámetro de dispersión para la familia binomial se toma como 1)

    Desviación nula: 43.230 en 31 grados de libertad
Desviación residual: 16.713 en 29 grados de libertad
AIC: 22,713

Número de iteraciones de puntuación de Fisher: 8

También podemos usar la función glm () para ajustar un modelo de regresión de Poisson especificando family = poisson de la siguiente manera:

#fit modelo de modelo de regresión de Poisson
 <- glm (am ~ disp + hp, data = mtcars, family = poisson)

#ver resumen de
 resumen del modelo (modelo)

Llamada:
glm (fórmula = am ~ disp + hp, familia = poisson, datos = mtcars)

Residuos de desviación: 
    Mín. 1T Mediana 3T Máx.  
-1.1266 -0.4629 -0.2453 0.1797 1.5428  

Coeficientes:
             Estimar Std. Error z valor Pr (> | z |)   
(Intercepción) 0.214255 0.593463 0.361 0.71808   
disp -0.018915 0.007072 -2.674 0.00749 **
CV 0,016522 0,007163 2,307 0,02107 * 
---
Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1

(Parámetro de dispersión para la familia de Poisson tomado como 1)

    Desviación nula: 23.420 en 31 grados de libertad
Desviación residual: 10,526 en 29 grados de libertad
AIC: 42,526

Número de iteraciones de puntuación de Fisher: 6

Recursos adicionales

Cómo realizar una regresión lineal simple en R
Cómo realizar una regresión lineal múltiple en R
Cómo usar la función de predicción con glm en R

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

La siguiente tabla de distribución de chi-cuadrado muestra los valores críticos para diferentes niveles de probabilidad (P) y grados de…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!