使用python模块“statsmodels”中带有权重的健壮线性方法?

使用python模块“statsmodels”中带有权重的健壮线性方法?,python,matlab,linear-regression,statsmodels,Python,Matlab,Linear Regression,Statsmodels,我有一些数据,y有误差,y_err,在x处测量。我需要拟合一条直线,模拟matlab中的一些代码,特别是拟合方法,并将权重设为1/yerr。matlab文档称,它使用了bisquare方法,也称为TukeyBiweight方法。到目前为止,我的代码是 rlm_model = sm.RLM(y, x, M=sm.robust.norms.TukeyBiweight()) rlm_results = rlm_model.fit() print rlm_results.para

我有一些数据,y有误差,y_err,在x处测量。我需要拟合一条直线,模拟matlab中的一些代码,特别是拟合方法,并将权重设为1/yerr。matlab文档称,它使用了bisquare方法,也称为TukeyBiweight方法。到目前为止,我的代码是

    rlm_model = sm.RLM(y, x, M=sm.robust.norms.TukeyBiweight())
    rlm_results = rlm_model.fit()
    print rlm_results.params
但是,我需要找到一种方法来包含从yerr导出的权重。 希望大家能帮忙,这是我第一次尝试使用statsmodel模块

针对第一个答案: 我试过了


但遗憾的是,这与matlab函数不匹配。

反映异方差的权重,即观测值之间的不等方差,尚不受STATSRLM模型的支持

作为一种解决方法,您可以在调用RLM时将y和x除以YER

我认为,与加权最小二乘法类似,在这种情况下,参数估计、标准误差和其他统计数据仍然是正确的。但我还没查过

作为参考:

卡罗尔、雷蒙德J.和大卫·鲁佩特。异方差线性模型中的稳健估计。《统计年鉴》1982:429-441

它们也估计方差函数,但对于固定权重1/sigma_i,优化只使用

y_i-x_iβ/sigma_i


权重1/sigma_i仅为相对权重,仍将乘以误差范围的稳健估计。

我编辑了该问题以反映您的提示。同样感谢您的参考,因为我认为问题源于我对这类方法的理解不足。尝试y=y/yerr,除以yerr,权重是相反的。在除以x除以yerr之前,你必须加上常数,x/yerr。该常数也需要加权。
y=y*(yerr)
x=x*(yerr)

x=sm.add_constant(x, prepend=False)
rlm_model = sm.RLM(y, x, M=sm.robust.norms.TukeyBiweight())
results=rlm_model.fit()