class_docstr: Statistical Power calculations, Base Class
  
  so far this could all be class methods
class_docstr_tok: ["Statistical","Power","calculations",",","Base","Class","so","far","this","could","all","be","class","methods"]
code: def __init__(self, **kwds):
      self.__dict__.update(kwds)
      # used only for instance level start values
      self.start_ttp = dict(
          effect_size=0.01,
          nobs=10.0,
          alpha=0.15,
          power=0.6,
          nobs1=10.0,
          ratio=1,
          df_num=10,
          df_denom=3,  # for FTestPower
      )
      # TODO: nobs1 and ratio are for ttest_ind,
      #      need start_ttp for each test/class separately,
      # possible rootfinding problem for effect_size, starting small seems to
      # work
      from collections import defaultdict
  
      self.start_bqexp = defaultdict(dict)
      for key in ["nobs", "nobs1", "df_num", "df_denom"]:
          self.start_bqexp[key] = dict(low=2.0, start_upp=50.0)
      for key in ["df_denom"]:
          self.start_bqexp[key] = dict(low=1.0, start_upp=50.0)
      for key in ["ratio"]:
          self.start_bqexp[key] = dict(low=1e-8, start_upp=2)
      for key in ["alpha"]:
          self.start_bqexp[key] = dict(low=1e-12, upp=1 - 1e-12)
  
imports: import warnings
  import numpy
  from scipy import stats, optimize, special
  from statsmodels.tools.rootfinding import brentq_expanding
label_desc: Use image node_id 1 to create a new Power object  with example: obj = Power()