corr
Correlación lineal o de rango
Descripción
[
especifica opciones usando uno o varios argumentos de par nombre-valor, además de los argumentos de entrada de las sintaxis anteriores. Por ejemplo, rho
,pval
] = corr(___,Name,Value
)'Type','Kendall'
especifica el cálculo del coeficiente de correlación tau de Kendall.
Ejemplos
Encontrar correlación entre dos matrices
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
.
Probar hipótesis alternativas de la correlación
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
X
— Matriz de entrada
matriz
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
Y
— Matriz de entrada
matriz
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.
Type
— Tipo de correlación
'Pearson'
(predeterminado) | 'Kendall'
| 'Spearman'
El tipo de correlación, especificado como el par separado por comas que consta de 'Type'
y uno de los valores siguientes.
Valor | Descripción |
---|---|
'Pearson' | Coeficiente de correlación lineal de Pearson |
'Kendall' | Coeficiente tau de Kendall |
'Spearman' | Rho de Spearman |
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'
Rows
— Filas que se desean usar en el cálculo
'all'
(predeterminado) | 'complete'
| 'pairwise'
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.
Valor | Descripció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'
Tail
— Hipótesis alternativa
'both'
(predeterminado) | 'right'
| 'left'
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.
Valor | Descripció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
rho
— Coeficiente de correlación lineal por pares
matriz
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 deX
. La entradarho(a,b)
es el coeficiente de correlación lineal por pares entre la columna a y la columna b deX
.Si introduce las matrices
X
eY
,rho
es una matriz k1 por k2, donde k1 y k2 son el número de columnas deX
eY
, respectivamente. La entradarho(a,b)
es el coeficiente de correlación lineal por pares entre la columna a deX
y la columna b deY
.
pval
— Valores p
matriz
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
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 y ) se define como:
, 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 y 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:
,
donde y
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í:
,
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
Arreglos altos
Realice cálculos con arreglos que tienen más filas de las que caben en la memoria.
Esta función es compatible con arreglos altos para datos con memoria insuficiente con estas limitaciones:
Solo es compatible el tipo 'Pearson'
.
Para obtener más información, consulte Arreglos altos para datos con memoria insuficiente.
Entorno basado en subprocesos
Ejecute código en segundo plano con MATLAB® backgroundPool
o acelere código con Parallel Computing Toolbox™ ThreadPool
.
Esta función es totalmente compatible con los entornos basados en procesos. Para obtener más información, consulte Ejecutar funciones de MATLAB en un entorno basado en subprocesos.
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
Esta función es totalmente compatible con los arreglos de GPU. Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006a
Consulte también
corrcoef
| partialcorr
| corrcov
| tiedrank
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)