首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"statsmodels.regression.linear_model. WLS“是如何工作的?

"statsmodels.regression.linear_model. WLS“是如何工作的?
EN

Stack Overflow用户
提问于 2015-06-09 06:33:06
回答 1查看 3.9K关注 0票数 3

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

但我不知道如何给我的回归权重。

有没有人知道这个重量是如何分配的,它是如何工作的?

代码语言:javascript
复制
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]
代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

发布于 2015-06-09 06:42:30

在你的例子中,数据是线性的,所以不管你的权重如何,回归都是一个完美的匹配。但是,如果您将数据更改为在第一个位置有一个异常值,则如下所示

代码语言:javascript
复制
Y = [-5,2,3,4,5,6,7]

然后用恒定的重量

代码语言:javascript
复制
[-3.42857143  1.64285714]

但是有了W = range(1,8)你就可以

代码语言:javascript
复制
[-1.64285714  1.28571429]

这更接近你想要的没有离群点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30724573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档