Python “怎么做?”;statsmodels.Retression.linear_模型。WLS";工作
我使用了“statsmodels.regression.linear_model”来做WLS 但我不知道如何衡量我的回归 有人知道重量是如何分配的,它是如何工作的吗Python “怎么做?”;statsmodels.Retression.linear_模型。WLS";工作,python,linear-regression,statsmodels,Python,Linear Regression,Statsmodels,我使用了“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
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]
为什么当权重为范围(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]
在没有异常值的情况下,它更接近您想要的值。观测值是固定的,因此我无法添加数据来更改其关系。
[-1.64285714 1.28571429]