精华内容
下载资源
问答
  • spearman相关性分析_相关性分析

    千次阅读 2020-12-18 10:56:43
    基础理论:相关分析:描述定量变量间的关系。pearson相关:变量间的线性相关程度;spearman相关:衡量分级定序变量间的相关程度;kendall相关:非参数的等级相关度量。R语言常用函数:cor(),默认结果为矩阵cor...

    基础理论:

    相关分析:描述定量变量间的关系。

    pearson相关:变量间的线性相关程度;

    spearman相关:衡量分级定序变量间的相关程度;

    kendall相关:非参数的等级相关度量。

    R语言常用函数:cor(),默认结果为矩阵

    cor(mydat,use=,method=)   #use 缺失值的处理,method 处理方法
    cor(x,y)   #可以计算非方形矩阵,x y分别为2个矩阵,相同的行数

    相关性的显著性检验,常用函数cor.test(),单次仅比较2个变量,延伸:psych包中的corr.test() 可以计算所有的变量的相关性是否显著

    cor.test(x,y,alternative=,method=)   #x y为检验相关性的变量
    library('psych')
    corr.test(mydat)

    相关性分析可视化常用包:

    corrplot

    heatmap

    PerformanceAnalytics

    library('openxlsx')
    library('corrplot')
    library('PerformanceAnalytics')   #另一个可视化包
    mydat<-read.xlsx('aa.xlsx',colNames = T,sheet = 1)
    cor<-cor(mydat)   # 常规相关性分析
    corrplot(cor)   #直接出图 默认圆形显示

    985ddac3b9fe854854370ab22eb17e66.png
    corrplot(cor,method="color",addCoef.col="grey")  #用颜色显示,同时显示相关系数

    d5a0f716817c4d29edd8d485f089cdc1.png
    corrplot(cor,order = "AOE",type="upper",tl.pos = "d")
    corrplot(cor,add=TRUE, type="lower", method="number",
    order="AOE",diag=FALSE,tl.pos="n", cl.pos="n")

    829f061c7a6f5f644152efdfdc9f2d66.png
    library('PerformanceAnalytics')  #####用于将相关性的分析结果可视化
    cor<-cor(mydat,method = "pearson")
    chart.Correlation(mydat,histogram = TRUE,pch=15)   ####各种参数可以根据个人需要调整

    4d3f80939eaa17d85bb480f1e19838f9.png
    展开全文
  • 相关性分析是我们做数据分析时最常用的一种方法。我们在对业务进行分析时,都会思考哪几个环节是相互影响的,通过层层推理,找到工作中的关键问题,从而改进业务,提高工作效率。业务环节相互影响,在数据上的体现...

    9f58bbc20c71fd0b583689639d01ed0d.png

    相关性分析是我们做数据分析时最常用的一种方法。我们在对业务进行分析时,都会思考哪几个环节是相互影响的,通过层层推理,找到工作中的关键问题,从而改进业务,提高工作效率。业务环节相互影响,在数据上的体现就是具有相关性。

    我们按照数据的类型来说下,在做数据分析时会碰到哪些相关性分析。

    首先,是连续型变量(数值)之间的相关性,这也是最常碰到的。我们会用相关系数来分析,最常用的当然是皮尔逊(Pearson)相关系数,取值-1到1之间,绝对值越接近于1表示相关性越强,正负表示正相关和负相关。另外还有Spearman相关系数和Kendall相关系数,应用的条件不同,在此不深入介绍了。实际上我们一般分析都是线性相关性,连续型变量的相关性除了用相关系数来分析外,还可以用散点图来分析。

    40a98553b6068e5a37d5d7e18cfaf325.png

    如果存在线性相关性,在散点图上会趋近一条直线。

    另外,就是连续型变量和分类型(字符型)变量之间的相关性了,这就计算不了相关系数了,在这里可以用方差分析来判断他们之间的相关性,方差分析实际上在检验几组样本的均值是否相等,就像做对照实验一样,把连续型变量按照分类型变量的取值进行分组,再比较每组的均值是否相等,相等说明分组对连续型变量的取值没有影响,说明他们之间没有相关性,反之,他们是有相关性的。

    444cae09f7de230cb436d63457f746d9.png

    最后,就是分类型变量之间的相关性,可以使用列联表来分析,进行卡方检验,可以得到是否相关的结论。

    616c3581235fac1b617653fdcdc6f035.png

    大致说了相关性分析之后,我们再来看有监督学习。有监督学习是机器学习里的概念,是指从有标记的训练数据中推到出预测函数,具体来说就分类和回归问题。其实,我们也可以从相关性分析的角度来理解有监督学习,这里的有标记的数据,实际上就是我们要分析的数据字段,相关性分析时我们往往只是在分析两个字段,1对1 的,而有监督学习,我们要分析的是多个字段了,是多对1了,分析多个字段综合起来与一个字段的相关性,这个1就是训练数据中的标记字段,如果这个标记字段是分类型的,就是分类问题,如果这个标记字段是连续型的,就是回归问题,可以说有监督学习的本质还是在做相关性分析,只是更加复杂了,不是一个相关系数能描述的规律了,往往我们得到的复杂的预测函数。这个函数描述了标记字段和多个影响因素之间的相关性,例如最好理解的2种模型:性回归方程和决策树。

    b38b796b48e24f47e6a4faffe178c499.png

    8e176094bb4019a4a232e18472f63155.png

    在大数据时代,我们收集到的数据越来越多,我们分析的手段也要越来越深入了,从简单的数据可视化展现,慢慢的要过渡到更深层次的数据规律探索了,相关性分析是个很好的起点。更多干货,下次再分享哦。

    展开全文
  • 默认的皮尔逊相关性分析 > cor(df) fruit_weight soluble_sugar organic_acid anthocyanin fruit_weight 1.00000000 0.06342157 -0.2647533 0.1038605 soluble_sugar 0.06342157 1.00000000 0.2580373 -0.2590438 ...

    原文链接

    http://www.sthda.com/english/wiki/correlation-matrix-a-quick-start-guide-to-analyze-format-and-visualize-a-correlation-matrix-using-r-software#at_pco=smlwn-1.0&at_si=5e8f19ae4cd478e7&at_ab=per-2&at_pos=0&at_tot=1

    相关性分析的应用场景

    一些样本,每个样本会测一些指标,我想初步探索一下这些指标之间是否存在关联。具体场景:我收集了好多个品种的苹果成熟果实,每个品种的苹果我都会测一些指标,比如表型指标:果重;生理指标:可溶性糖,有机酸,花青素含量等等。

    做完实验数据整理到excel中,另存为csv格式

    8d1181b294e554fe8047ef04f5d24ea7.png

    数据是我胡编乱造的,没有实际意义!

    读入数据

    csvpath<-file.choose()
    csvpath
    df<-read.csv(csvpath,header=T,row.names = 1)
    df

    这样就把数据读进来存储到df里了

    R语言里自带的相关性分析的函数是cor(),直接将数据放到括号里就可以了。默认的皮尔逊相关性分析

    > cor(df)
                  fruit_weight soluble_sugar organic_acid anthocyanin
    fruit_weight    1.00000000    0.06342157   -0.2647533   0.1038605
    soluble_sugar   0.06342157    1.00000000    0.2580373  -0.2590438
    organic_acid   -0.26475334    0.25803726    1.0000000  -0.2241183
    anthocyanin     0.10386047   -0.25904381   -0.2241183   1.0000000

    通过method参数指定其他方法

    > cor(df,method = 'sperman')
    Error in match.arg(method) : 
      'arg' should be one of “pearson”, “kendall”, “spearman”
    > cor(df,method = 'spearman')
                  fruit_weight soluble_sugar organic_acid anthocyanin
    fruit_weight     1.0000000     0.1357143   -0.1714286   0.1892857
    soluble_sugar    0.1357143     1.0000000    0.2821429  -0.2000000
    organic_acid    -0.1714286     0.2821429    1.0000000  -0.2142857
    anthocyanin      0.1892857    -0.2000000   -0.2142857   1.0000000

    但是论文里的相关性分析通常都是带有p值,就是右上角会有星号。可以借助Hmisc包中的rcorr函数

    这个函数要求的输入数据格式是矩阵,同过csv文件读入的数据格式是数据框,需要借助函数as.matrix()进行转换

    library(Hmisc)
    res2<-rcorr(as.matrix(df))

    运行完以后res2里面存储3个内容,可以通过$符号获取

    > res2$r
                  fruit_weight soluble_sugar organic_acid anthocyanin
    fruit_weight    1.00000000    0.06342157   -0.2647533   0.1038605
    soluble_sugar   0.06342157    1.00000000    0.2580373  -0.2590438
    organic_acid   -0.26475334    0.25803726    1.0000000  -0.2241183
    anthocyanin     0.10386047   -0.25904381   -0.2241183   1.0000000
    > res2$n
                  fruit_weight soluble_sugar organic_acid anthocyanin
    fruit_weight            15            15           15          15
    soluble_sugar           15            15           15          15
    organic_acid            15            15           15          15
    anthocyanin             15            15           15          15
    > res2$P
                  fruit_weight soluble_sugar organic_acid anthocyanin
    fruit_weight            NA     0.8223325    0.3402882   0.7126110
    soluble_sugar    0.8223325            NA    0.3531301   0.3511885
    organic_acid     0.3402882     0.3531301           NA   0.4219767
    anthocyanin      0.7126110     0.3511885    0.4219767          NA

    r是相关性系数,n是样本个数,p是相关性检验的p值

    接下来我想看看谁跟谁的相关性比较高,比如筛选相关系数绝对值大于0.8。矩阵筛选我还不知道如何实现。原文自己写了一个函数,将矩阵转换为数据框,这样筛选起来就容易很多了。 函数是

    flattenCorrMatrix <- function(cormat, pmat) {
      ut <- upper.tri(cormat)
      data.frame(
        row = rownames(cormat)[row(cormat)[ut]],
        column = rownames(cormat)[col(cormat)[ut]],
        cor  =(cormat)[ut],
        p = pmat[ut]
      )
    }

    两个参数,一个是相关性,一个是p值

    > flattenCorrMatrix(res2$r,res2$P)
                row        column         cor         p
    1  fruit_weight soluble_sugar  0.06342157 0.8223325
    2  fruit_weight  organic_acid -0.26475334 0.3402882
    3 soluble_sugar  organic_acid  0.25803726 0.3531301
    4  fruit_weight   anthocyanin  0.10386047 0.7126110
    5 soluble_sugar   anthocyanin -0.25904381 0.3511885
    6  organic_acid   anthocyanin -0.22411828 0.4219767

    筛选一个相关系数绝对值大于0.25的

    > df1<-flattenCorrMatrix(res2$r,res2$P)
    > abs(df1$cor)>0.25
    [1] FALSE  TRUE  TRUE FALSE  TRUE FALSE
    > df1[abs(df1$cor)>0.25,]
                row       column        cor         p
    2  fruit_weight organic_acid -0.2647533 0.3402882
    3 soluble_sugar organic_acid  0.2580373 0.3531301
    5 soluble_sugar  anthocyanin -0.2590438 0.3511885

    接下来就是数据展示了,一个是表格,一个是图。 接下来介绍画图: 一种展示方法

    library(corrplot)
    corrplot(res2$r,type="upper",tl.col ="black",tl.srt = 45)

    ff5d0cf1f27b54fb908563fbac92eb15.png

    另外一种展示方法

    install.packages("PerformanceAnalytics")
    library(PerformanceAnalytics)
    chart.Correlation(df,histogram = T,pch=19)

    c52fb34b8428c93b9375163ebcf1409d.png

    还可以选择用热图来展示

    col<-colorRampPalette(c("blue","white","red"))(20)
    heatmap(x=res2$r,col=col,symm=T)
    heatmap(x=res2$r,col=col,symm=F)

    fc29f35168779c19ed9c24c621e49209.png

    暂时还不知道symm参数的作用是啥?

    数据大家完全可以自己构造,原文用到的数据是R本身自带的例子mtcars,但是各项指标可能不太好理解。所以我就自己随便伪造了一份数据。如果大家需要可以给我公众号留言

    展开全文
  • 相关性分析是量化不同因素间变动状况一致程度的重要指标。在样本数据降维(通过消元减少降低模型复杂度,提高模型泛化能力)、缺失值估计、异常值修正方面发挥着极其重要的作用,是机器学习样本数据预处理的核心工具。...

    相关性分析是量化不同因素间变动状况一致程度的重要指标。在样本数据降维(通过消元减少降低模型复杂度,提高模型泛化能力)、缺失值估计、异常值修正方面发挥着极其重要的作用,是机器学习样本数据预处理的核心工具。

    样本因素之间相关程度的量化使用相关系数corr,这是一个取之在[-1,1]之间的数值型,corr的绝对值越大,不同因素之间的相关程度越高——负值表示负相关(因素的值呈反方向变化),正值表示正相关(因素的值呈同方向变化)。

    样本数据的相关系数计算有多种算法,最常用的是Pearson相关系数,还有Spearman相关系数和Kendall相关系数。当涉及相关性分析的因素的标准差为0时,Pearson相关系数就无法使用了,此时还可以考虑向量夹角余弦来衡量。

    1.Pearson相关系数

    相关系数是最早由统计学家卡尔·皮尔逊设计的统计指标,是研究变量之间线性相关程度的量。计算公式如下:

    5fd2ff6216c8f6c6d64a0c4f1b8b0e18.png
    92bc4dafe94f091f773c2571d0f1ed1e.gif

    Numpy和Pandas都提供了Pearson相关系数的计算函数,分别为np.corrcoef()和Pandas.corr(),使用非常方便。如下例:

    某公司2018年季度耗电量和销售收入如下:

    • 耗电量:1200,2000,1800,1500,2100
    • 销售收入:180,250,270,220,280

    试分析单位耗电量产生的销售收入以及耗电量与销售收入是否相关。

    我们使用Numpy.corrcoef()来计算两组变量的相关系数。

    23333890dc94509bff0459514c7bd1db.png
    92bc4dafe94f091f773c2571d0f1ed1e.gif

    主对角线的值是两个变量的自相关系数,自然都是1,次对角线的值就是两组数据的Pearson相关系数值。我们可以看出耗电量和销售收入正相关性还是很高的,用Seaborn的回归图也能比较直观的看出两组数据的相关水平。如下图:

    688bb84d9ba0c35af77d95a6a7e333af.png
    92bc4dafe94f091f773c2571d0f1ed1e.gif

    数据点比较紧密的集中在直线附近,这表明两组数据的相关性很高。

    2.向量夹角余弦

    把两组数据作为两个1维向量,通过计算两个向量的夹角余弦值,也可以衡量数据的相关程度,其取值范围也在[-1,1]之间。向量的夹角余弦值也称为向量余弦距离或向量相似度,其公式如下:

    e95f041be6ee0b73d8412c9eb47e2475.png
    92bc4dafe94f091f773c2571d0f1ed1e.gif

    我们来看上一个案例的余弦相关系数的计算结果,同样也非常高

    73bf88a67de59d33f58f1119b457e164.png
    92bc4dafe94f091f773c2571d0f1ed1e.gif

    3.Spearman相关系数

    Spearman相关系数又称秩相关系数,是利用两变量的秩次大小作相关分析,对原始变量的分布不作要求,也没有线性要求。

    Scipy中的spearmanr()函数可以帮助我们计算Spearman相关系数。

    Spearman相关系数有如下特点:

    • 属于非参数统计方法,适用范围更广。
    • 对于服从Pearson相关系数的数据亦可计算Spearman相关系数,但统计效能要低一些。
    • 秩次:样本数据正向排序后的序号(从1开始)

    我们构造两组样本数据,它们之间的非线性关系很高。我们来看一下Pearson相关系数和Spearman相关系数的差异。

    039c36619f5e9d4c6c7cfd0591ca1627.png
    92bc4dafe94f091f773c2571d0f1ed1e.gif

    d30f2637be07b60befb52d04da0b909b.png
    92bc4dafe94f091f773c2571d0f1ed1e.gif

    可以看出对于非线性相关的数据,Spearman相关系数要比Pearson相关系数更显著。

    4.Kendall相关系数

    肯德尔秩相关系数也是一种秩相关系数,不过它所计算的对象是分类有序/等级变量,如质量等级、考试名次等。其特点为:

    • 1)如果两组排名是相同的,系数为1 ,两个属性正相关。
    • 2)如果两组排名完全相反,系数为-1 ,两个属性负相关。
    • 3)如果两组排名是完全独立的,系数为0。

    如下例查看身高和体重的排名是否相关:

    f0f8902403fa8d9dcdb1f9d65458cc31.png
    92bc4dafe94f091f773c2571d0f1ed1e.gif

    以下是上述数据的计算过程

    152dcc0b3701ffcc91ac9bcbc1f9a42f.png
    92bc4dafe94f091f773c2571d0f1ed1e.gif

    整体上,我们发现体重与身高大多数情况下有较强的相关性

    153a498973aa225271785e9525408d3e.png
    展开全文
  • 主要包括我们上提到的多元统计方法中的生存分析与相关性分析。此部分内容还是先从统计说起,然后用实例演示分析与作图过程,此外还会介绍Prism鲜为人知的作图彩蛋。希望这个系列能让大家更准确地把握统计分析与高效...
  • 虽然它已经在相关性和因果关系的背景下得到了理论上的证明,但本文探讨了相关性以及它与因果关系的不同之处。器学习模型的好坏取决于你所拥有的数据。这就是为什么数据科学家可以花费数小时对数据进行预处理和清理。...
  • 写在前面本文章旨在给出一个简便易用的环境因子与主要物种丰度的相关性分析及结果展示方式,适用于环境因子和主要物种相对较少的情况。如果样本数目过多、微生物群落十分复杂,建议使用网络分析评估特定环境因子与...
  • 相关分析常见的相关系数有三种,它们分别是Pearson、Spearman、Kendall系数,三大相关系数如何选用呢,本期给大家作个小结。一、Pearson(皮尔逊)线性相关性(linear correlation):又简称简单相关(simple correlation...
  • 相关性分析介绍生物和医学统计中,相关分析属于流程前端的探索性分析,研究变量间关系及性质,其结果在为下一步采取何种方法做出指引,为数据挖掘之前的基础工作。相关系数的选择相关分析之前,需要先确认变量的类型...
  • 物种与功能环境因子功能分析当有理化参数时,还可以基于物种/功能组成进行环境因子相关性分析、CCA/RDA、db-RNA、VPA、Mantel检验、偏Mantel检验等分析,找到与样品间的差异有关联的理化因子。Mantel_Test分析Mantel...
  • 当变量不满足正态分布要求时,或者所研究的变量不是数值型变量时,简单线性相关系数的相关分析方法不宜使用,这时可以用spearman等级相关系数作相关性分析。2. 原理:对于样本容量为n的变量x和y,如果x和y的取值分别...
  • 相关分析能够解决的问题:· 父母的身高和孩子的身高是否有关?一般情况,父母的身高越高,孩子的身高是不是也会越高?· 跳远成绩与短跑速度是否有关?一般情况,短跑速度越快,跳远成绩是不是也会越好?用相关系数...
  • 当变量不满足正态分布要求时,或者所研究的变量不是数值型变量时,简单线性相关系数的相关分析方法不宜使用,这时可以用spearman等级相关系数作相关性分析。 2. 原理: 对于样本容量为n的变量x和y,如果x和y的取值...
  • I was computing spearman correlations for matrix. I found the matrix input and two-array input gave different results when using scipy.stats.spearmanr. The results are also different from pandas.Data....
  • 关注医学统计SPSS典型相关性分析详细操作关键词:SPSS、典型相关导 读 在前几期,我们详细介绍了双变量间的相关关系研究的Pearson和Spearman相关性分析。 点击观看: 《什么样的医学数据可以使用spss中的Pearson...
  • 相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。但是,请记住,相关性不等于因果性两个重要的...
  • 相关性分析 -pearson spearman kendall相关系数 https://www.cnblogs.com/kemaswill/archive/2012/11/01/2749842.html
  • 关注医学统计SPSS典型相关性分析详细操作关键词:SPSS、典型相关导 读 在前几期,我们详细介绍了双变量间的相关关系研究的Pearson和Spearman相关性分析。 点击观看: 《什么样的医学数据可以使用spss中的Pearson...
  • 针对定距型数据采用 Spearman 相关性分析方法,针对定类型数据用单因素方差分析方法,得到影响线路价格的定距型因素有总里程、线路总本、线路指导价、车辆的参数以及计划的车程时间,定类型因素主要为地区、调价类型...
  • r语言相关性分析_R语言相关性分析

    千次阅读 2020-12-08 07:53:43
    内容目录Pearson相关系数(积差相关系数)适用条件Spearman等级相关系数适用条件Kendall's Tau相关系数适用条件偏相关适用条件R语言实现Pearson、Spearman、Kendall示例偏相关相关性显著性检验相关性可视化相关性分析...
  • 相关性分析方法(Pearson、Spearman

    千次阅读 2019-10-06 06:44:49
    有时候我们根据需要要研究数据集中某些属性和指定属性的相关性,显然我们可以使用一般的统计学方法解决这个问题,下面简单介绍两种相关性分析方法,不细说具体的方法的过程和原理,只是简单的做个介绍,由于理解可能...
  • 2.3.2 相关性分析相关性分析是指通过分析寻找不同商品或不同行为之间的关系,发现用户的习惯,计算两个数据集的相关性是统计中的常见操作。MLlib提供了计算多个数据集两两相关的方法。目前支持的相关性方法有皮尔逊...
  • 常用相关性分析方法在分析特征间相关性时,常使用的方法是 pandas.DataFrame.corr :DataFrame.corr(self, method=’pearson’, min_periods=1)其中包含的方法主要为:pearson:Pearson相关系数kendall:Kendall秩...
  • 相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。 相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。 但是,请记住,相关性不等于因果性 两个...
  • “题外话:相关性不是因果,相关性只能说数据上来讲两个或多个因素具有正/负/无相关性,其间没有谁决定谁的关系”相关系数(correlation coefficient)用于描述两个变量之间的相关程度。一般在[-1, 1]之间。有,...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 173
精华内容 69
关键字:

spearman相关性分析