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

조회 수: 1 (최근 30일)
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.

채택된 답변

the cyclist
the cyclist 2023년 11월 7일
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
julian gaviria
julian gaviria 2023년 11월 14일
편집: the cyclist 2023년 11월 14일
As simple as adding 'pairwise'
[r,p]= corr(A(ii_uptri_conn), B(ii_uptri_conn),'rows', 'pairwise');

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

제품


릴리스

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by