[英]statsmodels linear regression model doesn't work because of the "invalid syntax"
[英]How does “statsmodels.regression.linear_model. WLS” work?
我使用'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。
在您的示例中,無論如何數據都是線性的,因此無論您的權重如何,回歸都是完美的。 但是,如果您將數據更改為在此處的第一個位置具有異常值
Y = [-5,2,3,4,5,6,7]
然后你得到恆定的重量
[-3.42857143 1.64285714]
但是你得到W = range(1,8)
[-1.64285714 1.28571429]
沒有離群值,它更接近你想要的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.