code: def predict_percentile(self, X, ancillary_X=None, p=0.5):
          
          exp_mu_, sigma_ = self._prep_inputs_for_prediction_and_return_scores(X, ancillary_X)
          return pd.DataFrame(exp_mu_ * np.exp(np.sqrt(2) * sigma_ * erfinv(2 * p - 1)), index=_get_index(X))
docs: Returns the median lifetimes for the individuals, by default. If the survival curve of an
          individual does not cross ``p``, then the result is infinity.
          http://stats.stackexchange.com/questions/102986/percentile-loss-functions
  
          Parameters
          ----------
          X:  numpy array or DataFrame
              a (n,d) covariate numpy array or DataFrame. If a DataFrame, columns
              can be in any order. If a numpy array, columns must be in the
              same order as the training data.
          ancillary_X: numpy array or DataFrame, optional
              a (n,d) covariate numpy array or DataFrame. If a DataFrame, columns
              can be in any order. If a numpy array, columns must be in the
              same order as the training data.
          p: float, optional (default=0.5)
              the percentile, must be between 0 and 1.
  
          Returns
          -------
          percentiles: DataFrame
  
          See Also
          --------
          predict_median