gpt4 book ai didi

python - "statsmodels.regression.linear_model. WLS"是如何工作的?

转载 作者:行者123 更新时间:2023-11-28 17:35:43 28 4
gpt4 key购买 nike

我使用“statsmodels.regression.linear_model”来做 WLS。

但我不知道如何为我的回归赋予权重。

有谁知道权重是如何给出的以及它是如何工作的?

import numpy as np
import statsmodels.api as sm
Y = [1,2,3,4,5,6,7]
X = range(1,8)
W= [1,1,1,1,1,1,1]
X = sm.add_constant(X)
wls_model = sm.WLS(Y,X, weights=W)
results = wls_model.fit()
results.params
print results.params
#[ -1.55431223e-15 1.00000000e+00]

import numpy as np
import statsmodels.api as sm
Y = [1,2,3,4,5,6,7]
X = range(1,8)
W= range(1,8)
X = sm.add_constant(X)
wls_model = sm.WLS(Y,X, weights=W)
results = wls_model.fit()
results.params
print results.params
#[0 1]

为什么当权重为 range(1,8) 时,斜率和截距为 1 和 0。但当权重为“1”时,截距不为 0。

最佳答案

在您的示例中,数据无论如何都是线性的,因此无论您的权重如何,回归都将是一个完美的拟合。但是如果你改变你的数据在第一个位置有一个离群值这样

Y = [-5,2,3,4,5,6,7]

然后你得到恒定的权重

[-3.42857143  1.64285714]

但是使用 W = range(1,8) 你会得到

[-1.64285714  1.28571429]

在没有异常值的情况下,这更接近您想要的。

关于python - "statsmodels.regression.linear_model. WLS"是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30724573/

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