from sklearn.base import BaseEstimator, RegressorMixin import statsmodels.api as sm class QuantileRegression(BaseEstimator, RegressorMixin): """Sklearn wrapper for statsmodels Quantile Regression """ def __init__(self, quantile=0.5, **kwargs): self.quantile = quantile self.kwargs = kwargs self.model = None self.fitted = None def fit(self, X, y=None): X = sm.add_constant(X) self.model = sm.QuantReg(endog=y, exog=X, **self.kwargs) self.fitted = self.model.fit(q=self.quantile) def predict(self, X, y=None): X = sm.add_constant(X) return self.fitted.predict(X)