FTestPower.solve_power(effect_size=None, df_num=None, df_denom=None, nobs=None, alpha=None, power=None, ncc=1)[source]

solve for any one parameter of the power of a F-test

for the one sample F-test the keywords are:
effect_size, df_num, df_denom, alpha, power

Exactly one needs to be None, all others need numeric values.

  • effect_size (float) – standardized effect size, mean divided by the standard deviation. effect size has to be positive.
  • nobs (int or float) – sample size, number of observations.
  • 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.
  • power (float in interval (0,1)) – 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.
  • 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.

value – The value of the parameter that was set to None in the call. The value solves the power equation given the remainding parameters.

Return type:



The function uses scipy.optimize for finding the value that satisfies the power equation. It first uses brentq with a prior search for bounds. If this fails to find a root, fsolve is used. If fsolve also fails, then, for alpha, power and effect_size, brentq with fixed bounds is used. However, there can still be cases where this fails.