【发布时间】:2018-01-13 22:29:00
【问题描述】:
我正在查看 statsmodels 中的稳健线性回归,但找不到指定此回归“权重”的方法。例如,在最小二乘回归中为每个观察分配权重。类似于 WLS 在 statsmodels 中所做的。
或者有没有办法绕过它?
【问题讨论】:
标签: python regression linear-regression statsmodels
我正在查看 statsmodels 中的稳健线性回归,但找不到指定此回归“权重”的方法。例如,在最小二乘回归中为每个观察分配权重。类似于 WLS 在 statsmodels 中所做的。
或者有没有办法绕过它?
【问题讨论】:
标签: python regression linear-regression statsmodels
RLM 目前不允许用户指定权重。权重在内部用于实现重新加权的最小二乘拟合方法。
如果权重具有方差权重的解释以解释不同观察值的差异,则类似于 WLS 对数据(endog y 和 exog x)进行重新缩放将产生加权参数估计值。
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
我不确定是否所有可用的额外结果都适用于重新调整的模型。
编辑基于cmets的跟进
在 WLS 中,等式 W*( Y_est - Y )^2 = (sqrt(W)*Y_est - sqrt(W)*Y)^2 表示参数估计值相同,不受权重解释的影响。
在 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 中加入不同的权重类别,以开发可以添加到其他模型中的模式。目标是至少将 freq_weights、var_weights 和 prob_weights 作为模型的选项与 Stata 相似。
【讨论】: