Định lượng bao nhiêu mối tương quan nhiều hơn nữa Một ma trận tương quan A chứa so với ma trận tương quan B


9

Tôi có 2 ma trận tương quan và (sử dụng hệ số tương quan tuyến tính của Pearson thông qua Corrcoef ()) của Matlab . Tôi muốn để định lượng bao nhiêu "hơn mối tương quan" chứa so . Có bất kỳ số liệu tiêu chuẩn hoặc kiểm tra cho điều đó?BMộtBBMộtB

Ví dụ: ma trận tương quan

nhập mô tả hình ảnh ở đây

chứa "nhiều tương quan" hơn

nhập mô tả hình ảnh ở đây

Tôi nhận thức của M nghiệm của Box , được sử dụng để xác định xem hai hoặc hơn ma trận phương sai bằng nhau (và có thể được sử dụng cho các ma trận tương quan cũng kể từ khi sau này là tương tự như các ma trận hiệp phương sai của biến ngẫu nhiên chuẩn).

Ngay bây giờ tôi đang so sánh và thông qua giá trị trung bình của các giá trị tuyệt đối của các phần tử không đường chéo của chúng, tức là. (Tôi sử dụng tính đối xứng của ma trận tương quan trong công thức này). Tôi đoán rằng có thể có một số số liệu thông minh hơn.B 2MộtB2n2-nΣ1Tôi<jn|xTôi,j|


Theo nhận xét của Andy W về yếu tố quyết định ma trận, tôi đã chạy thử nghiệm để so sánh các số liệu:

  • Giá trị trung bình của các giá trị tuyệt đối của các phần tử không chéo của chúng :Hệ métnghĩa là()
  • Ma trận xác định : :Hệ métbản ngã()

Đặt và hai ma trận đối xứng ngẫu nhiên với các ma trận trên đường chéo có kích thước . Tam giác trên (đường chéo loại trừ) của được điền với các số float ngẫu nhiên từ 0 đến 1. Tam giác trên (loại trừ đường chéo) của được điền với các số float ngẫu nhiên từ 0 đến 0,9. Tôi tạo ra 10000 ma trận như vậy và thực hiện một số phép tính:B 10 × 10 A BMộtB10×10MộtB

  • Hệ métnghĩa là(B)Hệ métnghĩa là(Một) 80,75% thời gian
  • Hệ métbản ngã(B)Hệ métbản ngã(Một) 63,01% thời gian

Đưa ra kết quả tôi sẽ có xu hướng nghĩ rằng là một số liệu tốt hơn.Hệ métnghĩa là(B)

Mã 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

Ví dụ về ma trận đối xứng ngẫu nhiên được tạo với các ma trận trên đường chéo:10×10

>> 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

2
Vì tò mò, loại câu hỏi nào bạn đang cố gắng trả lời với điều này?
Shadowtalker

1
Yếu tố quyết định của ma trận có thể được coi là thể tích của ma trận trong không gian đa chiều. Điều này có thể là xấu mặc dù nếu bạn có ma trận tương quan có điều kiện.
Andy W


1
@AndyW Cảm ơn, đó là một ý tưởng tuyệt vời, tôi đã thực hiện một số thử nghiệm (xem câu hỏi cập nhật), yếu tố quyết định của ma trận dường như kém chính xác hơn một chút so với giá trị trung bình.
Franck Dernoncourt

2
@FranckDernoncourt, với tôi không rõ ràng nếu các ma trận đối xứng mà bạn đang mô phỏng nhất thiết phải là xác định dương. Họ luôn có giá trị riêng tích cực?
Andrew M

Câu trả lời:


3

Yếu tố quyết định của hiệp phương sai không phải là một ý tưởng tồi, nhưng có lẽ bạn muốn sử dụng nghịch đảo của định thức. Hình ảnh các đường viền (đường có mật độ xác suất bằng nhau) của phân phối bivariate. Bạn có thể nghĩ về định thức là (xấp xỉ) đo thể tích của một đường viền đã cho. Sau đó, một tập hợp các biến tương quan cao thực sự có khối lượng ít hơn, bởi vì các đường viền được kéo dài.

X~N(0,1)Y= =X+εε~N(0,.01)

Cov(X,Y)= =[1111,01]
Corr(X,Y)[1.995.9951]
0,0099X,YN(0,1)

Khi bất kỳ cặp biến nào trở nên phụ thuộc gần như tuyến tính hơn, định thức sẽ tiến gần đến 0, vì đó là sản phẩm của các giá trị riêng của ma trận tương quan. Vì vậy, yếu tố quyết định có thể không thể phân biệt giữa một cặp biến số gần như phụ thuộc, trái ngược với nhiều cặp và điều này khó có thể là hành vi mà bạn mong muốn. Tôi sẽ đề nghị mô phỏng một kịch bản như vậy. Bạn có thể sử dụng một sơ đồ như thế này:

  1. Khắc phục thứ nguyên P, thứ hạng gần đúng r và là một hằng số lớn
  2. Đặt A [1], ..., A [r] là các vectơ ngẫu nhiên, rút ​​iid từ phân phối N (0, s)
  3. Đặt Sigma = Danh tính (P)
  4. Với i = 1..r: Sigma = Sigma + A [i] * A [i] ^ T
  5. Đặt rho thành Sigma được chia tỷ lệ thành ma trận tương quan

Sau đó, rho sẽ có thứ hạng gần đúng r, xác định có bao nhiêu biến độc lập gần như tuyến tính mà bạn có. Bạn có thể thấy cách xác định phản ánh thứ hạng gần đúng r và tỷ lệ s.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.