Saltar al contenido principal
LibreTexts Español

15.6: Probando la significancia de una correlación

  • Page ID
    151918
  • \( \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}}\)

    Pruebas de hipótesis para una sola correlación

    No quiero dedicar demasiado tiempo a esto, pero vale la pena volver muy brevemente al punto que hice antes, que las correlaciones de Pearson son básicamente lo mismo que las regresiones lineales con solo un solo predictor agregado al modelo. Lo que esto significa es que las pruebas de hipótesis que acabo de describir en un contexto de regresión también se pueden aplicar a los coeficientes de correlación. Para ver esto, tomemos un resumen () del modelo de regressión.1:

    summary( regression.1 )
    ## 
    ## Call:
    ## lm(formula = dan.grump ~ dan.sleep, data = parenthood)
    ## 
    ## Residuals:
    ##     Min      1Q  Median      3Q     Max 
    ## -11.025  -2.213  -0.399   2.681  11.750 
    ## 
    ## Coefficients:
    ##             Estimate Std. Error t value Pr(>|t|)    
    ## (Intercept) 125.9563     3.0161   41.76   <2e-16 ***
    ## dan.sleep    -8.9368     0.4285  -20.85   <2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ## 
    ## Residual standard error: 4.332 on 98 degrees of freedom
    ## Multiple R-squared:  0.8161, Adjusted R-squared:  0.8142 
    ## F-statistic: 434.9 on 1 and 98 DF,  p-value: < 2.2e-16

    Lo importante a tener en cuenta aquí es la prueba t asociada al predictor, en la que obtenemos un resultado de t (98) =−20.85, p<.001. Ahora vamos a comparar esto con la salida de una función diferente, que va por el nombre de cor.test (). Como cabría esperar, esta función ejecuta una prueba de hipótesis para ver si la correlación observada entre dos variables es significativamente diferente de 0. Echemos un vistazo:

    cor.test( x = parenthood$dan.sleep, y = parenthood$dan.grump )
    ## 
    ##  Pearson's product-moment correlation
    ## 
    ## data:  parenthood$dan.sleep and parenthood$dan.grump
    ## t = -20.854, df = 98, p-value < 2.2e-16
    ## alternative hypothesis: true correlation is not equal to 0
    ## 95 percent confidence interval:
    ##  -0.9340614 -0.8594714
    ## sample estimates:
    ##       cor 
    ## -0.903384

    Nuevamente, lo clave a destacar es la línea que reporta la propia prueba de hipótesis, que parece estar diciendo que t (98) =−20.85, p<.001. Hm. Parece que es exactamente la misma prueba, ¿no? Y eso es exactamente lo que es. La prueba para la significancia de una correlación es idéntica a la prueba t que ejecutamos sobre un coeficiente en un modelo de regresión.

    Pruebas de hipótesis para todas las correlaciones por pares

    Bien, una digresión más antes de que vuelva a la regresión correctamente. En la sección anterior hablé de la función cor.test (), que permite ejecutar una prueba de hipótesis sobre una sola correlación. La función cor.test () es (obviamente) una extensión de la función cor (), de la que hablamos en la Sección 5.7. Sin embargo, la función cor () no se limita a calcular una sola correlación: puede usarla para calcular todas las correlaciones por pares entre las variables de su conjunto de datos. Esto lleva a la gente a la pregunta natural: ¿puede la función cor.test () hacer lo mismo? ¿Podemos usar cor.test () para ejecutar pruebas de hipótesis para todas las posibles correlaciones parwise entre las variables en un marco de datos?

    La respuesta es no, y hay una muy buena razón para ello. Probar una sola correlación está bien: si tienes alguna razón para estar preguntando “¿A está relacionado con B?” , entonces deberías hacer absolutamente una prueba para ver si hay una correlación significativa. Pero si tienes las variables A, B, C, D y E y estás pensando en probar las correlaciones entre todos los pares posibles de estas, un estadístico querría preguntarse: ¿cuál es tu hipótesis? Si estás en la posición de querer probar todos los pares de variables posibles, entonces estás bastante claro en una expedición de pesca, cazando en busca de efectos significativos cuando en realidad no tienes en mente una hipótesis de investigación clara. Esto es peligroso, y los autores de cor.test () obviamente sintieron que no querían apoyar ese tipo de comportamiento.

    Por otro lado... una visión algo menos dura podría ser argumentar que nos hemos encontrado con esta situación antes, allá por la Sección 14.5 cuando hablamos de pruebas post hoc en ANOVA. Al ejecutar pruebas post hoc, no teníamos ninguna comparación específica en mente, así que lo que hicimos fue aplicar una corrección (por ejemplo, Bonferroni, Holm, etc) para evitar la posibilidad de una tasa de error tipo I inflada. Desde esta perspectiva, está bien ejecutar pruebas de hipótesis sobre todas tus correlaciones por pares, pero debes tratarlas como análisis post hoc, y si es así necesitas aplicar una corrección para múltiples comparaciones. Eso es lo que hace la función correlate () en el paquete lsr. Cuando usamos la función correlate () en la Sección 5.7, todo lo que hizo fue imprimir la matriz de correlación. Pero también puede obtener que emita los resultados de todas las pruebas por pares especificando test=true. Esto es lo que sucede con los datos de paternidad:

    library(lsr)
    ## Warning: package 'lsr' was built under R version 3.5.2 
    correlate(parenthood, test=TRUE)
    ## 
    ## CORRELATIONS
    ## ============
    ## - correlation type:  pearson 
    ## - correlations shown only when both variables are numeric
    ## 
    ##            dan.sleep    baby.sleep    dan.grump       day   
    ## dan.sleep          .         0.628***    -0.903*** -0.098   
    ## baby.sleep     0.628***          .       -0.566*** -0.010   
    ## dan.grump     -0.903***     -0.566***         .     0.076   
    ## day           -0.098        -0.010        0.076         .   
    ## 
    ## ---
    ## Signif. codes: . = p < .1, * = p<.05, ** = p<.01, *** = p<.001
    ## 
    ## 
    ## p-VALUES
    ## ========
    ## - total number of tests run:  6 
    ## - correction for multiple testing:  holm 
    ## 
    ##            dan.sleep baby.sleep dan.grump   day
    ## dan.sleep          .      0.000     0.000 0.990
    ## baby.sleep     0.000          .     0.000 0.990
    ## dan.grump      0.000      0.000         . 0.990
    ## day            0.990      0.990     0.990     .
    ## 
    ## 
    ## SAMPLE SIZES
    ## ============
    ## 
    ##            dan.sleep baby.sleep dan.grump day
    ## dan.sleep        100        100       100 100
    ## baby.sleep       100        100       100 100
    ## dan.grump        100        100       100 100
    ## day              100        100       100 100

    La salida aquí contiene tres matrices. Primero imprime la matriz de correlación. En segundo lugar, imprime una matriz de valores p, utilizando el método Holm 218 para corregir comparaciones múltiples. Finalmente, imprime una matriz que indica el tamaño de la muestra (número de casos completos por pares) que contribuyó a cada correlación.

    Entonces ahí lo tienes. Si realmente quieres hacer pruebas de hipótesis por pares sobre tus correlaciones, la función correlate () te permitirá hacerlo. Pero por favor, por favor, ten cuidado. No puedo contar la cantidad de veces que he tenido un estudiante entrando en pánico en mi oficina porque han realizado estas pruebas de correlación por pares, y obtienen uno o dos resultados significativos que no tienen ningún sentido. Por alguna razón, en el momento en que la gente ve aparecer esas estrellas de poca importancia, se sienten obligadas a desechar todo el sentido común y asumir que los resultados deben corresponder a algo real que requiere una explicación. En la mayoría de estos casos, mi experiencia ha sido que la respuesta correcta es “es un error de Tipo I”.


    This page titled 15.6: Probando la significancia de una correlació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; a detailed edit history is available upon request.