我尝试使用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的对应关系设置为自身,对角线上方和下方的相同值只是重复的相同两组的相关性(即set2
到set1
与set1
到set2
)。
但是,我返回的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值。