scipy.stats.contingency.

关联#

scipy.stats.contingency.association(observed, method='cramer', correction=False, lambda_=None)[源代码]#

计算两个名义变量之间的关联程度。

该函数提供了从二维列联表中给出的数据计算两个名义变量之间三种关联度量之一的选项:Tschuprow's T,皮尔逊列联系数和 Cramer's V。

参数:
observed类数组

观察值的数组

method{“cramer”, “tschuprow”, “pearson”} (默认 = “cramer”)

关联检验统计量。

correctionbool,可选

继承自 scipy.stats.contingency.chi2_contingency()

lambda_float 或 str,可选

继承自 scipy.stats.contingency.chi2_contingency()

返回:
statisticfloat

检验统计量的值

备注

Cramer’s V,Tschuprow’s T 和皮尔逊列联系数都衡量两个名义变量或顺序变量的相关程度,或它们的关联水平。这与相关性不同,尽管许多人经常错误地认为它们是等效的。相关性衡量两个变量以何种方式相关,而关联性衡量变量的相关程度。因此,关联性并不包含自变量,而是一种独立性检验。值为 1.0 表示完全关联,而 0.0 表示变量之间没有关联。

Cramer’s V 和 Tschuprow’s T 都是 phi 系数的扩展。此外,由于 Cramer’s V 和 Tschuprow’s T 之间的密切关系,返回的值通常可能相似甚至相等。当数组形状偏离 2x2 时,它们可能会更发散。

参考文献

[2]

Tschuprow, A. A. (1939) Principles of the Mathematical Theory of Correlation; translated by M. Kantorowitsch. W. Hodge & Co.

[4]

“Nominal Association: Phi and Cramer’s V”, http://www.people.vcu.edu/~pdattalo/702SuppRead/MeasAssoc/NominalAssoc.html

[5]

Gingrich, Paul, “Association Between Variables”, http://uregina.ca/~gingrich/ch11a.pdf

示例

一个 4x2 列联表的示例

>>> import numpy as np
>>> from scipy.stats.contingency import association
>>> obs4x2 = np.array([[100, 150], [203, 322], [420, 700], [320, 210]])

皮尔逊列联系数

>>> association(obs4x2, method="pearson")
0.18303298140595667

Cramer's V

>>> association(obs4x2, method="cramer")
0.18617813077483678

Tschuprow's T

>>> association(obs4x2, method="tschuprow")
0.14146478765062995