class_docstr: Proportional Odds model
  
  References
  ------------
  Royston, P., & Parmar, M. K. B. (2002). Flexible parametric proportional-hazards and proportional-odds models for censored survival data, with application to prognostic modelling and estimation of treatment effects. Statistics in Medicine, 21(15), 2175–2197. doi:10.1002/sim.1203
code: def _cumulative_hazard(self, params, T, Xs):
      Xbeta = np.dot(Xs["beta_"], params["beta_"])
      lT = np.log(T)
  
      return np.log1p(
          np.exp(
              Xbeta
              + (
                  params["phi1_"] * lT
                  + params["phi2_"]
                  * self.basis(
                      lT,
                      np.log(self.KNOTS[1]),
                      np.log(self.KNOTS[0]),
                      np.log(self.KNOTS[-1]),
                  )
              )
          )
      )
  
imports: from autograd import numpy
  from lifelines.datasets import load_lymph_node
  from lifelines.fitters import ParametricRegressionFitter
  from autograd.scipy.special import expit
  import pandas
  from lifelines import CoxPHFitter
  from matplotlib import pyplot
label_desc: Use image node_id 1 for calling the POSplineFitter obj's underlying member method code with example usage: obj._cumulative_hazard(params, T, Xs) and returns: np