标称有序列表中的scipy.stats.spearmanr参数是什么?

根据scipy.stats文档中提到的内容,spearman排名相关性有两个array_like,它定义为“...包含多个变量和观察值的数组,每个代表一个变量的观测值向量......”。 但是,大多数实际例子,如斯皮尔曼的维基百科的等级相关系数页面,都计算出两个基本变量之间的相关性,而不是两个有序变量。 如果我想估计两个偏好排序列表有多接近,那么我的参数是多少? 例如,我们要求两个人在四个项目之间排序。 我们对person_2有[Item_1,Item_3,Item_0,Item_2],对于person_2有[Item_1,Item_3,Item_2,Item_0]。 显然, 如果这两个有序列表的相关系数接近于1,则可以推断出它们具有相同的偏好 。 所以我们使用斯皮尔曼的等级相关系数。 但输入参数会改变相关系数; 如果我们使用项目顺序相关应该是0.19:

>>> from scipy import stats
>>> stats.spearmanr([1,3,0,2],[1,3,2,0])
SpearmanrResult(correlation=0.19,pvalue=0.80)

但是如果我们使用相关项目的排名列表应该是0.79:

from scipy import stats
>>> stats.spearmanr([2,0,3,1],[3,0,2,1])
SpearmanrResult(correlation=0.79, pvalue=0.20)

但是,对于一个基本变量来说,这并不是真的,例如一个人的智商与每周在电视机前面花费的小时数之间的相关性,这在维基百科中已有解释。 它意味着我们使用的任何(Xi,Yi)或(xi,yi)结果是相同的(p = -0.17):

>>> from scipy import stats
>>> stats.spearmanr([86,97,99,100,101,103,106,110,112,113],[0,20,28,27,50,29,7,17,6,12])
SpearmanrResult(correlation=-0.17575757575757575, pvalue=0.62718834477648444)
>>> stats.spearmanr([1,2,3,4,5,6,7,8,9,10],[1,6,8,7,10,9,3,5,2,4])
SpearmanrResult(correlation=-0.17575757575757575, pvalue=0.62718834477648444)

根据斯皮尔曼的等级相关系数定义,我们必须排序一个列表并给每个实例提供一个位置编号。 因此,在第二个例子中可以看出,我们使用值列表或等级列表并不重要,但它必须将两个实例列表考虑为一对实例列表,并用名称对每对列表进行调用。 因此,在名义列表中,我们修复一个列表,并在第二个列表中找到每个列表成员的排名,并将此排名置于相同的位置。

在这种情况下,我们必须为每个人找到物品的排名列表,但具有相同的物品订单。 我们选择物品的顺序并不重要。

[Item_0,Item_1,Item_2,Item_3]

person_1:[3,1,4,2]或[2,0,3,1]

person_2:[4,1,3,2]或[3,0,2,1]

>>> stats.spearmanr([3,1,4,2],[4,1,3,2])
SpearmanrResult(correlation=0.79999999999999993, pvalue=0.20000000000000007)

要么:

[Item_1,Item_3,Item_0,Item_2]

person_1:[1,2,3,4]或[0,1,2,3]

person_2:[1,2,4,3]或[0,1,3,2]

>>> stats.spearmanr([1,2,3,4],[1,2,4,3])
SpearmanrResult(correlation=0.79999999999999993, pvalue=0.20000000000000007)
链接地址: http://www.djcxy.com/p/57761.html

上一篇: What is the scipy.stats.spearmanr's parameters in nominal ordered list?

下一篇: Calculate Spearman correlation and corrected p