4

我有一个数据集,如下所示;

x1          x2          x3
-10.593017  NaN         NaN
-10.300049  3.624823938 NaN
-11.776855  3.707569866 NaN
-10.342041  3.770059949 NaN
-19.416992  3.819520417 6.516808442
-12.051026  3.898067841 6.753639662
NaN         3.687338806 6.317082898
NaN         NaN         6.226243427

你能告诉我如何计算相关矩阵吗?程序中可以使用“corrcoef”吗?或者还有其他方法。请告诉我。谢谢你!

4

1 回答 1

7

您可以使用CORRCORRCOEF函数。两个函数都将返回相同的相关矩阵(对于非常低的 p 值,结果可能会有所不同,具体取决于您的 MATLAB 版本)。

您需要注意 NaN 值。两者都有参数'rows'。这是来自文档的引用,其中包含可能的参数值:

“all”(默认)使用所有行,“complete”使用没有 NaN 值的行,或者“pairwise”使用 i 或 j 列中没有 NaN 值的行计算 R(i,j)。

如果您将 NaN 元素设置'rows''all '将使用所有元素,但您将获得 NaN 作为结果。'complete'将只使用任何列中没有 NaN 的行。'pairwise'是我通常使用的,它会为每个比较独立地删除带有 NaN 的行。

因此,如果您x1和是列向量来获取相关矩阵,请使用x2x3

[rho, pval] = corr([x1, x2, x3], 'rows','pairwise');

如果您的变量是一个矩阵中的列x

[rho, pval] = corr(x, 'rows','pairwise');

或使用corrcoef代替corr. CORR 还可以计算 Pearson 相关性以外的其他计算方法,例如 Spearman 或 Kendall。'type'用参数指定它。

于 2013-04-03T04:13:51.503 回答