Why do I get correlation result NaN?
显示 更早的评论
I have two matrices A is of 1*1058 and B is 1*1058, both matrices have some NaN values included in them. Is there any way to get correlation between these two matrices.
采纳的回答
更多回答(1 个)
Chunru
2021-8-13
0 个投票
Use "fillmissing" to fill up the nans before computing the correlation. doc fillmissing for more details.
7 个评论
Bharath kumar boyanapalli
2021-8-16
Walter Roberson
2021-8-16
fillmissing() cannot work in cases where the NaN are at the beginning or end.
Bharath kumar boyanapalli
2021-8-16
fillmissing has a lot of options:
A = [NaN NaN 5 3 NaN 5 7 NaN 9 NaN;
8 9 NaN 1 4 5 NaN 5 NaN 5;
NaN 4 9 8 7 2 4 1 1 NaN]
F = fillmissing(A,'linear',2,'EndValues','nearest')
Bharath kumar boyanapalli
2021-8-17
Chunru
2021-8-17
Anyway, if you have data with so many NANs, you need to doubt your data first before doubting the processing techniques. There is not fool proof technique for filling missing data. It all depends on what data you have and what you want.
Walter Roberson
2021-8-17
Mathematically, if you have vectors A and B, then
cAB = corr(A,B);
P = randperm(numel(A));
pA = A(P);
pB = B(P);
cpAB = corr(pA, pB);
then cAB needs to equal cpAB to within round-off. The order of the elements relative to each other in their same vectors do not matter: only the correspondance between the two vectors matter.
If, though, you were to fillmissing(A) and compare that to fillmissing(pA) then you would get different results, because fillmissing works based upon nearby values, under the assumption there is some kind of smooth continuity. This is not really compatible with the mathematics of correlation which does not care about order within the sequence.
If you have some prediction function for your vectors, then Yes, it might make sense to apply that prediction function. It might even make sense to apply something like narx to predict in some cases. But that would have to be done based upon knowledge of what the vectors represent. fillmissing() has no knowledge of what they represent.
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!