FTestPower.solve_power(effect_size=None, df_num=None, df_denom=None, alpha=None, power=None, ncc=1, **kwargs)[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.

The effect size is Cohen’s f, square root of f2.

The sample size is given by nobs = df_denom + df_num + ncc.

Warning: The meaning of df_num and df_denom is reversed.


Standardized effect size. The effect size is here Cohen’s f, square root of f2.

df_numint or float

Warning incorrect name denominator degrees of freedom, This corresponds to the number of constraints in Wald tests. Sample size is given by nobs = df_denom + df_num + ncc

df_denomint or float

Warning incorrect name numerator degrees of freedom. This corresponds to the df_resid in Wald tests.

alphafloat 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.

powerfloat 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.


degrees of freedom correction for non-centrality parameter. see Notes


kwargs are not used and included for backwards compatibility. If nobs is used as keyword, then a warning is issued. All other keywords in kwargs raise a ValueError.


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


The method 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.

Last update: Sep 01, 2023