我在查看statsmodels中的稳健线性回归,我找不到指定此回归的“权重”的方法。例如用最小二乘回归为每个观测值分配权重。类似于WLS在statsmodels中所做的。statsmodels - 稳健线性回归中的权重
还是有办法解决它吗?
http://www.statsmodels.org/dev/rlm.html
我在查看statsmodels中的稳健线性回归,我找不到指定此回归的“权重”的方法。例如用最小二乘回归为每个观测值分配权重。类似于WLS在statsmodels中所做的。statsmodels - 稳健线性回归中的权重
还是有办法解决它吗?
http://www.statsmodels.org/dev/rlm.html
RLM目前不允许用户指定的权重。权重在内部用于实现重新加权最小二乘拟合方法。
如果权重具有方差权重的解释以考虑不同观测值之间的差异,那么重新标定数据,类似于WLS的endog y和exog x将产生加权参数估计值。在whiten
方法使用该
WLS重新调整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表示参数估计值与权重的解释无关。
在RLM我们有一个非线性目标函数g((Y - y_est)/ Sigma)处理此等价不一般
FW * G持有((Y - y_est)/西格玛)!= G ((y-y_est)* sw/sigma)
其中fw是频率权重,sw是比例或方差权重,而sigma是残差的估计比例或标准偏差。 (通常,我们找不到对应于fw的sw。)
这意味着在RLM中,我们不能使用数据的重新缩放来说明频率权重。
旁白: statsmodels目前的发展是向GLM添加不同的权重类别来开发可以添加到其他模型的模式。目标是与Stata类似,至少将freq_weights,var_weights和prob_weights作为模型的选项。
你是什么意思“重新调整数据”? – CodeNoob
与WLS的代码片段一样,将数据x和y乘以权重的平方根,或者等于除以先前的标准偏差。 – user333700
嗯..有趣的是,我没有想到简单地乘以数据会起作用。但我想是这样,因为我们有效地将W *(Y_est - Y)^ 2转换为(sqrt(W)* Y_est - sqrt(W)* Y)^ 2 ... – CodeNoob
看看这里http://scipy-cookbook.readthedocs.io/items/robust_regression.html – MishaVacic