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