{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.stats import norm" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def plot_std_normal_with_probability(title, x, interval_1, interval_2=np.array([])):\n", " \"\"\"\n", " Plot the standard normal curve with a filled-in area under\n", " the curve within one or two intervals of the x values.\n", " @param title the title of the graph.\n", " @param x the range of x values to graph.\n", " @param interval_1 one interval of the range.\n", " @param interval_2 another interval of the range (optional).\n", " \"\"\"\n", " mu = 0;\n", " sigma = 1;\n", " y = norm.pdf(x, mu, sigma)\n", " z1 = x[interval_1]\n", " \n", " plt.plot(x, y, color='darkblue')\n", " plt.fill_between(z1, 0, norm.pdf(z1, mu, sigma), color='blue')\n", " \n", " if len(interval_2) > 0:\n", " z2 = x[interval_2]\n", " plt.fill_between(z2, 0, norm.pdf(z2, mu, sigma), color='blue')\n", " \n", " plt.title(title)\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = np.arange(-3, 3, 0.01)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = -0.75\n", "p = norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P(z < {z0}) = {p:.4f}', x, x < z0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = 0.35\n", "p = norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P(z < {z0}) = {p:.4f}', x, x < z0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = 0\n", "p = 1 - norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P(z > {z0}) = {p:.4f}', x, x > z0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = 1.645\n", "p = 1 - norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P(z > {z0}) = {p:.4f}', x, x > z0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = -0.75\n", "z1 = 1.50\n", "p = norm.cdf(z1) - norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P({z0} < z < {z1}) = {p:.4f}', x, (z0 < x) & (x < z1))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = -0.81\n", "z1 = 1.38\n", "p = norm.cdf(z1) - norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P({z0} < z < {z1}) = {p:.4f}', x, (z0 < x) & (x < z1))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = -0.75\n", "z1 = 1.50\n", "p = 1 - (norm.cdf(z1) - norm.cdf(z0))\n", "plot_std_normal_with_probability(f'P(({z0} < z) or (z > {z1})) = {p:.4f}', x,\n", " z0 > x, x > z1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = -1.645\n", "z1 = 1.645\n", "p = 1 - (norm.cdf(z1) - norm.cdf(z0))\n", "plot_std_normal_with_probability(f'P(({z0} < z) or (z > {z1})) = {p:.4f}', x,\n", " z0 > x, x > z1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = -1.49\n", "p = norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P(z < {z0}) = {p:.4f}', x, x < z0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = 2.10\n", "p = 1 - norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P(z > {z0}) = {p:.4f}', x, x > z0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z0 = -1.784\n", "p = norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P(z < {z0}) = {p:.4f}', x, x < z0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = np.arange(-4, 4, 0.01)\n", "z0 = 3.52\n", "p = 1 - norm.cdf(z0)\n", "plot_std_normal_with_probability(f'P(z > {z0}) = {p:.4f}', x, x > z0)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.7" } }, "nbformat": 4, "nbformat_minor": 4 }