精华内容
下载资源
问答
  • 在统计学中有三个可以衡量两个变量之间相关程度的指标:线性相关系数(linear correlation coefficient)、斯皮尔曼相关性系数(Spearman’s rank correlation coefficient)、肯德尔相关性系数(kendall ...

    在统计学中有三个可以衡量两个变量之间相关程度的指标:线性相关系数(linear correlation coefficient)、斯皮尔曼相关性系数(Spearman’s rank correlation coefficient)、肯德尔相关性系数(kendall correlation coefficient)。

    这三个相关性系数可以衡量出两个变量变化的相同程度,现有两个变量X、Y。如果X变大的同时Y也在变大,那么他俩呈现正相关,他俩之间的相关性系数值趋近于+1;如果X变大的同时Y反而在变小,那么他俩呈现负相关,他俩之间的相关性系数值趋近于-1;如果X变大的同时Y没有任何有规律的变化,那么他俩没有相关性,他俩之间的相关性系数值趋近于0;

    1.线性相关系数计算

    线性相关系数评估两个连续变量之间的线性关系。当一个变量中的变化与另一个变量中的成比例变化相关时,这两个变量具有线性关系。例如,您可能使用 Pearson 相关来评估您生产设施温度的升高是否与巧克力涂层的厚度减少有关。

    1.1 计算公式

    在这里插入图片描述
    分子是两个变量的协方差,协方差是统计学中使用的一种数值,用于描述两个变量间的线性关系。两个变量的协方差越大,它们在一系列数据点范围内的取值所呈现出的趋势就越相近(换句话说,两个变量的曲线距离彼此较近)。
    在这里插入图片描述
    在上面的公式中,Xi代表的是变量X中的第i个元素,头顶带横的X表示变量X的均值。变量Y与X一致。
    线性相关系数的分母是两个变量标准差的乘积,标准差可以描述样本中的数据分布。一个变量的标准差的计算步骤如下:

    • 计算数据的均值
    • 计算数据的方差
    • 对方差开方得到标准差
      在这里插入图片描述

    1.2 注意事项

    注意,计算线性相关系数的时候分母不能为0,也就是变量X、Y的方差不能为0,什么时候方差为0呢?方差为0意味着所有的数据都必须和平均值相等,那么这些数据都等于平均值。也就是这些数据都相等。

    2. 斯皮尔曼相关性系数计算

    Spearman 相关评估两个连续或顺序变量之间的单调关系。在单调关系中,变量倾向于同时变化,但不一定以恒定的速率变化。Spearman 相关系数基于每个变量的秩值(而非原始数据)。

    Spearman 相关通常用于评估与顺序变量相关的关系。例如,您可能会使用 Spearman 相关来评估员工完成检验练习的顺序是否与他们工作的月数相关。

    1.1计算公式

    斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。下面来看一下它的计算公式:
    斯皮尔曼相关系数
    n表示数据的数量,di 表示两个数据次序的差值:
    在这里插入图片描述
    比如这里有两个变量X、Y,刚开始这两个变量中的值都是随意排放的,位置从1-6。先将它们进行排序:
    斯皮尔曼相关系数计算举例
    排序前数字11位置在1,排序后变成了5;490排序前的位置是2,排序后的位置变成了1。以此类推,得到了变量X 和Y排序后的位置。

    • X:(5,1,4,2,3,6)
    • Y:(6,1,5,2,4,3)
      因此第一个位置的di=6-5=1,平方后还是1,以此类推计算所有di平方的加和,然后得到斯皮尔曼相关系数:ρs= 1-6*(1+1+1+9)/6*35=0.657。

    2.1 注意事项

    我们不用管X和Y这两个变量具体的值到底差了多少,只需要算一下它们每个值所处的排列位置的差值,就可以求出相关性系数了。而且,即便在变量值没有变化的情况下,也不会出现像皮尔森系数那样分母为0而无法计算的情况。

    另外,即使出现异常值,由于异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以对斯皮尔曼相关性系数的影响也非常小!由于斯皮尔曼相关性系数没有那些数据条件要求,适用的范围就广多了。

    展开全文
  • 皮尔森相关性系数的值等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX, σY)。 (2)数据要求 a.正态分布 它是协方差与标准差的比值,并且在求皮尔森相关性系数以后,通常还会用t检
    def person_func(x,y):
        """
        1. person correlation coefficient(皮尔森相关性系数)
        皮尔逊相关系数通常用r或ρ表示,度量两变量X和Y之间相互关系(线性相关)
        (1)公式
           皮尔森相关性系数的值等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX, σY)。
        (2)数据要求
           a.正态分布
             它是协方差与标准差的比值,并且在求皮尔森相关性系数以后,通常还会用t检验之类的方法来进行皮尔森相关性系数检验,而t检验是基于数据呈正态分布的假设的。
           b.实验数据之间的差距不能太大
             比如:研究人跑步的速度与心脏跳动的相关性,如果人突发心脏病,心跳为0(或者过快与过慢),那这时候我们会测到一个偏离正常值的心跳,如果我们把这个值也放进去进行相关性分析,它的存在会大大干扰计算的结果的。
        """
        X1=pd.Series(x)
        Y1=pd.Series(y)
        X1.mean() #平均值
        Y1.mean() #
        X1.var() #方差
        Y1.var() #
        X1.std() #标准差不能为0
        Y1.std() #标准差不能为0
        X1.cov(Y1) #协方差
        # X1.cov(Y1)/(X1.std()*Y1.std()) #皮尔森相关性系数
        return X1.corr(Y1, method="pearson") #皮尔森相关性系数
    
    def spearman_func(x,y):
        """
        2. spearman correlation coefficient(斯皮尔曼相关性系数)
        斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解
        (1)公式
           首先对两个变量(X, Y)的数据进行排序,然后记下排序以后的位置(X’, Y’),(X’, Y’)的值就称为秩次,秩次的差值就是上面公式中的di,n就是变量中数据的个数,最后带入公式就可求解结果。
        (2)数据要求
           因为是定序,所以我们不用管X和Y这两个变量具体的值到底差了多少,只需要算一下它们每个值所处的排列位置的差值,就可以求出相关性系数了
        """
        X1=pd.Series(x)
        Y1=pd.Series(y)
        #处理数据删除Nan
        x1=X1.dropna()
        y1=Y1.dropna()
        n=x1.count()
        x1.index=np.arange(n)
        y1.index=np.arange(n)
    
        #分部计算
        d=(x1.sort_values().index-y1.sort_values().index)**2
        dd=d.to_series().sum()
    
        p=1-n*dd/(n*(n**2-1))
    
        #s.corr()函数计算
        r=x1.corr(y1,method='spearman')
        return r,p
    
    def kendall_func(x,y):
        """
        3. kendall correlation coefficient(肯德尔相关性系数)
    
        肯德尔相关性系数,又称肯德尔秩相关系数,它也是一种秩相关系数,不过它所计算的对象是分类变量。
        分类变量可以理解成有类别的变量,可以分为:
        (1) 无序的,比如性别(男、女)、血型(A、B、O、AB);
        (2) 有序的,比如肥胖等级(重度肥胖,中度肥胖、轻度肥胖、不肥胖)。
        通常需要求相关性系数的都是有序分类变量。
        (1)公式
           R=(P-(n*(n-1)/2-P))/(n*(n-1)/2)=(4P/(n*(n-1)))-1
           注:设有n个统计对象,每个对象有两个属性。将所有统计对象按属性1取值排列,不失一般性,设此时属性2取值的排列是乱序的。设P为两个属性值排列大小关系一致的统计对象对数
        (2)数据要求
           类别数据或者可以分类的数据
        """
        X1=pd.Series(x)
        Y1=pd.Series(y)
        r = X1.corr(Y1,method="kendall")
        return r
    
    展开全文
  • 斯皮尔曼相关性可以理解为是排列后(Rank)用户喜好值之间的Pearson相关度。《Mahout in Action》中有这样的解释:假设对于每个用户,我们找到他最不喜欢的物品,重写他的评分值为“1”;然后找到下一个最不喜欢的...

    斯皮尔曼相关性可以理解为是排列后(Rank)用户喜好值之间的Pearson相关度。《Mahout in Action》中有这样的解释:假设对于每个用户,我们找到他最不喜欢的物品,重写他的评分值为“1”;然后找到下一个最不喜欢的物品,重写评分值为“2”,以此类推。然后我们对这些转换后的值求Pearson相关系数,这就是Spearman相关系数。

    斯皮尔曼相关度的计算舍弃了一些重要信息,即真实的评分值。但它保留了用户喜好值的本质特性——排序(ordering),它是建立在排序(或等级,Rank)的基础上计算的。
    回顾前面表中User1~5对Item101~103的喜好(评分)值,通过斯皮尔曼相关系数计算出的相似度为:

    我们发现,计算出来的相似度值要么是1,要么是-1,因为这依赖于用户的喜好值和User1的喜好值是否趋于“一致变化”还是呈“相反趋势变化"。

    Mahout对斯皮尔曼相关系数给出了实现,具体可参考SpearmanCorrelationSimilarity,它的执行效率不是非常高,因为斯皮尔曼相关性的计算需要花时间计算并存储喜好值的一个排序(Ranks),具体时间取决于数据的数量级大小。正因为这样,斯皮尔曼相关系数一般用于学术研究或者是小规模的计算。
    UserSimilarity similarity1 = new SpearmanCorrelationSimilarity(model); // construct a Spearman Correlation-based Similarity
    User1 to User1 : 1.0
    User2 to User1 : -1.0
    User3 to User1 : NaN
    User4 to User1 : 1.0
    User4 to User1 : 1.0

    考虑到Spearman Correlation的效率,可以把SpearmanCorrelationSimilarity包装一层Cache,具体做法为:
    UserSimilarity similarity2 = new CachingUserSimilarity(new SpearmanCorrelationSimilarity(model), model);
    这样,每次计算的结果会直接放入Cache,下一次计算的时候可以立即得到结果,而不是重新再计算一次。

    展开全文
  • 1)皮尔森相关系数等于两个变量的协方差除于两个变量的标准差。 皮尔森相关系数反应了两个变量之间的线性相关程度,它的取值在[-1, 1]之间。当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一...

    1)皮尔森相关系数等于两个变量的协方差除于两个变量的标准差。

    皮尔森相关系数反应了两个变量之间的线性相关程度,它的取值在[-1, 1]之间。当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一个变量也增大时,表明它们之间是正相关的,相关系数大于0;如果一个变量增大,另一个变量却减小,表明它们之间是负相关的,相关系数小于0;如果相关系数等于0,表明它们之间不存在线性相关关系。

    基于皮尔森相关系数的相似度有两个缺点:
    (1) 没有考虑(take into account)用户间重叠的评分项数量对相似度的影响;
    (2) 如果两个用户之间只有一个共同的评分项,相似度也不能被计算

    2)斯皮尔曼相关性

    可以理解为是排列后(Rank)用户喜好值之间的Pearson相关度。《Mahout in Action》中有这样的解释:假设对于每个用户,我们找到他最不喜欢的物品,重写他的评分值为“1”;然后找到下一个最不喜欢的物品,重写评分值为“2”,以此类推。然后我们对这些转换后的值求Pearson相关系数,这就是Spearman相关系数。

    斯皮尔曼相关度的计算舍弃了一些重要信息,即真实的评分值。但它保留了用户喜好值的本质特性——排序(ordering),它是建立在排序(或等级,Rank)的基础上计算的。

    展开全文
  • 皮尔逊、肯德尔、斯皮尔曼相关性

    千次阅读 2019-10-01 14:53:52
    一 、皮尔逊相关性 在统计学中,皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数(Pearson product-moment correlation coefficient,简称PPMCC或PCCs),是用于度量两个变量X和Y之间...
  • 在上一篇博客中,我简单地使用了scipy模块进行了统计学中三大相关性分析方法(皮尔森相关性系数、斯皮尔曼相关性系数、肯德尔相关性系数)的使用,这里的主要工作是将相关性计算结果进行可视化展示,以便于更直观地...
  • 今天我简单地使用了scipy模块进行了统计学中三大相关性分析方法(皮尔森相关性系数、斯皮尔曼相关性系数、肯德尔相关性系数)的使用,这里的主要工作是将相关性计算结果进行可视化展示,以便于更直观地来对不同因子之....
  • 今天我简单地使用了scipy模块进行了统计学中三大相关性分析方法(皮尔森相关性系数、斯皮尔曼相关性系数、肯德尔相关性系数)的使用,这里的主要工作是将相关性计算结果进行可视化展示,以便于更直观地来对不同因子之....
  • 展开全部在 统计学中, 以查尔斯·斯皮尔曼命名的斯皮尔曼等级相关系数62616964757a686964616fe58685e5aeb931333431363531,即斯皮尔曼相关系数。它是衡量两个变量的依赖性的非参数 指标。经常用希腊字母ρ表示。它...
  • 皮尔逊pearson相关系数斯皮尔曼spearman等级相关系数。它们可用来衡量两个变量之间的相关性的大小,根据数据满足的不同条件,我们要选择不同的相关系数进行计算和分析(建模论文中最容易用错的方法)。 基本概念 ...
  • 一般说的相关系数就是皮尔逊相关系数 就是概率论的知识 消除量纲影响: 总体: 样本: 意义: 误区: 用于衡量线性 两个变量必须线性相关。 不是线性相关函数,不一样 总结: 例题: MATLAB EXCEL ...
  • 皮尔森、斯皮尔曼(pearson spearman):  import spark.implicits._  import org.apache.spark.mllib.stat.Statistics  import spark.sql  val df = sql(s"select * from xxxx ")    val columns...
  • 原标题:左手用R右手Python系列(XI): 相关性分析由于最近毕业论文缠身,一直都没有太多时间和精力撰写长篇的干货,但是呢学习的的脚步不能停止,今天跟大家盘点一下R语言与...即斯皮尔曼相关系数,用于衡量分类...
  • 斯皮尔曼相关系数的解读

    千次阅读 2021-01-06 22:59:22
    斯皮尔曼相关系数是一个衡量两个变量的依赖性的非参数指标,它并不假设两个数据集是相同分布的,像其他的相关系数一样,这个变量的范围从-1到+1,0暗示着两个参数之间没有相关性。如果数据中没有重复值,并且两个...
  • 转自:...斯皮尔曼等级相关系数用来估计两个变量X、Y之间的相关性,其中变量间的相关性可以使用单调函数来描述。如果两个变量取值的两个集合中均不存在相同的两个元素,那么,当其中一个变量可以表...
  • 一、简介在机器学习中,当要预测不同的机器学习算法在同一个学习任务上的性能时,需要使用序相关系数对真实的性能排序与预测的性能排序进行比较,本文介绍了其中一种秩相关系数——斯皮尔曼等级相关性。公式:其中:...
  • 转自:http://blog.csdn.net/wsywl/article/details/5859751Spearman Rank...斯皮尔曼等级相关系数用来估计两个变量X、Y之间的相关性,其中变量间的相关性可以使用单调函数来描述。如果两个变量取值的两个集合中...
  • 文章目录引述斯皮尔曼相关系数(spearman)定义 引述 经过之前几节的学习,我们了解并掌握了皮尔逊相关系数。在学习中我们发现,皮尔逊相关系数的使用条件相当苛刻:两组变量必须是连续数据、呈现正态分布,且两者间...
  • 最常用的相关系数有两种,皮尔逊相关系数斯皮尔曼相关系数,在选取用何种相关系数时,需要根据不同的条件进行计算和分析,否则容易建模出错。 总体和样本 总体是指所要考虑对象的全部个体。我们通常需要求总体数据...
  • 斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。下面来看一下它的计算...
  • 皮尔逊 person相关系数斯皮尔曼spearman等级相关系数,它们可用来衡量两个变量之间的相关性的大小,根据数据满足的不同条件,我们要选择不同的相关系数进行计算和分析(建模论文中最容易用错的方法)。 1、相关...
  • 例题: ...​ 为了度量两个变量间的线性关系,一般采用皮尔逊(Pearson)相关系数斯皮尔曼(Spearman)相关系数进行分析。其中,只有当数据满足连续且呈线性关系时,才能使用皮尔逊(Pearson)相关...
  • Pearson相关系数 两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商从式子(1)能看到,Pearson 系数的取值范围在-1~+1之间,其中1是总正线性相关性,0是非线性相关性,并且-1是总负线性相关性。...
  • 相关性系数计算两个数据集的相关性是统计中的常用操作。在MLlib中提供了计算多个数据集两两相关的方法。目前支持的相关性方法有皮尔森(Pearson)相关和斯皮尔曼(Spearman)相关。Statistics提供方法计算数据集的相关性...
  • 斯皮尔曼相关系数(Spearman)也被叫做斯皮尔曼等级相关系数,同样用于衡量两个变量之间的相关性,在之前对皮尔逊相关系数的介绍中,我们提到了在进行皮尔逊相关系数运算的时候需要确定数据是否符合正态分布等等,...
  • 我在计算面试官的斯皮尔曼相关系数。它适用于面试官1。。。我不明白Scipy是如何打断面试官_2的,因为他们没有相关性/0/nan。在import pandas as pdfrom pandas import DataFrameimport scipy.statsdf = pd.DataFrame...
  • 利用协方差,皮尔逊相关系数斯皮尔曼相关系数确定变量间的关系 https://www.toutiao.com/i6550915552490029576/ 数据集中的变量之间可能存在复杂且未知的关系。重要的是发现和量化数据集的变量相关的程度。这些...

空空如也

空空如也

1 2 3 4 5 6
收藏数 120
精华内容 48
关键字:

斯皮尔曼相关性系数