docs: def ar_coefficient(x, param):
      """
      This feature calculator fits the unconditional maximum likelihood
      of an autoregressive AR(k) process.
      The k parameter is the maximum lag of the process
  
      .. math::
  
          X_{t}=\\varphi_0 +\\sum _{{i=1}}^{k}\\varphi_{i}X_{{t-i}}+\\varepsilon_{t}
  
      For the configurations from param which should contain the maxlag "k" and such an AR process is calculated. Then
      the coefficients :math:`\\varphi_{i}` whose index :math:`i` contained from "coeff" are returned.
  
      :param x: the time series to calculate the feature of
      :type x: numpy.ndarray
      :param param: contains dictionaries {"coeff": x, "k": y} with x,y int
      :type param: list
      :return x: the different feature values
      :return type: pandas.Series
      """
      calculated_ar_params = {}
  
      x_as_list = list(x)
      calculated_AR = AR(x_as_list)
  
      res = {}
  
      for parameter_combination in param:
          k = parameter_combination["k"]
          p = parameter_combination["coeff"]
  
          column_name = "k_{}__coeff_{}".format(k, p)
  
          if k not in calculated_ar_params:
              try:
                  calculated_ar_params[k] = calculated_AR.fit(maxlag=k, solver="mle").params
              except (LinAlgError, ValueError):
                  calculated_ar_params[k] = [np.NaN]*k
  
          mod = calculated_ar_params[k]
  
          if p <= k:
              try:
                  res[column_name] = mod[p]
              except IndexError:
                  res[column_name] = 0
          else:
              res[column_name] = np.NaN
  
      return [(key, value) for key, value in res.items()]