首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡方分析-预期频率在(0,)处有零元素。错误

卡方分析-预期频率在(0,)处有零元素。错误
EN

Stack Overflow用户
提问于 2019-04-15 20:31:14
回答 1查看 3.9K关注 0票数 4

我正在处理数据,试图了解两个变量之间的关联,我在Python的Scipy包中使用了卡方分析。

下面是两个变量的交叉表结果:

代码语言:javascript
复制
pd.crosstab(data['loan_default'],data['id_proofs'])

结果:

代码语言:javascript
复制
   id_proofs    2   3   4   5
  loan_default              
    0   167035  15232   273 3
    1   46354   4202    54  1

如果我对相同的数据应用卡方,我会看到一个错误ValueError:内部计算的预期频率表在(0,)处有一个零元素。

代码:

代码语言:javascript
复制
from scipy.stats import chi2_contingency
stat,p,dof,expec = chi2_contingency(data['loan_default'],data['id_proofs'])
print(stat,p,dof,expec)

错误报告:

代码语言:javascript
复制
    ---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-154-63c6f49aec48> in <module>()
      1 from scipy.stats import chi2_contingency
----> 2 stat,p,dof,expec = chi2_contingency(data['loan_default'],data['id_proofs'])
      3 print(stat,p,dof,expec)

~/anaconda3/lib/python3.6/site-packages/scipy/stats/contingency.py in chi2_contingency(observed, correction, lambda_)
    251         zeropos = list(zip(*np.where(expected == 0)))[0]
    252         raise ValueError("The internally computed table of expected "
--> 253                          "frequencies has a zero element at %s." % (zeropos,))
    254 
    255     # The degrees of freedom

ValueError: The internally computed table of expected frequencies has a zero element at (0,).

出现此问题的原因可能是什么?我该如何克服这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-16 01:39:44

再看一看chi2_contingency的文档字符串。第一个参数observed必须是列联表。您必须计算列联表(就像您对pd.crosstab(data['loan_default'],data['id_proofs'])所做的那样),并将其传递给chi2_contingency

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55689261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档