Saltar al contenido principal

15.5: Pruebas de hipótesis para modelos de regresión

$$\newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}}$$

$$\newcommand{\id}{\mathrm{id}}$$ $$\newcommand{\Span}{\mathrm{span}}$$

( \newcommand{\kernel}{\mathrm{null}\,}\) $$\newcommand{\range}{\mathrm{range}\,}$$

$$\newcommand{\RealPart}{\mathrm{Re}}$$ $$\newcommand{\ImaginaryPart}{\mathrm{Im}}$$

$$\newcommand{\Argument}{\mathrm{Arg}}$$ $$\newcommand{\norm}[1]{\| #1 \|}$$

$$\newcommand{\inner}[2]{\langle #1, #2 \rangle}$$

$$\newcommand{\Span}{\mathrm{span}}$$

$$\newcommand{\id}{\mathrm{id}}$$

$$\newcommand{\Span}{\mathrm{span}}$$

$$\newcommand{\kernel}{\mathrm{null}\,}$$

$$\newcommand{\range}{\mathrm{range}\,}$$

$$\newcommand{\RealPart}{\mathrm{Re}}$$

$$\newcommand{\ImaginaryPart}{\mathrm{Im}}$$

$$\newcommand{\Argument}{\mathrm{Arg}}$$

$$\newcommand{\norm}[1]{\| #1 \|}$$

$$\newcommand{\inner}[2]{\langle #1, #2 \rangle}$$

$$\newcommand{\Span}{\mathrm{span}}$$ $$\newcommand{\AA}{\unicode[.8,0]{x212B}}$$

$$\newcommand{\vectorA}[1]{\vec{#1}} % arrow$$

$$\newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow$$

$$\newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vectorC}[1]{\textbf{#1}}$$

$$\newcommand{\vectorD}[1]{\overrightarrow{#1}}$$

$$\newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}}$$

$$\newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}}$$

$$\newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}}$$

$$\newcommand{\avec}{\mathbf a}$$ $$\newcommand{\bvec}{\mathbf b}$$ $$\newcommand{\cvec}{\mathbf c}$$ $$\newcommand{\dvec}{\mathbf d}$$ $$\newcommand{\dtil}{\widetilde{\mathbf d}}$$ $$\newcommand{\evec}{\mathbf e}$$ $$\newcommand{\fvec}{\mathbf f}$$ $$\newcommand{\nvec}{\mathbf n}$$ $$\newcommand{\pvec}{\mathbf p}$$ $$\newcommand{\qvec}{\mathbf q}$$ $$\newcommand{\svec}{\mathbf s}$$ $$\newcommand{\tvec}{\mathbf t}$$ $$\newcommand{\uvec}{\mathbf u}$$ $$\newcommand{\vvec}{\mathbf v}$$ $$\newcommand{\wvec}{\mathbf w}$$ $$\newcommand{\xvec}{\mathbf x}$$ $$\newcommand{\yvec}{\mathbf y}$$ $$\newcommand{\zvec}{\mathbf z}$$ $$\newcommand{\rvec}{\mathbf r}$$ $$\newcommand{\mvec}{\mathbf m}$$ $$\newcommand{\zerovec}{\mathbf 0}$$ $$\newcommand{\onevec}{\mathbf 1}$$ $$\newcommand{\real}{\mathbb R}$$ $$\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}$$ $$\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}$$ $$\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}$$ $$\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}$$ $$\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}$$ $$\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}$$ $$\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}$$ $$\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}$$ $$\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}$$ $$\newcommand{\laspan}[1]{\text{Span}\{#1\}}$$ $$\newcommand{\bcal}{\cal B}$$ $$\newcommand{\ccal}{\cal C}$$ $$\newcommand{\scal}{\cal S}$$ $$\newcommand{\wcal}{\cal W}$$ $$\newcommand{\ecal}{\cal E}$$ $$\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}$$ $$\newcommand{\gray}[1]{\color{gray}{#1}}$$ $$\newcommand{\lgray}[1]{\color{lightgray}{#1}}$$ $$\newcommand{\rank}{\operatorname{rank}}$$ $$\newcommand{\row}{\text{Row}}$$ $$\newcommand{\col}{\text{Col}}$$ $$\renewcommand{\row}{\text{Row}}$$ $$\newcommand{\nul}{\text{Nul}}$$ $$\newcommand{\var}{\text{Var}}$$ $$\newcommand{\corr}{\text{corr}}$$ $$\newcommand{\len}[1]{\left|#1\right|}$$ $$\newcommand{\bbar}{\overline{\bvec}}$$ $$\newcommand{\bhat}{\widehat{\bvec}}$$ $$\newcommand{\bperp}{\bvec^\perp}$$ $$\newcommand{\xhat}{\widehat{\xvec}}$$ $$\newcommand{\vhat}{\widehat{\vvec}}$$ $$\newcommand{\uhat}{\widehat{\uvec}}$$ $$\newcommand{\what}{\widehat{\wvec}}$$ $$\newcommand{\Sighat}{\widehat{\Sigma}}$$ $$\newcommand{\lt}{<}$$ $$\newcommand{\gt}{>}$$ $$\newcommand{\amp}{&}$$ $$\definecolor{fillinmathshade}{gray}{0.9}$$

Hasta el momento hemos hablado sobre qué es un modelo de regresión, cómo se estiman los coeficientes de un modelo de regresión y cómo cuantificamos el desempeño del modelo (el último de estos, por cierto, es básicamente nuestra medida del tamaño del efecto). Lo siguiente de lo que tenemos que hablar son las pruebas de hipótesis. Hay dos tipos de pruebas de hipótesis diferentes (pero relacionadas) de las que debemos hablar: aquellas en las que probamos si el modelo de regresión en su conjunto está funcionando significativamente mejor que un modelo nulo; y aquellas en las que probamos si un coeficiente de regresión particular es significativamente diferente de cero.

En este punto, probablemente estés gimiendo internamente, pensando que voy a introducir una colección completamente nueva de pruebas. Probablemente ya estás harto de las pruebas de hipótesis, y no quieres aprender otras nuevas. Yo también. Estoy tan harto de las pruebas de hipótesis que voy a reutilizar descaradamente la prueba F del Capítulo 14 y la prueba t del Capítulo 13. De hecho, todo lo que voy a hacer en esta sección es mostrarte cómo esas pruebas se importan al por mayor al marco de regresión.

Probando el modelo en su conjunto

Bien, supongamos que ha estimado su modelo de regresión. La primera prueba de hipótesis que quizás quieras probar es aquella en la que la hipótesis nula de que no hay relación entre los predictores y el resultado, y la hipótesis alternativa es que los datos se distribuyen exactamente de la manera en que el modelo de regresión predice. Formalmente, nuestro “modelo nulo” corresponde al modelo de “regresión” bastante trivial en el que incluimos 0 predictores, y solo incluimos el término de intercepción b 0

H 0:Y i =b 0 +i

Si nuestro modelo de regresión tiene K predictores, el “modelo alternativo” se describe usando la fórmula habitual para un modelo de regresión múltiple:

$$H_{1}: Y_{i}=\left(\sum_{k=1}^{K} b_{k} X_{i k}\right)+b_{0}+\epsilon_{i}$$

¿Cómo podemos poner a prueba estas dos hipótesis una contra la otra? El truco es entender que al igual que hicimos con ANOVA, es posible dividir la varianza total SS tot en la suma de la varianza residual SS res y la varianza del modelo de regresión SS mod. Me saltaré los tecnicismos, ya que cubrimos la mayoría de ellos en el capítulo de ANOVA, y solo tenga en cuenta que:

SS mod = SS tot −SS res

$$\mathrm{MS}_{m o d}=\dfrac{\mathrm{SS}_{m o d}}{d f_{m o d}}$$
$$\mathrm{MS}_{r e s}=\dfrac{\mathrm{SS}_{r e s}}{d f_{r e s}}$$

Entonces, ¿cuántos grados de libertad tenemos? Como cabría esperar, el df asociado con el modelo está estrechamente vinculado al número de predictores que hemos incluido. De hecho, resulta que df mod =K. para los residuales, los grados totales de libertad son df res =N−K−1.

$$\ F={MS_{mod} \over MS_{res}}$$

y los grados de libertad asociados a esto son K y N−K−1. Esta estadística F tiene exactamente la misma interpretación que la que introdujimos en el Capítulo 14. Los grandes valores de F indican que la hipótesis nula se está desempeñando mal en comparación con la hipótesis alternativa. Y como ya hicimos algunos tediosos cálculos de “hazlo el largo camino” en ese entonces, no voy a perder tu tiempo repitiéndolos. En un momento te voy a mostrar cómo hacer la prueba en R de manera fácil, pero primero, echemos un vistazo a las pruebas para los coeficientes de regresión individuales.

Pruebas para coeficientes individuales

La prueba F que acabamos de introducir es útil para comprobar que el modelo en su conjunto está funcionando mejor que el azar. Esto es importante: si tu modelo de regresión no produce un resultado significativo para la prueba F entonces probablemente no tengas un modelo de regresión muy bueno (o, muy posiblemente, no tengas muy buenos datos). Sin embargo, si bien fallar esta prueba es un indicador bastante fuerte de que el modelo tiene problemas, ¡pasar la prueba (es decir, rechazar el nulo) no implica que el modelo sea bueno! ¿Por qué es eso, tal vez te lo estés preguntando? La respuesta a eso se puede encontrar observando los coeficientes para el modelo de regresión.2:

print( regression.2 ) 
##
## Call:
## lm(formula = dan.grump ~ dan.sleep + baby.sleep, data = parenthood)
##
## Coefficients:
## (Intercept)    dan.sleep   baby.sleep
##   125.96557     -8.95025      0.01052

No puedo evitar notar que el coeficiente de regresión estimado para la variable baby.sleep es pequeño (0.01), relativo al valor que obtenemos para dan.sleep (-8.95). Dado que estas dos variables están absolutamente en la misma escala (ambas se miden en “horas dormidas”), esto me parece sospechoso. De hecho, estoy empezando a sospechar que en realidad es solo la cantidad de sueño que consigo lo que importa para poder predecir mi maldad.

Una vez más, podemos reutilizar una prueba de hipótesis que discutimos anteriormente, esta vez la prueba t. La prueba que nos interesa tiene una hipótesis nula de que el verdadero coeficiente de regresión es cero (b=0), que se va a probar contra la hipótesis alternativa de que no lo es (b≠ 0). Es decir:

H 0: b=0

H 1: b<0

¿Cómo podemos probar esto? Bueno, si el teorema del límite central es amable con nosotros, podríamos adivinar que la distribución muestral de$$\ \hat{b}$$, el coeficiente de regresión estimado, es una distribución normal con media centrada en b. Lo que eso significaría es que si la hipótesis nula fuera cierta, entonces la distribución muestral de $$\ \hat{b}$$tiene media cero y desviación estándar desconocida. Suponiendo que podemos llegar a una buena estimación para el error estándar del coeficiente de regresión, SE ($$\ \hat{b}$$), entonces estamos de suerte. Esa es exactamente la situación para la que introdujimos la t de una muestra atrás en el Capítulo 13. Así que definamos una estadística t como esta,

$$\ t = { \hat{b} \over SE(\hat{b})}$$

Voy a omitir las razones por las cuales, pero nuestros grados de libertad en este caso son df=N−k−1. Irritantemente, la estimación del error estándar del coeficiente de regresión, SE ($$\ \hat{b}$$), no es tan fácil de calcular como el error estándar de la media que usamos para las pruebas t más simples en el Capítulo 13. De hecho, la fórmula es algo fea, y no terriblemente útil de ver. Para nuestros propósitos es suficiente señalar que el error estándar del coeficiente de regresión estimado depende tanto de las variables predictoras como de las variables de resultado, y es algo sensible a las violaciones de la hipótesis de homogeneidad de varianza (discutida en breve).

En cualquier caso, esta estadística t puede interpretarse de la misma manera que las estadísticas t que discutimos en el Capítulo 13. Asumiendo que tienes una alternativa bilateral (es decir, realmente no te importa si b>0 o b<0), entonces son los valores extremos de t (es decir, mucho menos que cero o mucho mayor que cero) los que sugieren que debes rechazar la hipótesis nula.

Ejecución de las pruebas de hipótesis en R

Para calcular todas las cantidades de las que hemos hablado hasta ahora, todo lo que necesitas hacer es pedir un resumen () de tu modelo de regresión. Desde que he estado usando regression.2 como mi ejemplo, hagámoslo:

summary( regression.2 )
##
## Call:
## lm(formula = dan.grump ~ dan.sleep + baby.sleep, data = parenthood)
##
## Residuals:
##      Min       1Q   Median       3Q      Max
## -11.0345  -2.2198  -0.4016   2.6775  11.7496
##
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) 125.96557    3.04095  41.423   <2e-16 ***
## dan.sleep    -8.95025    0.55346 -16.172   <2e-16 ***
## baby.sleep    0.01052    0.27106   0.039    0.969
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.354 on 97 degrees of freedom
## Multiple R-squared:  0.8161, Adjusted R-squared:  0.8123
## F-statistic: 215.2 on 2 and 97 DF,  p-value: < 2.2e-16

El resultado que produce este comando es bastante denso, pero ya hemos discutido todo lo que le interesa, así que lo que voy a hacer es pasarlo línea por línea. La primera línea nos recuerda cuál es el modelo de regresión real:

Call:
lm(formula = dan.grump ~ dan.sleep + baby.sleep, data = parenthood)

Se puede ver por qué esto es útil, ya que fue hace poco tiempo cuando en realidad creamos el modelo regression.2, y así que es agradable que nos recuerden qué era lo que estábamos haciendo. La siguiente parte proporciona un resumen rápido de los residuos (es decir, los valores i),

Residuals:
Min       1Q   Median       3Q      Max
-11.0345  -2.2198  -0.4016   2.6775  11.7496 

lo cual puede ser conveniente como una comprobación rápida y sucia de que el modelo está bien. Recuerde, sí asumimos que estos residuos se distribuyeron normalmente, con una media de 0. En particular, vale la pena verificar rápidamente para ver si la mediana es cercana a cero, y para ver si el primer cuartil tiene aproximadamente el mismo tamaño que el tercer cuartil. Si se ven mal mal, es muy probable que se violen los supuestos de regresión. Estos me quedan bastante bien, así que pasemos a las cosas interesantes. La siguiente parte de la salida R analiza los coeficientes del modelo de regresión:

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 125.96557    3.04095  41.423   <2e-16 ***
dan.sleep    -8.95025    0.55346 -16.172   <2e-16 ***
baby.sleep    0.01052    0.27106   0.039    0.969
---
Signif. codes:  0 �***� 0.001 �**� 0.01 �*� 0.05 �.� 0.1 � � 1 

Cada fila de esta tabla se refiere a uno de los coeficientes del modelo de regresión. La primera fila es el término de intercepción, y las posteriores miran cada uno de los predictores. Las columnas te dan toda la información relevante. La primera columna es la estimación real de b (por ejemplo, 125.96 para la intercepción y -8.9 para el predictor dan.sleep). La segunda columna es la estimación de error estándar$$\ \hat{\sigma_b}$$. La tercera columna te da la estadística t, y vale la pena notar que en esta tabla t=$$\ \hat{b}$$ /SE ($$\ \hat{b}$$) cada vez. Por último, la cuarta columna te da el valor de p real para cada una de estas pruebas. 217 Lo único que la tabla en sí no enumera son los grados de libertad utilizados en la prueba t, que siempre es N−K−1 y se enumera inmediatamente a continuación, en esta línea:

Residual standard error: 4.354 on 97 degrees of freedom

El valor de df=97 es igual a N−K−1, así que eso es lo que usamos para nuestras pruebas t. En la parte final de la salida tenemos la prueba F y los valores R2 que evalúan el desempeño del modelo en su conjunto

Residual standard error: 4.354 on 97 degrees of freedom
Multiple R-squared: 0.8161, Adjusted R-squared: 0.8123
F-statistic: 215.2 on 2 and 97 DF,  p-value: < 2.2e-16 

Entonces, en este caso, el modelo se desempeña significativamente mejor de lo que cabría esperar por casualidad (F (2,97) =215.2, p<.001), lo cual no es tan sorprendente: el valor de R 2 =.812 indica que el modelo de regresión representa 81.2% de la variabilidad en la medida de resultado. Sin embargo, cuando miramos hacia atrás en las pruebas t para cada uno de los coeficientes individuales, tenemos evidencia bastante sólida de que la variable baby.sleep no tiene ningún efecto significativo; todo el trabajo lo está haciendo la variable dan.sleep. Tomados en conjunto, estos resultados sugieren que regression.2 es en realidad el modelo incorrecto para los datos: probablemente sería mejor dejar el predictor baby.sleep por completo. En otras palabras, el modelo de regressión.1 con el que empezamos es el mejor modelo.

This page titled 15.5: Pruebas de hipótesis para modelos de regresión is shared under a CC BY-SA 4.0 license and was authored, remixed, and/or curated by Danielle Navarro via source content that was edited to the style and standards of the LibreTexts platform.