Scipy线性回归不包括“截距”属性

2024-10-02 14:17:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用scipy对一组二维点执行线性回归。如文档here所述,适当的调用是

regression_results = scipy.stats.linregress(x_values, y_values)

文档声明regression_results对象包含以下值:slope, intercept, rvalue, pvalue, stderr, intercept_stderr。除了最后一个,所有这些都存在

这些值都存在于dict中,但intercept_stderr根本不存在。我一生都搞不懂为什么。以下是我尝试运行的简单代码:

from scipy import stats

# given two lists nmeq_x and nmeq_y... 

result = stats.linregress(nmeq_x, nmeq_y)
print(result.intercept, result.intercept_stderr)

我得到一个错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-18-7df9d260a3bb> in <module>
      1 result = stats.linregress(nmeq_x, nmeq_y)
----> 2 print(result.intercept, result.intercept_stderr)

AttributeError: 'LinregressResult' object has no attribute 'intercept_stderr'

Tags: 文档herestatsstderr线性scipyresultresults
1条回答
网友
1楼 · 发布于 2024-10-02 14:17:47

这是关于你的scipy版本;该功能于2020年12月31日发布

请注意,文档中说:

For compatibility with older versions of SciPy, the return value acts like a namedtuple of length 5, with fields slope, intercept, rvalue, pvalue and stderr

那么,您必须有一个旧版本。最近添加了intercept_stderr字段。将您的scipy更新到1.6

相关问题 更多 >