{ "cells": [ { "cell_type": "markdown", "id": "146f64d2", "metadata": {}, "source": [ "# Teorema central do Limite\n", "\n", "Estatística I - Aeronáutica - 2023/02\n", "\n", "Thomas Peron \n" ] }, { "cell_type": "code", "execution_count": 1, "id": "fc80451e", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Widget Javascript not detected. It may not be installed or enabled properly.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "5cffe6bfb5ab4ccdbb33e6a39e31ec23" } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import ipywidgets as widgets\n", "from ipywidgets import interactive, Layout\n", "\n", "from matplotlib import rcParams\n", "\n", "import matplotlib as mpl \n", "mpl.rcParams['figure.dpi'] = 400 \n", "mpl.rcParams['figure.figsize'] = (20,3)\n", "\n", "\n", "rcParams['font.family'] = 'serif'\n", "rcParams['font.serif'] = 'Times'\n", "#rcParams['svg.fonttype'] = 'none'\n", "plt.rc('text',usetex=True)\n", "\n", "\n", "def plot_clt(sample_size, num_samples, distribution):\n", " plt.figure(figsize=(10, 6))\n", " sample_means = []\n", "\n", " for _ in range(num_samples):\n", " if distribution == 'Uniforme':\n", " data = np.random.uniform(0, 1, sample_size)\n", " elif distribution == 'Exponencial':\n", " data = np.random.exponential(1, sample_size) \n", " else:\n", " data = np.random.normal(0, 1, sample_size)\n", "\n", " sample_means.append(np.mean(data))\n", "\n", " \n", " #plt.figure(figsize=(10,6)) \n", " plt.hist(sample_means, bins=50, density=True, alpha=0.6, color='gray',edgecolor='black')\n", " plt.title(r'Visualizando o Teorema Central do Limite',fontsize=16)\n", " plt.xlabel(r'Média empírica, $\\bar{X}_n$',fontsize=16)\n", " plt.ylabel(r'Frequência',fontsize=16)\n", " plt.show()\n", "\n", "# Create interactive widget\n", "widget = interactive(\n", " plot_clt,\n", " sample_size=widgets.IntSlider(min=1, max=3000, step=10, value=10, description=r'Tamanho da amostra, $\\bar{X}_n = \\frac{1}{n}(X_1 + X_2 + \\cdots + X_n)$:'),\n", " num_samples=widgets.IntSlider(min=1, max=3000, step=10, value=100, description='Número de amostras:'),\n", " distribution=widgets.Dropdown(options=['Uniforme', 'Exponencial', 'Normal'], description='Distribuição:')\n", ")\n", "\n", "# Set widget layout\n", "widget.layout = Layout(display='flex', flex_flow='column', align_items='center', width='95%')\n", "\n", "widget\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "904e4d95", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "2ab362ee", "metadata": {}, "outputs": [], "source": [] } ], "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }