当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy stats.somersd用法及代码示例


本文简要介绍 python 语言中 scipy.stats.somersd 的用法。

用法:

scipy.stats.somersd(x, y=None, alternative='two-sided')#

计算 Somers 的 D,一种序数关联的不对称度量。

与 Kendall 的 一样,Somers 的 是衡量两个排名之间对应关系的指标。这两个统计数据都考虑了两个排名 中一致和不一致对的数量之间的差异,并且两者都进行了归一化,使得接近 1 的值表示高度一致,接近 -1 的值表示高度不一致。它们的标准化方式不同。为了显示这种关系,Somers 的 可以根据 Kendall 的 来定义:

假设第一排名 具有 不同排名,第二排名 具有 不同排名。这两个 排名列表也可以被视为 列联表;其中元素 是排名 中排名 和排名 中排名 的排名对的数量。因此,somersd 还允许输入数据作为单个 2D 列联表提供,而不是作为两个单独的 1D 排名提供。

请注意,Somers 的 的定义是不对称的:通常是 somersd(x, y) 计算 Somers 的 :“row” 变量 被视为自变量,而 “column” 变量 是因变量。对于 Somers 的 ,交换输入列表或转置输入表。

参数

x array_like

一维排名数组,被视为(行)自变量。或者,二维列联表。

y 数组,可选

如果 x 是排名的一维数组,则 y 是相同长度的排名的一维数组,被视为(列)因变量。如果 x 是 2D,则忽略 y。

alternative {‘双面’,‘less’, ‘greater’},可选

定义备择假设。默认为“双面”。提供以下选项: * ‘two-side’:等级相关性非零 * ‘less’:等级相关性为负(小于零) * ‘greater’:等级相关性为正(大于零)

返回

res SomersDResult

具有以下字段的 SomersDResult 对象:

statistic float

The Somers’ statistic.

pvalue float

The p-value for a hypothesis test whose null hypothesis is an absence of association, . See notes for more information.

table 2D array

The contingency table formed from rankings x and y (or the provided contingency table, if x is a 2D array)

注意

该函数遵循列联表方法[2][3].p-值是根据零假设下的检验统计分布的渐近近似计算的\(D=0\) .

理论上,基于 Kendall 的假设检验\(tau\) 和萨默斯\(D\) 应该是相同的。然而p-返回的值scipy.stats.kendalltau是基于零假设独立之间\(X\) \(Y\) (即配对的人口\(X\) \(Y\) 被采样包含相同数量的所有可能对),这比零假设更具体\(D=0\) 在这里使用。如果需要独立的零假设,则可以使用p-返回的值scipy.stats.kendalltau与返回的统计数据somersd反之亦然。有关详细信息,请参阅[2].

列联表的格式根据 SAS 和 R 使用的约定:提供的第一个排名 (x ) 是 “row” 变量,提供的第二个排名 (y ) 是 “column” 变量。这与 Somers 原始论文 [1] 的惯例相反。

参考

[1]

Robert H. Somers,“序变量关联的新不对称度量”,美国社会学评论,卷。 27,第 6 期,第 799-811 页,1962 年。

[2] (1,2)

Morton B. Brown 和 Jacqueline K. Benedetti,“双向列联表中相关性检验的抽样行为”,美国统计协会杂志,第 1 卷。 72,第 358 期,第 309-315 页,1977 年。

[3]

SAS Institute, Inc.,“The FREQ Procedure (Book Excerpt)”,SAS/STAT 9.2 用户指南,第二版,SAS Publishing,2009。

[4]

Laerd Statistics,“Somers' d using SPSS Statistics”,SPSS Statistics 教程和统计指南,https://statistics.laerd.com/spss-tutorials/somers-d-using-spss-statistics.php, 2020 年 7 月 31 日访问。

例子

我们根据[4]中给出的示例计算 Somers’D,其中连锁酒店业主试图确定酒店房间清洁度和客户满意度之间的关联。自变量酒店房间清洁度按顺序排列:“低于平均水平 (1)”、“平均水平 (2)”或“高于平均水平 (3)”。因变量客户满意度按第二个等级排列:“非常不满意 (1)”、“一般不满意 (2)”、“既不满意也不满意 (3)”、“一般满意 (4)”或“非常满意(5)”。 189 名客户对调查进行了回应,结果被放入列联表中,其中酒店房间清洁度作为 “row” 变量,客户满意度作为 “column” 变量。

27

25

14

7

0

7

14

18

35

12

1

3

2

7

17

例如,27 位顾客给他们房间的清洁度评分为“低于平均水平 (1)”,相应的满意度为“非常不满意 (1)”。我们进行如下分析。

>>> from scipy.stats import somersd
>>> table = [[27, 25, 14, 7, 0], [7, 14, 18, 35, 12], [1, 3, 2, 7, 17]]
>>> res = somersd(table)
>>> res.statistic
0.6032766111513396
>>> res.pvalue
1.0007091191074533e-27

Somers’D 统计量的值约为 0.6,表明样本中房间清洁度与客户满意度之间呈正相关。 p 值非常小,表明在整个总体(我们从中抽取 189 个客户的样本)的统计数据为零的原假设下,观察到统计数据极值的概率非常小。这支持了另一种假设,即总体的 Somers D 的真实值不为零。

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.somersd。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。