gpt4 book ai didi

python - 使用 pandas,计算 Cramér 的系数矩阵

转载 作者:IT老高 更新时间:2023-10-28 20:53:04 26 4
gpt4 key购买 nike

我在 pandas 中有一个数据框,其中包含根据维基百科文章计算的指标。两个分类变量 nation 文章是关于哪个国家的,以及 lang 这是从哪个语言维基百科中获取的。对于单个指标,我想看看国家和语言变量的相关性有多密切,我相信这是使用 Cramer 的统计数据完成的。

index   qid     subj    nation  lang    metric          value
5 Q3488399 economy cdi fr informativeness 0.787117
6 Q3488399 economy cdi fr referencerate 0.000945
7 Q3488399 economy cdi fr completeness 43.200000
8 Q3488399 economy cdi fr numheadings 11.000000
9 Q3488399 economy cdi fr articlelength 3176.000000
10 Q7195441 economy cdi en informativeness 0.626570
11 Q7195441 economy cdi en referencerate 0.008610
12 Q7195441 economy cdi en completeness 6.400000
13 Q7195441 economy cdi en numheadings 7.000000
14 Q7195441 economy cdi en articlelength 2323.000000

我想生成一个矩阵,显示所有国家组合(法国、美国、科特迪瓦和乌干达)之间的克莱默系数 ['fra','usa','uga'] 和三种语言 ['fr','en','sw']。所以会有一个 4 x 3 矩阵,如:

       en         fr          sw
usa Cramer11 Cramer12 ...
fra Cramer21 Cramer22 ...
cdi ...
uga ...

最终,我将对我正在跟踪的所有不同指标进行此操作。

for subject in list_of_subjects:
for metric in list_of_metrics:
cramer_matrix(metric, df)

然后我可以检验我的假设,即语言为维基百科语言的文章的指标会更高。谢谢

最佳答案

在我进行的一些测试中,cramers V 似乎过于乐观了。维基百科推荐一个更正的版本。

import scipy.stats as ss

def cramers_corrected_stat(confusion_matrix):
""" calculate Cramers V statistic for categorial-categorial association.
uses correction from Bergsma and Wicher,
Journal of the Korean Statistical Society 42 (2013): 323-328
"""
chi2 = ss.chi2_contingency(confusion_matrix)[0]
n = confusion_matrix.sum()
phi2 = chi2/n
r,k = confusion_matrix.shape
phi2corr = max(0, phi2 - ((k-1)*(r-1))/(n-1))
rcorr = r - ((r-1)**2)/(n-1)
kcorr = k - ((k-1)**2)/(n-1)
return np.sqrt(phi2corr / min( (kcorr-1), (rcorr-1)))

另请注意,混淆矩阵可以通过内置的 pandas 分类列方法计算:

import pandas as pd
confusion_matrix = pd.crosstab(df[column1], df[column2])

关于python - 使用 pandas,计算 Cramér 的系数矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20892799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com