scipy.stats.

somersd#

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

计算 Somers' D,这是有序关联的不对称度量。

与 Kendall 的 \(\tau\)一样,Somers' \(D\)是衡量两个排名之间对应关系的指标。两种统计量都考虑两个排名 \(X\)\(Y\)中一致对和不一致对数量之间的差异,并且都被标准化,以便接近 1 的值表示强烈一致,而接近 -1 的值表示强烈不一致。它们的标准化方式不同。为了展示这种关系,可以根据 Kendall 的 \(\tau_a\)对 Somers' \(D\) 进行定义

\[D(Y|X) = \frac{\tau_a(X, Y)}{\tau_a(X, X)}\]

假设第一个排名 \(X\)\(r\) 个不同的排名,第二个排名 \(Y\)\(s\) 个不同的排名。这两个 \(n\) 个排名的列表也可以看作一个 \(r \times s\) 列联表,其中元素 \(i, j\) 是排名 \(i\) 在排名 \(X\) 中与排名 \(j\) 在排名 \(Y\) 中的排名对数量。相应地,somersd 也允许输入数据作为单个、2D 列联表提供,而不是两个单独的、1D 排名。

请注意 Somers’ \(D\) 的定义是不对称的:一般来说,\(D(Y|X) \neq D(X|Y)\)somersd(x, y) 会计算 Somers’ \(D(Y|X)\):“行”变量 \(X\) 被视为自变量,“列”变量 \(Y\) 被视为因变量。对于 Somers’ \(D(X|Y)\),交换输入列表或转置输入表格。

参数:
xarray_like

排名的 1D 数组,被视为(行)自变量。或者,2D 列联表。

yarray_like, 可选

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

alternative{‘two-sided’, ‘less’, ‘greater’}, 可选

定义备用假设。默认值为“two-sided”。以下选项可用:* ‘two-sided’:等级相关系数不为零* ‘less’:等级相关系数为负(小于零)* ‘greater’:等级相关系数为正(大于零)

返回:
resSomersDResult

一个 SomersDResult 对象包含以下字段

statisticfloat

Somers’ \(D\) 统计量。

pvaluefloat

零假设为无关联的假设检验的 p 值\(D=0\)。有关更多信息,请参阅注释。

table2D 数组

由排名xy (或给定的列联表,如果 x 是一个二维数组)形成的列联表

另请参阅

kendalltau

计算 Kendall 的 tau,另一种相关测量。

weightedtau

计算 Kendall 的 tau 的加权版本。

spearmanr

计算 Spearman 等级相关系数。

pearsonr

计算 Pearson 相关系数。

注释

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

从理论上讲,基于 Kendall 的 \(tau\) 和 Somers 的 \(D\) 的假设检验应该相同。但是,由 kendalltau 返回的 p 值基于 \(X\)\(Y\) 之间的独立性的原假设(即从中对 \(X\)\(Y\) 中的对进行抽样的总体包含所有可能的对的数量相等),它比这里使用的原假设 \(D=0\) 更加具体。如果期望独立性原假设,可以使用 kendalltau 返回的 p 值和 somersd 返回的统计量,反之亦然。有关更多信息,请参阅 [2]

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

参考

[1]

罗伯特·H·萨默斯,“有序变量的新型非对称关联测量”,《美国社会学评论》,第 27 卷,第 6 期,第 799-811 页,1962 年。

[2] (1,2)

莫顿·B·布朗和杰奎琳·K·贝内代蒂,“二维列联表中相关性检验的抽样行为”,《美国统计协会杂志》,第 72 卷,第 358 期,第 309-315 页,1977 年。

[3]

SAS Institute, Inc.,“FREQ 过程(摘录)”,《SAS/STAT 9.2 用户指南,第二版》,SAS 出版社,2009 年。

[4]

Laerd Statistics,“使用 SPSS 统计数据计算 Somers d”,SPSS 统计教程和统计指南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 名顾客对调查问卷作出了回应,结果被转换为列联表,其中酒店客房清洁度作为“行”变量,而顾客满意度作为“列”变量。

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 真实值为非零。