class_docstr: Class for fitting the Aalen-Johansen estimate for the cumulative incidence function in a competing risks framework.
  Treating competing risks as censoring can result in over-estimated cumulative density functions. Using the Kaplan
  Meier estimator with competing risks as censored is akin to estimating the cumulative density if all competing risks
  had been prevented.
  
  Aalen-Johansen cannot deal with tied times. We can get around this by randomly jittering the event times
  slightly. This will be done automatically and generates a warning.
  
  
  Parameters
  ----------
  alpha: float, option (default=0.05)
      The alpha value associated with the confidence intervals.
  
  jitter_level: float, option (default=0.00001)
      If tied event times are detected, event times are randomly changed by this factor.
  
  seed: int, option (default=None)
      To produce replicate results with tied event times, the numpy.random.seed can be specified in the function.
  
  calculate_variance: bool, option (default=True)
      By default, AalenJohansenFitter calculates the variance and corresponding confidence intervals. Due to how the
      variance is calculated, the variance must be calculated for each event time individually. This is
      computationally intensive. For some procedures, like bootstrapping, the variance is not necessary. To reduce
      computation time during these procedures, `calculate_variance` can be set to `False` to skip the variance
      calculation.
  
  Example
  -------
  
  .. code:: python
  
      from lifelines import AalenJohansenFitter
      from lifelines.datasets import load_waltons
      T, E = load_waltons()['T'], load_waltons()['E']
      ajf = AalenJohansenFitter(calculate_variance=True)
      ajf.fit(T, E, event_of_interest=1)
      ajf.cumulative_density_
      ajf.plot()
  
  
  References
  ----------
  If you are interested in learning more, we recommend the following open-access
  paper; Edwards JK, Hester LL, Gokhale M, Lesko CR. Methodologic Issues When Estimating Risks in
  Pharmacoepidemiology. Curr Epidemiol Rep. 2016;3(4):285-296.
docstr: Checks for duplicated event times in the data set. This is narrowed to detecting duplicated event times
  where the events are of different types
docstr_tok: ["Checks","for","duplicated","event","times","in","the","data","set",".","This","is","narrowed","to","detecting","duplicated","event","times","where","the","events","are","of","different","types"]
code: def _check_for_duplicates(durations, events):
      """Checks for duplicated event times in the data set. This is narrowed to detecting duplicated event times
      where the events are of different types
      """
      # Setting up DataFrame to detect duplicates
      df = pd.DataFrame({"t": durations, "e": events})
  
      # Finding duplicated event times
      dup_times = df.loc[df["e"] != 0, "t"].duplicated(keep=False)
  
      # Finding duplicated events and event times
      dup_events = df.loc[df["e"] != 0, ["t", "e"]].duplicated(
          keep=False
      )
  
      # Detect duplicated times with different event types
      return (dup_times & (~dup_events)).any()
  
file_path: lifelines/lifelines/fitters/aalen_johansen_fitter.py
imports: from textwrap import dedent
  import numpy
  import pandas
  import warnings
  from lifelines.fitters import NonParametricUnivariateFitter
  from lifelines.utils import _preprocess_inputs, inv_normal_cdf, CensoringType, coalesce
  from lifelines import KaplanMeierFitter
  from lifelines.plotting import _plot_estimate
label_desc: Use image node_id 5 for calling the AalenJohansenFitter obj's underlying member method code with example usage: obj._check_for_duplicates(durations, events) and returns: unknown