Article 75WQZ Calculating the expected range of normal samples

Calculating the expected range of normal samples

by
John
from John D. Cook on (#75WQZ)

The previous post looked at the expected IQ range in a jury of 12. This post will look more generally at computing the expected range ofn samples from aN(0, 1) random variable. This will give the expected range in units of , i.e. multiply the results by if your isn't 1.

As mentioned in the previous post, the expected range is given by

normal_range.svg

where and are the PDF and CDF of a standard normal. The integral can be calculated in closed form forn 5, but in general it requires numerical integration [1].

The following Python code can compute dn.

from scipy.stats import normfrom scipy.integrate import quadimport numpy as npdef d(n): integrand = lambda x: x*norm.pdf(x)*norm.cdf(x)**(n-1) res, info = quad(integrand, -np.inf, np.inf) return 2*n*res

For large n we have the asymptotic approximation

normal_range2.svg

which we could implement in Python by

def approx(n): return 2*norm.ppf((n - 0.375)/(n + 0.25))

For very large n the asymptotic expression may be more accurate than the integral due to numerical integration error.

Here are a few example values.

|-----+-------|| n | d_n ||-----+-------|| 2 | 1.128 || 3 | 1.693 || 5 | 2.326 || 10 | 3.078 || 12 | 3.258 || 23 | 3.858 || 50 | 4.498 || 100 | 5.015 ||-----+-------|

[1] Order Statistics by H. A. David. John Wiley & Sons. 1970.

The post Calculating the expected range of normal samples first appeared on John D. Cook.
External Content
Source RSS or Atom Feed
Feed Location http://feeds.feedburner.com/TheEndeavour?format=xml
Feed Title John D. Cook
Feed Link https://www.johndcook.com/blog
Reply 0 comments