Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

corr

Correlación lineal o de rango

Descripción

rho = corr(X) devuelve una matriz del coeficiente de correlación lineal por pares entre cada par de columnas en la matriz de entrada X.

ejemplo

rho = corr(X,Y) devuelve una matriz del coeficiente de correlación por pares entre cada par de columnas en las matrices de entrada X e Y.

ejemplo

[rho,pval] = corr(X,Y) también devuelve pval, una matriz de valores p para probar la hipótesis de no correlación frente a la hipótesis alternativa de una correlación no nula.

ejemplo

[rho,pval] = corr(___,Name,Value) especifica opciones usando uno o varios argumentos de par nombre-valor, además de los argumentos de entrada de las sintaxis anteriores. Por ejemplo, 'Type','Kendall' especifica el cálculo del coeficiente de correlación tau de Kendall.

Ejemplos

contraer todo

Encuentre la correlación entre dos matrices y compárela con la correlación entre dos vectores columna.

Genere datos de muestra.

rng('default')
X = randn(30,4);
Y = randn(30,4);

Introduzca la correlación entre la columna dos de la matriz X y la columna cuatro de la matriz Y.

Y(:,4) = Y(:,4)+X(:,2);

Calcule la correlación entre las columnas de X e Y.

[rho,pval] = corr(X,Y)
rho = 4×4

   -0.1686   -0.0363    0.2278    0.3245
    0.3022    0.0332   -0.0866    0.7653
   -0.3632   -0.0987   -0.0200   -0.3693
   -0.1365   -0.1804    0.0853    0.0279

pval = 4×4

    0.3731    0.8489    0.2260    0.0802
    0.1045    0.8619    0.6491    0.0000
    0.0485    0.6039    0.9166    0.0446
    0.4721    0.3400    0.6539    0.8837

Como se esperaba, el coeficiente de correlación entre la columna dos de X y la columna cuatro de Y (rho(2,4)) es el más alto y representa una correlación positiva alta entre las dos columnas. El valor p correspondiente (pval(2,4)) es de cero para los cuatro dígitos indicados. Ya que el valor p es inferior al nivel de significación de 0.05, se indica el rechazo de la hipótesis de que no existe correlación entre las dos columnas.

Calcule la correlación entre X e Y mediante corrcoef.

[r,p] = corrcoef(X,Y)
r = 2×2

    1.0000   -0.0329
   -0.0329    1.0000

p = 2×2

    1.0000    0.7213
    0.7213    1.0000

La función corrcoef de MATLAB®, al contrario que la función corr, convierte las matrices de entrada X e Y en vectores columna (X(:) e Y(:)) antes de calcular la correlación entre ambas. Por lo tanto, la introducción de la correlación entre la columna dos de la matriz X y la columna cuatro de la matriz Y ya no existe, porque esas dos columnas están en secciones diferentes de los vectores columna convertidos.

El valor de los elementos no diagonales de r, que representa el coeficiente de correlación entre X e Y, es bajo. Este valor indica una escasa o nula correlación entre X e Y. Asimismo, el valor de los elementos no diagonales de p, que representa el valor p, es muy superior al nivel de significación de 0.05. Este valor indica que no existe evidencia suficiente para rechazar la hipótesis de no correlación entre X e Y.

Pruebe hipótesis alternativas de la correlación positiva, negativa y no nula entre las columnas de las dos matrices. Compare los valores del coeficiente de correlación y el valor p en cada caso.

Genere datos de muestra.

rng('default')
X = randn(50,4);
Y = randn(50,4);

Introduzca la correlación positiva entre la columna uno de la matriz X y la columna cuatro de la matriz Y.

Y(:,4) = Y(:,4)+0.7*X(:,1);

Introduzca la correlación negativa entre la columna dos de X y la columna dos de Y.

Y(:,2) = Y(:,2)-2*X(:,2);

Pruebe la hipótesis alternativa de que la correlación es mayor que cero.

[rho,pval] = corr(X,Y,'Tail','right')
rho = 4×4

    0.0627   -0.1438   -0.0035    0.7060
   -0.1197   -0.8600   -0.0440    0.1984
   -0.1119    0.2210   -0.3433    0.1070
   -0.3526   -0.2224    0.1023    0.0374

pval = 4×4

    0.3327    0.8405    0.5097    0.0000
    0.7962    1.0000    0.6192    0.0836
    0.7803    0.0615    0.9927    0.2298
    0.9940    0.9397    0.2398    0.3982

Como se esperaba, el coeficiente de correlación entre la columna uno de X y la columna cuatro de Y (rho(1,4)) tiene el valor más alto, lo que representa una correlación positiva alta entre las dos columnas. El valor p correspondiente (pval(1,4)) es de cero para los cuatro dígitos indicados, lo que es inferior al nivel de significación de 0.05. Los resultados indican el rechazo de la hipótesis nula de que no existe correlación entre las dos columnas y concluyen que la correlación es mayor que cero.

Pruebe la hipótesis alternativa de que la correlación es menor que cero.

[rho,pval] = corr(X,Y,'Tail','left')
rho = 4×4

    0.0627   -0.1438   -0.0035    0.7060
   -0.1197   -0.8600   -0.0440    0.1984
   -0.1119    0.2210   -0.3433    0.1070
   -0.3526   -0.2224    0.1023    0.0374

pval = 4×4

    0.6673    0.1595    0.4903    1.0000
    0.2038    0.0000    0.3808    0.9164
    0.2197    0.9385    0.0073    0.7702
    0.0060    0.0603    0.7602    0.6018

Como se esperaba, el coeficiente de correlación entre la columna dos de X y la columna dos de Y (rho(2,2)) tiene el número negativo con el valor absoluto más grande (-0.86), lo que representa una correlación negativa alta entre las dos columnas. El valor p correspondiente (pval(2,2)) es de cero para los cuatro dígitos indicados, lo que es inferior al nivel de significación de 0.05. De nuevo, los resultados indican el rechazo de la hipótesis nula y concluyen que la correlación es menor que cero.

Pruebe la hipótesis alternativa de que la correlación no es cero.

[rho,pval] = corr(X,Y)
rho = 4×4

    0.0627   -0.1438   -0.0035    0.7060
   -0.1197   -0.8600   -0.0440    0.1984
   -0.1119    0.2210   -0.3433    0.1070
   -0.3526   -0.2224    0.1023    0.0374

pval = 4×4

    0.6654    0.3190    0.9807    0.0000
    0.4075    0.0000    0.7615    0.1673
    0.4393    0.1231    0.0147    0.4595
    0.0120    0.1206    0.4797    0.7964

Los valores p (pval(1,4) y pval(2,2)) son de cero a los cuatro dígitos indicados. Ya que los valores p son inferiores al nivel de significación de 0.05, los coeficientes de correlación rho(1,4) y rho(2,2) se diferencian significativamente de cero. Por tanto, se rechaza la hipótesis nula; la correlación no es cero.

Argumentos de entrada

contraer todo

Matriz de entrada, especificada como una matriz n por k. Las filas de X corresponden a observaciones y las columnas corresponden a variables.

Ejemplo: X = randn(10,5)

Tipos de datos: single | double

Matriz de entrada, especificada como una matriz n por k2 cuando X se especifica como una matriz n por k1. Las filas de Y corresponden a observaciones y las columnas corresponden a variables.

Ejemplo: Y = randn(20,7)

Tipos de datos: single | double

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.

En versiones anteriores a R2021a, use comas para separar cada nombre y valor y encierre Name entre comillas.

Ejemplo: corr(X,Y,'Type','Kendall','Rows','complete') devuelve el coeficiente de correlación tau de Kendall usando solo las filas que no contengan valores faltantes.

El tipo de correlación, especificado como el par separado por comas que consta de 'Type' y uno de los valores siguientes.

corr calcula los valores p de la correlación de Pearson con la distribución t de Student para transformar la correlación. La correlación es exacta cuando X e Y provienen de una distribución normal. corr calcula los valores p del tau de Kendall y el rho de Spearman usando las distribuciones de permutación exactas (para tamaños de muestra pequeños) o aproximaciones de muestras grandes.

Ejemplo: 'Type','Spearman'

Las filas que se desean usar en el cálculo, especificadas como el par separado por comas que consta de 'Rows' y uno de los valores siguientes.

ValorDescripción
'all'Utiliza todas las filas de la entrada, independientemente de los valores faltantes (NaN).
'complete'Utiliza solo las filas de la entrada que no tengan valores faltantes.
'pairwise'Calcula rho(i,j) usando las filas que no tengan valores faltantes en la columna i o j.

El valor 'complete', al que contrario que el valor 'pairwise', siempre produce un rho definido positivo o semidefinido positivo. Además, el valor 'complete' generalmente utiliza menos observaciones para estimar rho cuando las filas de la entrada (X o Y) contienen valores faltantes.

Ejemplo: 'Rows','pairwise'

La hipótesis alternativa, especificada como el par separado por comas que consta de 'Tail' y uno de los valores de la tabla. 'Tail' especifica la hipótesis alternativa frente a la que se calculan los valores p para probar la hipótesis de no correlación.

ValorDescripción
'both'Prueba la hipótesis alternativa de que la correlación no es 0.
'right'Prueba la hipótesis alternativa de que la correlación es mayor que 0.
'left'Prueba la hipótesis alternativa de que la correlación es menor que 0.

corr calcula los valores p de la prueba de dos colas duplicando el más significativo de los dos valores p de una cola.

Ejemplo: 'Tail','left'

Argumentos de salida

contraer todo

El coeficiente de correlación lineal por pares, devuelto como matriz.

  • Si solo introduce una matriz X, rho es una matriz k por k simétrica, donde k es el número de columnas de X. La entrada rho(a,b) es el coeficiente de correlación lineal por pares entre la columna a y la columna b de X.

  • Si introduce las matrices X e Y, rho es una matriz k1 por k2, donde k1 y k2 son el número de columnas de X e Y, respectivamente. La entrada rho(a,b) es el coeficiente de correlación lineal por pares entre la columna a de X y la columna b de Y.

Los valores p, devueltos como matriz. Cada elemento de pval es el valor p del elemento correspondiente de rho.

Si pval(a,b) es bajo (más pequeño que 0.05), entonces la correlación rho(a,b) se diferencia significativamente de cero.

Más acerca de

contraer todo

Coeficiente de correlación lineal de Pearson

El coeficiente de correlación lineal de Pearson es el coeficiente de correlación lineal más usado. El coeficiente de correlación lineal de Pearson rho(a,b) de la columna Xa de la matriz X y de la columna Yb de la matriz Y (con medias de X¯a=i=1n(Xa,i)/n, y Y¯b=j=1n(Yb,j)/n) se define como:

rho(a,b)=i=1n(Xa,iX¯a)(Yb,iY¯b){i=1n(Xa,iX¯a)2j=1n(Yb,jY¯b)2}1/2,

, donde n es la longitud de cada columna.

Los valores del coeficiente de correlación pueden oscilar entre –1 y +1. Un valor de –1 indica una correlación negativa perfecta, mientras que un valor de +1 indica una correlación positiva perfecta. Un valor de 0 indica que no hay correlación entre las columnas.

Coeficiente tau de Kendall

El tau de Kendall se basa en el recuentro del número de pares (i,j), de i<j, que son concordantes; es decir, para los que Xa,iXa,j y Yb,iYb,j tienen el mismo signo. La ecuación del tau de Kendall incluye un ajuste para los empates en la constante de normalización y suele denominarse tau-b.

El coeficiente tau de Kendall de la columna Xa de la matriz X y la columna Yb de la matriz Y se define como:

τ=2Kn(n1),

,

donde K=i=1n1j=i+1nξ*(Xa,i,Xa,j,Yb,i,Yb,j), y

ξ*(Xa,i,Xa,j,Yb,i,Yb,j)={1if(Xa,iXa,j)(Yb,iYb,j)>00if(Xa,iXa,j)(Yb,iYb,j)=01if(Xa,iXa,j)(Yb,iYb,j)<0.

Los valores del coeficiente de correlación pueden oscilar entre –1 y +1. Un valor de –1 indica que la clasificación de una columna es la inversa de la otra, mientras que un valor de +1 indica que las dos clasificaciones son idénticas. Un valor de 0 indica que no hay relación entre las columnas.

Rho de Spearman

El rho de Spearman es equivalente a Coeficiente de correlación lineal de Pearson aplicado a las clasificaciones de las columnas Xa y Yb.

Si todas las clasificaciones de las columnas son distintas, la ecuación se simplifica así:

rho(a,b)=16d2n(n21),

,

donde d es la diferencia entre las clasificaciones de las dos columnas y n es la longitud de cada columna.

Sugerencias

La diferencia entre corr(X,Y) y la función de MATLAB® corrcoef(X,Y) es que corrcoef(X,Y) devuelve una matriz de coeficientes de correlación de dos vectores columna X e Y. Si X e Y no son vectores columna, corrcoef(X,Y) los convierte en vectores columna.

Referencias

[1] Gibbons, J.D. Nonparametric Statistical Inference. 2nd ed. M. Dekker, 1985.

[2] Hollander, M., and D.A. Wolfe. Nonparametric Statistical Methods. Wiley, 1973.

[3] Kendall, M.G. Rank Correlation Methods. Griffin, 1970.

[4] Best, D.J., and D.E. Roberts. "Algorithm AS 89: The Upper Tail Probabilities of Spearman's rho." Applied Statistics, 24:377-379.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también

| | |