为什么我会得到相关结果?

4个视图(过去30天)
我有两个矩阵A是1*1058,B是1*1058,两个矩阵都包含了一些NaN值。有没有办法得到这两个矩阵之间的相关性。

公认的答案

伊夫J
伊夫J 2021年8月15日
除非有充分的理由插补缺失的数据,否则可以从两个向量中删除缺失的值。
nanidx=isnan(A)| isnan(B);
corr(A(~nanidx),B(~nanidx))
9评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年8月16日
这就是Ive J的代码所做的:删除X为nan的所有位置 Y是楠。

登录以发表评论。

更多答案(1)

春如
春如 2021年8月13日
在计算相关性之前,使用“fillmissing”填充NAN。有关更多详细信息,请参阅doc fillmissing。
7评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年8月17日
数学上,如果你有向量A和B,那么
cAB=corr(A,B);
P=randperm(numel(A));
pA = (P);
pB=B(P);
cpAB=corr(pA,pB);
然后cAB需要在四舍五入内等于cpAB 顺序 在相同的向量中,元素之间的相对比例并不重要:只有 相关的 这两个载体之间的关系很重要。
但是,如果你将fillmissing(A)与fillmissing(pA)进行比较,那么你会得到不同的结果,因为fillmissing是基于附近的值,假设存在某种平滑连续性。这与不关心序列顺序的相关数学不太兼容。
如果你有一些向量的预测函数,那么是的,应用这个预测函数可能是有意义的。在某些情况下,应用像narx这样的东西进行预测甚至可能是有意义的。但这必须基于向量所代表的知识。fillmissing()不知道它们代表什么。

登录以发表评论。

s manbetx 845


释放

R2019b

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!