This is documentation for an old release of SciPy (version 1.7.1). Search for this page in the documentation of the latest stable release (version 1.15.1).

Studentized Range Distribution

This distribution has two shape parameters, \(k>1\) and \(\nu>0\), and the support is \(x \geq 0\).

\begin{eqnarray*} f(x; k, \nu) = \frac{k(k-1)\nu^{\nu/2}}{\Gamma(\nu/2)2^{\nu/2-1}} \int_{0}^{\infty} \int_{-\infty}^{\infty} s^{\nu} e^{-\nu s^2/2} \phi(z) \phi(sx + z) [\Phi(sx + z) - \Phi(z)]^{k-2} \,dz \,ds \end{eqnarray*}
\begin{eqnarray*} F(q; k, \nu) = \frac{k\nu^{\nu/2}}{\Gamma(\nu/2)2^{\nu/2-1}} \int_{0}^{\infty} \int_{-\infty}^{\infty} s^{\nu-1} e^{-\nu s^2/2} \phi(z) [\Phi(sq + z) - \Phi(z)]^{k-1} \,dz \,ds \end{eqnarray*}

Note: \(\phi(z)\) and \(\Phi(z)\) represent the normal PDF and normal CDF, respectively.

When \(\nu\) exceeds 100,000, the asymptopic approximation of \(F(x; k, \nu=\infty)\) is used:

\begin{eqnarray*} F(x; k, \nu=\infty) = k \int_{-\infty}^{\infty} \phi(z) [\Phi(x + z) - \Phi(z)]^{k-1} \,dz \end{eqnarray*}

Implementation: scipy.stats.studentized_range