code: def _create_initial_point(self, Ts, E, entries, weights, Xs):
          
          import lifelines  # kinda hacky but lol
  
          def transform_ith_param(model, i):
              param = model._fitted_parameters_[i]
              if param <= 0:
                  return param
              # technically this is suboptimal for log normal mu, but that's okay.
              return np.log(param)
  
          name = self.__class__.__name__.replace("AFT", "")
          uni_model = getattr(lifelines, name)()
  
          if self._censoring_type == CensoringType.RIGHT:
              uni_model.fit_right_censoring(Ts[0], event_observed=E, entry=entries, weights=weights)
          elif self._censoring_type == CensoringType.INTERVAL:
              uni_model.fit_interval_censoring(Ts[0], Ts[1], event_observed=E, entry=entries, weights=weights)
          elif self._censoring_type == CensoringType.LEFT:
              uni_model.fit_left_censoring(Ts[1], event_observed=E, entry=entries, weights=weights)
  
          # we may use this later in print_summary
          self._ll_null_ = uni_model._log_likelihood
  
          return np.concatenate(
              [
                  # tack on as the intercept
                  [0] * (_X.shape[1] - 1) + [transform_ith_param(uni_model, i)]
                  for i, _X in enumerate(Xs)
              ]
          )
docs: See https://github.com/CamDavidsonPilon/lifelines/issues/664