相关系数可以用来描述定量变量之间的关系
相关系数的符号表明关系的方向,其值的大小表示关系的强弱程度
一般认为0.3一下的为弱相关,0.3-0.7之间的为中相关,0.7以上的为强相关
下面描述的关系都是线性相关,如果结果返回为不相关仅仅表示没有线性相关性

相关的类型
R语言可以计算多种相关系数,包括Peason相关系数,Spearman相关系数,kendall相关系数,偏相关系数,多分格相关系数和多系列相关系数。
1,Pearson,Spearman和Kendall相关
Pearson积差相关系数衡量了两个定量变量之间的线性相关程度
Spearman等级相关系数则衡量分级定序变量之间的相关程度
Kenddall’s Tau相关系数也是一种非参数的等级相关度量

Pearson,Spearman和Kendall相关的区别
两个连续变量间呈现线性相关时,使用Pearson积差相关系数,
不满足积差相关分析的使用条形时(双变量成正太分布,为线性相关),需使用Spearman秩相关来描述变量间的相关变化关系
Spearman相关系数又称秩相关系数,是利用两变量的秩次大小作线性相关分析,对原始变量的分布不作要求,属于非参数统计方法,
相对于Pearson相关使用范围要广些,对于服从Pearson相关系数的数据也可以计算Spearman相关系数,但是效果要低一些
(因为Spearman忽略了原始变量的值的大小,只看重此值在整个变量数据的名次位置)
Kendall’s tau-b等级相关系数,用于反映分类变量相关性指标,适用于两个分类变量均为有序分类的情况

1,若非等间距测度的连续变量,因为分布不明-可用等级相关也可用Pearson相关,对于完全等级离散变量必用等级相关
2,当资料不服从双变量正态分布或总体分布型未知或原始数据时用等级表示时,宜用Spearman或Kendall相关
3,若不恰当用了Kendall等级相关分析则可能得出相关系数偏小的结论。对于一般情况默认数据服从正太分布的,用Pearson分析方法

斯皮尔曼等级相关是根据等级资料研究两个变量间相关关系的方法。它是依据两列成对等级的各对等级数之差来进行计算的,所以又称为“等级差数法”
斯皮尔曼等级相关对数据条件的要求没有积差相关系数严格,只要两个变量的观测值是成对的等级评定资料,或者是由连续变量观测资料转化得到的等级资料,
不论两个变量的总体分布形态、样本容量的大小如何,都可以用斯皮尔曼等级相关来进行研究。
Kendall’s相关系数
肯德尔(Kendall)W系数又称和谐系数,是表示多列等级变量相关程度的一种方法。适用这种方法的数据资料一般是采用等级评定的方法收集的,
例如让K个评委(被试)评定N件事物,或1个评委(被试)先后K次评定N件事物。等级评定法每个评价者对N件事物排出一个等级顺序,
最小的等级序数为1 ,最大的为N,若并列等级时,则平分共同应该占据的等级,如,平时所说的两个并列第一名,他们应该占据1,2名,
所以它们的等级应是1.5,又如一个第一名,两个并列第二名,三个并列第三名,则它们对应的等级应该是1,2.5,2.5,5,5,5,这里2.5是2,3的平均,5是4,5,6的平均。
肯德尔(Kendall)U系数又称一致性系数,是表示多列等级变量相关程度的一种方法。
该方法同样适用于让K个评委(被试)评定N件事物,或1个评委(被试)先后K次评定N件事物所得的数据资料,
只不过评定时采用对偶评定的方法,即每一次评定都要将N个事物两两比较,评定结果如下表所示,
表格中空白位(阴影部分可以不管)填入的数据为:若i比j好记1,若i比j差记0,两者相同则记0.5。一共将得到K张这样的表格,
将这K张表格重叠起来,对应位置的数据累加起来作为最后进行计算的数据,这些数据记为γij。

这三种相关系数的计算
cor()函数可以计算这三种相关系数
cov()函数可以用来计算协方差
cor()函数的格式为
cor(x,use=,method=)
参数x表示矩阵或数据框
参数use指定缺失数据的处理方式。可选的方式为all.obs(假设不存在缺失数据–遇到缺失数据时将报错),
everything(遇到缺失数据时,相关系数的计算结果将被设为missing),complete.obs(行删除),以及pairwise.complete.obs(成对删除)
method 指定相关系数的类型,可选类型有pearson,spearman或kendall
默认参数为use="everything"和method=“pearson”
示例

> #使用的数据为state.x77表中的数据
> states <- state.x77[,1:6]
> options(digits = 2)
> #计算协方差
> cov(states)Population Income Illiteracy Life Exp Murder HS Grad
Population   19931684 571230     292.87  -407.84 5663.5 -3551.5
Income         571230 377573    -163.70   280.66 -521.9  3076.8
Illiteracy        293   -164       0.37    -0.48    1.6    -3.2
Life Exp         -408    281      -0.48     1.80   -3.9     6.3
Murder           5664   -522       1.58    -3.87   13.6   -14.5
HS Grad         -3552   3077      -3.24     6.31  -14.5    65.2
> #计算相关系数
> cor(states)Population Income Illiteracy Life Exp Murder HS Grad
Population      1.000   0.21       0.11   -0.068   0.34  -0.098
Income          0.208   1.00      -0.44    0.340  -0.23   0.620
Illiteracy      0.108  -0.44       1.00   -0.588   0.70  -0.657
Life Exp       -0.068   0.34      -0.59    1.000  -0.78   0.582
Murder          0.344  -0.23       0.70   -0.781   1.00  -0.488
HS Grad        -0.098   0.62      -0.66    0.582  -0.49   1.000
> #计算Spearman的相关系数
> cor(states,method = "spearman")Population Income Illiteracy Life Exp Murder HS Grad
Population       1.00   0.12       0.31    -0.10   0.35   -0.38
Income           0.12   1.00      -0.31     0.32  -0.22    0.51
Illiteracy       0.31  -0.31       1.00    -0.56   0.67   -0.65
Life Exp        -0.10   0.32      -0.56     1.00  -0.78    0.52
Murder           0.35  -0.22       0.67    -0.78   1.00   -0.44
HS Grad         -0.38   0.51      -0.65     0.52  -0.44    1.00

注意,上述结果并未指明相关系数是否显著不为0,由于这个原因需要对相对关系数进行显著性检验

偏相关
偏相关是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系
在多元变量分析的情况下,一个变量与另一个变量之间的关系,可能还会受到第三个变量的影响,
比如施肥量与产量之间的关系,可能还会受天气的影响,还会受土地的肥沃程度影响。
如果单纯的考虑它们之间的相关系数,就不能真实反映它们的关系程度。
应该是考虑在天气情况和土地肥沃程度保持不变的情况下,施肥量与产量的相关系数会趋于更加真实,
这里的相关系数就是偏相关系数。
偏相关的计算
ggm包中的pcor()函数计算偏相关,其格式为
pcor(u,s)
参数U是一个数值向量,前两个数值表示要计算的相关系数的下标,其余的数值为条件变量(即要排除影响的变量)的下标
参数s为变量的协方差阵
例子

> library(ggm)
> colnames(states)
[1] "Population" "Income"     "Illiteracy" "Life Exp"   "Murder"     "HS Grad"
> pcor(c(1,5,2,3,6),cov(states))
[1] 0.35
>

其他类型的相关
polycor包中的hetcor()函数可以计算一种混合的相关矩阵,其中包括数值型变量的Pearson积差相关系数
数值型变量和有序变量之间的多系列相关系数,有序变量之间的多分格相关系数以及二分变量之间的四分相关系数

2,相关性的显著性检验
关系的显著性:指两(或多)变量之间关系的统计显著水平,一般要求P<0.05.
如果不显著(p>0.05),不管其相关系数多强都没有讨论的意义。
使用函数cor.test()函数对单个的Pearson,Spearman和Kendall相关系数进行检验。
函数cor.test()的使用格式为
cor.test(x,y,alternative = ,method = )
参数x,y表示要检验的相关性的变量
alternative则用来指定进行双侧检验或单侧检验(取值为two.side,less,greater)
method用以指定要计算的相关类型("pearson,kendall,spearman)

当研究的假设为总体的相关系数小于0时,使用alternative=“less”
当研究的假设为总体的相关系数大于0时,使用alternative=“greater”
当研究的假设为总体的相关系数不为0时,使用alternative=“two.side”(其为默认设置)
注意cor.test()函数每次只能检验一种相关关系,不能像cor()函数那样一次性计算多种变量之间的相关系数生成相关系数矩阵
例子

>cor.test(states[,3],states[,5])Pearson's product-moment correlationdata:  states[, 3] and states[, 5]
t = 7, df = 48, p-value = 1e-08
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:0.53 0.82
sample estimates:
cor
0.7 > cor(states[,3],states[,5])
[1] 0.7
#cor.test(states[,3],states[,5])返回的p-value=1e-08
#如果总体的相关度为0的话,表示预计在一千万次机会(即p=1e-08)中只有一次的机会见到0.7这样大的相关样本相关度
#0.7为样本的相关度

psych包中提供的corr.test()函数可以一次性的多对多的生成相关系数矩阵和显著性水平矩阵
例子

> states <- state.x77[,1:6]
> library(psych)
Warning message:
程辑包‘psych’是用R版本3.6.1 来建造的
> corr.test(states,use="complete")
Call:corr.test(x = states, use = "complete")
Correlation matrix Population Income Illiteracy Life Exp Murder HS Grad
Population       1.00   0.21       0.11    -0.07   0.34   -0.10
Income           0.21   1.00      -0.44     0.34  -0.23    0.62
Illiteracy       0.11  -0.44       1.00    -0.59   0.70   -0.66
Life Exp        -0.07   0.34      -0.59     1.00  -0.78    0.58
Murder           0.34  -0.23       0.70    -0.78   1.00   -0.49
HS Grad         -0.10   0.62      -0.66     0.58  -0.49    1.00
Sample Size
[1] 50
Probability values (Entries above the diagonal are adjusted for multiple tests.) Population Income Illiteracy Life Exp Murder HS Grad
Population       0.00   0.59       1.00      1.0   0.10       1
Income           0.15   0.00       0.01      0.1   0.54       0
Illiteracy       0.46   0.00       0.00      0.0   0.00       0
Life Exp         0.64   0.02       0.00      0.0   0.00       0
Murder           0.01   0.11       0.00      0.0   0.00       0
HS Grad          0.50   0.00       0.00      0.0   0.00       0To see confidence intervals of the correlations, print with the short=FALSE option
> head(states)Population Income Illiteracy Life Exp Murder HS Grad
Alabama          3615   3624        2.1       69   15.1      41
Alaska            365   6315        1.5       69   11.3      67
Arizona          2212   4530        1.8       71    7.8      58
Arkansas         2110   3378        1.9       71   10.1      40
California      21198   5114        1.1       72   10.3      63
Colorado         2541   4884        0.7       72    6.8      64

其他显著性检验
偏相关系数的显著性检验
在多元正态性的假设下,psych包中的pcor.test()函数可以用来检验在控制一个或多个额外变量时的两个变量之间的独立性
pcor.test()的格式为
pcor.test(r,q,n)
参数r是由pcor()函数得到的偏相关系数,q为要控制的变量数(以数值表示位置),n为样本大小
psych包中的r.test()函数提供了多种实用的显著性检验方法此函数可以用来检验:
某种相关系数的显著性,两个独立相关系数的差异是否显著,两个基于一个共享变量得到的非独立相关系数的差异是否显著
两个基于完全不同的变量得到的非独立相关系数的差异是否显著

四,t检验
在研究中常见的行为就是对两个组进行比较。
接受某种新药治疗的患者是否较使用某种现有药物的患者表现出了更大程度的改善?某种制造工艺是否较另外一种制造工艺出的不合格品更少。
像这种一个变量是二分变量(只有两种类型的类别变量)一个变量(此变量是结果变量)是连续型变量,并假设结果变量呈正态分布。则可以使用t检验进行显著性检验
由于t检验的前提假设是总体服从正态分布,因此在进行t检验之前要进行正态分布检验。
检验数据是否符合正态分布的方法
1,可以通过画直方图,观察是否为倒钟型。
2,画QQ图,观察形状是否是一条连接主对角线的线,若是,那便是接近正态分布的
3,hapiro.test,这种检验方式适合于样本量比较小(N<20)的时候使用
一个针对两组的独立样本t检验可以用于检验两个总体的均值相等的假设(就是假设两组的总体均值相等看假设是否成立,如果不成立则显著)。
这里假设两组数据时独立的,并且是从正态总体中抽得。
t检验的格式为
t.test(y~x,data)
参数y是一个数值型变量,x是一个二分变量
t检验的格式还可以为
t.test(y1,y2)
参数y1和y2为数值型向量(即各组的结果变量)可选参数data的取值为一个包含了这些变量的矩阵或数据框
与其他多数统计软件不同的是,这里的t检验默认假设方差不相等。并使用了Welsh的修正自由度。可以添加一个参数var.cqual=TRUE以假设方差相等
例子

> library(MASS)
> t.test(Prob~So,data = UScrime)Welch Two Sample t-testdata:  Prob by So
t = -4, df = 25, p-value = 7e-04
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:-0.039 -0.012
sample estimates:
mean in group 0 mean in group 1 0.039           0.064
#此时返回的p值小于0.001可以拒绝原假设
#注意由于结果是一个比例值,可以在执行t检验之前尝试对其进行正态化变换

2,非独立性样本的t检验
例如,检验较年轻男性的失业率是否比年长男性的失业率更高,这种情况下两组数据就不独立。你不能说年轻男性和年长男性的失业率之间没有关系
在两组的观测之间相关时,你获得的是一个非独立组设计,前后侧设计或重复侧量设计同样也会产生非独立的组
非独立样本的t检验假定组间的差异呈正态分布。
其格式为
t.test(y1,y2,paired = TRUE)
其中的y1和y2为两个非独立组的数值向量。
例子

> library(MASS)
> sapply(UScrime[c("U1","U2")],function(x)(c(mean=mean(x),sd=sd(x))))U1   U2
mean 95 34.0
sd   18  8.4
> t.test(UScrime$U1,UScrime$U2,paired = TRUE)Paired t-testdata:  UScrime$U1 and UScrime$U2
t = 32, df = 46, p-value <2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:58 65
sample estimates:
mean of the differences 61

更多关于t检验可以参考R语言t检验及R语言t检验的公式详解
多于两个组的情况
如果想在多于两个的组之间进行比较。如果能够假设数据是从正态总体中独立抽样而得的。可以使用方差分析(ANOVA)

五,组间差异的非参数检验
如果数据无法满足t检验或ANOVA的参数假设,可以转而使用非参数方法。例如若结果变量在本质上就严重偏倚或呈现有序关系,那么就可以使用组间差异的非参数检验
当t检验的假设合理时,参数检验的功效更强(更容易发现存在的差异)。而非参数检验在假设非常不合理时(如对于等级有序数据)更适用
1,两组的比较
若两个组数据独立,可以使用Wilcoxon秩和检验(更广为人知的名字是Mann-Whitney U检验)其格式为
wilcox.test(y~x,data)

wilcox.test(y1,y2)
例子使用Mann-Whitney U 检验回答关于南北州监禁率的问题

> with(UScrime,by(Prob,So,median))
So: 0
[1] 0.038
-------------------------------------------------------------------
So: 1
[1] 0.056
> wilcox.test(Prob~So,data=UScrime)Wilcoxon rank sum testdata:  Prob by So
W = 81, p-value = 8e-05
alternative hypothesis: true location shift is not equal to 0

从返回的p值来看可以拒绝南方各州和非南方各州监禁率相同的假设(p < 0.001)
非独立样本的非参数检验
例子

 sapply(UScrime[c("U1","U2")],median)
U1 U2
92 34
> with(UScrime,wilcox.test(U1,U2,paired = TRUE))Wilcoxon signed rank test with continuity correctiondata:  U1 and U2
V = 1128, p-value = 2e-09
alternative hypothesis: true location shift is not equal to 0

多于两组的比较
如果结果变量不满足ANOVA设计的假设,那么可以使用非参数方法来评估组间的差异
如果各组独立可以使用Kruskal-Wallis检验,如果各组不独立那么Friedman检验
Kruskal-Wallis检验的调用格式为:
kruskal.test(y~A,data)
而Friedman检验的格式为
friedman.test(y~A | B, data)
其中y是数值型结果变量,A是一个分组变量,而B是一个用以认定匹配观测的区组变量
例子使用Kruskal-Wallis检验回答文盲率的问题

> #首先需要将各地区的名称添加到数据集中。这些信息包含在随R基础安装分发的state.region数据集中
> states <- data.frame(state.region,state.x77)
> head(states)state.region Population Income Illiteracy Life.Exp Murder HS.Grad Frost   Area
Alabama           South       3615   3624        2.1       69   15.1      41    20  50708
Alaska             West        365   6315        1.5       69   11.3      67   152 566432
Arizona            West       2212   4530        1.8       71    7.8      58    15 113417
Arkansas          South       2110   3378        1.9       71   10.1      40    65  51945
California         West      21198   5114        1.1       72   10.3      63    20 156361
Colorado           West       2541   4884        0.7       72    6.8      64   166 103766
> kruskal.test(Illiteracy~state.region,data=states)Kruskal-Wallis rank sum testdata:  Illiteracy by state.region
Kruskal-Wallis chi-squared = 23, df = 3, p-value = 5e-05

此例子拒绝了不存在差异的原假设,但是这个检验并没有告诉你哪些地区显著地与其他地区不同
1,可以使用Wilcoxon检验每次比较两组数据。
2,使用wmc()函数同步进行多组比较,它每次用Wilcoxon检验两组,并通过p.adj()函数调整概率值

小结:
R可以计算多种相关系数,包括Peason相关系数,Spearman相关系数,kendall相关系数
函数cov()可以计算相关系数
ggm包中的pcor()函数可以计算偏相关系数
相关性的显著性检验
关系的显著性:指两(或多)变量之间关系的统计显著水平,一般要求P<0.05.
使用函数cor.test()函数对单个的Pearson,Spearman和Kendall相关系数进行显著性检验
psych包中提供的corr.test()函数可以一次性的多对多的生成相关系数矩阵和显著性水平矩阵
pcor.test()函数可以进行偏相关系数的显著性检验。
t检验
像这种一个变量是二分变量(只有两种类型的类别变量)一个变量(此变量是结果变量)是连续型变量,并假设结果变量呈正态分布。则可以使用t检验进行显著性检验
t检验的格式为
t.test(y~x,data)

这个是描述相关系数比较好的文章放在这里:相关系数

R语言---相关系数相关推荐

  1. R语言绘制热图(其实是相关系数图)实践(二)corrplot包

    目录 前言 corrplot包简介 语法和常用参数介绍 函数语法 参数介绍 实践 summary 参考资料 前言 在我的上一篇的内容中(R语言绘制热图实践(一)pheatmap包 ),我以绘制相关系数 ...

  2. R语言相关关系可视化函数梳理(附代码)

    来源:R语言中文社区 作者:赵镇宁 本文约3177字,建议阅读6分钟. 本文为你介绍R语言相关关系可视化的函数进行了初步梳理,大家可根据个人需求及函数功能择优选择. 当考察多个变量间的相关关系时,通常 ...

  3. 方差分析中怎么看有无显著性影响_用R语言做单因素方差分析及多重比较

    SPSS方差分析的应用已经做得非常好了,绝大多数的方差分析问题均可通过SPSS"点菜单"的方式得以解决,R语言在统计和可视化方面有自己的特色,我们不妨来对比着学习.选用R语言自带案 ...

  4. CSDN ARIMA R语言_R语言实现Fleiss#39; Kappa系数处理多个观察者一致性检验

    Fleiss' kappa系数.该检验适用于分析重复测量3次及以上且测量结果是无序分类变量的重测一致性或观察者一致性检验.SPSS没有内置操作模块,但可以通过拓展包输出结果.Fleiss' kappa ...

  5. R语言绘制中国地图:着色省份、标注省份名称

    今天分享一个可以直接使用的中国地图,相较于其他R语言绘制的地图,有以下优点: 1.包含十段线 http://xzqh.mca.gov.cn/map 2.标注省份名称​ 缺点:南海岛礁未绘制小地图 重点 ...

  6. CSDN ARIMA R语言_SPSS做不了主成分分析,那就换R语言实现全过程吧

    SPSS只能完成主成分分析的一部分环节,主成分得分等计算尚需结合其他工具(如Excel)来完成,这对SPSS用户来说,是极不方便的.我们一定要很清楚的知道,SPSS可以一条龙做因子分析,但不能通过菜单 ...

  7. R语言 双坐标轴组合图形可视化实现

    " 数据可视化过程中,经常遇到两种不同类型图表组合的情况,就是所谓的双坐标轴组合图.最近学习中遇到了此问题,特学习和大家分享,部分内容有个人改进哟" 01-​效果图 02-twoo ...

  8. r语言ggplot2一夜多图_R语言ggplot2画四方形的热图展示相关系数的简单小例子

    R语言里画热图通常会使用pheatmap这个包.如果想使用ggplot2这个包画热图的话需要借助geom_tile()这个函数.今天的内容就以相关系数的数据为例介绍一下ggplot2画热图的一个简单小 ...

  9. r语言 线性回归 相关系数_R语言系列第四期:R语言简单相关与回归

    这一系列里前面的三个部分都是用于比较组间差异的各种方法. 在这个部分里,我们会为大家介绍如何使用R进行基础回归和相关分析,以及模型作图.置信区间的预估和展示. A. 简单线性回归 我们使用数据集thu ...

  10. 【R语言】典型相关分析,自写函数计算相关系数

    简单相关系数 简单相关系数的代码实现 1.XY都是随机变量,地位对称 2.相关系数只反映两变量之间线性相关的程度,不能说明其非线性相关关系. 3.虽能度量相关关系,但是不能度量变量间的因果关系 公式 ...

最新文章

  1. linux-swappiness参数的作用及设置
  2. 脚本实现用户登录显示信息
  3. 孟晚舟升任华为轮值董事长,任正非曾表态:她无技术背景,不会成为接班人...
  4. Grunt 常用插件
  5. 面向对象三大特性 -- 继承,封装,多态
  6. [2019 牛客CSP-S提高组赛前集训营4题解] 复读数组(数论)+ 路径计数机(数上DP)+ 排列计数机(线段树+二项式定理)
  7. js文件夹上传到服务器,js 上传img到服务器
  8. 请问一下:诸位遇到输入汉字时会重复输入
  9. 共享您的数据!…从SharePoint加载SQL数据
  10. python中的单例设计模式
  11. 20145209 2016-2017-2 《Java程序设计》第4周学习总结
  12. 关于数组越界(内存泄漏)的那点事儿(C语言)
  13. 李炎恢python_前端教程:李炎恢jQuery视频教程 百度网盘
  14. 最流行的 .NET 反编译工具合集
  15. 论文阅读笔记:Geography-Aware Sequential Location Recommendation
  16. database changed是什么意思_itunes其他是什么 itunes其他清除方法介绍【图文教程】...
  17. 成熟男人与未成熟男人
  18. 华为云弹性公网IP,如何解决现代企业的网络IP烦恼
  19. 解决页面js接受Long型损失精度问题
  20. ​当我谈我的自行车时,我谈些什么

热门文章

  1. ArcMap(ArcGIS)批量裁剪图片【超详细】
  2. 7-3 约分最简分式
  3. 区块链技术指2.3 基于区块链的电子货币
  4. 昔者,圣人之作易也,幽赞神明而生蓍
  5. Android ELF文件编译之符号隐藏
  6. Java 金额转换 阿拉伯数字金额转换成汉字大写金额
  7. js判断手机号码归属地查询接口--精确到地市
  8. 读书笔记-opencv-极坐标变换
  9. 机器人领域的SCI期刊介绍
  10. 关于机器人方面的sci论文_近十年机器人学科中国学者SCI十大发文期刊 - 论文投稿 - 小木虫 - 学术 科研 互动社区...