我在查看statsmodels中的强大线性回归,但我找不到指定"权重"的方法。这个回归。例如,在每个观察中分配权重的最小二乘回归。类似于WLS在statsmodels中的作用。
或者有办法解决这个问题吗?
答案 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类似,作为模型的选项。