我有一些数据,y 有错误,y_err,在 x 处测量。我需要拟合一条直线来模仿matlab中的一些代码,特别是具有健壮“on”的拟合方法,并将权重设为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 模块。
针对第一个答案:我试过了;
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()
但遗憾的是,这与 matlab 函数不匹配。