statsmodels - 鲁棒线性回归中的权重

时间:2017-08-06 14:24:21

标签: python regression linear-regression statsmodels

我在查看statsmodels中的强大线性回归,但我找不到指定"权重"的方法。这个回归。例如,在每个观察中分配权重的最小二乘回归。类似于WLS在statsmodels中的作用。

或者有办法解决这个问题吗?

http://www.statsmodels.org/dev/rlm.html

1 个答案:

答案 0 :(得分:0)

RLM目前不允许用户指定权重。权重在内部用于实现重加权最小二乘拟合方法。

如果权重具有方差权重的解释以考虑观察的不同方差,那么重新调整数据,endog y和exog x,类似于WLS将产生加权参数估计。

WLS在whiten方法中使用它来重新缩放y和x

X = np.asarray(X)
if X.ndim == 1:
    return X * np.sqrt(self.weights)
elif X.ndim == 2:
    return np.sqrt(self.weights)[:, None]*X

我不确定所有可用的额外结果是否适合重新缩放的模型。

修改根据评论进行跟进

在WLS中,等价W *(Y_est - Y)^ 2 =(sqrt(W)* Y_est - sqrt(W)* Y)^ 2意味着参数估计值与权重解释无关。 / p>

在RLM中,我们有一个非线性目标函数g((y - y_est)/ sigma),这个等价一般不成立

fw * g((y - y_est)/ sigma)!= g((y - y_est)* sw / sigma)

其中fw是频率权重,sw是比例或方差权重,sigma是残差的估计尺度或标准偏差。 (一般来说,我们找不到与fw相对应的sw。)

这意味着在RLM中我们不能使用数据的重新缩放来计算频率权重。

旁白: statsmodels的当前发展是为GLM添加不同的权重类别,以开发可添加到其他模型的模式。目标是将Stata至少与freq_weights,var_weights和prob_weights类似,作为模型的选项。