Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

5 votos

Control de las covariables en la regresión lineal en R

He hecho estos dos modelos:

(model1 <- summary(lm(mpg ~ drat + wt + cyl, mtcars)))

Call:
lm(formula = mpg ~ drat + wt + cyl, data = mtcars)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.2944 -1.5576 -0.4667  1.5678  6.1014 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  39.7677     6.8729   5.786 3.26e-06 ***
drat         -0.0162     1.3231  -0.012 0.990317    
wt           -3.1947     0.8293  -3.852 0.000624 ***
cyl          -1.5096     0.4464  -3.382 0.002142 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.613 on 28 degrees of freedom
Multiple R-squared:  0.8302,    Adjusted R-squared:  0.812 
F-statistic: 45.64 on 3 and 28 DF,  p-value: 6.569e-11

(model2 <- summary(lm(mpg ~  wt + cyl + drat, mtcars)))

Call:
lm(formula = mpg ~ wt + cyl + drat, data = mtcars)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.2944 -1.5576 -0.4667  1.5678  6.1014 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  39.7677     6.8729   5.786 3.26e-06 ***
wt           -3.1947     0.8293  -3.852 0.000624 ***
cyl          -1.5096     0.4464  -3.382 0.002142 ** 
drat         -0.0162     1.3231  -0.012 0.990317    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.613 on 28 degrees of freedom
Multiple R-squared:  0.8302,    Adjusted R-squared:  0.812 
F-statistic: 45.64 on 3 and 28 DF,  p-value: 6.569e-11

Tengo entendido que R utiliza la partición "secuencial" para la varianza en mpg . Así que en model1 , drat debe estar sin ajustar, wt debe ajustarse para drat y cyl debe ajustarse para drat y wt . En model2 , wt debe estar sin ajustar, cyl debe ajustarse para wt y drat debe ajustarse para wt y cyl .

Sin embargo, los coeficientes de cada modelo parecen ser exactamente los mismos, lo que sugiere que los coeficientes no se están ajustando en absoluto. ¿No se están ajustando los coeficientes en absoluto?

16voto

Sean Hanley Puntos 2428

La pregunta, tal como está formulada, es ligeramente ambigua. Afirma que "los coeficientes de cada modelo parecen ser exactamente los mismos". Esta afirmación puede interpretarse de dos maneras, con respecto a (1) el Estimates de los coeficientes, o (2) el pruebas de los coeficientes.

  1. En cuanto a la Estimates de los coeficientes, se están ajustando por las otras variables del modelo, pero no se ve ninguna diferencia porque se tienen las mismas variables en ambos model1 y model2 el orden en el que se enumeran no importa. Las estimaciones de los parámetros sólo diferirán si las variables están correlacionadas y los conjuntos de variables que se incluyen en los modelos difieren. Considere:

    model1 <- lm(mpg ~ drat + wt + cyl,  mtcars)
    model2 <- lm(mpg ~  wt + cyl + drat, mtcars)
    model3 <- lm(mpg ~  wt       + drat, mtcars)
    cor(mtcars$wt, mtcars$cyl)
    # [1] 0.7824958
    summary(model2)
    # Coefficients:
    #               Estimate Std. Error t value Pr(>|t|)    
    #   (Intercept)  39.7677     6.8729   5.786 3.26e-06 ***
    #   wt           -3.1947     0.8293  -3.852 0.000624 ***
    #   cyl          -1.5096     0.4464  -3.382 0.002142 ** 
    #   drat         -0.0162     1.3231  -0.012 0.990317    
    summary(model3)
    # Coefficients:
    #               Estimate Std. Error t value Pr(>|t|)    
    #   (Intercept)   30.290      7.318   4.139 0.000274 ***
    #   wt            -4.783      0.797  -6.001 1.59e-06 ***
    #   drat           1.442      1.459   0.989 0.330854    

    Obsérvese que el Estimate para wt es -3.1974 en model2 y -4.783 en model3 . Para saber más sobre cómo pueden cambiar las estimaciones de los parámetros de las variables según se incluya o no una variable correlacionada, puede ser útil leer por respuesta aquí .

  2. En cuanto a la pruebas de los coeficientes, depende de la función que utilices para obtener tu salida. Has utilizado summary() . Lo que se informa entonces son los t -pruebas asociadas a las estimaciones de los parámetros. Éstas no se calculan con partición de sumas de cuadrados . Sin embargo, son equivalentes a F -prueba con tipo III SS . El orden en que se enumeran las variables no importa para t -prueba o F -pruebas que se basan en el tipo III SS. También se puede utilizar anova() para obtener pruebas de significación de sus estimaciones de parámetros. Que es donde R utiliza tipo I SS . Y como los SS de tipo I son secuenciales, el orden en que se enumeran las variables sí importa (aunque, de nuevo, sólo si las variables están correlacionadas). Considere:

    summary(model1)
    # Coefficients:
    #               Estimate Std. Error t value Pr(>|t|)    
    #   (Intercept)  39.7677     6.8729   5.786 3.26e-06 ***
    #   drat         -0.0162     1.3231  -0.012 0.990317    
    #   wt           -3.1947     0.8293  -3.852 0.000624 ***
    #   cyl          -1.5096     0.4464  -3.382 0.002142 ** 
    summary(model2)
    # Coefficients:
    #               Estimate Std. Error t value Pr(>|t|)    
    #   (Intercept)  39.7677     6.8729   5.786 3.26e-06 ***
    #   wt           -3.1947     0.8293  -3.852 0.000624 ***
    #   cyl          -1.5096     0.4464  -3.382 0.002142 ** 
    #   drat         -0.0162     1.3231  -0.012 0.990317    
    anova(model1)
    # Analysis of Variance Table
    #             Df Sum Sq Mean Sq F value    Pr(>F)    
    #   drat       1 522.48  522.48  76.525 1.691e-09 ***
    #   wt         1 334.33  334.33  48.967 1.308e-07 ***
    #   cyl        1  78.07   78.07  11.435  0.002142 ** 
    #   Residuals 28 191.17    6.83                      
    anova(model2)
    # Analysis of Variance Table
    #             Df Sum Sq Mean Sq  F value    Pr(>F)    
    #   wt         1 847.73  847.73 124.1627 8.382e-12 ***
    #   cyl        1  87.15   87.15  12.7645  0.001304 ** 
    #   drat       1   0.00    0.00   0.0001  0.990317    
    # Residuals 28 191.17    6.83                       

    Obsérvese que el p -valor para wt es 0.000624 en ambos summary() salidas, pero es 1.308e-07 en anova(model1) y 8.382e-12 en anova(model2) . Para saber más sobre sumas de cuadrados en general, puede ser útil leer mi respuesta aquí . Por último, tenga en cuenta que puede obtener una tabla ANOVA en R que utilice otros tipos de SS, como II y III, utilizando Anova() en el car paquete.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X