code: def pd_percentiles(data: pd.Series) -> pd.DataFrame:
      """Calculates percentiles -- supporting data for a PP-plot.
  
      Args:
          data (pd.Series): Timeseries to data.
  
      Returns:
          pd.DataFrame: DataFrame with 3 columns, theoretical_percentiles, sample_percentiles and
          reference
      """
      probp = ProbPlot(data.dropna())
      x = probp.theoretical_percentiles
      y = probp.sample_percentiles
      m, b = y.std(), y.mean()
      ref_line = x * m + b
      return pd.DataFrame(
          {
              "theoretical_percentiles": x,
              "sample_percentiles": y,
              "reference": ref_line,
          }
      )
  
file_path: tslumen/tslumen/profile/distribution.py
imports: from typing import Optional
  import numpy
  import pandas
  from scipy.stats import iqr
  from statsmodels.api import ProbPlot
  from tslumen.profile.base import ProfilingFunction
label_desc: Use image node_id 3 for calling a global function with example usage: pd_percentiles(data) and returns: pd