如何用 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 列的表格,但完全相同的代码适用于任何维度的表格。