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).
code: def poly2d(self):
      # check for monotonicity ?
      # fix this, interp needs increasing
      poly2d = interp2d(self.size, self.alpha, self.crit_table)
      return poly2d
  
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 3 for calling the TableDist obj's underlying member method code with example usage: obj.poly2d() and returns: poly2d