Regression

線性回歸最小化sklearn中的MAD

  • January 21, 2019

標準 sklearn 線性回歸類在變量和協變量之間找到近似線性關係,以最小化均方誤差 (MSE)。具體來說,讓 $ N $ 是觀察的數量,為簡單起見讓我們忽略截距。讓 $ y_j $ 是變量的值 $ j $ -th 觀察和 $ x_{1,j}, \dots, x_{n,j} $ 是的值 $ n $ 的協變量 $ j $ -第一次觀察。線性關係的形式為 $$ y = \beta_1 x_1 + \dots \beta_n x_n; $$ 其中係數 $ \beta_1, \dots, \beta_n $ 由 $$ \beta_1, \dots, \beta_n = \underset{\tilde\beta_1, \dots, \tilde\beta_n}{\mathrm{argmin}} \left( \sum_{j = 1}^N \left( y_j - \tilde\beta_1x_{1, j} - \dots -\tilde\beta_nx_{n, j}\right)^2 \right). $$

我現在希望找到最小化平均絕對偏差 (MAD) 而不是均方誤差的係數。即,我想要給出的係數 $$ \beta_1, \dots, \beta_n = \underset{\tilde\beta_1, \dots, \tilde\beta_n}{\mathrm{argmin}} \left( \sum_{j = 1}^N \left| y_j - \tilde\beta_1x_{1, j} - \dots -\tilde\beta_nx_{n, j}\right| \right). $$

我知道,與 MSE 案例形成鮮明對比的是,絕對值函數在 $ 0 $ 意味著對於 MAD 案例沒有解析解。但是後者仍然是一個凸優化問題,根據這個答案,可以很容易地通過線性規劃來解決。

是否可以在 sklearn 中實現這種線性回歸?使用其他統計工具包怎麼樣?

預期 MAD 通過分佈的中位數最小化(Hanley, 2001, The American Statistician;另請參閱為什麼最小化 MAE 會導致預測中位數而不是均值?)。因此,您正在尋找將產生條件中位數而不是條件均值的模型。

這是一個特殊情況分位數回歸,特別是對於 50% 的分位數。Roger Koenker 是分位數回歸的主要大師;特別參見他的書Quantile Regression

有多種方法可以在 Python 中進行分位數回歸。本教程可能會有所幫助。如果您願意使用 R,則可以使用該quantreg軟件包。

引用自:https://stats.stackexchange.com/questions/388341

comments powered by Disqus