Correlation between multiples items

8 ビュー (過去 30 日間)
Davide Sinesi
Davide Sinesi 2019 年 10 月 24 日
回答済み: Subhadeep Koley 2019 年 10 月 31 日
Hello, Could I get a range of items less correlated from a correlation matrix?
For example from:
A, B, C, D, E ... N
A,
B
C
D
E
...
N
Output: items less correlated are ''A,D,E''
I only need a multiple combination of items that are less correlated each others. (A - D), (A - E), (D - E)
Sorry for my English...
Thank you everyone!
Best regards
  4 件のコメント
John D'Errico
John D'Errico 2019 年 10 月 30 日
Seriously, this question has nothing to do with MATLAB. Your question is too vague to have an answer.
So spend some time and think about exactly what you need, in terms of mathematics (or statistics). That may involve asking questions on another forum, perhaps a statistics forum. Until you define what problem you are trying to solve, you cannot formulate it in terms of code, in any language.
John D'Errico
John D'Errico 2019 年 10 月 30 日
編集済み: John D'Errico 2019 年 10 月 30 日
By the way, your question, if I interpret it as I wonder if I know where you may be going, may have serious problems anyway.
For example, suppose that you see that A is not highly correlated to B? As well, you might see that B is not highly correlated to C. However, it can still be true that A and C are highly correlated. In fact, A and C may be perfectly correlated to each other. Consider the matrix:
C = [1 0 1;
0 1 0;
1 0 1]
So we have A and B with a zero correlation. Likewise, B and C have zero correlation. But A and C are perfectly correlated.
The relation, "not highly correlated" is not a transitive relation. So be careful in any conclusions that you may draw.

サインインしてコメントする。

採用された回答

Subhadeep Koley
Subhadeep Koley 2019 年 10 月 31 日
Use the function below to find out n least correlated items,
function findLeastCorr(corr)
% FINDLEASTCORR finds least correlated items from a given correlation matrix
% INPUT
% -----
% corr_cell - User's correlation matrix
%
% EXAMPLE
% -------
% findLeastCorr(yourCorrMatrix);
%
%
sz = size(corr);
% Sorting from lowest correlatin to highest
[~, corr_ind] = sort(corr(:));
% Finding the index of the least correlated items
prompt = 'How many least correlated items you want?';
n = input(prompt);
items = {1,1,n};
for i=1:n
[a, b] = ind2sub(sz,corr_ind(i));
items{i} = [a, b];
end
% Identify unique elements
items_mat = cell2mat(items);
items_unique = unique(items_mat);
% Displaying the items
disp(['Items less correlated are: ',num2str(items_unique(1:end))]);
end
Hope this helps!

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCorrelation and Convolution についてさらに検索

タグ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by