我用“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]为什么当权重在1,8范围内,斜率和截距是1和0。但当重量为"1“时,截距不是0。
发布于 2015-06-09 06:42:30
在你的例子中,数据是线性的,所以不管你的权重如何,回归都是一个完美的匹配。但是,如果您将数据更改为在第一个位置有一个异常值,则如下所示
Y = [-5,2,3,4,5,6,7]然后用恒定的重量
[-3.42857143 1.64285714]但是有了W = range(1,8)你就可以
[-1.64285714 1.28571429]这更接近你想要的没有离群点。
https://stackoverflow.com/questions/30724573
复制相似问题