R相关性分析

1.理论部分

Pearson(默认)

最常规的线性分析。计算公式

适用条件

  • 变量线性关系、连续
  • 两个变量总体符合正态分布
  • 标准差不能为0
  • 异常值较敏感

Spearman(秩相关系数)

其值与两个相关变量的具体值无关,而仅仅与其值之间的大小关系有关。

(1,10,100,101)->(1,2,3,4)
(21,10,15,13)->(4,1,3,2)

再利用Pearson公式对转换后的(1,2,3,4,)计算相关性.
适用条件:

  1. 等级变量之间的相关系数
  2. 对处理异常比较好,因为最大值最小值的具体数值对整体数据影响较大,但是排序通常不会有明显变化

Kendall(和谐系数)

其值与两个相关变量的具体值无关,而仅仅与其值之间的大小关系有关。
对于X,Y的两对观察值Xi,Yi和Xj,Yj,如果XiYi并且Xj>Yj,则称这两对观察值是和谐的,否则就是不和谐的。偏向一致性评价
计算公式

显著性检测

进行相关性检测时数据量越大,相关系数越小,所以相关系数和显著性应该同时说明。
计算公式:

查表确定显著性水平α
以上理论知识相关参考:https://www.cnblogs.com/kemaswill/archive/2012/11/01/2749842.html

2.R实现部分

require(xlsx);
require(psych);
require(corrplot);
require(corrgram);
require(PerformanceAnalytics);

data<-"E:\\corr\\CorrM_1000.xlsx";
M1<-read.xlsx(data,1,encoding='UTF-8');

##计算相关系数,并绘制相关系数矩阵
##corr<-cor(M1,method="pearson");

##无法生成散点图
##corrplot.mixed(corr,upper="circle",lower="shade",addCoef.col = "black");

##计算显著性水平
##corr.test(M1, adjust = "none", use = "complete")


##有上下两个部分,但是无法生成相关系数的圆圈
##corrgram(M1,lower.panel=panel.fill,upper.panel=panel.pts,text.panel=panel.txt)


##也无法生成相关系数的圆圈
chart.Correlation(M1, histogram=TRUE, pch=30);

效果图

R相关性分析_第1张图片

其中,1个点代表90%的置信度,1颗星代表95%的置信度,2颗代表99%的置信度,3颗星代表99.9%的置信度

R相关性分析_第2张图片

一直想绘制散点图在下(或下),相关性圆圈在上(或下),并标注出相关性大小和显著性,但一直没有成功。知道的评论区教教我呀~~~
另,panel所有函数:

R相关性分析_第3张图片

你可能感兴趣的:(R相关性分析)