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
docstr: Parameters
  ----------
    bandwidth: float
      the bandwidth to use in the Epanechnikov kernel. > 0
    hazard_: numpy array
      a computed (n,) numpy array of estimated hazard rates. If none, uses ``smoothed_hazard_``
docstr_tok: ["Parameters","--","--","--","--","--","bandwidth",":","float","the","bandwidth","to","use","in","the","Epanechnikov","kernel",".",">","0","hazard_",":","numpy","array","a","computed","(","n",",",")","numpy","array","of","estimated","hazard","rates",".","If","none",",","uses","``","smoothed_hazard_","``"]
code: def smoothed_hazard_confidence_intervals_(
      self, bandwidth, hazard_=None
  ):
      """
      Parameters
      ----------
        bandwidth: float
          the bandwidth to use in the Epanechnikov kernel. > 0
        hazard_: numpy array
          a computed (n,) numpy array of estimated hazard rates. If none, uses ``smoothed_hazard_``
      """
      if hazard_ is None:
          hazard_ = self.smoothed_hazard_(bandwidth).values[:, 0]
  
      timeline = self.timeline
      z = inv_normal_cdf(1 - self.alpha / 2)
      self._cumulative_sq.iloc[0] = 0
      var_hazard_ = self._cumulative_sq.diff().fillna(
          self._cumulative_sq.iloc[0]
      )
      C = (
          var_hazard_.values != 0.0
      )  # only consider the points with jumps
      std_hazard_ = np.sqrt(
          1.0
          / (bandwidth**2)
          * np.dot(
              epanechnikov_kernel(
                  timeline[:, None], timeline[C][None, :], bandwidth
              )
              ** 2,
              var_hazard_.values[C],
          )
      )
      values = {
          self.ci_labels[0]: hazard_
          * np.exp(z * std_hazard_ / hazard_),
          self.ci_labels[1]: hazard_
          * np.exp(-z * std_hazard_ / hazard_),
      }
      return pd.DataFrame(values, index=timeline)
  
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 10 for calling the NelsonAalenFitter obj's underlying member method code with example usage: obj.smoothed_hazard_confidence_intervals_(bandwidth, hazard_) and returns: pd