class_docstr: Class for fitting the Nelson-Aalen estimate for the cumulative hazard.
  
  NelsonAalenFitter(alpha=0.05, nelson_aalen_smoothing=True)
  
  Parameters
  ----------
  alpha: float, optional (default=0.05)
      The alpha value associated with the confidence intervals.
  nelson_aalen_smoothing: bool, optional
      If the event times are naturally discrete (like discrete years, minutes, etc.)
    then it is advisable to turn this parameter to False. See [1], pg.84.
  
  Notes
  ------
  [1] Aalen, O., Borgan, O., Gjessing, H., 2008. Survival and Event History Analysis
  
  Attributes
  ----------
  cumulative_hazard_ : DataFrame
      The estimated cumulative hazard (with custom timeline if provided)
  confidence_interval_ : DataFrame
      The lower and upper confidence intervals for the cumulative hazard
  durations: array
      The durations provided
  event_observed: array
      The event_observed variable provided
  timeline: array
      The time line to use for plotting and indexing
  entry: array or None
      The entry array provided, or None
  event_table: DataFrame
      A summary of the life table
code: def _bounds(self, cumulative_sq_, alpha, ci_labels):
      z = inv_normal_cdf(1 - alpha / 2)
      df = pd.DataFrame(index=self.timeline)
  
      if ci_labels is None:
          ci_labels = [
              "%s_lower_%g" % (self._label, 1 - alpha),
              "%s_upper_%g" % (self._label, 1 - alpha),
          ]
      assert (
          len(ci_labels) == 2
      ), "ci_labels should be a length 2 array."
      self.ci_labels = ci_labels
  
      cum_hazard_ = self.cumulative_hazard_.values
      df[ci_labels[0]] = cum_hazard_ * np.exp(
          -z
          * np.sqrt(cumulative_sq_)
          / np.where(cum_hazard_ == 0, 1, cum_hazard_)
      )
      df[ci_labels[1]] = cum_hazard_ * np.exp(
          z
          * np.sqrt(cumulative_sq_)
          / np.where(cum_hazard_ == 0, 1, cum_hazard_)
      )
      return df
  
imports: import warnings
  import numpy
  import pandas
  from lifelines.fitters import UnivariateFitter
  from lifelines.plotting import _plot_estimate
  from lifelines.exceptions import StatisticalWarning
  from lifelines.utils import _preprocess_inputs, _additive_estimate, epanechnikov_kernel, inv_normal_cdf, check_nans_or_infs, CensoringType, coalesce, _to_1d_array
label_desc: Use image node_id 4 for calling the NelsonAalenFitter obj's underlying member method code with example usage: obj._bounds(cumulative_sq_, alpha, ci_labels) and returns: df