使用corrcoef和所有p值返回为1或0

时间:2014-05-12 19:41:11

标签: matlab matrix

我尝试使用matlab中的corrcoef函数测试4组数据的相关性。每个包含50个值。开始时,数据在.csv文件中,每个列有4列,每列50个值。我已将所有4组放入标记为y的列向量中:

y=[[set1] [set2] [set3] [set4]]

所以y是一个包含4列50行的矩阵。

我使用

调用了corrcoef函数
[r,p]=corrcoef(y)

当我运行这段代码时,我得到一个4x4 r矩阵,对角线为1&s;并且在它上面或下面有相同值的值,这似乎是正确的,因为1必须是1的对应关系设置为自身,对角线上方和下方的相同值只是重复的相同两组的相关性(即set2set1set1set2)。

但是,我返回的p值矩阵似乎都错了,我不确定为什么。我得到一个对角线为1×4的4x4矩阵,上面和下面的所有值都是0.显然这是不正确的,因为它说的是偶然得到完美相关的概率是100%而得到"不完美"偶然的相关几乎是不可能的。

任何人都可以帮我看看我在这里做错了什么吗?如果需要,我可以提供更多细节。

编辑:只是想提及我尝试按照mathworks帮助页面上的说明操作: http://www.mathworks.com/help/matlab/ref/corrcoef.html 在他们的例子中,他们确实显示沿着对角线的p值,因为所有都等于1,任何人都能告诉我为什么会这样吗?

此外,p值并不完全等于0,它们只是荒谬地小,如5.9601e-10,这让我觉得有些不对劲。

Edit2:我还尝试使用excel的corr函数计算两个集合之间的相关系数,它给了我与matlab相同的r值。

0 个答案:

没有答案