statsmodels.stats.power.FTestPower.solve_power

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.

Parameters:
effect_size : float

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

df_num : int 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_denom : int or float

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

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.

ncc : int

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

kwargs : empty

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.

Returns:

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

Return type:

float

Notes

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.