在查看R帮助时说:
请注意" spearman"基本上计算cor(R(x),R(y))(或cov(。,。))其中R(u):= rank(u,na.last =" keep")
然而,当我尝试计算相关性时,一次使用方法=" spearman"一次用方法="皮尔森"但是当我的数据包含缺失时,我得到了不同的结果。
set.seed(23525)
a<-rnorm(100,50,1)
b<-a+rnorm(100,0,2)
a[1]<-NA
b[2]<-NA
cor(a,b,use="complete.obs",method="spearman") # 0.3292785
cor(rank(a,na.last="keep"),rank(b,na.last="keep"),use="complete.obs") # 0.3255958
使用&#34; complete.obs&#34;应该做一个案例删除我的数据。但显然它没有。如果我手动删除,我会得到预期的结果:
cor(rank(a[-c(1,2)],na.last="keep"),rank(b[-c(1,2)],na.last="keep"),use="complete.obs")
# 0.3292785
所以我很困惑为什么两种方法都不会产生相同的结果。有人可以解释一下吗?我有什么东西可以忽略吗?