我遇到了一个奇怪的情况, scipy.stats.linregress 似乎返回了不正确的标准错误:
from scipy import stats
x = [5.05, 6.75, 3.21, 2.66]
y = [1.65, 26.5, -5.93, 7.96]
gradient, intercept, r_value, p_value, std_err = stats.linregress(x,y)
>>> gradient
5.3935773611970186
>>> intercept
-16.281127993087829
>>> r_value
0.72443514211849758
>>> r_value**2
0.52480627513624778
>>> std_err
3.6290901222878866
而 Excel 返回以下内容:
slope: 5.394
intercept: -16.281
rsq: 0.525
steyX: 11.696
steyX 是 Excel 的标准错误函数,返回 11.696,而 scipy 则返回 3.63。有人知道这是怎么回事吗?在 python 中获取回归的标准误差的任何替代方法,无需前往 Rpy?
SciPy 用户组刚刚通知我,这里的 std_err 代表梯度线的标准误差,而不是 Excel 中预测 y 的标准误差。然而,此函数的用户应该小心,因为这并不总是该库的行为 - 它过去的输出与 Excel 完全一样,而且这种转变似乎是在过去几个月发生的。
无论如何,仍在寻找与 Python 中的 STEYX 等效的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)