pingouin.power_corr(r=None, n=None, power=None, alpha=0.05, tail='two-sided')[source]

Evaluate power, sample size, correlation coefficient or significance level of a correlation test.


Correlation coefficient.


Number of observations (sample size).


Test power (= 1 - type II error).


Significance level (type I error probability). The default is 0.05.


Indicates whether the test is ‘two-sided’ or ‘one-sided’.


Exactly ONE of the parameters r, n, power and alpha must be passed as None, and that parameter is determined from the others.

Notice that alpha has a default value of 0.05 so None must be explicitly passed if you want to compute it.

scipy.optimize.brenth() is used to solve power equations for other variables (i.e. sample size, effect size, or significance level). If the solving fails, a nan value is returned.

This function is a Python adaptation of the pwr.r.test function implemented in the pwr R package.


  1. Compute achieved power given r, n and alpha

>>> from pingouin import power_corr
>>> print('power: %.4f' % power_corr(r=0.5, n=20))
power: 0.6379
  1. Compute required sample size given r, power and alpha

>>> print('n: %.4f' % power_corr(r=0.5, power=0.80,
...                                tail='one-sided'))
n: 22.6091
  1. Compute achieved r given n, power and alpha level

>>> print('r: %.4f' % power_corr(n=20, power=0.80, alpha=0.05))
r: 0.5822
  1. Compute achieved alpha level given r, n and power

>>> print('alpha: %.4f' % power_corr(r=0.5, n=20, power=0.80,
...                                    alpha=None))
alpha: 0.1377