calculate the correlation of a number of time series
古いコメントを表示
If I have a matrix:
data = rand(365,5);
What is the most appropriate way of calculating the correlation between each column and the mean of the remaining columns. For example, for the first column:
R = nonzeros(tril(corrcoef(data(:,1),mean(data(:,2:end)')'),-1));
How could I repeat this procedure so that I have 5 correlation values i.e. for each series?
採用された回答
その他の回答 (2 件)
bym
2012 年 7 月 19 日
Don't know what you are trying to accomplish, but here is one way
clc; clear
data = rand(365,5);
for k = 1:5
r = corrcoef(data(:,1),mean(data(:,2:end),2));
R(k) = r(2);
data = circshift(data,-1);
end
R
1 件のコメント
Andrei Bobrov
2012 年 7 月 20 日
data = circshift(data,[0 -1]);
Teja Muppirala
2012 年 7 月 20 日
diag( corr( bsxfun(@minus, sum(data,2), data), data) )
1 件のコメント
Teja Muppirala
2012 年 7 月 20 日
CORR is from the Statistics Toolbox
カテゴリ
ヘルプ センター および File Exchange で Correlation and Convolution についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!