statsmodels 0.8.0运行Logit模型报错:scipy.stats无chisqprob属性
解决statsmodels 0.8.0中
scipy.stats.chisqprob缺失的问题 这个错误其实是scipy版本更新和旧版statsmodels不兼容导致的——scipy在1.0.0之后的版本里移除了scipy.stats.chisqprob函数,但你用的statsmodels 0.8.0还在依赖这个已经被淘汰的接口。给你两个实用的解决办法:
临时兼容修复(最快见效)
在导入statsmodels之前,手动给scipy.stats添加这个缺失的函数映射,把它指向scipy现在推荐的chi2.sf函数。修改你的代码开头:import scipy.stats as stats # 给旧版statsmodels提供兼容的chisqprob函数 stats.chisqprob = lambda chisq, df: stats.chi2.sf(chisq, df) import statsmodels.api as sm est = sm.Logit(y_train, x_train) result = est.fit() print(result.summary())这样老版本的statsmodels就能正常调用这个函数,不会再报错。
彻底升级解决(长远方案)
直接把statsmodels升级到适配新版scipy的版本(比如0.10.0及以上),这些版本已经把chisqprob的调用替换成了新的scipy接口。在终端运行升级命令:pip install --upgrade statsmodels升级完成后,你的原有代码就能正常运行,不需要额外修改。
如果升级时遇到依赖冲突,可以考虑指定一个和statsmodels 0.8.0兼容的旧版scipy(比如scipy 0.19.1),但临时修复的方法更适合快速解决当前问题。
内容的提问来源于stack exchange,提问作者A Rob4
相关产品推荐
相关产品推荐

