You can use Gradient Descent in quantile-regression. I experimented with some toy data (both 1D and 4D) and this works fine and gives similar results to the linear programming methods (simplex, interior-point) and to the IRLS method.
The objective in (simple=1D) quantile regression is:
$$ \mathcal L= \sum_i \rho_\alpha(y_i-\beta_0-x\cdot\beta_1)$$
where $\rho_\alpha(y_i-\beta_0-x\cdot\beta_1)= \begin{cases} (\alpha-1)(y_i-\beta_0-x\cdot\beta_1), &y_i-\beta_0-x\cdot\beta_1<0 \\ \alpha(y_i-\beta_0-x\cdot\beta_1), & y_i-\beta_0-x\cdot\beta_1 \ge 0
\end{cases}
$
If we take the gradient w.r.t. say $\beta_0$, you get $1-\alpha$ in the 1st case, and $-\alpha$ in the 2nd case. You can evaluate the conditions given some initial $\beta$'s, and then sum on the data, and so you can perform gradient-descent.
Here is how I defined the quant_loss
in python (tau
replacing $\alpha$):
def quant_loss(y_hat, y):
e = y - y_hat
loss = (tau-1)*e*(e<0) + tau*e*(e>=0)
return loss.sum()
You can check out my code implementation in Python on GitHub here.