Bonito proyecto. Como has adivinado correctamente, en el contexto de la regresión lineal múltiple, con predictores $X_1,\dots,X_p$ y respuesta $Y$ el modelo completo (o no restringido) es la estimación OLS habitual, en la que no ponemos restricciones a los coeficientes de regresión de los distintos predictores. Un modelo restringido es aquel en el que imponemos una serie de restricciones a los coeficientes de regresión $\beta_i$ . En el caso más sencillo, fijamos uno o varios $\beta_i$ a 0: en general, podemos considerar un conjunto de restricciones lineales dadas en forma matricial por $\mathbf{R}\beta=\mathbf{r}$ . En su caso, ha considerado las dos restricciones simples $\beta_{sex}=\beta_{continent}=0$ .
Antes de comparar formalmente los dos modelos, veamos cuál es la relación entre latitude
y wingsize
mira haciendo una simple trama:
with(wing, plot(latitude, wingsize, pch=16))
Parece que los datos se separan en dos grupos, y dentro de cada grupo hay una clara tendencia creciente, que es lo que cabría esperar según Regla de Bergmann . La separación es casi demasiado buena para ser cierta, pero al menos en el caso de algunas rapaces es bien sabido que las hembras son más grandes que los machos. Podemos comprobar fácilmente que los dos grupos corresponden a los dos sexos:
with(wing, plot(latitude, wingsize, col = c("red", "blue")[sex+1], pch=16))
Así pues, esperamos latitude
muy significativo para wingsize
si controlamos sex
pero no necesariamente lo contrario. ¿Qué pasa con continent
? No parece que incluirlo ayude a explicar ninguna varianza:
with(wing, plot(latitude, wingsize, col = c("red", "blue")[continent+1], pch=16))
Verifiquémoslo formalmente:
res_model <- lm(wingsize ~ latitude, data = wing)
summary(res_model)
Call:
lm(formula = wingsize ~ latitude, data = wing)
Residuals:
Min 1Q Median 3Q Max
-72.433 -50.335 5.956 49.651 72.132
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 780.532 64.526 12.096 6.08e-15 ***
latitude 1.883 1.436 1.312 0.197
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 51.82 on 40 degrees of freedom
Multiple R-squared: 0.04125, Adjusted R-squared: 0.01728
F-statistic: 1.721 on 1 and 40 DF, p-value: 0.1971
Ni siquiera es significativo al nivel 0,05. BTW, ya que usted preguntó acerca de los grados de libertad, tenga en cuenta que los informes de R DF
= 40. Para la regresión lineal, DF=n-p-1
donde n
es el tamaño de la muestra (42 en su caso), p
es el número de predictores en el modelo (1 ya que estamos considerando el modelo con sólo latitude
) y, por tanto, 42-1-1=40.
Consideremos ahora el modelo completo:
> full_model <- lm(wingsize ~ ., data = wing)
> summary(full_model)
Call:
lm(formula = wingsize ~ ., data = wing)
Residuals:
Min 1Q Median 3Q Max
-22.7285 -6.5128 0.6035 5.0069 30.7508
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 836.1648 14.8448 56.327 < 2e-16 ***
continent -4.1289 3.5224 -1.172 0.248
latitude 1.7926 0.3158 5.676 1.59e-06 ***
sex -98.8571 3.4114 -28.978 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 11.05 on 38 degrees of freedom
Multiple R-squared: 0.9586, Adjusted R-squared: 0.9553
F-statistic: 293 on 3 and 38 DF, p-value: < 2.2e-16
Como era de esperar, ahora latitude
en un modelo que ya incluye sex
(y continent
), es muy significativo, y del mismo modo sex
es muy significativo en un modelo que ya incluye latitude
y continent
. En cambio, una vez que controlamos sex
y latitude
parece (la diferencia entre cero y el coeficiente de regresión de) continent
no es estadísticamente significativa. También podemos comprobar que la diferencia entre los dos modelos es estadísticamente significativa utilizando ANOVA, ya que el modelo restringido es siempre un modelo anidado del modelo no restringido, y por lo tanto ANOVA es aplicable.
> anova(res_model, full_model)
Analysis of Variance Table
Model 1: wingsize ~ latitude
Model 2: wingsize ~ continent + latitude + sex
Res.Df RSS Df Sum of Sq F Pr(>F)
1 40 107425
2 38 4643 2 102782 420.56 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Como era de esperar, la diferencia es muy significativa.
Por último, señalamos que continent
no parecía explicar ninguna varianza residual, una vez que latitude
y sex
ya estaban incluidos en el modelo. Atención Normalmente esta "pesca de significación" es una idea terrible . Si empezamos eliminando la variable con el valor p más alto, volvemos a ajustar el modelo e iteramos el proceso, eliminando en cada paso la variable con el valor p más alto (regresión paso a paso hacia atrás), entonces los valores p que obtenemos en el modelo final no son válidos (porque se calculan sin tener en cuenta este proceso de selección), y la inferencia deja de ser fiable. Sin embargo, sólo para este caso especial, podemos cerrar un ojo, ya que vamos a eliminar sólo un predictor, cuyo p-valor no es sólo un poco más alto que los demás, sino que es varios órdenes de magnitud mayor. Construyamos el modelo restringido que contiene sólo sex
y latitude
y ver cómo se compara con los otros dos.
> res_model_2 <- lm(wingsize ~ latitude + sex, data = wing)
> summary(res_model_2)
Call:
lm(formula = wingsize ~ latitude + sex, data = wing)
Residuals:
Min 1Q Median 3Q Max
-23.005 -5.681 -0.494 5.197 32.560
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 829.9603 13.9354 59.558 < 2e-16 ***
latitude 1.8832 0.3077 6.121 3.52e-07 ***
sex -98.8571 3.4277 -28.841 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 11.11 on 39 degrees of freedom
Multiple R-squared: 0.9571, Adjusted R-squared: 0.9549
F-statistic: 434.6 on 2 and 39 DF, p-value: < 2.2e-16
¡Muy bueno! Parece que el modelo es muy similar al modelo completo, en términos de rendimiento predictivo (estimado por R-cuadrado ajustado). De hecho, si repetimos ahora la prueba ANOVA, vemos que la diferencia entre el primer modelo restringido y este nuevo modelo restringido es significativa, pero no la diferencia entre el nuevo modelo restringido y el modelo completo:
> anova(res_model, res_model_2, full_model)
Analysis of Variance Table
Model 1: wingsize ~ latitude
Model 2: wingsize ~ latitude + sex
Model 3: wingsize ~ continent + latitude + sex
Res.Df RSS Df Sum of Sq F Pr(>F)
1 40 107425
2 39 4811 1 102614 839.752 <2e-16 ***
3 38 4643 1 168 1.374 0.2484
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Permítanme subrayar de nuevo que, en general, la selección de variables basada en la regresión por pasos es MALA. Si necesita realizar una selección de variables fiable, utilice LASSO.