'Calculate the power of a chisquare for two independent sample
Parameters
effect_size : float
standardize effect size, difference between the two means divided
by the standard deviation. effect size has to be positive.
nobs1 : int or float
number of observations of sample 1. The number of observations of
sample two is ratio times the size of sample 1,
i.e. ``nobs2 = nobs1 * ratio``
alpha : float in interval (0,1)
significance level, e.g. 0.05, is the probability of a type I
error, that is wrong rejections if the Null Hypothesis is true.
ratio : float
ratio of the number of observations in sample 2 relative to
sample 1. see description of nobs1
The default for ratio is 1; to solve for ration given the other
arguments it has to be explicitely set to None.
alternative : string, \'two-sided\' (default) or \'one-sided\'
extra argument to choose whether the power is calculated for a
two-sided (default) or one sided test.
\'one-sided\' assumes we are in the relevant tail.
Returns
power : float
Power of the test, e.g. 0.8, is one minus the probability of a
type II error. Power is the probability that the test correctly
rejects the Null Hypothesis if the Alternative Hypothesis is true.'

def power(self, effect_size, nobs1, alpha, ratio=1, alternative='two-sided'):

    from statsmodels.stats.gof import chisquare_power
    nobs2 = (nobs1 * ratio)
    nobs = (1.0 / ((1.0 / nobs1) + (1.0 / nobs2)))
    return chisquare_power(effect_size, nobs, alpha)
