Calculating Kendall's tau
    29 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
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!