9 votos

Cuantificar cuánto "más correlación" contiene una matriz de correlación A comparado con una matriz de correlación B

Tengo 2 matrices de correlación $A$ $B$ (mediante la prueba de Pearson el coeficiente de correlación lineal a través de Matlab corrcoef()). Me gustaría cuantificar cuánto "más de correlación" $A$ contiene en comparación con $B$. ¿Hay alguna norma métrica o prueba para que?

E. g. la matriz de correlación

enter image description here

contiene "más de correlación" que

enter image description here

Soy consciente de que el Cuadro de la M Prueba, que se utiliza para determinar si dos o más matrices de covarianza son iguales (y puede ser utilizado para matrices de correlación así, ya que éstas son el mismo como el de las matrices de covarianza de las variables aleatorias estandarizadas).

Ahora mismo estoy comparando $A$ $B$ a través de la media de los valores absolutos de sus no-diagonal de los elementos, es decir,$\frac{2}{n^2-n}\sum_{1 \leq i < j \leq n } \left | x_{i, j} \right |$. (Yo uso el de la simetría de la matriz de correlación en esta fórmula). Supongo que no podrían ser algunos de los más listos de métricas.


Siguiente Andy W el comentario sobre la matriz de determinante, me encontré con un experimento para comparar las métricas:

  • Media de los valores absolutos de sus no-diagonal elementos: $\text{metric}_\text{mean}()$
  • Matriz de determinante: $\text{metric}_\text{determinant}()$:

Deje $A$ $B$ dos aleatoria simétrica matriz con unos en la diagonal de dimensión $10 \times 10$. El triángulo superior (diagonal excluidos) de $A$ se rellena con una flota de 0 a 1. El triángulo superior (diagonal excluidos) de $B$ se rellena con una flota de 0 a 0.9. Puedo generar 10000 tales matrices y hacer algunos a contar:

  • $\text{metric}_\text{mean}(B) \leq \text{metric}_\text{mean}(A) $ 80.75% del tiempo
  • $\text{metric}_\text{determinant}(B) \leq \text{metric}_\text{determinant}(A)$ 63.01% del tiempo

Dado el resultado que yo tendería a pensar que $\text{metric}_\text{mean}(B)$ es una métrica mejor.

Código de Matlab:

function [  ] = correlation_metric(  )
%CORRELATION_METRIC Test some metric for
%   http://stats.stackexchange.com/q/110416/12359 :
%   I have 2 correlation matrices A and B (using the Pearson's linear 
%   correlation coefficient through Matlab's corrcoef()).
%   I would like to quantify how much "more correlation"
%   A contains compared to B. Is there any standard metric or test for that?

% Experiments' parameters
runs = 10000;
matrix_dimension = 10;

%% Experiment 1
results = zeros(runs, 3);
for i=1:runs
    dimension = matrix_dimension;
    M = generate_random_symmetric_matrix( dimension, 0.0, 1.0 );
    results(i, 1) = abs(det(M));
%     results(i, 2) = mean(triu(M, 1));
    results(i, 2) = mean2(M);
%     results(i, 3) = results(i, 2) < results(i, 2) ; 
end
mean(results(:, 1))
mean(results(:, 2))


%% Experiment 2
results = zeros(runs, 6);
for i=1:runs
    dimension = matrix_dimension;
    M = generate_random_symmetric_matrix( dimension, 0.0, 1.0 );
    results(i, 1) = abs(det(M));
    results(i, 2) = mean2(M);
    M = generate_random_symmetric_matrix( dimension, 0.0, 0.9 );
    results(i, 3) = abs(det(M));
    results(i, 4) = mean2(M);
    results(i, 5) = results(i, 1) > results(i, 3);
    results(i, 6) = results(i, 2) > results(i, 4);
end

mean(results(:, 5))
mean(results(:, 6))
boxplot(results(:, 1))
figure
boxplot(results(:, 2))


end

function [ random_symmetric_matrix ] = generate_random_symmetric_matrix( dimension, minimum, maximum )
% Based on http://www.mathworks.com/matlabcentral/answers/123643-how-to-create-a-symmetric-random-matrix
d = ones(dimension, 1); %rand(dimension,1); % The diagonal values
t = triu((maximum-minimum)*rand(dimension)+minimum,1); % The upper trianglar random values
random_symmetric_matrix = diag(d)+t+t.'; % Put them together in a symmetric matrix
end

Ejemplo de un generadas $10 \times 10$ aleatoria simétrica matriz con unos en la diagonal:

>> random_symmetric_matrix

random_symmetric_matrix =

    1.0000    0.3984    0.1375    0.4372    0.2909    0.6172    0.2105    0.1737    0.2271    0.2219
    0.3984    1.0000    0.3836    0.1954    0.5077    0.4233    0.0936    0.2957    0.5256    0.6622
    0.1375    0.3836    1.0000    0.1517    0.9585    0.8102    0.6078    0.8669    0.5290    0.7665
    0.4372    0.1954    0.1517    1.0000    0.9531    0.2349    0.6232    0.6684    0.8945    0.2290
    0.2909    0.5077    0.9585    0.9531    1.0000    0.3058    0.0330    0.0174    0.9649    0.5313
    0.6172    0.4233    0.8102    0.2349    0.3058    1.0000    0.7483    0.2014    0.2164    0.2079
    0.2105    0.0936    0.6078    0.6232    0.0330    0.7483    1.0000    0.5814    0.8470    0.6858
    0.1737    0.2957    0.8669    0.6684    0.0174    0.2014    0.5814    1.0000    0.9223    0.0760
    0.2271    0.5256    0.5290    0.8945    0.9649    0.2164    0.8470    0.9223    1.0000    0.5758
    0.2219    0.6622    0.7665    0.2290    0.5313    0.2079    0.6858    0.0760    0.5758    1.0000

3voto

Andrew M Puntos 1141

El determinante de la covarianza no es una idea terrible, pero es probable que usted desea usar el inverso del determinante. Imagen de los contornos (líneas de igual densidad de probabilidad) de una distribución bivariante. Usted puede pensar en el determinante (aproximadamente) medir el volumen de un determinado contorno. A continuación, una alta correlación conjunto de variables que en realidad tiene menos volumen, debido a que los contornos son tan estirado.

Por ejemplo: Si $X \sim N(0, 1)$ $Y = X + \epsilon$ donde $\epsilon \sim N(0, .01)$, luego $$ Cov (X, Y) = \begin{bmatrix} 1 & 1 \\ 1 & 1.01 \end{bmatrix} $$ así $$ Corr (X, Y) \aprox \begin{bmatrix} 1 & .995 \\ .995 & 1 \end{bmatrix} $$ por lo que el factor determinante es $\approx .0099$. Por otro lado, si $X, Y$ son independientes $N(0, 1)$, entonces el determinante es 1.

Como cualquier par de variables se hace más casi linealmente dependientes, el determinante se aproxima a cero, ya que es el producto de los autovalores de la matriz de correlación. Por lo que el factor determinante no puede ser capaz de distinguir entre una pareja de casi variables dependientes, a diferencia de muchas parejas, y es poco probable que sea un comportamiento que usted desea. Yo sugeriría que la simulación de un escenario de este tipo. Usted podría utilizar un esquema como este:

  1. Fijar una dimensión P, un aproximado de rango r, y sea s un gran constante
  2. Vamos a[1], ..., A[r] ser aleatorio, vectores, dibujado iid de N(0, s) de distribución
  3. Conjunto De Sigma = Identidad(P)
  4. Para i=1..r: Sigma = Sigma + a[i] * a[i]^T
  5. Conjunto de rho a ser Sigma escalar como una matriz de correlación

Luego de rho se han aproximado rango r, que determina cuántos casi linealmente independientes variables que tienen. Usted puede ver cómo el determinante reflejo aproximado de rango r y la escala s.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X