class_docstr: Distribution, critical values and p-values from tables
  
  currently only 1 extra parameter, e.g. sample size
  
  Parameters
  ----------
  alpha : array_like, 1d
      probabiliy in the table, could be either sf (right tail) or cdf (left
      tail)
  size : array_like, 1d
      The sample sizes for the table
  crit_table : array_like, 2d
      The sample sizes in the table
      array with critical values for sample size in rows and probability in
      columns
  asymptotic : callable, optional
      Callable function with the form fn(nobs) that returns len(alpha)
      critical values where the critical value in position i corresponds to
      alpha[i]
  min_nobs : int, optional
      Minimum number of observations to use the asymptotic distribution. If
      not provided, uses max(size).
  max_nobs : int, optional
      Maximum number of observations to use the tabular distribution. If not
      provided, uses max(size)
  
  Notes
  -----
  size and alpha must be sorted and increasing.
  
  If both min_nobs and max_nobs are provided, then
  the critical values from the tabular distribution and the asymptotic
  distribution are linearly blended using the formula
  :math:`w cv_a + (1-w) cv_t` where the weight is
  :math:`w = (n - a_{min}) / (a_{max} - a_{min})`. This ensures the
  transition between the tabular and the asymptotic critical values is
  continuous. If these are not provided, then the asymptotic critical value
  is used for nobs > max(size).
docstr: Find pvalues by interpolation, either cdf(x)
  
  Returns extreme probabilities, 0.001 and 0.2, for out of range
  
  Parameters
  ----------
  x : array_like
      observed value, assumed to follow the distribution in the table
  n : float
      sample size, second parameter of the table
  
  Returns
  -------
  prob : array_like
      This is the probability for each value of x, the p-value in
      underlying distribution is for a statistical test.
code: def prob(self, x, n):
      """
      Find pvalues by interpolation, either cdf(x)
  
      Returns extreme probabilities, 0.001 and 0.2, for out of range
  
      Parameters
      ----------
      x : array_like
          observed value, assumed to follow the distribution in the table
      n : float
          sample size, second parameter of the table
  
      Returns
      -------
      prob : array_like
          This is the probability for each value of x, the p-value in
          underlying distribution is for a statistical test.
      """
      critv = self._critvals(n)
      alpha = self.alpha
  
      if self.signcrit < 1:
          # reverse if critv is decreasing
          critv, alpha = critv[::-1], alpha[::-1]
  
      # now critv is increasing
      if np.size(x) == 1:
          if x < critv[0]:
              return alpha[0]
          elif x > critv[-1]:
              return alpha[-1]
          return interp1d(critv, alpha)(x)[()]
      else:
          # vectorized
          cond_low = x < critv[0]
          cond_high = x > critv[-1]
          cond_interior = ~np.logical_or(cond_low, cond_high)
  
          probs = np.nan * np.ones(x.shape)  # mistake if nan left
          probs[cond_low] = alpha[0]
          probs[cond_low] = alpha[-1]
          probs[cond_interior] = interp1d(critv, alpha)(
              x[cond_interior]
          )
  
          return probs
  
file_path: statsmodels/statsmodels/stats/tabledist.py
imports: import numpy
  from scipy.interpolate import interp1d, interp2d, Rbf
  from statsmodels.tools.decorators import cache_readonly
label_desc: Use image node_id 6 for calling the TableDist obj's underlying member method code with example usage: obj.prob(x, n) and returns: interp1d, probs, alpha, alpha