cor和cor.test之间的R差异

时间:2014-03-13 09:29:50

标签: r

我不明白为什么函数cor和cor.test不能给我与pearson方法相同的结果!

> cor(varCor,method="pearson")
              Distributeurs Importateurs Producteurs Préparateurs
Distributeurs     1.0000000    0.5480281   0.2357191    0.7115063
Importateurs      0.5480281    1.0000000  -0.2318366    0.1740853
Producteurs       0.2357191   -0.2318366   1.0000000    0.4414107
Préparateurs      0.7115063    0.1740853   0.4414107    1.0000000

> cor.test(annee2010$Distributeurs,annee2010$Préparateurs, method="pearson")

    Pearson's product-moment correlation

data:  annee2010$Distributeurs and annee2010$Préparateurs
t = 14.6233, df = 94, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.7599547 0.8859092
sample estimates:
      cor 
0.8334552 

它来自我的数据还是我不理解的差异?

2 个答案:

答案 0 :(得分:1)

你是对的!它来自我的数据! varCor是一个na.omit(annee2010)...所以当我处理相同的data.frame时它会改变结果...

cor.test(varCor$Distributeurs,varCor$Préparateurs, method="pearson")

    Pearson's product-moment correlation

data:  varCor$Distributeurs and varCor$Préparateurs
t = 4.5283, df = 20, p-value = 0.0002048
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.4141262 0.8716421
sample estimates:
      cor 
0.7115063 

谢谢!!

答案 1 :(得分:1)

cor()和cor.test() 兼容。 我猜您的varCor已经是方差协方差矩阵,您再次调用cor()? 如果你有一个方差 - 协方差矩阵,并希望得到相关性, 好用    cov2cor() 在vcov矩阵上。

参见?cov2cor (并查看cov2cor的代码。我将此函数添加到R的原因之一是显示 如何您可以通过既高效又易于理解的方式进行计算。 .. 如果你分别查看R的真实源代码或那个函数,后者会更多,因为你可以在R代码中看到 comments 。 在线,这将是最底层的    https://svn.r-project.org/R/trunk/src/library/stats/R/cor.R