Calculating Kendall's tau
67 views (last 30 days)
Show older comments
Hi, I'm trying to calculate Kendall's tau using the 'corrcoef' command. My code so far is:
A_col = A_short'
idx = find(~isnan(B)+~isnan(A_col)==2);
[RHO,PVAL] = corrcoef(B(idx),A_col(idx),'type',Kendall)
The last line produces the error 'Undefined function or variable 'Kendall'. According to matlab help this is a valid value so how can I specify that I want a Kendall tau correaltion as oposed to a Pearson correlation?
Please help. Thanks
0 Comments
Accepted Answer
Wayne King
on 3 Aug 2013
Edited: Wayne King
on 3 Aug 2013
Hi Anna, 'Kendall' is not an option of corrcoef(). It is an option for the function corr(), which is part of the Statistics Toolbox.
So, this will work:
x = randn(30,4);
y = randn(30,4);
y(:,4) = sum(x,2);
[r,p] = corr(x,y,'type','Kendall');
provided you have the Statistics Toolbox
More Answers (1)
VENKATA PHANIKRISHNA B
on 15 Oct 2019
Edited: VENKATA PHANIKRISHNA B
on 15 Oct 2019
a = [15, 18, 21, 24, 27]' ;
b = [25, 25, 27, 31, 32]' ;
[RHO,PVAL] = corr(a,b,'Type','Pearson');
fprintf('Pearsons correlation: %.3f \n',RHO);
fprintf('Pearsons P: %.3f \n',PVAL);
[RHO,PVAL] = corr(a,b,'Type','Spearman');
fprintf('Spearman correlation: %.3f \n',RHO);
fprintf('Spearman P: %.3f \n',PVAL);
[RHO,PVAL] = corr(a,b,'Type','Kendall');
fprintf('Kendall correlation: %.3f \n',RHO);
fprintf('Kendall P: %.3f \n',PVAL);
Pearsons correlation: 0.953
Pearsons P: 0.012
Spearman correlation: 0.975
Spearman P: 0.033
Kendall correlation: 0.949
Kendall P: 0.033
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!