R语言入门:检验相关性的显著性

Candice
Candice
Candice
96
文章
0
评论
2020-04-1809:05:00 评论 2,868 989字
摘要

本文将介绍如何使用R语言检验相关性的显著性。

一、问题

计算两个变量的相关性,但不知道相关性在统计上是否足够显著。

二、解决方案

cor.test函数不仅可以计算P值,还可以算出相关性的可信区间。如果变量来自正态分布总体,可以用默认的相关性定义,即Pearson相关性:

代码

> cor.test(x, y)

对于非正态分布的总体,可以用Spearman相关性:

代码

> cor.test(x, y, method="spearman")

这个函数会返回几个值,包括显著性检验的P值。通常,P值小于0.05表示相关性很有可能是显著的,而P值大于0.05则表示不显著。

三、讨论

根据我的经验,人们经常没有检查相关性的显著性。实际上,不少人甚至都不知道相关性也有可能是不显著的。他们就是把数据丢到计算机中,然后折腾出一个相关性,最后盲目的相信结果。他们其实应该问问自己:数据量够大吗?相关性足够大吗?庆幸的是,cor.test函数可以回答这些问题。假设有两个向量,x和y,两者中的值符合正态分布。我们可以看到它们的相关系数大于0.83:

代码

> cor(x, y)

[1] 0.8352458

别天真了!试试cor.test,p值大到了0.1648:

代码

> cor.test(x, y)

Pearson’s product-moment correlation

data: x and y

t = 2.1481, df = 2, p-value = 0.1648

alternative hypothesis: true correlation is not equal to 0

95 percent confidence interval:

-0.6379590 0.9964437

sample estimates:

cor

0.8352458

通常P值的阈值是0.05,所以我们可以得出结论:这个相关性不显著。

还可以用置信区间检查相关性。在这个例子中,置信区间是(0.638, 0.996)。这个区间包含0,所以相关性有可能是0,其实也就是可能没有相关性。要强调一下,不要盲目的相信相关性是显著的。

cor.test函数还会输出cor得到的点估计(在最下面,有"sample estimates"说明),就不需要再运行cor了。

默认情况下,cor.test会计算皮尔森相关性,它假设整体是服从正态分布的。Spearman方法是无参的,所以没有这个假设。在处理非正态分布的数据时,用method="spearman"。

End.

来源:数据分析网

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: