class_docstr: Methods for analyzing a square contingency table.
  
  Parameters
  ----------
  table : array_like
      A square contingency table, or DataFrame that is converted
      to a square form.
  shift_zeros : bool
      If True and any cell count is zero, add 0.5 to all values
      in the table.
  
  Notes
  -----
  These methods should only be used when the rows and columns of the
  table have the same categories.  If `table` is provided as a
  Pandas DataFrame, the row and column indices will be extended to
  create a square table, inserting zeros where a row or column is
  missing.  Otherwise the table should be provided in a square form,
  with the (implicit) row and column categories appearing in the
  same order.
class_docstr_tok: ["Methods","for","analyzing","a","square","contingency","table",".","Parameters","--","--","--","--","--","table",":","array_like","A","square","contingency","table",",","or","DataFrame","that","is","converted","to","a","square","form",".","shift_zeros",":","bool","If","True","and","any","cell","count","is","zero",",","add","0.5","to","all","values","in","the","table",".","Notes","--","--","-","These","methods","should","only","be","used","when","the","rows","and","columns","of","the","table","have","the","same","categories",".","If","`","table","`","is","provided","as","a","Pandas","DataFrame",",","the","row","and","column","indices","will","be","extended","to","create","a","square","table",",","inserting","zeros","where","a","row","or","column","is","missing",".","Otherwise","the","table","should","be","provided","in","a","square","form",",","with","the","(","implicit",")","row","and","column","categories","appearing","in","the","same","order","."]
docstr: Produce a summary of the analysis.
  
  Parameters
  ----------
  alpha : float
      `1 - alpha` is the nominal coverage probability of the interval.
  float_format : str
      Used to format numeric values in the table.
  method : str
      The method for producing the confidence interval.  Currently
      must be 'normal' which uses the normal approximation.
docstr_tok: ["Produce","a","summary","of","the","analysis",".","Parameters","--","--","--","--","--","alpha",":","float","`","1","-","alpha","`","is","the","nominal","coverage","probability","of","the","interval",".","float_format",":","str","Used","to","format","numeric","values","in","the","table",".","method",":","str","The","method","for","producing","the","confidence","interval",".","Currently","must","be","'normal","'","which","uses","the","normal","approximation","."]
code: def summary(self, alpha=0.05, float_format="%.3f"):
      """
      Produce a summary of the analysis.
  
      Parameters
      ----------
      alpha : float
          `1 - alpha` is the nominal coverage probability of the interval.
      float_format : str
          Used to format numeric values in the table.
      method : str
          The method for producing the confidence interval.  Currently
          must be 'normal' which uses the normal approximation.
      """
  
      fmt = float_format
  
      headers = ["Statistic", "P-value", "DF"]
      stubs = ["Symmetry", "Homogeneity"]
      sy = self.symmetry()
      hm = self.homogeneity()
      data = [
          [fmt % sy.statistic, fmt % sy.pvalue, "%d" % sy.df],
          [fmt % hm.statistic, fmt % hm.pvalue, "%d" % hm.df],
      ]
      tab = iolib.SimpleTable(
          data, headers, stubs, data_aligns="r", table_dec_above=""
      )
  
      return tab
  
imports: import warnings
  import numpy
  import pandas
  from scipy import stats
  from statsmodels import iolib
  from statsmodels.tools import sm_exceptions
  from statsmodels.tools.decorators import cache_readonly
label_desc: Use image node_id 4 for calling the SquareTable obj's underlying member method code with example usage: obj.summary(alpha, float_format) and returns: tab