Quantile Regression Explained
Quantile Regression Explained
1 Quantile Regression
scikit-learn does not have a quantile regression. mlinsights implements a version of it.
1
Out[6]: X Y clr clq
0 0.710310 8.031079 8.515732 8.024375
1 0.246556 6.409345 6.936975 6.448834
2 0.851280 8.475841 8.995636 8.503300
3 0.140727 6.058996 6.576702 6.089295
4 0.731571 8.070341 8.588110 8.096605
The L1 is clearly less sensible to extremas. The optimization algorithm is based on Iteratively reweighted
least squares. It estimates a linear regression with error L2 then reweights each oberservation with the
inverse of the error L1.
2
[QuantileLinearRegression.fit] iter=9 error=521.206723757895
[QuantileLinearRegression.fit] iter=10 error=521.1212078810222
[QuantileLinearRegression.fit] iter=11 error=521.0410686984816
[QuantileLinearRegression.fit] iter=12 error=520.9841924800792
[QuantileLinearRegression.fit] iter=13 error=520.9349774362781
[QuantileLinearRegression.fit] iter=14 error=520.907415015473
[QuantileLinearRegression.fit] iter=15 error=520.8939558844767
[QuantileLinearRegression.fit] iter=16 error=520.8845502333198
[QuantileLinearRegression.fit] iter=17 error=520.8791552281199
[QuantileLinearRegression.fit] iter=18 error=520.874494484882
[QuantileLinearRegression.fit] iter=19 error=520.8709629795006
[QuantileLinearRegression.fit] iter=20 error=520.8680582590082
In [9]: clq.score(X,Y)
Out[9]: 0.5208680582590082
3
In [12]: clqs = {}
for qu in [0.1, 0.25, 0.5, 0.75, 0.9]:
clq = QuantileLinearRegression(quantile=qu)
clq.fit(X, Y)
clqs['q=%1.2f' % qu] = clq