gpt4 book ai didi

Python statsmodels 返回值缺失

转载 作者:行者123 更新时间:2023-12-01 04:57:47 25 4
gpt4 key购买 nike

我正在尝试在 x-y 数据的简单测试集上使用 statsmodels 中的稳健线性模型。然而,作为 model.params 的返回值,我只得到一个值。如何获得拟合的斜率和截距?最小示例(其中我试图从拟合中排除异常值,因此 rlm):

import statsmodels.api as sm
a = np.array([1,2,3,4,5,6,7,8,9])
b = 2. * np.array([1,2,9,4,5,6,7,13,9])
model = sm.RLM(b, a, M=sm.robust.norms.HuberT()).fit()
model.params

最后一行仅返回array([2.])。我用同一个包中的 ols 尝试了同样的操作,这确实给了我截距和斜率作为返回。

最佳答案

如果您使用数组,statsmodels 不会自动添加常量或截距。有一个辅助函数 add_constant 来添加常量。

>>> import statsmodels.api as sm
>>> a = np.array([1,2,3,4,5,6,7,8,9])
>>> b = 2. * np.array([1,2,9,4,5,6,7,13,9])
>>> model = sm.RLM(b, a, M=sm.robust.norms.HuberT()).fit()
>>> model.params
array([ 2.])

有一个常数

>>> a2 = sm.add_constant(a)
>>> model = sm.RLM(b, a2, M=sm.robust.norms.HuberT()).fit()
>>> model.params
array([ 2.85893087e-10, 2.00000000e+00])
>>> print model.summary()
...

这对于所有模型都是相同的,除了某些时间序列模型可以选择添加常数或趋势。

公式界面中默认添加一个常量。

关于Python statsmodels 返回值缺失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26984400/

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