Dealing with NaNs in corr function (upper/lower triangles of matrices with same dimension)

6 vues (au cours des 30 derniers jours)
The correlation coeficients of the upper and lower parts of matrices A,B (see attachment) yield "NaNs
nn=374;
temp= ~eye (nn);
ii_all_conn = find(temp>0);
ii_uptri_conn = find(triu(temp,1)> 0);
ii_lotri_conn = find(tril(temp,-1)> 0);
% Corr plots up entries
figure, plot(A(ii_uptri_conn), B(ii_uptri_conn),'o'), grid on, xlabel('A'), ylabel('B');
[r,p]= corr(A(ii_uptri_conn), B(ii_uptri_conn));
title(['Upper connections - r = ' num2str(r) ' (p ' num2str(p) ')']);
%Corr plots low entries
figure, plot(A(ii_lotri_conn), B(ii_lotri_conn),'o'), grid on, xlabel('A'), ylabel('B');
[r,p]= corr(A(ii_lotri_conn), B(ii_lotri_conn));
title(['Lower connections - r = ' num2str(r) ' (p ' num2str(p) ')']);
How can I modify the code to skip the NaN values in both matrices?
My code works (i.e., it yields person and p-values) when matrices A,B do not have NaNs.

Réponse acceptée

the cyclist
the cyclist le 7 Nov 2023
The documentation page for the corr function describes how to use the "Row" name-value parameter to decide how to deal with missing data.
  2 commentaires
julian gaviria
julian gaviria le 14 Nov 2023
Modifié(e) : the cyclist le 14 Nov 2023
As simple as adding 'pairwise'
[r,p]= corr(A(ii_uptri_conn), B(ii_uptri_conn),'rows', 'pairwise');
the cyclist
the cyclist le 14 Nov 2023
always nice when there is a simple solution

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by