# 8.2. Standard Normal Curve#

The normal or Gaussian curves are a family of bell-shaped curves named for the German mathematician and scientist Carl Friedrich Gauss.

Here are few members of the family. You can see that there really is only one bell shape; the differences between the curves are due to where they are centered and how wide the bells are. In other words, the differences are due to the scales on which the variables are being measured.

In essence, therefore, there is only one normal curve – all the others can be derived by changing the origin and the units of measurement.

That all-important normal curve is called the standard normal curve. This section is a workout in using the curve. In the next section, we will use these skills and the Central Limit Theorem to approximate probabilities.

## 8.2.1. The Standard Normal Curve#

The standard normal curve is defined by

$\phi(z) ~ = ~ \frac{1}{\sqrt{2\pi}} e^{-\frac{1}{2}z^2}, ~~~~~ -\infty < z < \infty$

That’s the lower case Greek letter $$\phi$$. The figure below shows the graph of $$\phi$$.

Some properties of the curve are clear from the graph or equation. Others need more work to establish. In this course it is enough that you observe what you can and leave the proofs to another class.

• The curve is bell-shaped and symmetric about 0.

• The points of inflection are at $$z=-1$$ and $$z=1$$.

• Even though the curve is defined over the entire number line, it is pretty close to 0 for $$\vert z \vert > 3$$.

• The curve can be thought of as an approximation to a probability histogram, because the total area under the curve is 1.

## 8.2.2. The Standard Normal ‘CDF’#

If you think of the standard normal curve as a probability histogram, then it is natural to think of areas under the curve as probabilities. In particular, the function $$\Phi$$ defined by

$\Phi(z) ~ = ~ \int_{-\infty}^z \phi(x)dx$

returns all the area under the curve to the left of $$z$$, and is called the ‘cdf’. At the moment, think of it as a cdf by analogy with the discrete cumulative distribution functions that you have seen before.

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_1792\1596728757.py in <module>
4 plt.ylim(-0.01, 0.45)
5 plt.plot([-4, 4], [0, 0], color='k', lw=1)
----> 6 plt.yticks(np.arange(0, 0.401, 0.05), np.array(7*['']))
7 plt.text(0, -0.025, '$0$')
8 plt.text(1.2, -0.025, '$z$')

~\Anaconda3\lib\site-packages\matplotlib\pyplot.py in yticks(ticks, labels, **kwargs)
1853             l.update(kwargs)
1854     else:
-> 1855         labels = ax.set_yticklabels(labels, **kwargs)
1856
1857     return locs, labels

~\Anaconda3\lib\site-packages\matplotlib\axes\_base.py in wrapper(self, *args, **kwargs)
73
74         def wrapper(self, *args, **kwargs):
---> 75             return get_method(self)(*args, **kwargs)
76
77         wrapper.__module__ = owner.__module__

~\Anaconda3\lib\site-packages\matplotlib\axis.py in _set_ticklabels(self, labels, fontdict, minor, **kwargs)
1796         if fontdict is not None:
1797             kwargs.update(fontdict)
-> 1798         return self.set_ticklabels(labels, minor=minor, **kwargs)
1799
1800     def _set_tick_locations(self, ticks, *, minor=False):

~\Anaconda3\lib\site-packages\matplotlib\axis.py in set_ticklabels(self, ticklabels, minor, **kwargs)
1719             if len(locator.locs) != len(ticklabels) and len(ticklabels) != 0:
1720                 raise ValueError(
-> 1721                     "The number of FixedLocator locations"
1722                     f" ({len(locator.locs)}), usually from a call to"
1723                     " set_ticks, does not match"

ValueError: The number of FixedLocator locations (9), usually from a call to set_ticks, does not match the number of ticklabels (7).


The area under the curve over any interval $$(z_1, z_2)$$ is then $$\Phi(z_2) - \Phi(z_1)$$.

## 8.2.3. Numerical Values of the Areas#

If we had a formula for $$\Phi$$, we could plug into that formula to find areas under the standard normal curve. But this is where the curve gets even more interesting: even though we can show that the total area under the curve is 1, there is no closed-form formula for $$\Phi$$. The numerical value of the integral has to be evaluated by numerical approximation.

That is why almost all statistics textbooks include a normal distribution table. We can do better because we have Python.

The SciPy function stats.norm.cdf takes in $$z$$ and returns $$\Phi(z)$$. Thus the value

$\Phi(1) ~ = ~ \int_{-\infty}^1 \phi(x)dx ~ \approx ~ 0.84$

is found by evaluating the following expression:

stats.norm.cdf(1)

0.8413447460685429


The area of the tail to the right of 1 is therefore about $$16\%$$, which by symmetry is the same as $$\Phi(-1)$$:

stats.norm.cdf(-1)

0.15865525393145707


So the area under the standard normal curve between $$-1$$ and $$1$$ is about 68%:

stats.norm.cdf(1) - stats.norm.cdf(-1)

0.6826894921370859


The area between $$-2$$ and $$2$$ is

$\Phi(2) - \Phi(-2) ~ \approx ~ 95\%$
stats.norm.cdf(2) - stats.norm.cdf(-2)

0.9544997361036416


## 8.2.4. Percentiles#

The area under the curve to the left of 1 is about 84%

$\Phi(1) ~ \approx ~ 0.84$

The point $$z = 1$$ is therefore called the 84th percentile of the curve. If you think of the curve as a probability histogram, then about 84% of the probability lies below $$z=1$$.

The 90th percentile must be to the right of 1. But how far to the right?

To find it, we need the inverse of $$\Phi$$.

The 90th percentile is the point $$z$$ such that $$\Phi(z) = 0.9$$.

In math notation, the 90th percentile is the point

$z ~ = ~ \Phi^{-1} (0.9)$

In SciPy, the function $$\Phi^{-1}$$ is named ppf for “percent point function”. The 90th percentile or “90 percent point” of the curve is about 1.28:

stats.norm.ppf(0.9)

1.2815515655446004


## 8.2.5. Summary of Methods#

1. First, you learned to find areas under the curve based on point specified on the horizontal axis.

The main mathematical result is that for any $$z$$, the area under the curve to the left of $$z$$ is the proportion $$p$$ given by

$\Phi(z) = p$

Numerically, stats.norm.cdf(z) evaluates to $$p$$.

2. Next, you learned to find points on the horizontal axis based on specified areas under the curve.

The main mathematical result is that for any proportion $$p$$, the point $$z$$ that has area $$p$$ to the left is given by

$\Phi^{-1}(p) = z$

Numerically, stats.norm.ppf(p) evaluates to $$z$$.