如何用 python 计算 cramer 的 v


Cramer 的 V是两个名义变量之间关联强度的度量。

它从 0 到 1,其中:

  • 0表示两个变量之间没有关联。
  • 1表示两个变量之间存在很强的关联。

计算方法如下:

克莱默的 V = √ (X 2 /n) / min(c-1, r-1)

金子:

  • X 2卡方统计量
  • n:总样本量
  • r:行数
  • c:列数

本教程提供了一些使用 Python 计算列联表的 Cramer V 的示例。

示例 1:2×2 表的 Cramer’s V

以下代码显示如何计算 2×2 表的 Cramer’s V:

 #load necessary packages and functions
import scipy. stats as stats
import numpy as np

#create 2x2 table
data = np. array ([[7,12], [9,8]])

#Chi-squared test statistic, sample size, and minimum of rows and columns
X2 = stats. chi2_contingency (data, correction= False )[0]
n = np. sum (data)
minDim = min( data.shape )-1

#calculate Cramer's V
V = np. sqrt ((X2/n) / minDim)

#display Cramer's V
print(V)

0.1617

Cramer 的 V 结果为0.1617 ,这表明表中两个变量之间的关联相当弱。

示例 2:适用于较大表格的 Cramer’s V

请注意,我们可以使用CramerV函数来计算任意大小的数组的 Cramer V。

以下代码显示如何计算 2 行 3 列表的 Cramer’s V:

 #load necessary packages and functions
import scipy. stats as stats
import numpy as np

#create 2x2 table
data = np. array ([[6,9], [8, 5], [12, 9]])

#Chi-squared test statistic, sample size, and minimum of rows and columns
X2 = stats. chi2_contingency (data, correction= False )[0]
n = np. sum (data)
minDim = min( data.shape )-1

#calculate Cramer's V
V = np. sqrt ((X2/n) / minDim)

#display Cramer's V
print(V)

0.1775

Cramer 的 V 结果为0.1775

请注意,此示例使用了 2 行 3 列的表格,但完全相同的代码适用于任何维度的表格。

其他资源

Python 中的卡方独立性测试
Python 中的卡方拟合优度检验
Python 中的 Fisher 精确检验

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注