【问题标题】:How to apply cramer V on 2x2 matrix如何在 2x2 矩阵上应用 cramer V
【发布时间】:2017-07-11 13:18:52
【问题描述】:

我想找到变量和 cramer V 之间的关联,就像对待大小大于 2X2 的矩阵一样。但是,对于低频矩阵,它不能很好地工作。对于以下列联矩阵,我得到的结果为 0.5。我该如何解释呢?

  1 2  
a 2 0  
b 0 2  

这是我的代码:

def cramers_stat(confusion_matrix):  
    chi2 = ss.chi2_contingency(confusion_matrix)[0]  
    n = confusion_matrix.sum().sum()  
    return np.sqrt(chi2 / (n*(min(confusion_matrix.shape)-1)))  
result=cramers_stat(confusion_matrix)  
print(result) 

confusion_matrix 是我的输入,在这种情况下是我上面提到的矩阵。我理解为了获得良好的结果,我需要一个高于 5 的矩阵频率,但对于上述情况的完美关联,我预计结果为 1。

【问题讨论】:

    标签: python pandas numpy scipy


    【解决方案1】:

    当您计算克拉梅系数时,您必须计算没有continuity correction 的 chi2。对于 2x2 矩阵,chi2_contingency 默认使用连续性校正。所以你必须通过给出参数correction=False来告诉chi2_contingency不要使用连续性校正:

    chi2 = ss.chi2_contingency(confusion_matrix, correction=False)[0]  
    

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2014-01-20
      • 1970-01-01
      • 2014-08-08
      • 2014-09-05
      相关资源
      最近更新 更多