From e4e2e06b6ece309790a7a479d50ee55b56fb1e06 Mon Sep 17 00:00:00 2001 From: Prerna152 Date: Wed, 15 May 2024 18:42:19 +0200 Subject: [PATCH] update --- .../.ipynb_checkpoints/main-checkpoint.ipynb | 1476 ++++++++++++ your-code/main.ipynb | 1998 ++++++++++++----- 2 files changed, 2952 insertions(+), 522 deletions(-) create mode 100644 your-code/.ipynb_checkpoints/main-checkpoint.ipynb diff --git a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb new file mode 100644 index 0000000..d279385 --- /dev/null +++ b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb @@ -0,0 +1,1476 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Understanding Descriptive Statistics\n", + "\n", + "Import the necessary libraries here:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import pandas as pd\n", + "from random import choices\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 1\n", + "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", + "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Roll Outcome\n", + "0 1 3\n", + "1 2 5\n", + "2 3 2\n", + "3 4 3\n", + "4 5 3\n", + "5 6 5\n", + "6 7 1\n", + "7 8 3\n", + "8 9 3\n", + "9 10 2\n" + ] + } + ], + "source": [ + "# your code here\n", + "def roll_dice_10_times():\n", + " # Define the possible outcomes for a dice roll\n", + " dice_faces = [1, 2, 3, 4, 5, 6]\n", + " \n", + " # Simulate rolling the dice 10 times\n", + " rolls = choices(dice_faces, k=10)\n", + " \n", + " # Create a DataFrame to store the roll outcomes\n", + " # Use roll number as index starting from 1 for a more intuitive understanding\n", + " rolls_df = pd.DataFrame({'Roll': range(1, 11), 'Outcome': rolls})\n", + " \n", + " return rolls_df\n", + "\n", + "# Call the function and display the results\n", + "dice_rolls_df = roll_dice_10_times()\n", + "print(dice_rolls_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here\n", + "dice_rolls_df = roll_dice_10_times().sort_values(by='Outcome')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0EAAAIqCAYAAADiuUH0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHRElEQVR4nO3deZyN9f//8eeZFTNGDGYsY8ZayJalGNmXUFEUJXsliTQRyoeIRJRPKW2fyKf60PLRh4pSIrJkX0vKvu9GEzNm5v37w2/O12lmDo4zruH9uN9u53Zz3td1net1veZy5jznWo7LGGMEAAAAAJYIcLoAAAAAALiaCEEAAAAArEIIAgAAAGAVQhAAAAAAqxCCAAAAAFiFEAQAAADAKoQgAAAAAFYhBAEAAACwCiEIAAAAgFUIQQAcMW3aNLlcLvcjT548io6OVuPGjTV27FgdPnw40zLPP/+8XC7XVa1z586dHnUGBASoYMGCatq0qb799tsres1p06a5xzL6sXPnzkt6jeXLl+u+++5TsWLFFBISoujoaHXo0EHLli3zqaYML774or744osreo3rxTfffKMWLVqoePHiCg0NVfHixdWoUSO99NJLfl9XTvU9q30tKxn736pVq/xeQ4YaNWqoRIkSSktLy3ae+Ph4FS5cWCkpKZf0mpe6fQDwd4QgAI6aOnWqli1bpvnz5+uNN95Q9erVNW7cOFWsWFHfffedx7wPP/zwFX/I91W/fv20bNkyLV68WBMmTNC2bdvUunVr/fjjj1e9ltdff13x8fHau3evxo8fr++++04TJkzQvn37VL9+fU2ePNnn1yYEnffWW2/pjjvuUEREhCZPnqxvvvnGvV9+9tlnfl+fDX3v1auX9u/fr2+++SbL6b/99puWLl2qLl26KCQk5CpXB8A2QU4XAMBuN998s2rVquV+3r59ez311FOqX7++7r33Xm3btk1RUVGSpJIlS6pkyZKO1FmqVCnddtttks7/tbp8+fJq2LCh/vWvf6lBgwZXrY6ffvpJAwYMUOvWrTVr1iwFBf3f23inTp10zz336Mknn1SNGjUUHx9/1eq63owdO1YNGjTIFHi6dOmi9PR0v63nzJkzyps3r99eLzfr3LmzBg0apPfff1+tW7fONP3999+XJPXs2fNqlwbAQhwJApDrlCpVShMnTtTp06f19ttvu8ezOx3u448/Vt26dRUeHq7w8HBVr15d//rXvzzm+e6779S0aVNFREQoX758io+P1/fff+9zjRnB7dChQx7jmzZtUtu2bVWwYEHlyZNH1atX1wcffODzev5u7NixcrlcmjJlikcAkqSgoCC9+eabcrlcHqdsde/eXXFxcZle6+/9dLlcSkpK0gcffOA+/a9Ro0bu6fv27dOjjz6qmJgYhYSEqHjx4urQoYNHD3bv3q2HHnpIRYsWVWhoqCpWrKiJEyd6BIeMU5hefvlljRs3TnFxccqbN68aNWqk3377TefOndOQIUNUvHhxFShQQPfcc0+Wp0fOnDlTdevWVVhYmMLDw9WyZUutXbvWY57t27erU6dO7lPaoqKi1LRpU61bt85rn48dO6ZixYplOS0gwPNX59mzZzV06FCVLl1aISEhKlGihPr27auTJ096zBcXF6c777xT//3vf1WjRg3lyZNHI0eOvGjfDx48qN69e6tkyZIKCQlR6dKlNXLkSKWmpnq8/v79+3X//fcrf/78KlCggDp27KiDBw963c6/O3HihHr06KFChQopLCxMd911l7Zv3+6e/sILLygoKEh79uzJtGzPnj0VGRmps2fPZvnaBQsW1D333KM5c+bo2LFjHtPS0tL073//W7Vr11aVKlX0+++/q0ePHipfvrzy5cunEiVK6K677tLGjRsvug2Xur9LkjFGb775pqpXr668efOqYMGC6tChg8c2A7g+EYIA5EqtW7dWYGDgRU83Gz58uDp37qzixYtr2rRpmjVrlrp166Zdu3a55/nwww/VokULRURE6IMPPtAnn3yiQoUKqWXLlj4HoR07dkiSKlSo4B7bunWr6tWrp82bN+u1117Tf//7X1WqVEndu3fX+PHjfVrPhdLS0vTDDz+oVq1a2R4Ri4mJUc2aNbVgwQKv115kZdmyZcqbN69at26tZcuWadmyZXrzzTclnQ9AtWvX1qxZs5SQkKC5c+dq0qRJKlCggE6cOCFJOnLkiOrVq6dvv/1WL7zwgmbPnq1mzZpp4MCBeuKJJzKt74033tBPP/2kN954Q++9955+/fVX3XXXXerVq5eOHDmi999/332638MPP+yx7IsvvqgHHnhAlSpV0ieffKJ///vfOn36tG6//XZt2bLFPV/r1q21evVqjR8/XvPnz9eUKVNUo0aNTAHl7+rWravPP/9czz//vNavX59tL40xateunSZMmKAuXbroq6++UkJCgj744AM1adJEycnJHvOvWbNGgwYNUv/+/TVv3jy1b9/ea98PHjyoOnXq6JtvvtHw4cM1d+5c9erVS2PHjtUjjzzift0zZ86oWbNm+vbbbzV27Fh9+umnio6OVseOHb1u59/16tVLAQEB+vjjjzVp0iT9/PPPatSokbtfvXv3VlBQkMcfJyTp+PHjmjFjhnr16qU8efJ4ff2UlBR9+OGHHuPffPON9u/fr169ekk6H+giIyP10ksvad68eXrjjTcUFBSkW2+9VVu3br2sbfKmd+/eGjBggJo1a6YvvvhCb775pjZv3qx69epl+gMHgOuMAQAHTJ061UgyK1euzHaeqKgoU7FiRffzESNGmAvftrZv324CAwNN586ds32NpKQkU6hQIXPXXXd5jKelpZlq1aqZOnXqeK1zx44dRpIZN26cOXfunDl79qxZt26dqVu3rilWrJjZsWOHe95OnTqZ0NBQs3v3bo/XaNWqlcmXL585efKkx2tOnTo1Uz8ufL2/O3jwoJFkOnXq5LXmjh07Gknm0KFDxhhjunXrZmJjYzPN9/d+GmNMWFiY6datW6Z5e/bsaYKDg82WLVuyXe+QIUOMJLNixQqP8T59+hiXy2W2bt1qjPm/7a9WrZpJS0tzzzdp0iQjydx9990eyw8YMMBIMqdOnTLGGLN7924TFBRk+vXr5zHf6dOnTXR0tLn//vuNMcYcPXrUSDKTJk3Ktubs/P777+bmm282kowkkzdvXtO0aVMzefJkk5KS4p5v3rx5RpIZP368x/IzZ840ksw777zjHouNjTWBgYHuPlwou7737t3bhIeHm127dnmMT5gwwUgymzdvNsYYM2XKFCPJ/O9///OY75FHHsm0r2UlY/+75557PMZ/+uknI8mMHj3aPdatWzdTtGhRk5yc7B4bN26cCQgI8Lr/GmNMenq6KV26tKlatarHePv27U2+fPncP+O/S01NNSkpKaZ8+fLmqaeeco9n9X/pUvf3ZcuWGUlm4sSJHvPt2bPH5M2b1zzzzDNetwXAtY0jQQByLWOM1+nz589XWlqa+vbtm+08S5cu1fHjx9WtWzelpqa6H+np6brjjju0cuVKJSUlXbSWwYMHKzg42H2K26ZNmzRnzhyP024WLFigpk2bKiYmxmPZ7t2766+//rpqN3XI6Js/76Q3d+5cNW7cWBUrVsx2ngULFqhSpUqqU6eOx3j37t1ljNGCBQs8xlu3bu1xalnGa7dp08Zjvozx3bt3Szp/1CA1NVVdu3b1+JnmyZNHDRs21MKFCyVJhQoVUtmyZfXyyy/rlVde0dq1ay/5ep6yZctq/fr1WrRokUaOHKlmzZpp5cqVeuKJJ1S3bl33KV8Z29S9e3eP5e+77z6FhYVlOtJYtWpVj6OHF/Pll1+qcePGKl68uMe2tmrVSpK0aNEiSdIPP/yg/Pnz6+677/ZY/sEHH7zkdUnnr9u5UL169RQbG6sffvjBPfbkk0/q8OHD+vTTTyVJ6enpmjJlitq0aZPlaWgXcrlc6tGjhzZs2KDVq1dLOn/q4Zw5c9S+fXtFRERIklJTU/Xiiy+qUqVKCgkJUVBQkEJCQrRt2zb98ssvl7VN2fnyyy/lcrn00EMPefQ2Ojpa1apVc+9HAK5PhCAAuVJSUpKOHTum4sWLZzvPkSNHJMnrzRIyTmnp0KGDgoODPR7jxo2TMUbHjx+/aD1PPvmkVq5cqSVLlmjChAk6d+6c2rZt63FtQ3bXkWRsw9+vg7hchQsXVr58+dyn4mVn586dypcvnwoVKnRF67vQkSNHLnpTisvd/r/Xl3FHsOzGM4JHxs+0du3amX6mM2fO1NGjRyWd/8D9/fffq2XLlho/frxuueUWFSlSRP3799fp06cvus0BAQFq0KCBhg8frtmzZ2v//v3q2LGjVq9e7b6I/9ixYwoKClKRIkU8lnW5XIqOjs60zdldZ5SdQ4cOac6cOZm2s3LlypLk3tZjx465byByoejo6MtaX1bz/307atSoodtvv11vvPGGpPNhYufOnVme8piVHj16KCAgQFOnTpUkffTRR0pJSXGfCidJCQkJ+sc//qF27dppzpw5WrFihVauXKlq1arpzJkzl7VN2Tl06JCMMYqKisrU3+XLl7t7C+D6xN3hAORKX331ldLS0jwuEP+7jA+ee/fuzXT0JUPhwoUlnb+tdMbd3f4uqw+Pf1eyZEn3zRDi4+MVHR2thx56SCNGjHDfkjoyMlIHDhzItOz+/fs9avFVYGCgGjdurHnz5mnv3r1ZhpK9e/dq9erVatWqlQIDAyVJefLkyXRtiqTL+pBXpEgR7d271+s8Ob39GTJe57PPPlNsbKzXeWNjY903yfjtt9/0ySef6Pnnn1dKSoreeuuty1pvWFiYhg4dqpkzZ2rTpk2Szm9zamqqjhw54hGEjDE6ePCgateu7fEal3t0rnDhwqpatarGjBmT5fSMgBkZGamff/450/TLvTFCVvMfPHhQ5cqV8xjr37+/7rvvPq1Zs0aTJ09WhQoV1Lx580taR8mSJdWiRQt9/PHHmjhxoqZOnapy5cp53GXxww8/VNeuXfXiiy96LHv06FHdcMMNXl//Uvf3woULy+VyafHixQoNDc00f1ZjAK4fHAkCkOvs3r1bAwcOVIECBdS7d+9s52vRooUCAwM1ZcqUbOeJj4/XDTfcoC1btqhWrVpZPnz5TpLOnTurUaNGevfdd903YWjatKkWLFjg/tCfYfr06cqXL1+2IexyDB06VMYYPf7445ku1k9LS1OfPn1kjNHQoUPd43FxcTp8+LDHhd4pKSlZfl9LaGholn9pb9WqlX744QevF6U3bdpUW7Zs0Zo1azzGp0+fLpfLpcaNG1/ydnrTsmVLBQUF6Y8//sj2Z5qVChUqaNiwYapSpUqmGv8uqzAnyX0qVkb4aNq0qSRlutD/888/V1JSknv6xWTX9zvvvFObNm1S2bJls9zOjDoaN26s06dPa/bs2R7Lf/zxx5e0/gwfffSRx/OlS5dq165dmf4Ycc8996hUqVJ6+umn9d133+nxxx+/rIDXq1cvnThxQsOHD9e6devUo0ePTHcq/HsI+eqrr7Rv376Lvval7u933nmnjDHat29flr2tUqXKJW8PgGsPR4IAOGrTpk3uc/EPHz6sxYsXa+rUqQoMDNSsWbMynWZ0obi4OD377LN64YUXdObMGT3wwAMqUKCAtmzZoqNHj2rkyJEKDw/X66+/rm7duun48ePq0KGDihYtqiNHjmj9+vU6cuSI1xDlzbhx43TrrbfqhRde0HvvvacRI0a4r+EYPny4ChUqpI8++khfffWVxo8frwIFCvjaJrf4+HhNmjRJAwYMUP369fXEE0+oVKlS2r17t9544w2tWLFCkyZNUr169dzLdOzYUcOHD1enTp00aNAgnT17Vq+99lqWdzyrUqWKFi5cqDlz5qhYsWLKnz+/brzxRo0aNUpz585VgwYN9Oyzz6pKlSo6efKk5s2bp4SEBN1000166qmnNH36dLVp00ajRo1SbGysvvrqK7355pvq06fPZV0L401cXJxGjRql5557Ttu3b9cdd9yhggUL6tChQ/r5558VFhamkSNHasOGDXriiSd03333qXz58goJCdGCBQu0YcMGDRkyxOs6KleurKZNm6pVq1YqW7aszp49qxUrVmjixImKiopyn7rVvHlztWzZUoMHD1ZiYqLi4+O1YcMGjRgxQjVq1FCXLl0uaZu89X3+/PmqV6+e+vfvrxtvvFFnz57Vzp079fXXX+utt95SyZIl1bVrV7366qvq2rWrxowZo/Lly+vrr7/O9otJs7Nq1So9/PDDuu+++7Rnzx4999xzKlGihB5//HGP+QIDA9W3b18NHjxYYWFhma6Jupi7775bhQsX1ssvv6zAwEB169bNY/qdd96padOm6aabblLVqlW1evVqvfzyy5f0PWGXur/Hx8fr0UcfVY8ePbRq1So1aNBAYWFhOnDggJYsWaIqVaqoT58+l7VdAK4hjt2SAYDVMu5GlfEICQkxRYsWNQ0bNjQvvviiOXz4cKZlsrqbmTHGTJ8+3dSuXdvkyZPHhIeHmxo1amS6G9aiRYtMmzZtTKFChUxwcLApUaKEadOmjfn000+91plx96mXX345y+n33XefCQoKMr///rsxxpiNGzeau+66yxQoUMCEhISYatWqZarF17vDXWjZsmWmQ4cOJioqygQFBZmiRYuae++91yxdujTL+b/++mtTvXp1kzdvXlOmTBkzefLkLPu5bt06Ex8fb/Lly2ckmYYNG7qn7dmzx/Ts2dNER0eb4OBgU7x4cXP//fe770JnjDG7du0yDz74oImMjDTBwcHmxhtvNC+//LLHXeCy6+kPP/xgJGX6mWR3J8EvvvjCNG7c2ERERJjQ0FATGxtrOnToYL777jtjjDGHDh0y3bt3NzfddJMJCwsz4eHhpmrVqubVV181qampXvv79ttvm3vvvdeUKVPG5MuXz4SEhJiyZcuaxx57zOzZs8dj3jNnzpjBgweb2NhYExwcbIoVK2b69OljTpw44TFfbGysadOmTZbr89b3I0eOmP79+5vSpUub4OBgU6hQIVOzZk3z3HPPmT///NM93969e0379u1NeHi4yZ8/v2nfvr1ZunTpZd0d7ttvvzVdunQxN9xwg8mbN69p3bq12bZtW5bL7Ny500gyjz32mNfXzs5TTz1lJJnWrVtnmnbixAnTq1cv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TfuKL4KcPhKFizPG6MyZM0pJSdEff/yh1NRU5cmTR/v27dPMmTM1YsQILViwQF9//bUGDhzodLmOCAgIUJEiRVS7dm1t2rRJ99xzj0JDQ9WtWzclJyfrkUcecbpExwQEBKhmzZqKjIxUx44dVaRIEXXq1EmS9Mwzz6hw4cIOV+isc+fO6eTJk+rQoYOk8+dSBwQEqEyZMjp27JgkWXuNh8vl0h133OHujSSNHj1a33zzjQ4ePKijR4+qcuXKGjZsmOrXr+9gpc6pW7eu9uzZo//973966623lJqaqjp16qhKlSr65JNPtGnTJo0aNUo33nij06U6whij3bt3a926dapRo4bGjBmjuXPnKiUlRadOndKuXbs0btw4de/e3elSHRUcHKwDBw4oJiZG0vm+lSpVSsOHD9f48eP15ZdfKi4uTp07d7bq/ejkyZPaunWrjh49qkGDBkmS3n33XR04cEALFizQsGHDVKBAAY/3KFskJyfrmWee0ahRo9y/t0aPHq1bb71VU6ZMUZ8+fazaV3zicAjDZViyZIkJCAgwDRo0MF26dDFhYWHm4YcfNsYYs3HjRhMeHm5+/fVXq5N/165dzZAhQ4wxxvTq1csULFjQVKpUyfTs2dOsWLHC4eqc8+eff3o8nzFjhnG5XGbgwIHm6NGjxpjzf0Xavn27E+U57rfffnP/OyUlxRhjzPDhw02XLl085jt9+vRVrSs3SExMdP/7P//5j3G5XGbGjBnm2LFjZtGiRaZOnTruI9Q22r9/v+natavJkyePad68uTl27Jh72qxZs0xUVJSZOXOmgxU6a/v27aZevXqmXLlypn379sblcpkvvvjCpKenm0OHDpn+/fubRo0amaNHj1r7uys1NdWkpKSYHj16mHvuucecOXPGpKenu0/j3rVrl2nVqpW5++67Ha706ktPTzedOnUyTzzxhLnzzjvNvHnz3NP27NljHnroIfPYY4+Z1NRUa/efDOnp6ebkyZOmXbt25v7776cnl4Arp64h8fHxWr58uUqVKqXQ0FCNHz9e7777riRp+/btiomJUXR0tJXJ3/z/C0abNGmikJAQPf744/r666+1evVqjR49WosWLdLUqVN19uxZhyt1RsbF2mlpaTLGqGPHjvr44481ceJEjRs3Tvv379fAgQM1cOBA/fXXXw5Xe/WVL19e0vmjQMHBwZLO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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 6))\n", + "plt.bar(dice_rolls_df['Roll'].astype(str), dice_rolls_df['Outcome'], color='skyblue')\n", + "plt.title('Dice Roll Outcomes Sorted by Value')\n", + "plt.xlabel('Roll Number')\n", + "plt.ylabel('Outcome')\n", + "plt.xticks(rotation=45) \n", + "plt.grid(axis='y', alpha=0.75) \n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Calculate the frequency distribution and plot it. What is the relation between this plot and the plot above? Describe it with words." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here\n", + "frequency_distribution = dice_rolls_df['Outcome'].value_counts().sort_index()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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WFEPPfSQli9froCAAA0YMMDdNyoqShMnTvRYvm7duoqPj3fPl6SuXbvK4XC4pyVp0aJFiomJUeHChVWyZEl169bNPe/8+fPq3bu3ihcvrqCgIHXo0EH79+93z58+fbqKFSumr7/+WlWrVlVQUJC6d++utLQ0zZgxQ1FRUSpevLgGDhyojIwM93JXrlzR8OHDVb58eQUHB6thw4Zas2bNTbYKgJwiqAAFUKtWrVSnTh3Nnz8/2/kXL17Uww8/rBMnTmjRokXasWOHhg8f7j5ctHz5cj311FN66aWX9PPPP2vatGmaPn263njjjWzXl5mZqblz56pXr14qU6aMx7wiRYqof//+Wr58uZKTk3NU/+bNmyX98QONSUlJ7unFixerW7du6tixo3788UetWrVKMTEx7uX69OmjLVu2aNGiRdqwYYMsy1JsbKyuXr3q7nPp0iW98847mjt3rpYtW6Y1a9aoW7duWrJkiZYsWaJZs2bp/fff1+eff+5e5plnntH333+vuXPn6qefftJf/vIXtW/f3iMEAfCRBeCuFRcXZ3Xp0iXbeT169LCqVavmnpZkLViwwLIsy5o2bZoVEhJinTt3Lttlmzdvbo0ePdqjbdasWVbZsmWz7X/y5ElLkvXvf/872/nz58+3JFmbNm2yLMuyIiMjvfrWqVPHGjlyZLb1ZmncuLHVq1evbMfYt2+fJcn6/vvv3W1nz561ihQpYn366aeWZVlWYmKiJck6cOCAu8/zzz9vBQUFWampqe62du3aWc8//7xlWZZ14MABy+FwWMePH/cYr3Xr1taIESOyrQVAzvnbGZIA2MeyLDkcjmznbd++XQ888IBKlCiR7fytW7dq8+bNHntQMjIydPnyZV26dElBQUG5rkXSDevJqe3bt+u5557Ldt6ePXvk7++vhg0butvCwsJUtWpV7dmzx90WFBSk6Oho93Tp0qUVFRWle+65x6Pt9OnTkqRt27bJsixVqVLFY7z09HSFhYX9qecDQCKoAAXUnj17VKlSpWznFSlS5KbLZmZmKiEhweP8jyyFCxf2aitVqpSKFSumn3/+Odv1/d///Z8cDoc7IBQqVMgdXrJce3jmRm5W9/Xru7b92oAUEBDgMT/riqnr27IOg2VmZsrPz09bt26Vn5+fR79rww0A33COClAArV69Wjt37tTjjz+e7fzatWtr+/btNzxnpF69etq7d6/uvfder0ehQt5fK4UKFdITTzyh2bNn6+TJkx7zfv/9d02ePFnt2rVz78EpVaqUkpKS3H1SUlJ06NAhj+UCAgI8TmjNqnvVqlXZ1ly9enW5XC6PE4LPnTunffv2qVq1atkukxMPPPCAMjIydPr0aa/X4vrzcQDkHkEFuMulp6fr5MmTOn78uLZt26bRo0erS5cu6tSpk3r37p3tMn/9619VpkwZPfbYY/r+++/1yy+/6IsvvtCGDRskSf/4xz80c+ZMxcfHa/fu3dqzZ4/mzZun//f//t8N63jjjTdUpkwZtWnTRkuXLtWvv/6qdevWqV27drp69aree+89d99WrVpp1qxZ+u6777Rr1y7FxcV57a2IiorSqlWrdPLkSZ0/f16SNHLkSM2ZM0cjR47Unj17tHPnTr311luSpPvuu09dunTRc889p/Xr12vHjh166qmnVL58eXXp0sXn17dKlSrq1auXevfurfnz5+vQoUPavHmzxo4dqyVLlvi8XgB/IKgAd7lly5apbNmyioqKUvv27fXtt9/qnXfe0cKFC73++GcJDAzUN998o/DwcMXGxqpWrVp688033f3btWunr7/+WitWrFCDBg3UqFEjTZgwQZGRkTeso2TJktq4caNatmyp559/XpUrV9YTTzyhypUra/PmzapcubK774gRI/TQQw+pU6dOio2N1WOPPeZx3ogkjR8/XitWrFBERIQeeOABSVKLFi302WefadGiRapbt65atWrlsQclMTFR9evXV6dOndS4cWNZlqUlS5Z4HdrJrcTERPXu3VtDhw5V1apV9eijj2rTpk2KiIj4U+sFIDmsGx24BQAAsBl7VAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAw1v8HUyTiJ9yhOtYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n", + "# Plotting the frequency distribution\n", + "frequency_distribution.plot(kind='bar', color='skyblue')\n", + "plt.title('Frequency Distribution of Dice Rolls')\n", + "plt.xlabel('Dice Outcome')\n", + "plt.ylabel('Frequency')\n", + "plt.xticks(rotation=0) # Keep the x-axis labels horizontal for readability\n", + "plt.grid(axis='y', alpha=0.75)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 2\n", + "Now, using the dice results obtained in *challenge 1*, your are going to define some functions that will help you calculate the mean of your data in two different ways, the median and the four quartiles. \n", + "\n", + "#### 1.- Define a function that computes the mean by summing all the observations and dividing by the total number of observations. You are not allowed to use any methods or functions that directly calculate the mean value. " + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean of the dice rolls is: 3.6\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_mean(observations):\n", + " # Calculate the sum of all observations\n", + " total_sum = sum(observations)\n", + " \n", + " # Calculate the number of observations\n", + " num_observations = len(observations)\n", + " \n", + " # Calculate the mean by dividing the total sum by the number of observations\n", + " mean = total_sum / num_observations\n", + " \n", + " return mean\n", + "\n", + "# Assuming dice_rolls is a list of dice roll outcomes\n", + "# For demonstration, let's use a sample list of dice roll outcomes\n", + "dice_rolls = [1, 3, 4, 6, 3, 4, 2, 5, 6, 2]\n", + "\n", + "# Call the function and print the result\n", + "mean_dice_rolls = calculate_mean(dice_rolls)\n", + "print(f\"The mean of the dice rolls is: {mean_dice_rolls}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- First, calculate the frequency distribution. Then, calculate the mean using the values of the frequency distribution you've just computed. You are not allowed to use any methods or functions that directly calculate the mean value. " + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here# \n", + "dice_rolls = [1, 3, 4, 6, 3, 4, 2, 5, 6, 2] \n", + "\n", + "# creating frequency distribution\n", + "frequency_distribution = {}\n", + "for outcome in dice_rolls:\n", + " if outcome in frequency_distribution:\n", + " frequency_distribution[outcome] += 1\n", + " else:\n", + " frequency_distribution[outcome] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean from the frequency distribution is: 3.6\n" + ] + } + ], + "source": [ + "# Sum product of values and frequencies\n", + "sum_product = sum(value * frequency for value, frequency in frequency_distribution.items())\n", + "\n", + "# Sum of all frequencies (total number of observations)\n", + "total_observations = sum(frequency_distribution.values())\n", + "\n", + "# Calculate mean\n", + "mean_value = sum_product / total_observations\n", + "\n", + "print(f\"The mean from the frequency distribution is: {mean_value}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " 3.- Define a function to calculate the median. You are not allowed to use any methods or functions that directly calculate the median value. \n", + "**Hint**: you might need to define two computation cases depending on the number of observations used to calculate the median." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Median (Odd): 6\n", + "Median (Even): 4.5\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_median(data):\n", + " # Sort the data\n", + " sorted_data = sorted(data)\n", + " \n", + " # Calculate the number of observations\n", + " N = len(sorted_data)\n", + " \n", + " # Determine if the number of observations is odd or even\n", + " is_odd = N % 2 != 0\n", + " \n", + " if is_odd:\n", + " # If odd, the median is the value at the middle position\n", + " median_position = N // 2\n", + " median_value = sorted_data[median_position]\n", + " else:\n", + " # If even, the median is the average of the two middle values\n", + " median_position_1 = (N // 2) - 1 # Position is subtracted by 1 because list index starts at 0\n", + " median_position_2 = N // 2\n", + " median_value = (sorted_data[median_position_1] + sorted_data[median_position_2]) / 2\n", + " \n", + " return median_value\n", + "\n", + "# Example usage with odd and even number of data points\n", + "data_odd = [1, 3, 3, 6, 7, 8, 9]\n", + "data_even = [1, 2, 3, 4, 5, 6, 8, 9]\n", + "\n", + "print(f\"Median (Odd): {calculate_median(data_odd)}\")\n", + "print(f\"Median (Even): {calculate_median(data_even)}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Define a function to calculate the four quartiles. You can use the function you defined above to compute the median but you are not allowed to use any methods or functions that directly calculate the quartiles. " + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Q1: 15, Q2 (Median): 37.5, Q3: 40, Q4 (Max): 41\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_median(data):\n", + " sorted_data = sorted(data)\n", + " N = len(sorted_data)\n", + " middle_point = N // 2\n", + " \n", + " if N % 2 == 0: # Even number of observations\n", + " median_value = (sorted_data[middle_point - 1] + sorted_data[middle_point]) / 2\n", + " else: # Odd number of observations, exclude the middle value for the halves\n", + " median_value = sorted_data[middle_point]\n", + " \n", + " return median_value\n", + "\n", + "def calculate_quartiles(data):\n", + " sorted_data = sorted(data)\n", + " N = len(sorted_data)\n", + " \n", + " Q2 = calculate_median(sorted_data) \n", + " \n", + " if N % 2 == 0:\n", + " lower_half = sorted_data[:N // 2]\n", + " upper_half = sorted_data[N // 2:]\n", + " else:\n", + " lower_half = sorted_data[:N // 2] # Up to the median, exclusive\n", + " upper_half = sorted_data[N // 2 + 1:] # After the median, exclusive\n", + " \n", + " Q1 = calculate_median(lower_half)\n", + " Q3 = calculate_median(upper_half)\n", + " Q4 = sorted_data[-1] # Maximum value, or 100% of the data spread\n", + " \n", + " return Q1, Q2, Q3, Q4\n", + "\n", + "# Example usage\n", + "data = [7, 15, 36, 39, 40, 41]\n", + "Q1, Q2, Q3, Q4 = calculate_quartiles(data)\n", + "print(f\"Q1: {Q1}, Q2 (Median): {Q2}, Q3: {Q3}, Q4 (Max): {Q4}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Challenge 3\n", + "Read the csv `roll_the_dice_hundred.csv` from the `data` folder.\n", + "1.- Sort the values and plot them. What do you see?" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 1\n", + "1 1 1 2\n", + "2 2 2 6\n", + "3 3 3 1\n", + "4 4 4 6" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dice = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\roll_the_dice_hundred.csv')\n", + "dice.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "sorted_dice_rolls = dice.sort_values(by='value') \n" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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fh87dkzr169XamqqEhIStHXrVn366ac6evSoxo8fr+bNm2e4/Pvvv6/WrVvr3nvv1cCBAxUSEqJjx47pu+++cwa0d955R40bN9Z9992n559/XhUrVtTFixd18OBBLVq0yPksi7sGDx6sDz/8UDExMerYsaO6deum999/X927d1dcXJxq166t1atXa9SoUWrZsqUeeuihLG3nz4oVK6Yvv/xSrVq1Ur169fTSSy+pTp06SkxM1Lx58zRr1iw99thjeumll5zL1K9fXzVq1NDgwYOVkpKi4sWLa8GCBS638t1Qu3Ztffnll5o0aZLq1aunfPnyKSIiQp07d9bUqVPVq1cv7du3T5GRkUpNTdWGDRsUGhqqTp06qVmzZmrRooWGDh2qxMRENWrUyPl2uPDwcHXt2vWW9/+Gjz76SFFRUWrRooV69OihsmXL6vz589qzZ4+2bNmi+fPnS/rjql2rVq0UFham4sWLa8+ePZo5c6YaNGiQq74vC4BB7HwrAwDkNvPmzbMef/xxq1q1albhwoUtb29vKyQkxOratau1e/dul77Xr1+3xowZY1WvXt3y9va2SpYsaT3xxBNWfHy8S78mTZpYNWvWTHd7cXFxVvPmza0iRYpYklzeCPb7779b//rXv6waNWpYBQoUsIoWLWrVrl3bGjhwoHXq1ClnvwsXLlhPPfWUVaxYMatQoUJWs2bNrL1797r1drgbU/78+a3ixYtb9erVswYMGGDt2rUrzTLpvc3Msixr3bp1VlRUlFW0aFHLx8fHqlKlijVw4MA023vqqaessmXLWt7e3lapUqWshg0bWq+//nqGdVrWH28ye+SRR9Kd9/7771uSrOnTp1uWZVnnzp2zevXqZQUHB1teXl5WhQoVrOjoaOvKlStp1pmVt8PdcOzYMat3795W5cqVnefo/vvvtz777DMrNTU1Tf/9+/dbzZs3t/z9/a1SpUpZffv2tb7++us0x/P8+fNWhw4drGLFilkOh8P685/ry5cvW6+++qpVrVo1q0CBAlZAQIDVtGlTa+3atS59hg4dalWoUMHy9va2goODreeff9767bffMnVMJVm9e/d2abvZmwS3b99udezY0SpdurTl7e1tBQUFWU2bNrU+/PBDZ59hw4ZZERERVvHixS0fHx+rcuXK1sCBA62zZ89m6jgDgKc5LOtvXvsDAAAAAHkI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ZghBAIBsMWLECL355ps6ceKE/P39VaZMGa1evdqlz9q1axUaGppjNd15551av369S9tfP9etW1e7du1S1apV00wFChRw1j127FgtWrRI/v7+ziteAIDbAyEIAJAtHnjgAdWsWVOjRo2SJL300ksaM2aM5s2bp3379mnYsGHatm2b+vfvn2M19erVS4cOHdKgQYO0b98+zZ49W9OmTXPpM3ToUK1bt069e/fWtm3bdODAAS1cuNAZdC5evKiuXbuqb9++ioqK0uzZs/X5559r/vz5ObYfAIBbQwgCAGSbQYMG6eOPP1Z8fLz69eunF198US+++KJq166tJUuWaOHChapWrVqO1RMSEqIvvvhCixYtUp06dfThhx86Q9oNYWFhWrVqlQ4cOKD77rtP4eHheuWVVxQcHCxJ6t+/v/z8/JzL1axZU2PGjFGvXr10/PjxHNsXAEDWOazM3CANAAAAAHkEV4IAAAAAGIUQBAAAAMAohCAAAAAARiEEAQAAADAKIQgAAACAUQhBAAAAAIxCCAIAAABgFEIQAAAAAKMQggAAAAAYhRAEAAAAwCiEIAAAAABGIQQBAAAAMMr/A+oIrhc1DbfcAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 6)) \n", + "plt.bar(sorted_dice_rolls.index, sorted_dice_rolls['value'], color='skyblue')\n", + "plt.title('Sorted Dice Roll Outcomes')\n", + "plt.xlabel('Roll Index')\n", + "plt.ylabel('Dice Value')\n", + "plt.xticks(rotation=90) \n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Using the functions you defined in *challenge 2*, calculate the mean value of the hundred dice rolls." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here\n", + "dice_values = dice['value'].tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean value of the hundred dice rolls is: 3.74\n" + ] + } + ], + "source": [ + "mean_dice_value = calculate_mean(dice_values)\n", + "\n", + "print(f\"The mean value of the hundred dice rolls is: {mean_dice_value}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "value\n", + "1 12\n", + "2 17\n", + "3 14\n", + "4 22\n", + "5 12\n", + "6 23\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "# your code here\n", + "frequency_distribution = dice['value'].value_counts().sort_index()\n", + "\n", + "# Display the frequency distribution\n", + "print(frequency_distribution)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Plot the histogram. What do you see (shape, values...) ? How can you connect the mean value to the histogram? " + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3MklEQVR4nO3deVhVdeLH8c9V4AKKGCgCikiJuJtGmktupAlqqTnpqIlF05jaqOhUWI1YJqmjY5O5tLhN4zqV2eJWojmp5ZJaZi65gAmjgIq4IML5/dHD/XkFFK/ovcfer+c5T91zvueezz0X8eNZ7rUYhmEIAADApMo5OwAAAMDNoMwAAABTo8wAAABTo8wAAABTo8wAAABTo8wAAABTo8wAAABTo8wAAABTo8wAAABTo8zApc2bN08Wi0Xbtm0rdnm3bt1Uq1Ytu3m1atXSoEGDbmg7mzZtUmJiok6fPu1Y0N+hJUuWqEGDBvLy8pLFYtHOnTuLHbd+/XpZLBbb5OHhoapVq6p169Z66aWXdPTo0SLrFL7vR44cubUv4ipX5rRYLKpUqZJatWqlRYsW3dRzJiYm2h4X7o/169eXav29e/dq0KBBqlmzpjw8PFSlShXFxMRo5cqVDmeSpBkzZmjevHk39RyAq6DM4I7z8ccf65VXXrmhdTZt2qRx48ZRZkrp5MmTeuKJJ3TPPfdo1apV2rx5s+rUqXPNdSZMmKDNmzcrOTlZ77//vtq3b685c+aoXr16+ve//203tmvXrtq8ebOCgoJu5csoVu/evbV582Zt2rRJs2bNUnZ2tvr166eFCxfe9iwfffSRmjZtqu+++06vvPKKvvzyS82cOVOSFBMTo+eff97h56bM4E7i5uwAQFlr2rSpsyPcsLy8PFksFrm5meOP5P79+5WXl6cBAwaoXbt2pVonPDxcDzzwgO3xI488olGjRumhhx7SoEGD1LhxYzVq1EiSVLVqVVWtWvWWZL+eatWq2XK2bNlSrVu3Vq1atTR79mz169fvtuX45Zdf9MQTT6hRo0Zav369KlSoYFv2hz/8Qc8++6wmT56sZs2aqW/fvrctF+CKODKDO87Vp5kKCgo0fvx4RUREyMvLS5UrV1bjxo315ptvSpISExP117/+VZIUFhZmO8VQeBqgoKBAkyZNUt26dWW1WhUQEKCBAwfq2LFjdts1DEMTJkxQaGioPD09FRkZqbVr16p9+/Zq3769bVzhaYZ//etfGjVqlKpXry6r1aqDBw/q5MmTGjJkiOrXr6+KFSsqICBAHTt21MaNG+22deTIEVksFk2ePFkTJ05UrVq15OXlpfbt29uKxosvvqjg4GD5+vqqZ8+eOnHiRKn234oVK9SyZUt5e3vLx8dHnTp10ubNm23LBw0apDZt2kiS+vTpI4vFYvf6boSfn59mz56ty5cv6x//+IdtfkmnmVatWqWoqCj5+vrK29tb9erVU1JSkt2Ybdu26ZFHHpGfn588PT3VtGlTLV261KF8khQaGqqqVavqf//7n938lJQUDRgwQAEBAbJarapXr56mTJmigoICh7d1pX/84x86f/683nrrLbsiU2jKlCmqXLmyXn/9ddu8xMREWSyWImOv3p+1atXSnj17tGHDBtvP+5Wna0+fPq1Ro0bp7rvvtv3Mx8TE6Oeff7aNycrK0pAhQ1S9enV5eHjo7rvv1ksvvaTc3Fy7bVssFg0bNkxz5861/RmMjIzUli1bZBiGJk+erLCwMFWsWFEdO3bUwYMHi+T/8ssvFRUVpUqVKsnb21utW7fWV199ZTfm5MmTeuaZZxQSEiKr1Wo7lfnll1+Wan/D3Mzxz0D87uXn5+vy5ctF5pfmS98nTZqkxMREvfzyy2rbtq3y8vL0888/204pPf3008rKytJbb72ljz76yHZqo379+pKkZ599Vu+8846GDRumbt266ciRI3rllVe0fv167dixQ1WqVJEkvfTSS0pKStIzzzyjXr16KTU1VU8//bTy8vKKPQWTkJCgli1batasWSpXrpwCAgJ08uRJSdLYsWMVGBionJwcffzxx2rfvr2++uqrIqXh7bffVuPGjfX222/b/gLq3r27WrRoIXd3d82ZM0dHjx7V6NGj9fTTT2vFihXX3FcLFy5U//791blzZy1atEi5ubmaNGmSbftt2rTRK6+8oubNm2vo0KGaMGGCOnTooEqVKl33fSjJ/fffr6CgIH399dfXHPf+++/rT3/6k9q1a6dZs2YpICBA+/fv148//mgbk5ycrC5duqhFixaaNWuWfH19tXjxYvXp00fnz5+/4WupJOnMmTPKysqyO6p08uRJtWrVSpcuXdJrr72mWrVq6bPPPtPo0aP1yy+/aMaMGTe8nautXbvW7ijR1by9vdW5c2ctXbpU6enpCgwMLPVzf/zxx+rdu7d8fX1tWa1WqyTp7NmzatOmjY4cOaIXXnhBLVq0UE5Ojr7++mulpaWpbt26unjxojp06KBffvlF48aNU+PGjbVx40YlJSVp586d+vzzz+2299lnn+n777/XG2+8IYvFohdeeEFdu3ZVbGysDh06pOnTp+vMmTOKj4/XY489pp07d9pK2QcffKCBAwfq0Ucf1fz58+Xu7q7Zs2fr4Ycf1urVqxUVFSVJeuKJJ7Rjxw69/vrrqlOnjk6fPq0dO3YoMzPzhvc9TMgAXNjcuXMNSdecQkND7dYJDQ01YmNjbY+7detm3HvvvdfczuTJkw1JxuHDh+3m792715BkDBkyxG7+t99+a0gyxowZYxiGYWRlZRlWq9Xo06eP3bjNmzcbkox27drZ5iUnJxuSjLZt21739V++fNnIy8szoqKijJ49e9rmHz582JBkNGnSxMjPz7fNnzZtmiHJeOSRR+yeZ8SIEYYk48yZMyVuKz8/3wgODjYaNWpk95xnz541AgICjFatWhV5DcuWLbvuayjN2BYtWhheXl62x4Xve+H7cfbsWaNSpUpGmzZtjIKCghKfp27dukbTpk2NvLw8u/ndunUzgoKC7F5XcQrf67y8POPSpUvG/v37jUceecTw8fExtm3bZhv34osvGpKMb7/91m79Z5991rBYLMa+ffvsnnPs2LFF9kdycvI1s3h6ehoPPPDANce88MILdjnGjh1rFPdr/er9aRiG0aBBA7ufy0KvvvqqIclYu3ZtidudNWuWIclYunSp3fyJEycakow1a9bY5kkyAgMDjZycHNu85cuXG5KMe++91+79LPz53b17t2EYhnHu3DnDz8/P6N69u9128vPzjSZNmhjNmze3zatYsaIxYsSIEjPjzsZpJpjCggULtHXr1iJT4emOa2nevLl27dqlIUOGaPXq1crOzi71dpOTkyWpyL/omzdvrnr16tkOdW/ZskW5ubl6/PHH7cY98MADRe62KvTYY48VO3/WrFlq1qyZPD095ebmJnd3d3311Vfau3dvkbExMTEqV+7//xjXq1dP0m8X0F6pcH5KSkoJr1Tat2+fjh8/rieeeMLuOStWrKjHHntMW7Zs0fnz50tc/2YY1znCtmnTJmVnZ2vIkCHFnkaRpIMHD+rnn39W//79JUmXL1+2TTExMUpLS9O+ffuum2XGjBlyd3eXh4eH6tSpo5UrV2rRokW67777bGPWrVun+vXrq3nz5nbrDho0SIZhaN26ddfdTlko3G8l7RNHrFy5UnXq1NFDDz1U4ph169apQoUK6t27t938wj8nV58C6tChg92pssKfx+joaLvshfML73DbtGmTsrKyFBsba/d+FhQUqEuXLtq6davOnTsn6bc/k/PmzdP48eO1ZcsW5eXlObgHYEaUGZhCvXr1FBkZWWTy9fW97roJCQn6+9//ri1btig6Olr+/v6Kiooq8XbvKxUeoi7urprg4GDb8sL/VqtWrci44uaV9JxTp07Vs88+qxYtWujDDz/Uli1btHXrVnXp0kUXLlwoMt7Pz8/usYeHxzXnX7x4sdgsV76Gkl5rQUGBTp06VeL6NyMlJUXBwcElLi88/VajRo0SxxRe0zJ69Gi5u7vbTUOGDJEkZWRkXDfL448/rq1bt2rTpk2aPXu2fHx81LdvXx04cMA2JjMzs8T9VLj8ZtWsWVOHDx++5pjCa2BCQkJuenuFTp48ec39LP32+gIDA4uUqICAALm5uRV5/Y7+nBa+p7179y7ynk6cOFGGYSgrK0vSbx8VEBsbq/fee08tW7aUn5+fBg4cqPT09Bt5+TAprpnBHc/NzU3x8fGKj4/X6dOn9eWXX2rMmDF6+OGHlZqaKm9v7xLX9ff3lySlpaUV+QV//Phx2/UyheOuvkhUktLT04s9OlPcv6Y/+OADtW/f3nb7baGzZ89e+0WWgStf69WOHz+ucuXK6a677irz7X733XdKT09XXFxciWMK72y6+qLrKxW+FwkJCerVq1exYyIiIq6bp2rVqoqMjJT0291M9erVU7t27TRy5Eh99tlnkn7bVyXtpyuz3IxOnTrp7bff1pYtW4q9bub8+fNau3atGjZsaLtextPTU5KUm5truwZGKl2JK1S1atVr7mfpt9f/7bffyjAMu5/jEydO6PLly2Xy+qX/349vvfVWidcOFf5joUqVKpo2bZqmTZumlJQUrVixQi+++KJOnDihVatWlUkeuC6OzOB3pXLlyurdu7eGDh2qrKws279sC3/xX330o2PHjpJ+KxlX2rp1q/bu3Wu7+LBFixayWq1asmSJ3bgtW7YU+6FwJbFYLHZ/CUnS7t277e4mulUiIiJUvXp1LVy40O60z7lz5/Thhx/a7nAqS1lZWRo8eLDc3d01cuTIEse1atVKvr6+mjVrVomnpCIiIhQeHq5du3YVexQvMjJSPj4+N5zxwQcf1MCBA/X555/b3oeoqCj99NNP2rFjh93YBQsWyGKxqEOHDje8nauNHDlSXl5eeu6552ynUq40evRonTp1Si+//LJtXmFp3r17t93YTz/9tMj6Vqu12KN90dHR2r9//zVPlUVFRSknJ0fLly+3m79gwQLb8rLQunVrVa5cWT/99FOJ72nh0Zwr1axZU8OGDVOnTp2KvEe4M3FkBne87t27q2HDhoqMjFTVqlV19OhRTZs2TaGhoQoPD5ck2+ebvPnmm4qNjZW7u7siIiIUERGhZ555Rm+99ZbKlSun6Oho291MISEhtr+A/fz8FB8fr6SkJN11113q2bOnjh07pnHjxikoKMjuGpRr6datm1577TWNHTtW7dq10759+/Tqq68qLCys2Lu5ylK5cuU0adIk9e/fX926ddOf//xn5ebmavLkyTp9+rTeeOONm3r+AwcOaMuWLSooKFBmZqa+/fZbvf/++8rOztaCBQvUoEGDEtetWLGipkyZoqeffloPPfSQ/vSnP6latWo6ePCgdu3apenTp0uSZs+erejoaD388MMaNGiQqlevrqysLO3du1c7duzQsmXLHMr+2muvacmSJbYPrhs5cqQWLFigrl276tVXX1VoaKg+//xzzZgxQ88+++x1P0CwNO655x7961//Uv/+/XX//fcrPj5eERER+t///qc5c+Zo5cqVGj16tPr06WNbJyYmRn5+foqLi9Orr74qNzc3zZs3T6mpqUWev1GjRlq8eLGWLFmiu+++W56enmrUqJFGjBihJUuW6NFHH9WLL76o5s2b68KFC9qwYYO6deumDh06aODAgXr77bcVGxurI0eOqFGjRvrvf/+rCRMmKCYm5prX29yIihUr6q233lJsbKyysrLUu3dv211/u3bt0smTJzVz5kydOXNGHTp0UL9+/VS3bl35+Pho69atWrVqVYlH6XCHceLFx8B1Fd6FsXXr1mKXd+3a9bp3M02ZMsVo1aqVUaVKFcPDw8OoWbOmERcXZxw5csRuvYSEBCM4ONgoV66c3d0m+fn5xsSJE406deoY7u7uRpUqVYwBAwYYqampdusXFBQY48ePN2rUqGF4eHgYjRs3Nj777DOjSZMmdnci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mWnbtq0WLFhge2yxWFRQUKDJkyerQ4cOZRYOAADgehw6zTR58mS1b99e27Zt06VLl/T8889rz549ysrK0jfffFPWGQEAAErk0JGZ+vXra/fu3WrevLk6deqkc+fOqVevXvr+++91zz33lHVGAACAEt3wkZm8vDx17txZs2fP1rhx425FJgAAgFK74SMz7u7u+vHHH2WxWG56419//bW6d++u4OBgWSwWLV++3G65YRhKTExUcHCwvLy81L59e+3Zs+emtwsAAO4cDp1mGjhwoN5///2b3vi5c+fUpEkTTZ8+vdjlkyZN0tSpUzV9+nRt3bpVgYGB6tSpE9/MDQAAbBy6APjSpUt67733tHbtWkVGRhb5TqapU6eW6nmio6MVHR1d7DLDMDRt2jS99NJLtm/inj9/vqpVq6aFCxfqz3/+syPRAQDAHeaGysyhQ4dUq1Yt/fjjj2rWrJkkaf/+/XZjyuL0kyQdPnxY6enp6ty5s22e1WpVu3bttGnTJsoMAACQdINlJjw8XGlpaUpOTpb029cX/POf/1S1atXKPFh6erokFXnuatWqXfNThnNzc5Wbm2t7nJ2dXebZAACA67iha2au/lbslStX6ty5c2Ua6GpXH+kxDOOaR3+SkpLk6+trm0JCQm5pPgAA4FwOXQBc6OpyU5YCAwMl/f8RmkInTpy45pGghIQEnTlzxjalpqbesowAAMD5bqjMWCyWIkdFyuoamauFhYUpMDBQa9eutc27dOmSNmzYoFatWpW4ntVqVaVKlewmAABw57qha2YMw9CgQYNsXyZ58eJFDR48uMjdTB999FGpni8nJ0cHDx60PT58+LB27twpPz8/1axZUyNGjNCECRMUHh6u8PBwTZgwQd7e3urXr9+NxAYAAHewGyozsbGxdo8HDBhwUxvftm2b3RdTxsfH27Yzb948Pf/887pw4YKGDBmiU6dOqUWLFlqzZo18fHxuarsAAODOcUNlZu7cuWW68fbt21/zuhuLxaLExEQlJiaW6XYBAMCd46YuAAYAAHA2ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "plt.hist(dice['value'], bins=range(1, 8), edgecolor='black', align='left')\n", + "plt.title('Histogram of Dice Roll Outcomes')\n", + "plt.xlabel('Dice Value')\n", + "plt.ylabel('Frequency')\n", + "plt.xticks(range(1, 7))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.- Read the `roll_the_dice_thousand.csv` from the `data` folder. Plot the frequency distribution as you did before. Has anything changed? Why do you think it changed?" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0005
1116
2221
3336
4445
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1\n", + "3 3 3 6\n", + "4 4 4 5" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dice_thousand = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\roll_the_dice_thousand.csv')\n", + "dice_thousand.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 4\n", + "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", + "\n", + "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
observation
068.0
112.0
245.0
338.0
449.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 68.0\n", + "1 12.0\n", + "2 45.0\n", + "3 38.0\n", + "4 49.0" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\ages_population.csv')\n", + "ages.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "observation\n", + "1.0 2\n", + "2.0 2\n", + "4.0 1\n", + "5.0 2\n", + "6.0 2\n", + " ..\n", + "69.0 1\n", + "70.0 1\n", + "71.0 1\n", + "73.0 1\n", + "82.0 1\n", + "Name: count, Length: 72, dtype: int64\n" + ] + } + ], + "source": [ + "frequency_distribution = ages['observation'].value_counts().sort_index()\n", + "print(frequency_distribution)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rfT09Av2DAAoJAYAwAVMnjzZJOV6OXXqlC1ZssQkWYsWLTzq0tPTrXz58tapUyeP8czMTLvuuuvsxhtvdI81adLEYmJi7Pjx4+6xw4cPW/ny5e3sf662bt1qkmzy5Mk5+pRkQ4cOdV9v166dValSxQ4dOuSx3pNPPmkhISF24MABMzN3/x07dvRY74MPPjBJtmLFCjMzO3LkiJUuXdqaN29uWVlZeT5eQ4cOtaCgINuzZ497bObMmSbJli5dmmed2f8e65UrV+a5TlRUlNWuXdtje2c/Rh9++KFJsrVr1+Z5G/v27cvxeJ17ey+++GKey85WvXp1c7lcObbXpk0bK126tKWnp3vct61bt3qsl/34L1myxD2WmJho1atXz7X3c/vu1q2bBQcH2/bt2z3W69Chg4WFhdkff/zhsZ0LPc95uemmm6xixYp25MgR99jp06etXr16VqVKFfc+kb2Pjh49+ry3ly01NdX8/PysW7du7rGWLVtaeHi4HT582D22ceNGk2TPPfecR/306dNNkvXq1cs99thjj1mpUqVs27ZtHuu+8sorJsk2btxoZmdeC2XLls1XnwCAS4Mj5QCAfHv33Xe1cuVKj8vZ3xm/8847PdZfvny5Dhw4oF69enkcXc/KylL79u21cuVKpaenKz09XStXrlTXrl0VEhLirs8+CumNEydO6PPPP1eXLl0UFhbmsf2OHTvqxIkT+uabbzxqbr/9do/r9evXlyRt27bNfX8OHz6svn37nvds50888YQk6a233nKPvfHGG7r22mvVokULr+7P2czsvMsbNGigoKAgPfroo5oyZYp+/fVXr7Zz7vN5PnXr1tV1113nMda9e3cdPnxYa9as8Wr7+bV48WK1bt1aVatW9Rjv3bu3jh07luMo+4We59ykp6fr22+/1V133aVSpUq5x/39/fXAAw9o586d+f4I/LkmT56srKwsPfTQQ+6xhx56SOnp6e4j8NKZI/WSdM8993jU33XXXTnO3fCf//xHrVq1UkxMjMe+36FDB4/buvHGG/XHH3/ovvvu09y5c/X77797dR8AAN4jlAMA8q127dpq1KiRx+VslSpV8ri+Z88eSWdCQ2BgoMdl5MiRMjMdOHBABw8eVFZWlqKjo3NsM7ex/Ni/f79Onz6t119/Pce2O3bsKEk5AkhkZKTH9eDgYEnS8ePHJUn79u2TpAue6CwqKkr33nuvJk6cqMzMTK1fv15ffvmlnnzySa/uy9nS09O1f//+834E/qqrrtKiRYtUsWJF9evXT1dddZWuuuoqvfbaawXa1rnP5/mc77nbv39/gbZbUPv378+11+zH6NztX+h5zs3BgwdlZgXaTn5kZWXpnXfeUUxMjBo2bKg//vhDf/zxh2699VaFh4d7fIQ9+/azT/CXLSAgIMd92rNnj+bNm5dj369bt66k/+37DzzwgN5++21t27ZNd955pypWrKgmTZpo4cKFBb4vAADvcEpcAEChOffocYUKFSRJr7/+ep5nzI6KinKfqT0tLS3H8nPHso+kZ2RkeIyfG4jKlSvnPorZr1+/XLcdFxd3nnuTU/bJ0bK/P34+/fv313vvvae5c+dqwYIFKlu2rHr06FGg7eUmJSVFmZmZF/wZs5tvvlk333yzMjMztWrVKr3++usaMGCAoqKi1K1bt3xtqyC/fX6+5y47MOb13F3s0dnIyMhcf9c7+4R62fvhxShXrpz8/PwKfTuLFi1yH6E/N1hL0jfffKMff/xRderUcS/fs2ePKleu7F7n9OnTOfb/ChUqqH79+vrb3/6W63bP/qPOgw8+qAcffFDp6elatmyZhg4dqttuu02bN29W9erVC3yfAAAFQygHAFwyzZo1U9myZfXjjz+e9yhxUFCQbrzxRs2aNUujR492h7cjR45o3rx5HutGRUUpJCRE69ev9xifO3eux/WwsDC1atVK33//verXr6+goKCLvj/x8fEqU6aMJkyYoG7dup03tDZs2FDx8fEaOXKkfvjhBz366KMKDw+/qO1v375dzzzzjMqUKaPHHnssXzX+/v5q0qSJrrnmGk2dOlVr1qxRt27d8nV0uCA2btyodevWeXyEfdq0aYqIiNANN9wgSe6zkK9fv97jd7s//vjjHLcXHByc795at26t2bNna9euXR5h891331VYWFih/IRaeHi4mjRpolmzZumVV15RaGiopDNHut9//31VqVJFtWrVKvDtTpo0SX5+fpo1a5bKlCnjsWznzp3uI9mvvPKK+6sPM2fOdD+mkvThhx/mOOnibbfdpk8++URXXXWVypUrl+/72KFDB508eVJ33HGHNm7cSCgHgCJAKAcAXDKlSpXS66+/rl69eunAgQO66667VLFiRe3bt0/r1q3Tvn37NH78eEnSX//6V7Vv315t2rTRoEGDlJmZqZEjRyo8PFwHDhxw36bL5dL999+vt99+W1dddZWuu+46fffdd5o2bVqO7b/22mtq3ry5br75Zj3xxBOKjY3VkSNH9PPPP2vevHlavHhxge/PmDFj1KdPH91666165JFHFBUVpZ9//lnr1q3TG2+84bF+//79de+998rlcqlv374F2tYPP/zg/h7w3r179eWXX2ry5Mny9/fX7Nmz3UftczNhwgQtXrxYiYmJqlatmk6cOKG3335bknTrrbdKOvN9/erVq2vu3Llq3bq1ypcvrwoVKuTr57tyExMTo9tvv11JSUmqVKmS3n//fS1cuFAjR45UWFiYJKlx48a6+uqr9cwzz+j06dMqV66cZs+enetPf1177bWaNWuWxo8fr4YNG8rPzy/H1yWyDR061P0d6hdffFHly5fX1KlTlZKSolGjRuUIu94aMWKE2rRpo1atWumZZ55RUFCQ/vnPf+qHH37Q9OnTC/TJAunMpzvmzp2rdu3aqXPnzrmu8+qrr+rdd9/ViBEjVLduXd13330aM2aM/P39dcstt2jjxo0aM2aMypQpIz+//30r8aWXXtLChQsVHx+vp556SldffbVOnDih1NRUffLJJ5owYYKqVKmiRx55RKGhoWrWrJkqVaqktLQ0jRgxQmXKlFHjxo0v6vECAOSTwyeaAwBcBi50RvDss1r/+9//znX50qVLLTEx0cqXL2+BgYFWuXJlS0xMzLH+xx9/bPXr17egoCCrVq2aJScn53q270OHDlmfPn0sKirKwsPDrVOnTpaamprr2cS3bt1qDz30kFWuXNkCAwPtiiuusPj4eHv55Zcv2H9eZ3r/5JNP3GfHDgsLszp16tjIkSNz3O+MjAwLDg629u3b5/q45ObcM90HBQVZxYoVrWXLljZ8+HDbu3dvjppzH6MVK1ZYly5drHr16hYcHGyRkZHWsmVL+/jjjz3qFi1aZNdff70FBwd7nL07+/b27dt3wW2ZnTn7emJion344YdWt25dCwoKstjYWBs7dmyO+s2bN1vbtm2tdOnSdsUVV9if/vQnS0lJyXH29QMHDthdd91lZcuWNZfL5bHN3J7nDRs2WKdOnaxMmTIWFBRk1113XY7nraDPc26+/PJLu+WWWyw8PNxCQ0Ptpptusnnz5uV6exc6+/q4ceNMks2Z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VOOrfWUjXFFT0l8H1BS//TM/SszZ1+vWras333xTY8aMyXX5W2+9pbp167qvjxkzRomJiVqwYIHatm2rqKgouVwupaWlaeHChdq2bZs++eQTj9vwpqagffn6drypueqqqzRnzhw9++yzufY2d+5cXXnlldQU45qXXnpJ3bp109KlS3Pdbz777DPNmDHD4zZKeo2v9uVtja/um9R4V+PNNnx5/yxONb7aV7ai2Neo8e2akv46oKb47Z/5UuAYf5n64osvLDw83OrUqWMDBgywESNGWHJysg0YMMDq1q1rpUqVsmXLlnnUbN261Z599llr0aKF1apVy2rVqmUtWrSw5557zrZu3Zrrdgpa401fvrwdb2o+/PBDCwgIsI4dO9q4ceNs+vTpNmPGDBs3bpwlJiZaYGCgffTRR9QU85rly5fbvffea9WqVbOgoCALCgqyatWq2b333mvLly/Psd9Q47t9eVPjy/smNQWv8WYb3uw31HhX46t9mRXNvkaNb9eY8Too6TXFcf+8kBITys28C5jFqS9fvf9mvjspUFO0NSjZfHnfpKZo3vACZoQraoCSt3+6zMwKfnwdAAAAAABcLD+nG7hc9erVS7fccsslr/GGL2+nqHpD8fLCCy/ooYceoqYANb7al7c1gC/vn8Wpxlf7ArKV9NcBNb7N2/tDKP//ChoWK1eurOrVqxdoG97UeBNifXk73tT48qRATdHU/Pbbb0pNTS3QNkp6ja/25W2Nr+6b1HhX4802fHn/LE41vtpXNsIVNSX9dUBN8ds/JanEnH39QmJiYuTnl/+/UQwfPjzf65qZXC5XgWq87UsqWG/ZKleuXCTb8abmt99+044dO6gpwTVTpkwp0O1T47t9eVvjq/smNd7VeLMNX94/i1ONr/aVrSj2NWp8u6akvw6oKX77pyTxnfIiEBQUpHXr1ql27dpOt1Ikdu/erfHjx+urr77S7t275e/vr7i4ON1xxx3q3bu3/P39nW4RAAAAAHwCofz/27Fjh4YOHaq3337bPXb8+HGtXr1a5cuXV506dTzWP3HihD744AP17NnTPTZw4MBcb/u1117T/fffr8jISEnS2LFj8+zj4MGDmjJlirZs2aJKlSqpV69eqlq1qsc633//vcqWLau4uDhJ0vvvv6/x48dr+/btql69up588kl169bNo+ZPf/qT7rnnHt188835eDT+5/XXX9eqVauUmJioe+65R++9955GjBihrKwsde3aVS+99JICAv73gYtVq1bp1ltvVVxcnEJDQ/Xtt9+qR48eOnnypD799FPVrl1bn376qSIiIgrUB4q/9PR0TZs2TcuXL1daWppcLpeioqLUrFkz3XfffQoPDy/Q7e3Zs0cTJ07Uiy++mGPZzp07VbZsWZUqVcpj/NSpU1qxYoVatGjhMb5//36tX79e1113ncqXL6/ff/9dkyZNUkZGhu6+++58/8Htyiuv1KeffqqaNWtecN1Tp04pJSXFPRd06dLF4zHYuXOnQkJCVKFCBUnSl19+qQkTJrjngX79+qlp06YetzlmzBjdddddBf4Kybx587Rq1Sq1b99eTZs21eLFi/XKK6+454FHH300R83x48c1ffr0XP8417p16wJtHyUH84CnC80D2fejIHMB8wAuB0U1F5TUeUBiLrhYBd13LqjIzvPu49auXWt+fn7u65s2bbLq1auby+UyPz8/a9mype3atcu9PC0tzWN9MzOXy2UNGjSwhIQEj4vL5bLGjRtbQkKCtWrVyqOmUqVK9vvvv5uZ2a+//mrR0dEWHR1tbdq0sSpVqliZMmXsp59+8qi5/vrrbfHixWZm9tZbb1loaKg99dRTNn78eBswYICVKlXKJk2alKM3Pz8/q1mzpiUnJ9vu3bsv+Ji89NJLFhERYXfeeadFR0dbcnKyRUZG2ssvv2zDhw+3K664wl588UWPmmbNmllSUpL7+nvvvWdNmjQxM7MDBw5YgwYN7KmnnsqxraNHj9qbb75pvXv3tvbt21uHDh2sd+/e9tZbb9nRo0cv2Ou50tLSbNiwYbku27Fjhx05ciTH+MmTJ23p0qU5xn///XdbvHix7d+/38zM9u3bZ8nJyTZs2DD78ccf891TXFycbd68OV/rnjx50mbPnm2jRo2y9957L9fHYMeOHbZv3z739WXLlln37t2tefPm1qNHj1x/xuGVV16x1NTUfPec7eOPP7YXX3zRfZuff/65dejQwdq1a2cTJ07MtebYsWM2adIke/DBB619+/aWmJhoTz75pC1atCjHuhs3brSYmBgrW7asde7c2R599FF75JFHrHPnzla2bFmrXLmybdy4sUA9n/uaNjPbtWuXNW7c2Pz8/Mzf39969uzpsS/k9rr+9ttvrUyZMuZyuaxc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gQMHWmhoqDVv3tweeeQRa9GihQUFBXm8QLK3k9sLL1tWVpZ99tlnHmNDhgyxK664wvr06WNxcXH2/PPPW7Vq1Wz8+PE2YcIEq1q1qj399NMeNUeOHLF77rnHAgICzOVyWXx8vP3666/u5Z9++qlHsDfjjZgZE/DQoUOtTJkyNnr0aFu7dq3t3r3b0tLSbO3atTZ69GgrV65cju8BtWvXzv7617/muC/Zzn1Nm5lde+219uGHH+ZYN3s/qFatWo594JprrvH4BMt//vMf9yc/zHL/NEu2nTt32i233GLt27e33bt3X3Af6Nixo3Xp0sXKlSvn/ihithUrVlhUVJT7+o8//miRkZHWs2dP++tf/2qlSpWy+++/3/72t79Zz549LTg42CZPnuxxG35+fuedBw4dOuQ+CpKtX79+VrNmTXv55ZftxhtvtF69etk111xj8+fPtwULFti1116b46hNr169rGXLlvbTTz/Zr7/+avfee6/HUZovvvjCqlat6lHDPFC85gFv3oQxDxR8HjAr+Fzgy/OAWcHnAuYB350HzHx3Lijp84CZb88FRfmeoKCva2/2nfwoMaF82bJl7qO+uTl69Kh98cUX7uvDhw93f7wmN0888US+vi+wY8cOmzNnTp4nJEhKSvK4LFiwwGP5M888Y926dctRd/DgQXvuueesTp06FhISYkFBQVa9enXr3r27rVy5Msf6sbGx7r9K5tfp06ft5Zdftttuu839Uajp06db1apVLTIy0nr37p3n/Tp+/HiuJ0/JDW/EmIDNzJKTk93fN/Pz83P/VbNSpUo2cuTIHL3OmjXL3nvvvTzvy4EDB+ydd97xGHv22Wetbdu2ua5/6tQpu/3223PsA0lJSTZ9+vQ8t/PCCy9Y165d81yelZVlw4cPt+joaPP3989zH+jdu7fH5dw/Xj3zzDPWrl07j7Gff/7ZunXrZhEREe6/BgcGBlp8fHyunwy60B/ncnP06FHr06eP1atXzx5//HE7efKkjR492oKCgszlcllCQkKO29yzZ4/ddNNN7ucyNjbW1qxZ417+73//2/7+97971DAPFK95wNtAxjxQ8HnArGBzgS/PA2YFnwuYB3x3HjDz3bmgpM8DZr49FxTVewJvXtfe7Dv5UWJCOXybr7wRO/fFygRctG/GzM781Xz58uW2fPlyj09ZFIZTp07ZoUOH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ZcoUrVmzRjVq1FC7du104MAB9zp//vOf9corr2jlypWqWLGibr/9dp06dUqS1K9fP2VkZGjZsmXasGGDRo4cqVKlSkmSdu/erZYtW6pBgwZatWqVFixYoD179uiee+7x6GHKlCkKCAjQ119/rYkTJ6pHjx76+OOPdfToUfc6n376qdLT03XnnXdKktLT0zVw4ECtXLlSn3/+ufz8/NSlSxdlZWVJkr777jtJ0qJFi7R7927NmjXL6/svSUOGDNGYMWO0atUqBQQE6KGHHrqYhx0AAN9gAADAMUePHrXAwECbOnWqe+zkyZMWExNjo0aNsiVLlpgkmzFjhnv5/v37LTQ01GbOnGlmZtdee60lJSXlevt/+ctfrG3bth5jO3bsMEm2adMmMzNr2bKlNWjQwGOdkydPWoUKFezdd991j9133312991353lf9u7da5Jsw4YNZma2detWk2Tff/+9x3q9evWyzp075+v+m5n7MVi0aJF7nZSUFJNkx48fz7MfAAAuBxwpBwDAQb/88otOnTqlZs2auccCAwN144036qeffnKPNW3a1P3/5cuX19VXX+1e/tRTT+nll19Ws2bNNHToUK1fv9697urVq7VkyRKVKlXKfbnmmmvc287WqFEjj74CAwN19913a+rUqZLOHBWfO3euevTo4dF79+7ddeWVV6p06dLuj6tv37690O+/JNWvX9/9/5UqVZIk7d27N9/bAgDAFxHKAQBwkP3/s5C7XK4c4+eOnSt7eZ8+ffTrr7/qgQce0IYNG9SoUSO9/vrrkqSsrCx16tRJa9eu9bhs2bJFLVq0cN9WeHh4jtvv0aOHFi1apL1792rOnDkKCQlRhw4d3Ms7deqk/fv366233tK3336rb7/9VtKZE8VdivsfGBiY475nf1QeAIDLFaEcAAAH1ahRQ0FBQfrqq6/cY6dOndKqVatUu3Zt99g333zj/v+DBw9q8+bN7iPeklS1alU9/vjjmjVrlgYNGqS33npLknTDDTdo48aNio2NVY0aNTwuuQXxs8XHx6tq1aqaOXOmpk6dqrvvvtt9Vvb9+/frp59+0v/93/+pdevWql27tg4ePOhRn71uZmbmRd9/AACKK34SDQAAB4WHh+uJJ57Qn//8Z5UvX17VqlXTqFGjdOzYMT388MNat26dJOmll15SZGSkoqKiNGTIEFWoUMF9BvMBAwaoQ4cOqlWrlg4ePKjFixe7A22/fv301ltv6b777tOf//xnVahQQT///LNmzJiht956S/7+/nn25nK51L17d02YMEGbN2/WkiVL3MvKlSunyMhIvfnmm6pUqZK2b9+uwYMHe9RXrFhRoaGhWrBggapUqaKQkJAcP4d2ofsPAEBxx5FyAAAclpycrDvvvFMPPPCAbrjhBv3888/69NNPVa5cOY91+vfvr4YNG2r37t36+OOPPY5E9+vXT7Vr11b79u119dVX65///KckKSYmRl9//bUyMzPVrl071atXT/3791eZMmXk53fhtwE9evTQjz/+qMqVK3t879vPz08zZszQ6tWrVa9ePT399NMaPXq0R21AQID+/ve/a+LEiYqJiVHnzp29vv8AABRXLsv+MhcAAAAAAChSHCkHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIf8P+d1sVTI3qo4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frequency_distribution.plot(kind='bar', figsize=(12, 6))\n", + "plt.title('Frequency Distribution of Ages')\n", + "plt.xlabel('observation')\n", + "plt.ylabel('Frequency')\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Exact mean of ages: 36.56\n", + "Exact standard deviation of ages: 12.816499625976762\n" + ] + } + ], + "source": [ + "mean_age = ages['observation'].mean()\n", + "std_dev_age = ages['observation'].std()\n", + "\n", + "print(f\"Exact mean of ages: {mean_age}\")\n", + "print(f\"Exact standard deviation of ages: {std_dev_age}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Calculate the exact mean and standard deviation and compare them with your guesses. Do they fall inside the ranges you guessed?" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Exact mean of ages: 36.56\n", + "Exact standard deviation of ages: 12.82\n" + ] + } + ], + "source": [ + "# your code here\n", + "mean_age = ages['observation'].mean()\n", + "std_dev_age = ages['observation'].std()\n", + "\n", + "print(f\"Exact mean of ages: {mean_age:.2f}\")\n", + "print(f\"Exact standard deviation of ages: {std_dev_age:.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "\"\"\"\n", + "Mean Age\n", + "Guess: 30 to 45\n", + "Calculated Mean: 36.56\n", + "The calculated mean falls comfortably within our guessed range (30 to 45)\n", + "Calculated Standard Deviation: 12.82\n", + "most individuals' ages = (mean - standard deviation) to (mean + standard deviation)\n", + " = 23.74 to 49.37\n", + "68% of the data if the distribution is approximately normal. This range extends slightly beyond your initial guess but still suggests a concentration of values within estimated bounds, albeit with significant spread." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3.- Now read the file `ages_population2.csv` . Calculate the frequency distribution and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
observation
025.0
131.0
229.0
331.0
429.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 25.0\n", + "1 31.0\n", + "2 29.0\n", + "3 31.0\n", + "4 29.0" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ".# your code here\n", + "ages_population = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\ages_population2.csv')\n", + "ages_population.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "observation\n", + "19.0 3\n", + "20.0 13\n", + "21.0 17\n", + "22.0 35\n", + "23.0 41\n", + "24.0 78\n", + "25.0 98\n", + "26.0 120\n", + "27.0 125\n", + "28.0 139\n", + "29.0 115\n", + "30.0 90\n", + "31.0 61\n", + "32.0 31\n", + "33.0 22\n", + "34.0 7\n", + "35.0 3\n", + "36.0 2\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "frequency_distribution = ages_population['observation'].value_counts().sort_index()\n", + "print(frequency_distribution)" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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FAADAEABmDZtmpGU4yMjI8OsXLnSSDL33nuvy+vS0tJMyZIlTdu2bV3GMzMzTa1atcydd97pHKtXr56JiooyZ8+edY6lpqaakiVLmj9/pO3du9dIMtOmTctWpyTz0ksvOZ+3aNHClCtXzpw8edJlvaefftoEBASYEydOGGOMs/5WrVq5rPfRRx8ZSWbt2rXGGGNOnTplihcvbho0aGCysrJyfb9eeukl4+fnZ44ePeocmzdvnpFkVq1alevrjPn/93rdunW5rhMREWGqVq3qsr8/v0cff/yxkWQ2bdqU6zaOHTuW7f366/b++c9/5rrszypWrGgcDke2/TVr1swUL17cpKWlufS2d+9el/Uuvv8rV650jrVu3dpUrFgxx9r/Wne3bt2Mv7+/OXDggMt6LVu2NEFBQeb333932c/lfs65ueuuu0x4eLg5deqUc+zChQumevXqply5cs7fiYu/o6+++uolt3fRvn37jJeXl+nWrZtzrGHDhiY4ONikpqY6x7Zv324kmeeff97l9XPmzDGSTM+ePZ1jffv2NcWKFTP79+93Wfe1114zksz27duNMX/8t1CiRIkrqhMAUPCYaQcAFKiZM2dq3bp1Lo8/X7PeuXNnl/XXrFmjEydOqGfPni6z81lZWbr//vu1bt06paWlKS0tTevWrVOnTp0UEBDgfP3FWcz8OHfunJYvX66OHTsqKCjIZf+tWrXSuXPn9P3337u8pl27di7Pa9asKUnav3+/s5/U1FT169fvkndrf/LJJyVJ7733nnNs4sSJqlGjhu6999589fNnxphLLq9du7b8/Pz0xBNPaMaMGfr111/ztZ+//jwvpVq1aqpVq5bLWPfu3ZWamqqNGzfma/9XasWKFWrSpInKly/vMv7oo4/qzJkz2WbpL/dzzklaWpp++OEHPfDAAypWrJhz3NvbWw8//LAOHTp0xafY/9W0adOUlZWlXr16Ocd69eqltLQ05wy+9MdMvyR17drV5fUPPPBAtntHfPbZZ2rcuLGioqJcfvdbtmzpsq0777xTv//+ux566CEtWrRIv/32W756AADkD6EdAFCgqlatqrp167o8/qxMmTIuz48ePSrpj1Dh6+vr8hgzZoyMMTpx4oRSUlKUlZWlyMjIbPvMaexKHD9+XBcuXNCECROy7btVq1aSlC2glCpVyuW5v7+/JOns2bOSpGPHjknSZW/EFhERoQcffFCTJ09WZmamtmzZom+//VZPP/10vnr5s7S0NB0/fvySp9jfdNNNWrZsmcLDw/XUU0/ppptu0k033aQ333wzT/v668/zUi71szt+/Hie9ptXx48fz7HWi+/RX/d/uZ9zTlJSUmSMydN+rkRWVpamT5+uqKgo1alTR7///rt+//13NW3aVMHBwS6nyF/c/sUbEF7k4+OTraejR4/q008/zfa7X61aNUn//7v/8MMP6/3339f+/fvVuXNnhYeHq169ekpISMhzLwCAvON2vQCAQvXX2efSpUtLkiZMmJDrHb8jIiKcd5pPSkrKtvyvYxdn4tPT013G/xqYwsLCnLOgTz31VI77jomJuUQ32V28edvF69cvZcCAAfrggw+0aNEiLV26VCVKlFCPHj3ytL+cLFmyRJmZmZf9mrZ77rlH99xzjzIzM7V+/XpNmDBBAwcOVEREhLp163ZF+8rLd79f6md3MVDm9rO72tndUqVK5fi95hdv+Hfx9/BqhIWFycvLq8D3s2zZMucM/1+DtyR9//33+vnnn3Xrrbc6lx89elRly5Z1rnPhwoVsv/+lS5dWzZo19a9//SvH/f75oM9jjz2mxx57TGlpafrmm2/00ksvqU2bNtq5c6cqVqyY554AAFeO0A4AcKv69eurRIkS+vnnny85y+zn56c777xT8+fP16uvvuoMd6dOndKnn37qsm5ERIQCAgK0ZcsWl/FFixa5PA8KClLjxo31008/qWbNmvLz87vqfmJjYxUaGqpJkyapW7dulwy1derUUWxsrMaMGaNt27bpiSeeUHBw8FXt/8CBAxoyZIhCQ0PVt2/fK3qNt7e36tWrp1tuuUUffvihNm7cqG7dul3R7HJebN++XZs3b3Y5RX727NkKCQnR7bffLknOu6hv2bLF5XvLFy9enG17/v7+V1xbkyZNtGDBAh05csQljM6cOVNBQUEF8hVxwcHBqlevnubPn6/XXntNgYGBkv6YKZ81a5bKlSunKlWq5Hm7U6dOlZeXl+bPn6/Q0FCXZYcOHXLOhL/22mvOSyvmzZvnfE8l6eOPP852U8g2bdro888/10033aSwsLAr7rFly5Y6f/68OnTooO3btxPaAeAaI7QDANyqWLFimjBhgnr27KkTJ07ogQceUHh4uI4dO6bNmzfr2LFjevfddyVJ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1/r16+Xj46NevXpdzdsOAID7GQAAYLXTp08bX19f8+GHHzrHzp8/b6KioszYsWPNypUrjSQzd+5c5/Ljx4+bwMBAM2/ePGOMMTVq1DBxcXE5bv/FF180zZs3dxk7ePCgkWR27NhhjDGmYcOGpnbt2i7rnD9/3pQuXdrMnDnTOfbQQw+ZLl265NpLcnKykWS2bt1qjDFm7969RpL56aefXNbr2bOnad++/RX1b4xxvgfLli1zrrNkyRIjyZw9ezbXegAAsB0z7QAAWG7Pnj3KyMhQ/fr1nWO+vr6688479d///tc5dvfddzv/XbJkSd18883O5f3799crr7yi+vXr66WXXtKWLVuc627YsEErV65UsWLFnI9bbrnFue+L6tat61KXr6+vunTpog8//FDSH7PqixYtUo8ePVxq7969u2688UYVL17ceTr8gQMHCrx/SapZs6bz32XKlJEkJScnX/G+AACwDaEdAADLmf+7i7rD4cg2/texv7q4vE+fPvr111/18MMPa+vWrapbt64mTJggScrKylLbtm21adMml8euXbt07733OrcVHBycbfs9evTQsmXLlJycrIULFyogIEAtW7Z0Lm/btq2OHz+u9957Tz/88IN++OEHSX/cyO5a9O/r65ut94un4gMAUBQR2gEAsFylSpXk5+en1atXO8cyMjK0fv16Va1a1Tn2/fffO/+dkpKinTt3OmfMJal8+fL6+9//rvnz52vw4MF67733JEm33367tm/frujoaFWqVMnlkVNQ/7PY2FiVL19e8+bN04cffqguXbo47yp//Phx/fe//9U//vEPNWnSRFWrVlVKSorL6y+um5mZedX9AwDgifjKNwAALBccHKwnn3xSzz33nEqWLKkKFSpo7NixOnPmjHr37q3NmzdLkl5++WWVKlVKERERGjFihEqXLu28A/vAgQPVsmVLValSRSkpKVqxYoUz8D711FN677339NBDD+m5555T6dKltXv3bs2dO1fvvfeevL29c63N4XCoe/fumjRpknbu3KmVK1c6l4WFhalUqVKaMmWKypQpowMHDmjYsGEurw8PD1dgYKCWLl2qcuXKKSAgINvXvV2ufwAAPBkz7QAAFAGjR49W586d9fDDD+v222/X7t279eWXXyosLMxlnQEDBqhOnTpKTEzU4sWLXWayn3rqKVWtWlX333+/br75Zr3zzjuSpKioKH333XfKzMxUixYtVL16dQ0YMEChoaHy8rr8nwo9evTQzz//rLJly7pcd+7l5aW5c+dqw4YNql69up599lm9+uqrLq/18fHRW2+9pcmTJysqKkrt27fPd/8AAHgih7l4oRgAAAAAALAKM+0AAAAAAFiK0A4AAAAAgKUI7QAAAAAAWIrQDgAAAACApQjtAAAAAABYitAOAAAAAIClCO0AAAAAAFiK0A4AAAAAgKUI7QAAAAAAWIrQDgAAAACApQjtAAAAAABY6n8B9pyxZT8GfP8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frequency_distribution.plot(kind='bar', figsize=(12, 6))\n", + "plt.title('Frequency Distribution of Ages')\n", + "plt.xlabel('observation')\n", + "plt.ylabel('Frequency')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- What do you see? Is there any difference with the frequency distribution in step 1?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Comparing dice rolls to age distributions: Dice rolls generally have uniform outcomes (each outcome from 1 to 6 has an equal probability), resulting in a flat distribution over many rolls. On the other hand, a population's age distribution (ages_population.csv) illustrate a skewed or normal distribution, depending on demographic factors. The age distribution might show a peak at a certain age group and taper off towards older ages, reflecting natural population structures.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.- Calculate the mean and standard deviation. Compare the results with the mean and standard deviation in step 2. What do you think?" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Exact standard deviation of ages: 2.969813932689186\n", + "Exact mean of ages: 27.16\n" + ] + } + ], + "source": [ + "# your code here\n", + "std_dev = ages_population['observation'].std()\n", + "print(f\"Exact standard deviation of ages: {std_dev}\")\n", + "mean = ages_population['observation'].mean()\n", + "print(f\"Exact mean of ages: {mean:.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "A higher mean in ages_population.csv dataset might indicate an older population on average compared to the ages_population2.csv.\n", + "A larger standard deviation suggests a wider spread of ages around the mean, indicating more diversity in the population's ages.\n", + "A smaller(ages_population2.csv) standard deviation indicates that the ages are clustered more tightly around the mean, suggesting less age diversity.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 5\n", + "Now is the turn of `ages_population3.csv`.\n", + "\n", + "#### 1.- Read the file `ages_population3.csv`. Calculate the frequency distribution and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
observation
021.0
121.0
224.0
331.0
454.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 21.0\n", + "1 21.0\n", + "2 24.0\n", + "3 31.0\n", + "4 54.0" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population3 = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\ages_population3.csv')\n", + "ages_population3.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "observation\n", + "1.0 1\n", + "2.0 2\n", + "4.0 2\n", + "5.0 1\n", + "7.0 1\n", + " ..\n", + "73.0 6\n", + "74.0 6\n", + "75.0 2\n", + "76.0 1\n", + "77.0 2\n", + "Name: count, Length: 75, dtype: int64\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+UAAAIyCAYAAACtj2upAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABdvElEQVR4nO3de5yN9f7//+ea88E4N6eGmSmUQ1JIDjkkMiTRgVSotDuolNol/fY22m1GIu3aG7UlSmgXyp5SJFRUKIfUlso4xCDkMBjMvH5/9J31scwMM8vMupY1j/vttm61ruv9vt6va63rvWY9XWtdy2VmJgAAAAAA4HNBThcAAAAAAEBFRSgHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAnNHrr78ul8tV5O3xxx93uryAcupjHRERofj4eHXo0EGjRo3Srl27CvVJT0+Xy+Uq1TiHDx9Wenq6Fi9eXKp+RY2VkpKi6667rlTbOZO33npL48ePL3Kdy+VSenp6mY5X1j755BM1a9ZM0dHRcrlcmjt37hn7rFu3Ti6XS6GhodqxY0f5FwkA8AshThcAADh3TJkyRRdffLHHssTERIeqCWwFj/Xx48e1a9cuff755xo9erSef/55zZo1S9dcc4277cCBA9WlS5dSbf/w4cMaMWKEJKl9+/Yl7ufNWN5466239N133+mRRx4ptG758uVKSkoq9xq8ZWa65ZZbVK9ePb3//vuKjo7WRRdddMZ+//73vyVJJ06c0LRp0/Tkk0+Wd6kAAD9AKAcAlFijRo3UrFmzErU9fvy4XC6XQkL4U+ONUx/rG2+8UY8++qjatGmjXr16aePGjYqLi5MkJSUllXtIPXz4sKKionwy1plceeWVjo5/Jtu3b9fevXvVs2dPdezYsUR9cnNzNX36dF166aX67bff9NprrxHKAaCC4OPrAICztnjxYrlcLr3xxht67LHHdP755ys8PFw//fSTJGnhwoXq2LGjKleurKioKLVu3VqffPJJoe1kZmaqSZMmCg8PV2pqqp5//vlCH5fOysqSy+XS66+/Xqh/UR9r3rhxo/r27avY2FiFh4erfv36+uc//1lk/TNmzNDTTz+txMREVa5cWddcc402bNhQaJz58+erY8eOqlKliqKiolS/fn2NGjVKkvTGG2/I5XJp+fLlhfo988wzCg0N1fbt28/4mBaldu3aGjt2rA4ePKhJkya5lxf1kfJFixapffv2qlGjhiIjI1W7dm3deOONOnz4sLKysnTeeedJkkaMGOH+qPyAAQM8tvfNN9/opptuUrVq1XThhRcWO1aBOXPmqHHjxoqIiNAFF1ygf/zjHx7rCz6an5WV5bG84PEv+Ch9+/btlZmZqc2bN3t8lL9AUc/zd999px49eqhatWqKiIhQkyZNNHXq1CLHKenzXJTPP/9cHTt2VExMjKKiotSqVStlZma616enp7v/0eLJJ5+Uy+VSSkrKGbc7d+5c7dmzRwMHDlT//v31448/6vPPPy/ULjc3V4899pji4+MVFRWltm3batWqVUpJSXE/fwWys7N17733KikpSWFhYUpNTdWIESN04sQJj3YTJkzQpZdeqkqVKikmJkYXX3yxhg0bVqLHAwBw9gjlAIASy8vL04kTJzxuJ3vqqae0ZcsWTZw4UfPmzVNsbKzefPNNde7cWZUrV9bUqVP19ttvq3r16rr22ms9gvknn3yiHj16KCYmRjNnztSYMWP09ttva8qUKV7X+/3336t58+b67rvvNHbsWP33v/9Vt27d9PDDD7s/un2yYcOGafPmzfr3v/+tV155RRs3blT37t2Vl5fnbjN58mR17dpV+fn57v18+OGHtW3bNklS7969FR8fXyj4nzhxQpMmTVLPnj3P6iP/Xbt2VXBwsJYuXVpsm6ysLHXr1k1hYWF67bXXNH/+fGVkZCg6OlrHjh1TQkKC5s+fL0m6++67tXz5ci1fvlx/+ctfPLbTq1cv1alTR//5z380ceLE09a1evVqPfLII3r00Uc1Z84ctWrVSoMHD9bzzz9f6n3817/+pdatWys+Pt5dW1H/yFFgw4YNatWqldavX69//OMfmj17tho0aKABAwboueeeK9S+JM9zUZYsWaKrr75a+/fv1+TJkzVjxgzFxMSoe/fumjVrlqQ/Pt4/e/ZsSdJDDz2k5cuXa86cOWfc58mTJys8PFy33Xab7rrrLrlcLk2ePLlQuzvvvFPjx4/XnXfeqffee0833nijevbsqd9//92jXXZ2tq644gp99NFH+utf/6oPP/xQd999t0aNGqV77rnH3W7mzJl64IEH1K5dO82ZM0dz587Vo48+qpycnDPWDAAoIwYAwBlMmTLFJBV5O378uH366acmydq2bevRLycnx6pXr27du3f3WJ6Xl2eXXnqpXXHFFe5lLVq0sMTERDty5Ih72YEDB6x69ep28p+rTZs2mSSbMmVKoTol2fDhw933r732WktKSrL9+/d7tHvwwQctIiLC9u7da2bmrr9r164e7d5++22TZMuXLzczs4MHD1rlypWtTZs2lp+fX+zjNXz4cAsLC7OdO3e6l82aNcsk2ZIlS4rtZ/Z/j/WKFSuKbRMXF2f169f3GO/kx+idd94xSbZ69epit7F79+5Cj9ep2/vrX/9a7LqTJScnm8vlKjRep06drHLlypaTk+Oxb5s2bfJoV/D4f/rpp+5l3bp1s+Tk5CJrP7XuPn36WHh4uG3ZssWjXVpamkVFRdnvv//uMc6ZnufiXHnllRYbG2sHDx50Lztx4oQ1atTIkpKS3MdEwTE6ZsyY026vQFZWlgUFBVmfPn3cy9q1a2fR0dF24MAB97L169ebJHvyySc9+s+YMcMkWf/+/d3L7r33XqtUqZJt3rzZo+3zzz9vkmz9+vVm9sdcqFq1aonqBACUD86UAwBKbNq0aVqxYoXH7eTvjN94440e7ZctW6a9e/eqf//+HmfX8/Pz1aVLF61YsUI5OTnKycnRihUr1KtXL0VERLj7F5yF9MbRo0f1ySefqGfPnoqKivIYv2vXrjp69Ki+/PJLjz7XX3+9x/3GjRtLkjZv3uzenwMHDuiBBx447dXO77//fknSq6++6l728ssv65JLLlHbtm292p+Tmdlp1zdp0kRhYWH605/+pKlTp+qXX37xapxTn8/TadiwoS699FKPZX379tWBAwf0zTffeDV+SS1atEgdO3ZUrVq1PJYPGDBAhw8fLnSW/UzPc1FycnL01Vdf6aabblKlSpXcy4ODg3XHHXdo27ZtJf4I/KmmTJmi/Px83XXXXe5ld911l3Jyctxn4KU/ztRL0i233OLR/6abbip07Yb//ve/6tChgxITEz2O/bS0NI9tXXHFFfr9999166236r333tNvv/3m1T4AALxHKAcAlFj9+vXVrFkzj9vJEhISPO7v3LlT0h+hITQ01OM2evRomZn27t2rffv2KT8/X/Hx8YXGLGpZSezZs0cnTpzQSy+9VGjsrl27SlKhAFKjRg2P++Hh4ZKkI0eOSJJ2794tSWe80FlcXJx69+6tSZMmKS8vT2vXrtVnn32mBx980Kt9OVlOTo727Nlz2o/AX3jhhVq4cKFiY2M1aNAgXXjhhbrwwgv14osvlmqsU5/P0zndc7dnz55SjVtae/bsKbLWgsfo1PHP9DwXZd++fTKzUo1TEvn5+Xr99deVmJiopk2b6vfff9fvv/+ua665RtHR0R4fYS/YfsEF/gqEhIQU2qedO3dq3rx5hY79hg0bSvq/Y/+OO+7Qa6+9ps2bN+vGG29UbGysWrRooQULFpR6XwAA3uGSuACAMnPq2eOaNWtKkl566aVir5gdFxfnvlJ7dnZ2ofWnLis4k56bm+ux/NRAVK1aNfdZzEGDBhU5dmpq6mn2prCCi6MVfH/8dAYPHqw33nhD7733nubPn6+qVavqtttuK9V4RcnMzFReXt4Zf8bsqquu0lVXXaW8vDytXLlSL730kh555BHFxcWpT58+JRqrNL99frrnriAwFvfcne3Z2Ro1ahT5u94FF9QrOA7PRrVq1RQUFFTm4yxcuNB9hv7UYC1JX375pb7//ns1aNDAvX7nzp06//zz3W1OnDhR6PivWbOmGjdurL///e9FjnvyP+rceeeduvPOO5WTk6OlS5dq+PDhuu666/Tjjz8qOTm51PsEACgdQjkAoNy0bt1aVatW1ffff3/as8RhYWG64oorNHv2bI0ZM8Yd3g4ePKh58+Z5tI2Li1NERITWrl3rsfy9997zuB8VFaUOHTro22+/VePGjRUWFnbW+9OqVStVqVJFEydOVJ8+fU4bWps2bapWrVpp9OjR+u677/SnP/1J0dHRZzX+li1b9Pjjj6tKlSq69957S9QnODhYLVq00MUXX6zp06frm2++UZ8+fUp0drg01q9frzVr1nh8hP2tt95STEyMLr/8cklyX4V87dq1Hr/b/f777xfaXnh4eIlr69ixo+bMmaPt27d7hM1p06YpKiqqTH5CLTo6Wi1atNDs2bP1/PPPKzIyUtIfZ7rffPNNJSUlqV69eqXe7uTJkxUUFKTZs2erSpUqHuu2bdvmPpP9/PPPu7/6MGvWLPdjKknvvPNOoYsuXnfddfrggw904YUXqlq1aiXex7S0NB07dkw33HCD1q9fTygHAB8glAMAyk2lSpX00ksvqX///tq7d69uuukmxcbGavfu3VqzZo12796tCRMmSJL+9re/qUuXLurUqZMee+wx5eXlafTo0YqOjtbevXvd23S5XLr99tv12muv6cILL9Sll16qr7/+Wm+99Vah8V988UW1adNGV111le6//36lpKTo4MGD+umnnzRv3jwtWrSo1PszduxYDRw4UNdcc43uuecexcXF6aefftKaNWv08ssve7QfPHiwevfuLZfLpQceeKBUY3333Xfu7wHv2rVLn332maZMmaLg4GDNmTPHfda+KBMnTtSiRYvUrVs31a5dW0ePHtVrr70mSbrmmmsk/fF9/eTkZL333nvq2LGjqlevrpo1a5bo57uKkpiYqOuvv17p6elKSEjQm2++qQULFmj06NGKioqSJDVv3lwXXXSRHn/8cZ04cULVqlXTnDlzivzpr0suuUSzZ8/WhAkT1LRpUwUFBRX6ukSB4cOHu79D/de//lXVq1fX9OnTlZmZqeeee65Q2PXWqFGj1KlTJ3Xo0EGPP/64wsLC9K9//UvfffedZsyYUapPFkh/fLrjvffe07XXXqsePXoU2eaFF17QtGnTNGrUKDVs2FC33nqrxo4dq+DgYF199dVav369xo4dqypVqigo6P++lfjMM89owYIFatWqlR5++GFddNFFOnr0qLKysvTBBx9o4sSJSkpK0j333KPIyEi1bt1aCQkJys7O1qhRo1SlShU1b978rB4vAEAJOXyhOQDAOeBMVwQvuKr1f/7znyLXL1myxLp162bVq1e30NBQO//8861bt26F2r///vvWuHFjCwsLs9q1a1tGRkaRV/vev3+/DRw40OLi4iw6Otq6d+9uWVlZRV5NfNOmTXbXXXfZ+eefb6GhoXbeeedZq1at7Nlnnz1j/cVd6f2DDz5wXx07KirKGjRoYKNHjy6037m5uRYeHm5dunQp8nEpyqlXug8LC7PY2Fhr166djRw50nbt2lWoz6mP0fLly61nz56WnJxs4eHhVqNGDWvXrp29//77Hv0WLlxol112mYWHh3tcvbtge7t37z7jWGZ/XH29W7du9s4771jDhg0tLCzMUlJSbNy4cYX6//jjj9a5c2erXLmynXfeefbQQw9ZZmZmoauv792712666SarWrWquVwujzGLep7XrVtn3bt3typVqlhYWJhdeumlhZ630j7PRfnss8/s6quvtujoaIuMjLQrr7zS5s2bV+T2znT19fHj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lrp161pGRobt2LHjtPv0zDPPWExMjN14440WHx9vGRkZVqNGDXv22Wdt5MiRdt5559lf//pXjz6tW7e29PR09/033njDWrRoYWZme/futSZNmtjDDz9caKxDhw7ZK6+8YgMGDLAuXbpYWlqaDRgwwF599VU7dOjQaes8VXZ2to0YMaLQ8q1bt9rBgwcLLT927JgtWbKk0PLffvvNFi1aZHv27DEzs927d1tGRoaNGDHCvv/++xLVkpqaaj/++GOJ2h47dszmzJljzz33nL3xxhuF9nvr1q22e/du9/2lS5da3759rU2bNnbbbbcV+gmF559/3rKysko09snef/99++tf/+re3ieffGJpaWl27bXX2qRJkwq1P3z4sE2ePNnuvPNO69Kli3Xr1s0efPBBW7hwYaG269evt8TERKtatar16NHD/vSnP9k999xjPXr0sKpVq9r5559v69evL3Gtp847M7Pt27db8+bNLSgoyIKDg61fv34ez/upc++rr76yKlWqmMvlsmrVqtnKlSstNTXV6tata3Xq1LHIyEhbtWqVxxgvvvhikbfg4GB76qmn3PcLtGzZ0vbt22dmZrt27bJLLrnEwsLCrG7duhYREWG1a9e2bdu2ebT/4IMPzMxs7ty5FhQUZNdff709+eST1rNnTwsNDbV58+Z51ORyuSw4ONiuueYamzlzpuXm5p72sZswYYKFhIRY06ZNrXLlyvbmm29aTEyMDRw40O69916LjIy08ePHe/TZuHGjJScnW40aNSwhIcFcLpd169bNWrRoYcHBwXbzzTfb8ePHPfr4Ym6blW5+l8XcNiv5/C7ruW3m3fwu7dw2q3jzu7Rz2yww5rc3c9uM+V1QA/P73JjfZvz9durvt1nZvD/3t/ldUL8v3p+fSYUJ5e+9995pby+88ILHC8UNN9xg1113ne3evds2btxo3bt3t9TUVNu8ebOZFX5hGTlypKWmptonn3ziMW5ISEiRL3Iul8t27txpZmZ9+vSx9u3bW05OjpmZHT161K677jq76aabCvVZuHChDR482GrWrGmhoaF2/fXX27x58ywvL6/QGBdccIH7x+tXr15twcHB9uabb7rXz5492+rUqePRJzIy0n7++Wf3/by8PAsNDbXs7GwzM/v4448tMTHRo095v9CX9kXeLDDeyJX2Rd6s/N/ItW/f3vr06VNk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pcwMGDBAN9xwg9NlAADgF/hJNAAAUC6ysrKUmpqqb7/9Vk2aNHEvf/HFF8WPvwAA8AdCOQAA8HDs2DGFhYWV2/arVKlSbtsGAOBcw8fXAQBwWG5urh5++GHFxsYqIiJCbdq00YoVKzzafPHFF7r00ksVERGhFi1aaN26de51mzdvVvfu3VWtWjVFR0erYcOG+uCDD9zrv//+e3Xt2lWVKlVSXFyc7rjjDv3222/u9e3bt9eDDz6oIUOGqGbNmurUqZNuvfVW9enTx6OG48ePq2bNmpoyZYokaf78+WrTpo2qVq2qGjVq6LrrrtPPP//sbp+amipJuuyyy+RyudS+fXtJhT++fqb9L/gI/yeffKJmzZopKipKrVq10oYNG7x8xAEA8B+EcgAAHPbEE0/o3Xff1dSpU/XNN9+oTp06uvbaa7V37153mz//+c96/vnntWLFCsXGxur666/X8ePHJUmDBg1Sbm6uli5dqnXr1mn06NGqVKmSJGnHjh1q166dmjRpopUrV2r+/PnauXOnbrnlFo8apk6dqpCQEH3xxReaNGmSbrvtNr3//vs6dOiQu81HH32knJwc3XjjjZKknJwcDRkyRCtWrNAnn3yioKAg9ezZU/n5+ZKkr7/+WpK0cOFC7dixQ7Nnz/Z6/yXp6aef1tixY7Vy5UqFhITorrvuOpuHHQAA/2AAAMAxhw4dstDQUJs+fbp72bFjxywxMdGee+45+/TTT02SzZw5071+z549FhkZabNmzTIzs0suucTS09OL3P5f/vIX69y5s8eyrVu3miTbsGGDmZm1a9fOmjRp4tHm2LFjVrNmTZs2bZp72a233mo333xzsfuya9cuk2Tr1q0zM7NNmzaZJPv222892vXv39969OhRov03M/djsHDhQnebzMxMk2RHjhwpth4AAM4FnCkHAMBBP//8s44fP67WrVu7l4WGhuqKK67QDz/84F7WsmVL9/9Xr15dF110kXv9ww8/rGeffVatW7fW8OHDtXbtWnfbVatW6dNPP1WlSpXct4svvtg9doFmzZp51BUaGqqbb75Z06dPl/THWfH33ntPt912m0ftffv21QUXXKDKlSu7P66+ZcuWMt9/SWrcuLH7/xMSEiRJu3btKvFYAAD4I0I5AAAOsv93FXKXy1Vo+anLTlWwfuDAgfrll190xx13aN26dWrWrJleeuklSVJ+fr66d++u1atXe9w2btyotm3burcVHR1daPu33XabFi5cqF27dmnu3LmKiIhQWlqae3337t21Z88evfrqq/rqq6/01VdfSfrjQnHlsf+hoaGF9r3go/IAAJyrCOUAADioTp06CgsL0+eff+5edvz4ca1cuVL169d3L/vyyy/d/79v3z79+OOP7jPeklSrVi3dd999mj17th577DG9+uqrkqTLL79c69evV0pKiurUqeNxKyqIn6xVq1aqVauWZs2apenTp+vmm292X5V9z549+uGHH/T//X//nzp27Kj69etr3759Hv0L2ubl5Z31/gMAEKj4STQAABwUHR2t+++/X3/+859VvXp11a5dW88995wOHz6su+++W2vWrJEkPfPMM6pRo4bi4uL09NNPq2bNmu4rmD/yyCNKS0tTvXr1tG/fPi1atMgdaAcNGqRXX31Vt956q/785z+rZs2a+umnnzRz5ky9+uqrCg4OLrY2l8ulvn37auLEifrxxx/16aefutdVq1ZNNWrU0CuvvKKEhARt2bJFQ4cO9egfGxuryMhIzZ8/X0lJSYqIiCj0c2hn2n8AAAIdZ8oBAHBYRkaGbrzxRt1xxx26/PLL9dNPP+mjjz5StWrVPNoMHjxYTZs21Y4dO/T+++97nIkeNGiQ6tevry5duuiiiy7Sv/71L0lSYmKivvjiC+Xl5enaa69Vo0aNNHjwYFWpUkVBQWd+G3Dbbbfp+++/1/nnn+/xve+goCDNnDlTq1atUqNGjfToo49qzJgxHn1DQkL0j3/8Q5MmTVJiYqJ69Ojh9f4DABCoXFbwZS4AAAAAAOBTnCkHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIf8/S0i3wtzyznIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frequency_distribution = ages_population3['observation'].value_counts().sort_index()\n", + "print(frequency_distribution)\n", + "frequency_distribution.plot(kind='bar', figsize=(12, 6))\n", + "plt.title('Frequency Distribution of Ages')\n", + "plt.xlabel('observation')\n", + "plt.ylabel('Frequency')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Calculate the mean and standard deviation. Compare the results with the plot in step 1. What is happening?" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Exact mean of ages: 41.989\n", + "Exact standard deviation of ages: 16.144705959865934\n" + ] + } + ], + "source": [ + "# your code here\n", + "mean_age3 = ages_population3['observation'].mean()\n", + "std_dev_age3 = ages_population3['observation'].std()\n", + "\n", + "print(f\"Exact mean of ages: {mean_age3}\")\n", + "print(f\"Exact standard deviation of ages: {std_dev_age3}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"\"\"\n", + "your comments here\n", + "In the plot step 1 frequecy distribution of older age was less as compared to the current. Also the mean and Standared deviation is higher as compared to ages_population1\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Calculate the four quartiles. Use the results to explain your reasoning for question in step 2. How much of a difference is there between the median and the mean?" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Quartiles: Q1=30.0, Q2=40.0(Median), Q3=53.0, Q4(Maximum Age)=77.0\n", + "Mean Age: 41.989\n", + "Median Age: 40.0\n", + "Diffrence between the Median and the Mean: 1.9889999999999972\n" + ] + } + ], + "source": [ + "# your code here\n", + "Q1 = ages_population3['observation'].quantile(0.25)\n", + "Q2 = ages_population3['observation'].quantile(0.5)\n", + "Q3 = ages_population3['observation'].quantile(0.75)\n", + "Q4 = ages_population3['observation'].max()\n", + "median_age3 = ages_population3['observation'].median()\n", + "print(f\"Quartiles: Q1={Q1}, Q2={Q2}(Median), Q3={Q3}, Q4(Maximum Age)={Q4}\")\n", + "print(f\"Mean Age: {mean_age3}\")\n", + "print(f\"Median Age: {median_age3}\")\n", + "diffrence = mean_age3 - median_age3\n", + "print(f\"Diffrence between the Median and the Mean: {diffrence}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "In this case the data is symmetrically distributed\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " 4.- Calculate other percentiles that might be useful to give more arguments to your reasoning." + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Additional Percentiles:\n", + "0.1 22.0\n", + "0.2 28.0\n", + "0.8 57.0\n", + "0.9 67.0\n", + "Name: observation, dtype: float64\n" + ] + } + ], + "source": [ + "# your code here\n", + "percentiles_to_obtain = [0.1, 0.2, 0.8, 0.9]\n", + "\n", + "# Calculating the additional percentil\n", + "additional_percentiles = ages_population3['observation'].quantile(percentiles_to_obtain)\n", + "\n", + "print(\"Additional Percentiles:\")\n", + "print(additional_percentiles)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "The calculation of these additional percentiles offers granular insights into the distribution tails. \n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Bonus challenge\n", + "Compare the information about the three neighbourhoods. Prepare a report about the three of them. Remember to find out which are their similarities and their differences backing your arguments in basic statistics." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 5759add..d279385 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -1,522 +1,1476 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Understanding Descriptive Statistics\n", - "\n", - "Import the necessary libraries here:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Libraries" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 1\n", - "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", - "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Plot the results sorted by value." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Calculate the frequency distribution and plot it. What is the relation between this plot and the plot above? Describe it with words." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 2\n", - "Now, using the dice results obtained in *challenge 1*, your are going to define some functions that will help you calculate the mean of your data in two different ways, the median and the four quartiles. \n", - "\n", - "#### 1.- Define a function that computes the mean by summing all the observations and dividing by the total number of observations. You are not allowed to use any methods or functions that directly calculate the mean value. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- First, calculate the frequency distribution. Then, calculate the mean using the values of the frequency distribution you've just computed. You are not allowed to use any methods or functions that directly calculate the mean value. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Define a function to calculate the median. You are not allowed to use any methods or functions that directly calculate the median value. \n", - "**Hint**: you might need to define two computation cases depending on the number of observations used to calculate the median." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 4.- Define a function to calculate the four quartiles. You can use the function you defined above to compute the median but you are not allowed to use any methods or functions that directly calculate the quartiles. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 3\n", - "Read the csv `roll_the_dice_hundred.csv` from the `data` folder.\n", - "#### 1.- Sort the values and plot them. What do you see?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Using the functions you defined in *challenge 2*, calculate the mean value of the hundred dice rolls." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Now, calculate the frequency distribution.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 4.- Plot the histogram. What do you see (shape, values...) ? How can you connect the mean value to the histogram? " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 5.- Read the `roll_the_dice_thousand.csv` from the `data` folder. Plot the frequency distribution as you did before. Has anything changed? Why do you think it changed?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 4\n", - "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", - "\n", - "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Calculate the exact mean and standard deviation and compare them with your guesses. Do they fall inside the ranges you guessed?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Now read the file `ages_population2.csv` . Calculate the frequency distribution and plot it." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 4.- What do you see? Is there any difference with the frequency distribution in step 1?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 5.- Calculate the mean and standard deviation. Compare the results with the mean and standard deviation in step 2. What do you think?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 5\n", - "Now is the turn of `ages_population3.csv`.\n", - "\n", - "#### 1.- Read the file `ages_population3.csv`. Calculate the frequency distribution and plot it." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Calculate the mean and standard deviation. Compare the results with the plot in step 1. What is happening?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Calculate the four quartiles. Use the results to explain your reasoning for question in step 2. How much of a difference is there between the median and the mean?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 4.- Calculate other percentiles that might be useful to give more arguments to your reasoning." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Bonus challenge\n", - "Compare the information about the three neighbourhoods. Prepare a report about the three of them. Remember to find out which are their similarities and their differences backing your arguments in basic statistics." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "ironhack-3.7", - "language": "python", - "name": "ironhack-3.7" - }, - "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.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Understanding Descriptive Statistics\n", + "\n", + "Import the necessary libraries here:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import pandas as pd\n", + "from random import choices\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 1\n", + "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", + "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Roll Outcome\n", + "0 1 3\n", + "1 2 5\n", + "2 3 2\n", + "3 4 3\n", + "4 5 3\n", + "5 6 5\n", + "6 7 1\n", + "7 8 3\n", + "8 9 3\n", + "9 10 2\n" + ] + } + ], + "source": [ + "# your code here\n", + "def roll_dice_10_times():\n", + " # Define the possible outcomes for a dice roll\n", + " dice_faces = [1, 2, 3, 4, 5, 6]\n", + " \n", + " # Simulate rolling the dice 10 times\n", + " rolls = choices(dice_faces, k=10)\n", + " \n", + " # Create a DataFrame to store the roll outcomes\n", + " # Use roll number as index starting from 1 for a more intuitive understanding\n", + " rolls_df = pd.DataFrame({'Roll': range(1, 11), 'Outcome': rolls})\n", + " \n", + " return rolls_df\n", + "\n", + "# Call the function and display the results\n", + "dice_rolls_df = roll_dice_10_times()\n", + "print(dice_rolls_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here\n", + "dice_rolls_df = roll_dice_10_times().sort_values(by='Outcome')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0EAAAIqCAYAAADiuUH0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHRElEQVR4nO3deZyN9f//8eeZFTNGDGYsY8ZayJalGNmXUFEUJXsliTQRyoeIRJRPKW2fyKf60PLRh4pSIrJkX0vKvu9GEzNm5v37w2/O12lmDo4zruH9uN9u53Zz3td1net1veZy5jznWo7LGGMEAAAAAJYIcLoAAAAAALiaCEEAAAAArEIIAgAAAGAVQhAAAAAAqxCCAAAAAFiFEAQAAADAKoQgAAAAAFYhBAEAAACwCiEIAAAAgFUIQQAcMW3aNLlcLvcjT548io6OVuPGjTV27FgdPnw40zLPP/+8XC7XVa1z586dHnUGBASoYMGCatq0qb799tsres1p06a5xzL6sXPnzkt6jeXLl+u+++5TsWLFFBISoujoaHXo0EHLli3zqaYML774or744osreo3rxTfffKMWLVqoePHiCg0NVfHixdWoUSO99NJLfl9XTvU9q30tKxn736pVq/xeQ4YaNWqoRIkSSktLy3ae+Ph4FS5cWCkpKZf0mpe6fQDwd4QgAI6aOnWqli1bpvnz5+uNN95Q9erVNW7cOFWsWFHfffedx7wPP/zwFX/I91W/fv20bNkyLV68WBMmTNC2bdvUunVr/fjjj1e9ltdff13x8fHau3evxo8fr++++04TJkzQvn37VL9+fU2ePNnn1yYEnffWW2/pjjvuUEREhCZPnqxvvvnGvV9+9tlnfl+fDX3v1auX9u/fr2+++SbL6b/99puWLl2qLl26KCQk5CpXB8A2QU4XAMBuN998s2rVquV+3r59ez311FOqX7++7r33Xm3btk1RUVGSpJIlS6pkyZKO1FmqVCnddtttks7/tbp8+fJq2LCh/vWvf6lBgwZXrY6ffvpJAwYMUOvWrTVr1iwFBf3f23inTp10zz336Mknn1SNGjUUHx9/1eq63owdO1YNGjTIFHi6dOmi9PR0v63nzJkzyps3r99eLzfr3LmzBg0apPfff1+tW7fONP3999+XJPXs2fNqlwbAQhwJApDrlCpVShMnTtTp06f19ttvu8ezOx3u448/Vt26dRUeHq7w8HBVr15d//rXvzzm+e6779S0aVNFREQoX758io+P1/fff+9zjRnB7dChQx7jmzZtUtu2bVWwYEHlyZNH1atX1wcffODzev5u7NixcrlcmjJlikcAkqSgoCC9+eabcrlcHqdsde/eXXFxcZle6+/9dLlcSkpK0gcffOA+/a9Ro0bu6fv27dOjjz6qmJgYhYSEqHjx4urQoYNHD3bv3q2HHnpIRYsWVWhoqCpWrKiJEyd6BIeMU5hefvlljRs3TnFxccqbN68aNWqk3377TefOndOQIUNUvHhxFShQQPfcc0+Wp0fOnDlTdevWVVhYmMLDw9WyZUutXbvWY57t27erU6dO7lPaoqKi1LRpU61bt85rn48dO6ZixYplOS0gwPNX59mzZzV06FCVLl1aISEhKlGihPr27auTJ096zBcXF6c777xT//3vf1WjRg3lyZNHI0eOvGjfDx48qN69e6tkyZIKCQlR6dKlNXLkSKWmpnq8/v79+3X//fcrf/78KlCggDp27KiDBw963c6/O3HihHr06KFChQopLCxMd911l7Zv3+6e/sILLygoKEh79uzJtGzPnj0VGRmps2fPZvnaBQsW1D333KM5c+bo2LFjHtPS0tL073//W7Vr11aVKlX0+++/q0ePHipfvrzy5cunEiVK6K677tLGjRsvug2Xur9LkjFGb775pqpXr668efOqYMGC6tChg8c2A7g+EYIA5EqtW7dWYGDgRU83Gz58uDp37qzixYtr2rRpmjVrlrp166Zdu3a55/nwww/VokULRURE6IMPPtAnn3yiQoUKqWXLlj4HoR07dkiSKlSo4B7bunWr6tWrp82bN+u1117Tf//7X1WqVEndu3fX+PHjfVrPhdLS0vTDDz+oVq1a2R4Ri4mJUc2aNbVgwQKv115kZdmyZcqbN69at26tZcuWadmyZXrzzTclnQ9AtWvX1qxZs5SQkKC5c+dq0qRJKlCggE6cOCFJOnLkiOrVq6dvv/1WL7zwgmbPnq1mzZpp4MCBeuKJJzKt74033tBPP/2kN954Q++9955+/fVX3XXXXerVq5eOHDmi999/332638MPP+yx7IsvvqgHHnhAlSpV0ieffKJ///vfOn36tG6//XZt2bLFPV/r1q21evVqjR8/XvPnz9eUKVNUo0aNTAHl7+rWravPP/9czz//vNavX59tL40xateunSZMmKAuXbroq6++UkJCgj744AM1adJEycnJHvOvWbNGgwYNUv/+/TVv3jy1b9/ea98PHjyoOnXq6JtvvtHw4cM1d+5c9erVS2PHjtUjjzzift0zZ86oWbNm+vbbbzV27Fh9+umnio6OVseOHb1u59/16tVLAQEB+vjjjzVp0iT9/PPPatSokbtfvXv3VlBQkMcfJyTp+PHjmjFjhnr16qU8efJ4ff2UlBR9+OGHHuPffPON9u/fr169ekk6H+giIyP10ksvad68eXrjjTcUFBSkW2+9VVu3br2sbfKmd+/eGjBggJo1a6YvvvhCb775pjZv3qx69epl+gMHgOuMAQAHTJ061UgyK1euzHaeqKgoU7FiRffzESNGmAvftrZv324CAwNN586ds32NpKQkU6hQIXPXXXd5jKelpZlq1aqZOnXqeK1zx44dRpIZN26cOXfunDl79qxZt26dqVu3rilWrJjZsWOHe95OnTqZ0NBQs3v3bo/XaNWqlcmXL585efKkx2tOnTo1Uz8ufL2/O3jwoJFkOnXq5LXmjh07Gknm0KFDxhhjunXrZmJjYzPN9/d+GmNMWFiY6datW6Z5e/bsaYKDg82WLVuyXe+QIUOMJLNixQqP8T59+hiXy2W2bt1qjPm/7a9WrZpJS0tzzzdp0iQjydx9990eyw8YMMBIMqdOnTLGGLN7924TFBRk+vXr5zHf6dOnTXR0tLn//vuNMcYcPXrUSDKTJk3Ktubs/P777+bmm282kowkkzdvXtO0aVMzefJkk5KS4p5v3rx5RpIZP368x/IzZ840ksw777zjHouNjTWBgYHuPlwou7737t3bhIeHm127dnmMT5gwwUgymzdvNsYYM2XKFCPJ/O9///OY75FHHsm0r2UlY/+75557PMZ/+uknI8mMHj3aPdatWzdTtGhRk5yc7B4bN26cCQgI8Lr/GmNMenq6KV26tKlatarHePv27U2+fPncP+O/S01NNSkpKaZ8+fLmqaeeco9n9X/pUvf3ZcuWGUlm4sSJHvPt2bPH5M2b1zzzzDNetwXAtY0jQQByLWOM1+nz589XWlqa+vbtm+08S5cu1fHjx9WtWzelpqa6H+np6brjjju0cuVKJSUlXbSWwYMHKzg42H2K26ZNmzRnzhyP024WLFigpk2bKiYmxmPZ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5pvq06fPZV0L401cXJxGjRql5557Ttu3b9cdd9yhggUL6tChQ/r5558VFhamkSNHasOGDXriiSd03333qXz58goJCdGCBQu0YcMGDRkyxOs6KleurKZNm6pVq1YqW7aszp49qxUrVmjixImKiopyn7rVvHlztWzZUoMHD1ZiYqLi4+O1YcMGjRgxQjVq1FCXLl0uaZu89X3+/PmqV6+e+vfvrxtvvFFnz57Vzp079fXXX+utt95SyZIl1bVrV7366qvq2rWrxowZo/Lly+vrr7/O9otJs7Nq1So9/PDDuu+++7Rnzx4999xzKlGihB5//HGP+QIDA9W3b18NHjxYYWFhma6Jupi7775bhQsX1ssvv6zAwEB169bNY/qdd96padOm6aabblLVqlW1evVqvfzyy5f0PWGXur/Hx8fr0UcfVY8ePbRq1So1aNBAYWFhOnDggJYsWaIqVaqoT58+l7VdAK4hjt2SAYDVMu5GlfEICQkxRYsWNQ0bNjQvvviiOXz4cKZlsrqbmTHGTJ8+3dSuXdvkyZPHhIeHmxo1amS6G9aiRYtMmzZtTKFChUxwcLApUaKEadOmjfn000+91plx96mXX345y+n33XefCQoKMr///rsxxpiNGzeau+66yxQoUMCEhISYatWqZarF17vDXWjZsmWmQ4cOJioqygQFBZmiRYuae++91yxdujTL+b/++mtTvXp1kzdvXlOmTBkzefLkLPu5bt06Ex8fb/Lly2ckmYYNG7qn7dmzx/Ts2dNER0eb4OBgU7x4cXP//fe770JnjDG7du0yDz74oImMjDTBwcHmxhtvNC+//LLHXeCy6+kPP/xgJGX6mWR3J8EvvvjCNG7c2ERERJjQ0FATGxtrOnToYL777jtjjDGHDh0y3bt3NzfddJMJCwsz4eHhpmrVqubVV181qampXvv79ttvm3vvvdeUKVPG5MuXz4SEhJiyZcuaxx57zOzZs8dj3jNnzpjBgweb2NhYExwcbIoVK2b69OljTpw44TFfbGysadOmTZbr89b3I0eOmP79+5vSpUub4OBgU6hQIVOzZk3z3HPPmT///NM93969e0379u1NeHi4yZ8/v2nfvr1ZunTpZd0d7ttvvzVdunQxN9xwg8mbN69p3bq12bZtW5bL7Ny500gyjz32mNfXzs5TTz1lJJnWrVtnmnbixAnTq1cv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TfuKL4KcPhKFizPG6MyZM0pJSdEff/yh1NRU5cmTR/v27dPMmTM1YsQILViwQF9//bUGDhzodLmOCAgIUJEiRVS7dm1t2rRJ99xzj0JDQ9WtWzclJyfrkUcecbpExwQEBKhmzZqKjIxUx44dVaRIEXXq1EmS9Mwzz6hw4cIOV+isc+fO6eTJk+rQoYOk8+dSBwQEqEyZMjp27JgkWXuNh8vl0h133OHujSSNHj1a33zzjQ4ePKijR4+qcuXKGjZsmOrXr+9gpc6pW7eu9uzZo//973966623lJqaqjp16qhKlSr65JNPtGnTJo0aNUo33nij06U6whij3bt3a926dapRo4bGjBmjuXPnKiUlRadOndKuXbs0btw4de/e3elSHRUcHKwDBw4oJiZG0vm+lSpVSsOHD9f48eP15ZdfKi4uTp07d7bq/ejkyZPaunWrjh49qkGDBkmS3n33XR04cEALFizQsGHDVKBAAY/3KFskJyfrmWee0ahRo9y/t0aPHq1bb71VU6ZMUZ8+fazaV3zicAjDZViyZIkJCAgwDRo0MF26dDFhYWHm4YcfNsYYs3HjRhMeHm5+/fVXq5N/165dzZAhQ4wxxvTq1csULFjQVKpUyfTs2dOsWLHC4eqc8+eff3o8nzFjhnG5XGbgwIHm6NGjxpjzf0Xavn27E+U57rfffnP/OyUlxRhjzPDhw02XLl085jt9+vRVrSs3SExMdP/7P//5j3G5XGbGjBnm2LFjZtGiRaZOnTruI9Q22r9/v+natavJkyePad68uTl27Jh72qxZs0xUVJSZOXOmgxU6a/v27aZevXqmXLlypn379sblcpkvvvjCpKenm0OHDpn+/fubRo0amaNHj1r7uys1NdWkpKSYHj16mHvuucecOXPGpKenu0/j3rVrl2nVqpW5++67Ha706ktPTzedOnUyTzzxhLnzzjvNvHnz3NP27NljHnroIfPYY4+Z1NRUa/efDOnp6ebkyZOmXbt25v7776cnl4Arp64h8fHxWr58uUqVKqXQ0FCNHz9e7777riRp+/btiomJUXR0tJXJ3/z/C0abNGmikJAQPf744/r666+1evVqjR49WosWLdLUqVN19uxZhyt1RsbF2mlpaTLGqGPHjvr44481ceJEjRs3Tvv379fAgQM1cOBA/fXXXw5Xe/WVL19e0vmjQMHBwZLO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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 6))\n", + "plt.bar(dice_rolls_df['Roll'].astype(str), dice_rolls_df['Outcome'], color='skyblue')\n", + "plt.title('Dice Roll Outcomes Sorted by Value')\n", + "plt.xlabel('Roll Number')\n", + "plt.ylabel('Outcome')\n", + "plt.xticks(rotation=45) \n", + "plt.grid(axis='y', alpha=0.75) \n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Calculate the frequency distribution and plot it. What is the relation between this plot and the plot above? Describe it with words." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here\n", + "frequency_distribution = dice_rolls_df['Outcome'].value_counts().sort_index()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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WFEPPfSQli9froCAAA0YMMDdNyoqShMnTvRYvm7duoqPj3fPl6SuXbvK4XC4pyVp0aJFiomJUeHChVWyZEl169bNPe/8+fPq3bu3ihcvrqCgIHXo0EH79+93z58+fbqKFSumr7/+WlWrVlVQUJC6d++utLQ0zZgxQ1FRUSpevLgGDhyojIwM93JXrlzR8OHDVb58eQUHB6thw4Zas2bNTbYKgJwiqAAFUKtWrVSnTh3Nnz8/2/kXL17Uww8/rBMnTmjRokXasWOHhg8f7j5ctHz5cj311FN66aWX9PPPP2vatGmaPn263njjjWzXl5mZqblz56pXr14qU6aMx7wiRYqof//+Wr58uZKTk3NU/+bNmyX98QONSUlJ7unFixerW7du6tixo3788UetWrVKMTEx7uX69OmjLVu2aNGiRdqwYYMsy1JsbKyuXr3q7nPp0iW98847mjt3rpYtW6Y1a9aoW7duWrJkiZYsWaJZs2bp/fff1+eff+5e5plnntH333+vuXPn6qefftJf/vIXtW/f3iMEAfCRBeCuFRcXZ3Xp0iXbeT169LCqVavmnpZkLViwwLIsy5o2bZoVEhJinTt3Lttlmzdvbo0ePdqjbdasWVbZsmWz7X/y5ElLkvXvf/872/nz58+3JFmbNm2yLMuyIiMjvfrWqVPHGjlyZLb1ZmncuLHVq1evbMfYt2+fJcn6/vvv3W1nz561ihQpYn366aeWZVlWYmKiJck6cOCAu8/zzz9vBQUFWampqe62du3aWc8//7xlWZZ14MABy+FwWMePH/cYr3Xr1taIESOyrQVAzvnbGZIA2MeyLDkcjmznbd++XQ888IBKlCiR7fytW7dq8+bNHntQMjIydPnyZV26dElBQUG5rkXSDevJqe3bt+u5557Ldt6ePXvk7++vhg0butvCwsJUtWpV7dmzx90WFBSk6Oho93Tp0qUVFRWle+65x6Pt9OnTkqRt27bJsixVqVLFY7z09HSFhYX9qecDQCKoAAXUnj17VKlSpWznFSlS5KbLZmZmKiEhweP8jyyFCxf2aitVqpSKFSumn3/+Odv1/d///Z8cDoc7IBQqVMgdXrJce3jmRm5W9/Xru7b92oAUEBDgMT/riqnr27IOg2VmZsrPz09bt26Vn5+fR79rww0A33COClAArV69Wjt37tTjjz+e7fzatWtr+/btNzxnpF69etq7d6/uvfder0ehQt5fK4UKFdITTzyh2bNn6+TJkx7zfv/9d02ePFnt2rVz78EpVaqUkpKS3H1SUlJ06NAhj+UCAgI8TmjNqnvVqlXZ1ly9enW5XC6PE4LPnTunffv2qVq1atkukxMPPPCAMjIydPr0aa/X4vrzcQDkHkEFuMulp6fr5MmTOn78uLZt26bRo0erS5cu6tSpk3r37p3tMn/9619VpkwZPfbYY/r+++/1yy+/6IsvvtCGDRskSf/4xz80c+ZMxcfHa/fu3dqzZ4/mzZun//f//t8N63jjjTdUpkwZtWnTRkuXLtWvv/6qdevWqV27drp69aree+89d99WrVpp1qxZ+u6777Rr1y7FxcV57a2IiorSqlWrdPLkSZ0/f16SNHLkSM2ZM0cjR47Unj17tHPnTr311luSpPvuu09dunTRc889p/Xr12vHjh166qmnVL58eXXp0sXn17dKlSrq1auXevfurfnz5+vQoUPavHmzxo4dqyVLlvi8XgB/IKgAd7lly5apbNmyioqKUvv27fXtt9/qnXfe0cKFC73++GcJDAzUN998o/DwcMXGxqpWrVp688033f3btWunr7/+WitWrFCDBg3UqFEjTZgwQZGRkTeso2TJktq4caNatmyp559/XpUrV9YTTzyhypUra/PmzapcubK774gRI/TQQw+pU6dOio2N1WOPPeZx3ogkjR8/XitWrFBERIQeeOABSVKLFi302WefadGiRapbt65atWrlsQclMTFR9evXV6dOndS4cWNZlqUlS5Z4HdrJrcTERPXu3VtDhw5V1apV9eijj2rTpk2KiIj4U+sFIDmsGx24BQAAsBl7VAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAw1v8HUyTiJ9yhOtYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n", + "# Plotting the frequency distribution\n", + "frequency_distribution.plot(kind='bar', color='skyblue')\n", + "plt.title('Frequency Distribution of Dice Rolls')\n", + "plt.xlabel('Dice Outcome')\n", + "plt.ylabel('Frequency')\n", + "plt.xticks(rotation=0) # Keep the x-axis labels horizontal for readability\n", + "plt.grid(axis='y', alpha=0.75)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 2\n", + "Now, using the dice results obtained in *challenge 1*, your are going to define some functions that will help you calculate the mean of your data in two different ways, the median and the four quartiles. \n", + "\n", + "#### 1.- Define a function that computes the mean by summing all the observations and dividing by the total number of observations. You are not allowed to use any methods or functions that directly calculate the mean value. " + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean of the dice rolls is: 3.6\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_mean(observations):\n", + " # Calculate the sum of all observations\n", + " total_sum = sum(observations)\n", + " \n", + " # Calculate the number of observations\n", + " num_observations = len(observations)\n", + " \n", + " # Calculate the mean by dividing the total sum by the number of observations\n", + " mean = total_sum / num_observations\n", + " \n", + " return mean\n", + "\n", + "# Assuming dice_rolls is a list of dice roll outcomes\n", + "# For demonstration, let's use a sample list of dice roll outcomes\n", + "dice_rolls = [1, 3, 4, 6, 3, 4, 2, 5, 6, 2]\n", + "\n", + "# Call the function and print the result\n", + "mean_dice_rolls = calculate_mean(dice_rolls)\n", + "print(f\"The mean of the dice rolls is: {mean_dice_rolls}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- First, calculate the frequency distribution. Then, calculate the mean using the values of the frequency distribution you've just computed. You are not allowed to use any methods or functions that directly calculate the mean value. " + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here# \n", + "dice_rolls = [1, 3, 4, 6, 3, 4, 2, 5, 6, 2] \n", + "\n", + "# creating frequency distribution\n", + "frequency_distribution = {}\n", + "for outcome in dice_rolls:\n", + " if outcome in frequency_distribution:\n", + " frequency_distribution[outcome] += 1\n", + " else:\n", + " frequency_distribution[outcome] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean from the frequency distribution is: 3.6\n" + ] + } + ], + "source": [ + "# Sum product of values and frequencies\n", + "sum_product = sum(value * frequency for value, frequency in frequency_distribution.items())\n", + "\n", + "# Sum of all frequencies (total number of observations)\n", + "total_observations = sum(frequency_distribution.values())\n", + "\n", + "# Calculate mean\n", + "mean_value = sum_product / total_observations\n", + "\n", + "print(f\"The mean from the frequency distribution is: {mean_value}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " 3.- Define a function to calculate the median. You are not allowed to use any methods or functions that directly calculate the median value. \n", + "**Hint**: you might need to define two computation cases depending on the number of observations used to calculate the median." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Median (Odd): 6\n", + "Median (Even): 4.5\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_median(data):\n", + " # Sort the data\n", + " sorted_data = sorted(data)\n", + " \n", + " # Calculate the number of observations\n", + " N = len(sorted_data)\n", + " \n", + " # Determine if the number of observations is odd or even\n", + " is_odd = N % 2 != 0\n", + " \n", + " if is_odd:\n", + " # If odd, the median is the value at the middle position\n", + " median_position = N // 2\n", + " median_value = sorted_data[median_position]\n", + " else:\n", + " # If even, the median is the average of the two middle values\n", + " median_position_1 = (N // 2) - 1 # Position is subtracted by 1 because list index starts at 0\n", + " median_position_2 = N // 2\n", + " median_value = (sorted_data[median_position_1] + sorted_data[median_position_2]) / 2\n", + " \n", + " return median_value\n", + "\n", + "# Example usage with odd and even number of data points\n", + "data_odd = [1, 3, 3, 6, 7, 8, 9]\n", + "data_even = [1, 2, 3, 4, 5, 6, 8, 9]\n", + "\n", + "print(f\"Median (Odd): {calculate_median(data_odd)}\")\n", + "print(f\"Median (Even): {calculate_median(data_even)}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Define a function to calculate the four quartiles. You can use the function you defined above to compute the median but you are not allowed to use any methods or functions that directly calculate the quartiles. " + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Q1: 15, Q2 (Median): 37.5, Q3: 40, Q4 (Max): 41\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_median(data):\n", + " sorted_data = sorted(data)\n", + " N = len(sorted_data)\n", + " middle_point = N // 2\n", + " \n", + " if N % 2 == 0: # Even number of observations\n", + " median_value = (sorted_data[middle_point - 1] + sorted_data[middle_point]) / 2\n", + " else: # Odd number of observations, exclude the middle value for the halves\n", + " median_value = sorted_data[middle_point]\n", + " \n", + " return median_value\n", + "\n", + "def calculate_quartiles(data):\n", + " sorted_data = sorted(data)\n", + " N = len(sorted_data)\n", + " \n", + " Q2 = calculate_median(sorted_data) \n", + " \n", + " if N % 2 == 0:\n", + " lower_half = sorted_data[:N // 2]\n", + " upper_half = sorted_data[N // 2:]\n", + " else:\n", + " lower_half = sorted_data[:N // 2] # Up to the median, exclusive\n", + " upper_half = sorted_data[N // 2 + 1:] # After the median, exclusive\n", + " \n", + " Q1 = calculate_median(lower_half)\n", + " Q3 = calculate_median(upper_half)\n", + " Q4 = sorted_data[-1] # Maximum value, or 100% of the data spread\n", + " \n", + " return Q1, Q2, Q3, Q4\n", + "\n", + "# Example usage\n", + "data = [7, 15, 36, 39, 40, 41]\n", + "Q1, Q2, Q3, Q4 = calculate_quartiles(data)\n", + "print(f\"Q1: {Q1}, Q2 (Median): {Q2}, Q3: {Q3}, Q4 (Max): {Q4}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Challenge 3\n", + "Read the csv `roll_the_dice_hundred.csv` from the `data` folder.\n", + "1.- Sort the values and plot them. What do you see?" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 1\n", + "1 1 1 2\n", + "2 2 2 6\n", + "3 3 3 1\n", + "4 4 4 6" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dice = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\roll_the_dice_hundred.csv')\n", + "dice.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "sorted_dice_rolls = dice.sort_values(by='value') \n" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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fh87dkzr169XamqqEhIStHXrVn366ac6evSoxo8fr+bNm2e4/Pvvv6/WrVvr3nvv1cCBAxUSEqJjx47pu+++cwa0d955R40bN9Z9992n559/XhUrVtTFixd18OBBLVq0yPksi7sGDx6sDz/8UDExMerYsaO6deum999/X927d1dcXJxq166t1atXa9SoUWrZsqUeeuihLG3nz4oVK6Yvv/xSrVq1Ur169fTSSy+pTp06SkxM1Lx58zRr1iw99thjeumll5zL1K9fXzVq1NDgwYOVkpKi4sWLa8GCBS638t1Qu3Ztffnll5o0aZLq1aunfPnyKSIiQp07d9bUqVPVq1cv7du3T5GRkUpNTdWGDRsUGhqqTp06qVmzZmrRooWGDh2qxMRENWrUyPl2uPDwcHXt2vWW9/+Gjz76SFFRUWrRooV69OihsmXL6vz589qzZ4+2bNmi+fPnS/rjql2rVq0UFham4sWLa8+ePZo5c6YaNGiQq74vC4BB7HwrAwDkNvPmzbMef/xxq1q1albhwoUtb29vKyQkxOratau1e/dul77Xr1+3xowZY1WvXt3y9va2SpYsaT3xxBNWfHy8S78mTZpYNWvWTHd7cXFxVvPmza0iRYpYklzeCPb7779b//rXv6waNWpYBQoUsIoWLWrVrl3bGjhwoHXq1ClnvwsXLlhPPfWUVaxYMatQoUJWs2bNrL1797r1drgbU/78+a3ixYtb9erVswYMGGDt2rUrzTLpvc3Msixr3bp1VlRUlFW0aFHLx8fHqlKlijVw4MA023vqqaessmXLWt7e3lapUqWshg0bWq+//nqGdVrWH28ye+SRR9Kd9/7771uSrOnTp1uWZVnnzp2zevXqZQUHB1teXl5WhQoVrOjoaOvKlStp1pmVt8PdcOzYMat3795W5cqVnefo/vvvtz777DMrNTU1Tf/9+/dbzZs3t/z9/a1SpUpZffv2tb7++us0x/P8+fNWhw4drGLFilkOh8P685/ry5cvW6+++qpVrVo1q0CBAlZAQIDVtGlTa+3atS59hg4dalWoUMHy9va2goODreeff9767bffMnVMJVm9e/d2abvZmwS3b99udezY0SpdurTl7e1tBQUFWU2bNrU+/PBDZ59hw4ZZERERVvHixS0fHx+rcuXK1sCBA62zZ89m6jgDgKc5LOtvXvsDAAAAAHkI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ZghBAIBsMWLECL355ps6ceKE/P39VaZMGa1evdqlz9q1axUaGppjNd15551av369S9tfP9etW1e7du1S1apV00wFChRw1j127FgtWrRI/v7+ziteAIDbAyEIAJAtHnjgAdWsWVOjRo2SJL300ksaM2aM5s2bp3379mnYsGHatm2b+vfvn2M19erVS4cOHdKgQYO0b98+zZ49W9OmTXPpM3ToUK1bt069e/fWtm3bdODAAS1cuNAZdC5evKiuXbuqb9++ioqK0uzZs/X5559r/vz5ObYfAIBbQwgCAGSbQYMG6eOPP1Z8fLz69eunF198US+++KJq166tJUuWaOHChapWrVqO1RMSEqIvvvhCixYtUp06dfThhx86Q9oNYWFhWrVqlQ4cOKD77rtP4eHheuWVVxQcHCxJ6t+/v/z8/JzL1axZU2PGjFGvXr10/PjxHNsXAEDWOazM3CANAAAAAHkEV4IAAAAAGIUQBAAAAMAohCAAAAAARiEEAQAAADAKIQgAAACAUQhBAAAAAIxCCAIAAABgFEIQAAAAAKMQggAAAAAYhRAEAAAAwCiEIAAAAABGIQQBAAAAMMr/A+oIrhc1DbfcAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 6)) \n", + "plt.bar(sorted_dice_rolls.index, sorted_dice_rolls['value'], color='skyblue')\n", + "plt.title('Sorted Dice Roll Outcomes')\n", + "plt.xlabel('Roll Index')\n", + "plt.ylabel('Dice Value')\n", + "plt.xticks(rotation=90) \n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Using the functions you defined in *challenge 2*, calculate the mean value of the hundred dice rolls." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here\n", + "dice_values = dice['value'].tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean value of the hundred dice rolls is: 3.74\n" + ] + } + ], + "source": [ + "mean_dice_value = calculate_mean(dice_values)\n", + "\n", + "print(f\"The mean value of the hundred dice rolls is: {mean_dice_value}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "value\n", + "1 12\n", + "2 17\n", + "3 14\n", + "4 22\n", + "5 12\n", + "6 23\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "# your code here\n", + "frequency_distribution = dice['value'].value_counts().sort_index()\n", + "\n", + "# Display the frequency distribution\n", + "print(frequency_distribution)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Plot the histogram. What do you see (shape, values...) ? How can you connect the mean value to the histogram? " + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3MklEQVR4nO3deVhVdeLH8c9V4AKKGCgCikiJuJtGmktupAlqqTnpqIlF05jaqOhUWI1YJqmjY5O5tLhN4zqV2eJWojmp5ZJaZi65gAmjgIq4IML5/dHD/XkFFK/ovcfer+c5T91zvueezz0X8eNZ7rUYhmEIAADApMo5OwAAAMDNoMwAAABTo8wAAABTo8wAAABTo8wAAABTo8wAAABTo8wAAABTo8wAAABTo8wAAABTo8zApc2bN08Wi0Xbtm0rdnm3bt1Uq1Ytu3m1atXSoEGDbmg7mzZtUmJiok6fPu1Y0N+hJUuWqEGDBvLy8pLFYtHOnTuLHbd+/XpZLBbb5OHhoapVq6p169Z66aWXdPTo0SLrFL7vR44cubUv4ipX5rRYLKpUqZJatWqlRYsW3dRzJiYm2h4X7o/169eXav29e/dq0KBBqlmzpjw8PFSlShXFxMRo5cqVDmeSpBkzZmjevHk39RyAq6DM4I7z8ccf65VXXrmhdTZt2qRx48ZRZkrp5MmTeuKJJ3TPPfdo1apV2rx5s+rUqXPNdSZMmKDNmzcrOTlZ77//vtq3b685c+aoXr16+ve//203tmvXrtq8ebOCgoJu5csoVu/evbV582Zt2rRJs2bNUnZ2tvr166eFCxfe9iwfffSRmjZtqu+++06vvPKKvvzyS82cOVOSFBMTo+eff97h56bM4E7i5uwAQFlr2rSpsyPcsLy8PFksFrm5meOP5P79+5WXl6cBAwaoXbt2pVonPDxcDzzwgO3xI488olGjRumhhx7SoEGD1LhxYzVq1EiSVLVqVVWtWvWWZL+eatWq2XK2bNlSrVu3Vq1atTR79mz169fvtuX45Zdf9MQTT6hRo0Zav369KlSoYFv2hz/8Qc8++6wmT56sZs2aqW/fvrctF+CKODKDO87Vp5kKCgo0fvx4RUREyMvLS5UrV1bjxo315ptvSpISExP117/+VZIUFhZmO8VQeBqgoKBAkyZNUt26dWW1WhUQEKCBAwfq2LFjdts1DEMTJkxQaGioPD09FRkZqbVr16p9+/Zq3769bVzhaYZ//etfGjVqlKpXry6r1aqDBw/q5MmTGjJkiOrXr6+KFSsqICBAHTt21MaNG+22deTIEVksFk2ePFkTJ05UrVq15OXlpfbt29uKxosvvqjg4GD5+vqqZ8+eOnHiRKn234oVK9SyZUt5e3vLx8dHnTp10ubNm23LBw0apDZt2kiS+vTpI4vFYvf6boSfn59mz56ty5cv6x//+IdtfkmnmVatWqWoqCj5+vrK29tb9erVU1JSkt2Ybdu26ZFHHpGfn588PT3VtGlTLV261KF8khQaGqqqVavqf//7n938lJQUDRgwQAEBAbJarapXr56mTJmigoICh7d1pX/84x86f/683nrrLbsiU2jKlCmqXLmyXn/9ddu8xMREWSyWImOv3p+1atXSnj17tGHDBtvP+5Wna0+fPq1Ro0bp7rvvtv3Mx8TE6Oeff7aNycrK0pAhQ1S9enV5eHjo7rvv1ksvvaTc3Fy7bVssFg0bNkxz5861/RmMjIzUli1bZBiGJk+erLCwMFWsWFEdO3bUwYMHi+T/8ssvFRUVpUqVKsnb21utW7fWV199ZTfm5MmTeuaZZxQSEiKr1Wo7lfnll1+Wan/D3Mzxz0D87uXn5+vy5ctF5pfmS98nTZqkxMREvfzyy2rbtq3y8vL0888/204pPf3008rKytJbb72ljz76yHZqo379+pKkZ599Vu+8846GDRumbt266ciRI3rllVe0fv167dixQ1WqVJEkvfTSS0pKStIzzzyjXr16KTU1VU8//bTy8vKKPQWTkJCgli1batasWSpXrpwCAgJ08uRJSdLYsWMVGBionJwcffzxx2rfvr2++uqrIqXh7bffVuPGjfX222/b/gLq3r27WrRoIXd3d82ZM0dHjx7V6NGj9fTTT2vFihXX3FcLFy5U//791blzZy1atEi5ubmaNGmSbftt2rTRK6+8oubNm2vo0KGaMGGCOnTooEqVKl33fSjJ/fffr6CgIH399dfXHPf+++/rT3/6k9q1a6dZs2YpICBA+/fv148//mgbk5ycrC5duqhFixaaNWuWfH19tXjxYvXp00fnz5+/4WupJOnMmTPKysqyO6p08uRJtWrVSpcuXdJrr72mWrVq6bPPPtPo0aP1yy+/aMaMGTe8nautXbvW7ijR1by9vdW5c2ctXbpU6enpCgwMLPVzf/zxx+rdu7d8fX1tWa1WqyTp7NmzatOmjY4cOaIXXnhBLVq0UE5Ojr7++mulpaWpbt26unjxojp06KBffvlF48aNU+PGjbVx40YlJSVp586d+vzzz+2299lnn+n777/XG2+8IYvFohdeeEFdu3ZVbGysDh06pOnTp+vMmTOKj4/XY489pp07d9pK2QcffKCBAwfq0Ucf1fz58+Xu7q7Zs2fr4Ycf1urVqxUVFSVJeuKJJ7Rjxw69/vrrqlOnjk6fPq0dO3YoMzPzhvc9TMgAXNjcuXMNSdecQkND7dYJDQ01YmNjbY+7detm3HvvvdfczuTJkw1JxuHDh+3m792715BkDBkyxG7+t99+a0gyxowZYxiGYWRlZRlWq9Xo06eP3bjNmzcbkox27drZ5iUnJxuSjLZt21739V++fNnIy8szoqKijJ49e9rmHz582JBkNGnSxMjPz7fNnzZtmiHJeOSRR+yeZ8SIEYYk48yZMyVuKz8/3wgODjYaNWpk95xnz541AgICjFatWhV5DcuWLbvuayjN2BYtWhheXl62x4Xve+H7cfbsWaNSpUpGmzZtjIKCghKfp27dukbTpk2NvLw8u/ndunUzgoKC7F5XcQrf67y8POPSpUvG/v37jUceecTw8fExtm3bZhv34osvGpKMb7/91m79Z5991rBYLMa+ffvsnnPs2LFF9kdycvI1s3h6ehoPPPDANce88MILdjnGjh1rFPdr/er9aRiG0aBBA7ufy0KvvvqqIclYu3ZtidudNWuWIclYunSp3fyJEycakow1a9bY5kkyAgMDjZycHNu85cuXG5KMe++91+79LPz53b17t2EYhnHu3DnDz8/P6N69u9128vPzjSZNmhjNmze3zatYsaIxYsSIEjPjzsZpJpjCggULtHXr1iJT4emOa2nevLl27dqlIUOGaPXq1crOzi71dpOTkyWpyL/omzdvrnr16tkOdW/ZskW5ubl6/PHH7cY98MADRe62KvTYY48VO3/WrFlq1qyZPD095ebmJnd3d3311Vfau3dvkbExMTEqV+7//xjXq1dP0m8X0F6pcH5KSkoJr1Tat2+fjh8/rieeeMLuOStWrKjHHntMW7Zs0fnz50tc/2YY1znCtmnTJmVnZ2vIkCHFnkaRpIMHD+rnn39W//79JUmXL1+2TTExMUpLS9O+ffuum2XGjBlyd3eXh4eH6tSpo5UrV2rRokW67777bGPWrVun+vXrq3nz5nbrDho0SIZhaN26ddfdTlko3G8l7RNHrFy5UnXq1NFDDz1U4ph169apQoUK6t27t938wj8nV58C6tChg92pssKfx+joaLvshfML73DbtGmTsrKyFBsba/d+FhQUqEuXLtq6davOnTsn6bc/k/PmzdP48eO1ZcsW5eXlObgHYEaUGZhCvXr1FBkZWWTy9fW97roJCQn6+9//ri1btig6Olr+/v6Kiooq8XbvKxUeoi7urprg4GDb8sL/VqtWrci44uaV9JxTp07Vs88+qxYtWujDDz/Uli1btHXrVnXp0kUXLlwoMt7Pz8/usYeHxzXnX7x4sdgsV76Gkl5rQUGBTp06VeL6NyMlJUXBwcElLi88/VajRo0SxxRe0zJ69Gi5u7vbTUOGDJEkZWRkXDfL448/rq1bt2rTpk2aPXu2fHx81LdvXx04cMA2JjMzs8T9VLj8ZtWsWVOHDx++5pjCa2BCQkJuenuFTp48ec39LP32+gIDA4uUqICAALm5uRV5/Y7+nBa+p7179y7ynk6cOFGGYSgrK0vSbx8VEBsbq/fee08tW7aUn5+fBg4cqPT09Bt5+TAprpnBHc/NzU3x8fGKj4/X6dOn9eWXX2rMmDF6+OGHlZqaKm9v7xLX9ff3lySlpaUV+QV//Phx2/UyheOuvkhUktLT04s9OlPcv6Y/+OADtW/f3nb7baGzZ89e+0WWgStf69WOHz+ucuXK6a677irz7X733XdKT09XXFxciWMK72y6+qLrKxW+FwkJCerVq1exYyIiIq6bp2rVqoqMjJT0291M9erVU7t27TRy5Eh99tlnkn7bVyXtpyuz3IxOnTrp7bff1pYtW4q9bub8+fNau3atGjZsaLtextPTU5KUm5truwZGKl2JK1S1atVr7mfpt9f/7bffyjAMu5/jEydO6PLly2Xy+qX/349vvfVWidcOFf5joUqVKpo2bZqmTZumlJQUrVixQi+++KJOnDihVatWlUkeuC6OzOB3pXLlyurdu7eGDh2qrKws279sC3/xX330o2PHjpJ+KxlX2rp1q/bu3Wu7+LBFixayWq1asmSJ3bgtW7YU+6FwJbFYLHZ/CUnS7t277e4mulUiIiJUvXp1LVy40O60z7lz5/Thhx/a7nAqS1lZWRo8eLDc3d01cuTIEse1atVKvr6+mjVrVomnpCIiIhQeHq5du3YVexQvMjJSPj4+N5zxwQcf1MCBA/X555/b3oeoqCj99NNP2rFjh93YBQsWyGKxqEOHDje8nauNHDlSXl5eeu6552ynUq40evRonTp1Si+//LJtXmFp3r17t93YTz/9tMj6Vqu12KN90dHR2r9//zVPlUVFRSknJ0fLly+3m79gwQLb8rLQunVrVa5cWT/99FOJ72nh0Zwr1axZU8OGDVOnTp2KvEe4M3FkBne87t27q2HDhoqMjFTVqlV19OhRTZs2TaGhoQoPD5ck2+ebvPnmm4qNjZW7u7siIiIUERGhZ555Rm+99ZbKlSun6Oho291MISEhtr+A/fz8FB8fr6SkJN11113q2bOnjh07pnHjxikoKMjuGpRr6datm1577TWNHTtW7dq10759+/Tqq68qLCys2Lu5ylK5cuU0adIk9e/fX926ddOf//xn5ebmavLkyTp9+rTeeOONm3r+AwcOaMuWLSooKFBmZqa+/fZbvf/++8rOztaCBQvUoEGDEtetWLGipkyZoqeffloPPfSQ/vSnP6latWo6ePCgdu3apenTp0uSZs+erejoaD388MMaNGiQqlevrqysLO3du1c7duzQsmXLHMr+2muvacmSJbYPrhs5cqQWLFigrl276tVXX1VoaKg+//xzzZgxQ88+++x1P0CwNO655x7961//Uv/+/XX//fcrPj5eERER+t///qc5c+Zo5cqVGj16tPr06WNbJyYmRn5+foqLi9Orr74qNzc3zZs3T6mpqUWev1GjRlq8eLGWLFmiu+++W56enmrUqJFGjBihJUuW6NFHH9WLL76o5s2b68KFC9qwYYO6deumDh06aODAgXr77bcVGxurI0eOqFGjRvrvf/+rCRMmKCYm5prX29yIihUr6q233lJsbKyysrLUu3dv211/u3bt0smTJzVz5kydOXNGHTp0UL9+/VS3bl35+Pho69atWrVqVYlH6XCHceLFx8B1Fd6FsXXr1mKXd+3a9bp3M02ZMsVo1aqVUaVKFcPDw8OoWbOmERcXZxw5csRuvYSEBCM4ONgoV66c3d0m+fn5xsSJE406deoY7u7uRpUqVYwBAwYYqampdusXFBQY48ePN2rUqGF4eHgYjRs3Nj777DOjSZMmdnci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mWnbtq0WLFhge2yxWFRQUKDJkyerQ4cOZRYOAADgehw6zTR58mS1b99e27Zt06VLl/T8889rz549ysrK0jfffFPWGQEAAErk0JGZ+vXra/fu3WrevLk6deqkc+fOqVevXvr+++91zz33lHVGAACAEt3wkZm8vDx17txZs2fP1rhx425FJgAAgFK74SMz7u7u+vHHH2WxWG56419//bW6d++u4OBgWSwWLV++3G65YRhKTExUcHCwvLy81L59e+3Zs+emtwsAAO4cDp1mGjhwoN5///2b3vi5c+fUpEkTTZ8+vdjlkyZN0tSpUzV9+nRt3bpVgYGB6tSpE9/MDQAAbBy6APjSpUt67733tHbtWkVGRhb5TqapU6eW6nmio6MVHR1d7DLDMDRt2jS99NJLtm/inj9/vqpVq6aFCxfqz3/+syPRAQDAHeaGysyhQ4dUq1Yt/fjjj2rWrJkkaf/+/XZjyuL0kyQdPnxY6enp6ty5s22e1WpVu3bttGnTJsoMAACQdINlJjw8XGlpaUpOTpb029cX/POf/1S1atXKPFh6erokFXnuatWqXfNThnNzc5Wbm2t7nJ2dXebZAACA67iha2au/lbslStX6ty5c2Ua6GpXH+kxDOOaR3+SkpLk6+trm0JCQm5pPgAA4FwOXQBc6OpyU5YCAwMl/f8RmkInTpy45pGghIQEnTlzxjalpqbesowAAMD5bqjMWCyWIkdFyuoamauFhYUpMDBQa9eutc27dOmSNmzYoFatWpW4ntVqVaVKlewmAABw57qha2YMw9CgQYNsXyZ58eJFDR48uMjdTB999FGpni8nJ0cHDx60PT58+LB27twpPz8/1axZUyNGjNCECRMUHh6u8PBwTZgwQd7e3urXr9+NxAYAAHewGyozsbGxdo8HDBhwUxvftm2b3RdTxsfH27Yzb948Pf/887pw4YKGDBmiU6dOqUWLFlqzZo18fHxuarsAAODOcUNlZu7cuWW68fbt21/zuhuLxaLExEQlJiaW6XYBAMCd46YuAAYAAHA2ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1ygwAADA1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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "plt.hist(dice['value'], bins=range(1, 8), edgecolor='black', align='left')\n", + "plt.title('Histogram of Dice Roll Outcomes')\n", + "plt.xlabel('Dice Value')\n", + "plt.ylabel('Frequency')\n", + "plt.xticks(range(1, 7))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.- Read the `roll_the_dice_thousand.csv` from the `data` folder. Plot the frequency distribution as you did before. Has anything changed? Why do you think it changed?" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0005
1116
2221
3336
4445
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1\n", + "3 3 3 6\n", + "4 4 4 5" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dice_thousand = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\roll_the_dice_thousand.csv')\n", + "dice_thousand.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 4\n", + "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", + "\n", + "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
observation
068.0
112.0
245.0
338.0
449.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 68.0\n", + "1 12.0\n", + "2 45.0\n", + "3 38.0\n", + "4 49.0" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\ages_population.csv')\n", + "ages.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "observation\n", + "1.0 2\n", + "2.0 2\n", + "4.0 1\n", + "5.0 2\n", + "6.0 2\n", + " ..\n", + "69.0 1\n", + "70.0 1\n", + "71.0 1\n", + "73.0 1\n", + "82.0 1\n", + "Name: count, Length: 72, dtype: int64\n" + ] + } + ], + "source": [ + "frequency_distribution = ages['observation'].value_counts().sort_index()\n", + "print(frequency_distribution)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rfT09Av2DAAoJAYAwAVMnjzZJOV6OXXqlC1ZssQkWYsWLTzq0tPTrXz58tapUyeP8czMTLvuuuvsxhtvdI81adLEYmJi7Pjx4+6xw4cPW/ny5e3sf662bt1qkmzy5Mk5+pRkQ4cOdV9v166dValSxQ4dOuSx3pNPPmkhISF24MABMzN3/x07dvRY74MPPjBJtmLFCjMzO3LkiJUuXdqaN29uWVlZeT5eQ4cOtaCgINuzZ497bObMmSbJli5dmmed2f8e65UrV+a5TlRUlNWuXdtje2c/Rh9++KFJsrVr1+Z5G/v27cvxeJ17ey+++GKey85WvXp1c7lcObbXpk0bK126tKWnp3vct61bt3qsl/34L1myxD2WmJho1atXz7X3c/vu1q2bBQcH2/bt2z3W69Chg4WFhdkff/zhsZ0LPc95uemmm6xixYp25MgR99jp06etXr16VqVKFfc+kb2Pjh49+ry3ly01NdX8/PysW7du7rGWLVtaeHi4HT582D22ceNGk2TPPfecR/306dNNkvXq1cs99thjj1mpUqVs27ZtHuu+8sorJsk2btxoZmdeC2XLls1XnwCAS4Mj5QCAfHv33Xe1cuVKj8vZ3xm/8847PdZfvny5Dhw4oF69enkcXc/KylL79u21cuVKpaenKz09XStXrlTXrl0VEhLirs8+CumNEydO6PPPP1eXLl0UFhbmsf2OHTvqxIkT+uabbzxqbr/9do/r9evXlyRt27bNfX8OHz6svn37nvds50888YQk6a233nKPvfHGG7r22mvVokULr+7P2czsvMsbNGigoKAgPfroo5oyZYp+/fVXr7Zz7vN5PnXr1tV1113nMda9e3cdPnxYa9as8Wr7+bV48WK1bt1aVatW9Rjv3bu3jh07luMo+4We59ykp6fr22+/1V133aVSpUq5x/39/fXAAw9o586d+f4I/LkmT56srKwsPfTQQ+6xhx56SOnp6e4j8NKZI/WSdM8993jU33XXXTnO3fCf//xHrVq1UkxMjMe+36FDB4/buvHGG/XHH3/ovvvu09y5c/X77797dR8AAN4jlAMA8q127dpq1KiRx+VslSpV8ri+Z88eSWdCQ2BgoMdl5MiRMjMdOHBABw8eVFZWlqKjo3NsM7ex/Ni/f79Onz6t119/Pce2O3bsKEk5AkhkZKTH9eDgYEnS8ePHJUn79u2TpAue6CwqKkr33nuvJk6cqMzMTK1fv15ffvmlnnzySa/uy9nS09O1f//+834E/qqrrtKiRYtUsWJF9evXT1dddZWuuuoqvfbaawXa1rnP5/mc77nbv39/gbZbUPv378+11+zH6NztX+h5zs3BgwdlZgXaTn5kZWXpnXfeUUxMjBo2bKg//vhDf/zxh2699VaFh4d7fIQ9+/azT/CXLSAgIMd92rNnj+bNm5dj369bt66k/+37DzzwgN5++21t27ZNd955pypWrKgmTZpo4cKFBb4vAADvcEpcAEChOffocYUKFSRJr7/+ep5nzI6KinKfqT0tLS3H8nPHso+kZ2RkeIyfG4jKlSvnPorZr1+/XLcdFxd3nnuTU/bJ0bK/P34+/fv313vvvae5c+dqwYIFKlu2rHr06FGg7eUmJSVFmZmZF/wZs5tvvlk333yzMjMztWrVKr3++usaMGCAoqKi1K1bt3xtqyC/fX6+5y47MOb13F3s0dnIyMhcf9c7+4R62fvhxShXrpz8/PwKfTuLFi1yH6E/N1hL0jfffKMff/xRderUcS/fs2ePKleu7F7n9OnTOfb/ChUqqH79+vrb3/6W63bP/qPOgw8+qAcffFDp6elatmyZhg4dqttuu02bN29W9erVC3yfAAAFQygHAFwyzZo1U9myZfXjjz+e9yhxUFCQbrzxRs2aNUujR492h7cjR45o3rx5HutGRUUpJCRE69ev9xifO3eux/WwsDC1atVK33//verXr6+goKCLvj/x8fEqU6aMJkyYoG7dup03tDZs2FDx8fEaOXKkfvjhBz366KMKDw+/qO1v375dzzzzjMqUKaPHHnssXzX+/v5q0qSJrrnmGk2dOlVr1qxRt27d8nV0uCA2btyodevWeXyEfdq0aYqIiNANN9wgSe6zkK9fv97jd7s//vjjHLcXHByc795at26t2bNna9euXR5h891331VYWFih/IRaeHi4mjRpolmzZumVV15RaGiopDNHut9//31VqVJFtWrVKvDtTpo0SX5+fpo1a5bKlCnjsWznzp3uI9mvvPKK+6sPM2fOdD+mkvThhx/mOOnibbfdpk8++URXXXWVypUrl+/72KFDB508eVJ33HGHNm7cSCgHgCJAKAcAXDKlSpXS66+/rl69eunAgQO66667VLFiRe3bt0/r1q3Tvn37NH78eEnSX//6V7Vv315t2rTRoEGDlJmZqZEjRyo8PFwHDhxw36bL5dL999+vt99+W1dddZWuu+46fffdd5o2bVqO7b/22mtq3ry5br75Zj3xxBOKjY3VkSNH9PPPP2vevHlavHhxge/PmDFj1KdPH91666165JFHFBUVpZ9//lnr1q3TG2+84bF+//79de+998rlcqlv374F2tYPP/zg/h7w3r179eWXX2ry5Mny9/fX7Nmz3UftczNhwgQtXrxYiYmJqlatmk6cOKG3335bknTrrbdKOvN9/erVq2vu3Llq3bq1ypcvrwoVKuTr57tyExMTo9tvv11JSUmqVKmS3n//fS1cuFAjR45UWFiYJKlx48a6+uqr9cwzz+j06dMqV66cZs+enetPf1177bWaNWuWxo8fr4YNG8rPzy/H1yWyDR061P0d6hdffFHly5fX1KlTlZKSolGjRuUIu94aMWKE2rRpo1atWumZZ55RUFCQ/vnPf+qHH37Q9OnTC/TJAunMpzvmzp2rdu3aqXPnzrmu8+qrr+rdd9/ViBEjVLduXd13330aM2aM/P39dcstt2jjxo0aM2aMypQpIz+//30r8aWXXtLChQsVHx+vp556SldffbVOnDih1NRUffLJJ5owYYKqVKmiRx55RKGhoWrWrJkqVaqktLQ0jRgxQmXKlFHjxo0v6vECAOSTwyeaAwBcBi50RvDss1r/+9//znX50qVLLTEx0cqXL2+BgYFWuXJlS0xMzLH+xx9/bPXr17egoCCrVq2aJScn53q270OHDlmfPn0sKirKwsPDrVOnTpaamprr2cS3bt1qDz30kFWuXNkCAwPtiiuusPj4eHv55Zcv2H9eZ3r/5JNP3GfHDgsLszp16tjIkSNz3O+MjAwLDg629u3b5/q45ObcM90HBQVZxYoVrWXLljZ8+HDbu3dvjppzH6MVK1ZYly5drHr16hYcHGyRkZHWsmVL+/jjjz3qFi1aZNdff70FBwd7nL07+/b27dt3wW2ZnTn7emJion344YdWt25dCwoKstjYWBs7dmyO+s2bN1vbtm2tdOnSdsUVV9if/vQnS0lJyXH29QMHDthdd91lZcuWNZfL5bHN3J7nDRs2WKdOnaxMmTIWFBRk1113XY7nraDPc26+/PJLu+WWWyw8PNxCQ0Ptpptusnnz5uV6exc6+/q4ceNMks2ZMyfPdSZMmGCS7KOPPjIzsxMnTtjAgQOtYsWKFhISYjfddJOtWLHCypQpY08//bRH7b59++ypp56yuLg4CwwMtPLly1vDhg1tyJAhdvToUTMzmzJlirVq1cqioqIsKCjIYmJi7J577rH169df8LEAABQOl9kFTuEKAICDkpKSNGzYsAuecdwXzZs3T7fffrtSUlLcJ5cDCtvy5cvVrFkzTZ06Vd27d3e6HQBAAfHxdQAACtmPP/6obdu2adCgQWrQoIH7Z6iAi7Vw4UKtWLFCDRs2VGhoqNatW6fk5GTVrFlTXbt2dbo9AIAXCOUAABSyvn376uuvv9YNN9ygKVOmFPi7xkBeSpcurc8++0zjxo3TkSNHVKFCBXXo0EEjRoxwnyARAHB54ePrAAAAAAA4xO/CqwAAAAAAgEuBUA4AAAAAgEMI5QAAAAAAOKTYn+gtKytLu3btUkREBCfaAQAAAABccmamI0eOKCYmRn5+5z8WXuxD+a5du1S1alWn2wAAAAAAlDA7duxQlSpVzrtOsQ/lERERks48GKVLl3a4GwAAAABAcXf48GFVrVrVnUfPp9iH8uyPrJcuXZpQDgAAAAAoMvn5CjUnegMAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCEBTjcAAACKr9jBKXkuS01OLMJOAADwTRwpBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAc4jOhfMSIEXK5XBowYIB7zMyUlJSkmJgYhYaGKiEhQRs3bnSuSQAAAAAACpFPhPKVK1fqzTffVP369T3GR40apbFjx+qNN97QypUrFR0drTZt2ujIkSMOdQoAAAAAQOFxPJQfPXpUPXr00FtvvaVy5cq5x81M48aN05AhQ9S1a1fVq1dPU6ZM0bFjxzRt2jQHOwYAAAAAoHA4Hsr79eunxMRE3XrrrR7jW7duVVpamtq2beseCw4OVsuWLbV8+fI8by8jI0OHDx/2uAAAAAAA4IsCnNz4jBkztGbNGq1cuTLHsrS0NElSVFSUx3hUVJS2bduW522OGDFCw4YNK9xGAQAAAAC4BBw7Ur5jxw71799f77//vkJCQvJcz+VyeVw3sxxjZ3v++ed16NAh92XHjh2F1jMAAAAAAIXJsSPlq1ev1t69e9WwYUP3WGZmppYtW6Y33nhDmzZtknTmiHmlSpXc6+zduzfH0fOzBQcHKzg4+NI1DgAAAABAIXHsSHnr1q21YcMGrV271n1p1KiRevToobVr1+rKK69UdHS0Fi5c6K45efKkli5dqvj4eKfaBgAAAACg0Dh2pDwiIkL16tXzGAsPD1dkZKR7fMCAARo+fLhq1qypmjVravjw4QoLC1P37t2daBkAAAAAgELl6IneLuTZZ5/V8ePH1bdvXx08eFBNmjTRZ599poiICKdbAwAAAADgornMzJxu4lI6fPiwypQpo0OHDql06dJOtwMAQIkSOzglz2WpyYlF2AkAAEWnIDnU8d8pBwAAAACgpCKUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgkACnGwAAALhYsYNTch1PTU4s4k4AACgYjpQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOCXC6AQAAzhY7OCXX8dTkxCLuBAAA4NLjSDkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADglwugEAAOApdnBKruOpyYlF3AkAALjUOFIOAAAAAIBDCOUAAAAAADiEUA4AAAAAgEMI5QAAAAAAOIRQDgAAAACAQwjlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADiEUA4AAAAAgEMCnG4AAADACbGDU3IdT01OLNQaAADOhyPlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADiEUA4AAAAAgEMI5QAAAAAAOIRQDgAAAACAQwjlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADgkwOkGAADAxYkdnJLnstTkxCLsBAAAFBRHygEAAAAAcAihHAAAAAAAhxDKAQAAAABwCKEcAAAAAACHOBrKx48fr/r166t06dIqXbq0mjZtqvnz57uXm5mSkpIUExOj0NBQJSQkaOPGjQ52DAAAAABA4XE0lFepUkXJyclatWqVVq1apVtuuUWdO3d2B+9Ro0Zp7NixeuONN7Ry5UpFR0erTZs2OnLkiJNtAwAAAABQKBwN5Z06dVLHjh1Vq1Yt1apVS3/7299UqlQpffPNNzIzjRs3TkOGDFHXrl1Vr149TZkyRceOHdO0adOcbBsAAAAAgELhM98pz8zM1IwZM5Senq6mTZtq69atSktLU9u2bd3rBAcHq2XLllq+fHmet5ORkaHDhw97XAAAAAAA8EUBTjewYcMGNW3aVCdOnFCpUqU0e/Zs1alTxx28o6KiPNaPiorStm3b8ry9ESNGaNiwYZe0ZwDA5S92cEqu46nJiUXciTPyuv9S3o+BNzUAAOD8HD9SfvXVV2vt2rX65ptv9MQTT6hXr1768ccf3ctdLpfH+maWY+xszz//vA4dOuS+7Nix45L1DgAAAADAxXD8SHlQUJBq1KghSWrUqJFWrlyp1157Tc8995wkKS0tTZUqVXKvv3fv3hxHz88WHBys4ODgS9s0AAAAAACFwPEj5ecyM2VkZCguLk7R0dFauHChe9nJkye1dOlSxcfHO9ghAAAAAACFw9Ej5S+88II6dOigqlWr6siRI5oxY4a++OILLViwQC6XSwMGDNDw4cNVs2ZN1axZU8OHD1dYWJi6d+/uZNsAAAAAABQKR0P5nj179MADD2j37t0qU6aM6tevrwULFqhNmzaSpGeffVbHjx9X3759dfDgQTVp0kSfffaZIiIinGwbAAAAAIBC4WgonzRp0nmXu1wuJSUlKSkpqWgaAgAAAACgCPncd8oBAAAAACgpCOUAAAAAADiEUA4AAAAAgEMc/51yAACKs9jBKbmOpyYnFnEnuJyw3wBAycGRcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHBLgTdHWrVsVFxdX2L0AAAAodnBKnstSkxOLsBMAAC49r46U16hRQ61atdL777+vEydOFHZPAAAAAACUCF6F8nXr1un666/XoEGDFB0drccee0zfffddYfcGAAAAAECx5lUor1evnsaOHavffvtNkydPVlpampo3b666detq7Nix2rdvX2H3CQAAAABAsXNRJ3oLCAhQly5d9MEHH2jkyJH65Zdf9Mwzz6hKlSrq2bOndu/eXVh9AgAAAABQ7FxUKF+1apX69u2rSpUqaezYsXrmmWf0yy+/aPHixfrtt9/UuXPnwuoTAAAAAIBix6uzr48dO1aTJ0/Wpk2b1LFjR7377rvq2LGj/PzOZPy4uDhNnDhR11xzTaE2CwAAAABAceJVKB8/frweeughPfjgg4qOjs51nWrVqmnSpEkX1RwAAAAAAMWZV6F8y5YtF1wnKChIvXr18ubmAQAAAAAoEbz6TvnkyZP173//O8f4v//9b02ZMuWimwIAAAAAoCTw6kh5cnKyJkyYkGO8YsWKevTRRzlCDgCQJMUOTsl1PDU5sYg7AQAA8E1eHSnftm2b4uLicoxXr15d27dvv+imAAAAAAAoCbwK5RUrVtT69etzjK9bt06RkZEX3RQAAAAAACWBV6G8W7dueuqpp7RkyRJlZmYqMzNTixcvVv/+/dWtW7fC7hEAAAAAgGLJq++Uv/zyy9q2bZtat26tgIAzN5GVlaWePXtq+PDhhdogAAAAAADFlVehPCgoSDNnztRf//pXrVu3TqGhobr22mtVvXr1wu4PAAAAAIBiy6tQnq1WrVqqVatWYfUCAAAAAECJ4lUoz8zM1DvvvKPPP/9ce/fuVVZWlsfyxYsXF0pzAAAAAAAUZ16F8v79++udd95RYmKi6tWrJ5fLVdh9AQAAAABQ7HkVymfMmKEPPvhAHTt2LOx+AABFIHZwSp7LUpMTi7ATAACAks2rn0QLCgpSjRo1CrsXAAAAAABKFK9C+aBBg/Taa6/JzAq7HwAAAAAASgyvPr7+1VdfacmSJZo/f77q1q2rwMBAj+WzZs0qlOYAAAAAACjOvArlZcuWVZcuXQq7FwAAAAAAShSvQvnkyZMLuw8AAAAAAEocr75TLkmnT5/WokWLNHHiRB05ckSStGvXLh09erTQmgMAAAAAoDjz6kj5tm3b1L59e23fvl0ZGRlq06aNIiIiNGrUKJ04cUITJkwo7D4BAAAAACh2vDpS3r9/fzVq1EgHDx5UaGioe7xLly76/PPPC605AAAAAACKM6/Pvv71118rKCjIY7x69er67bffCqUxAAAAAACKO69CeVZWljIzM3OM79y5UxERERfdFAAABRE7OCXX8dTkxCLuBAAAoGC8+vh6mzZtNG7cOPd1l8ulo0ePaujQoerYsWNh9QYAAAAAQLHm1ZHyV199Va1atVKdOnV04sQJde/eXVu2bFGFChU0ffr0wu4RAAAAAIBiyatQHhMTo7Vr12r69Olas2aNsrKy9PDDD6tHjx4eJ34DAAAAAAB58yqUS1JoaKgeeughPfTQQ4XZDwAAAAAAJYZXofzdd9897/KePXt61QwAAAAAACWJV6G8f//+HtdPnTqlY8eOKSgoSGFhYYRyAAAAAADywauzrx88eNDjcvToUW3atEnNmzfnRG8AAAAAAOSTV6E8NzVr1lRycnKOo+gAAAAAACB3hRbKJcnf31+7du0qzJsEAAAAAKDY8uo75R9//LHHdTPT7t279cYbb6hZs2aF0hgAIH9iB6fkuSw1ObEIOwGQm7xeo4X9+iyq7QAACpdXofyOO+7wuO5yuXTFFVfolltu0ZgxYwqjLwAAAAAAij2vQnlWVlZh9wEAAAAAQIlTqN8pBwAAAAAA+efVkfKBAwfme92xY8d6swkAAAAAAIo9r0L5999/rzVr1uj06dO6+uqrJUmbN2+Wv7+/brjhBvd6LpercLoEAAAAAKAY8iqUd+rUSREREZoyZYrKlSsnSTp48KAefPBB3XzzzRo0aFChNgkAAAAAQHHk1XfKx4wZoxEjRrgDuSSVK1dOL7/8MmdfBwAAAAAgn7wK5YcPH9aePXtyjO/du1dHjhy56KYAAAAAACgJvArlXbp00YMPPqgPP/xQO3fu1M6dO/Xhhx/q4YcfVteuXQu7RwAAAAAAiiWvvlM+YcIEPfPMM7r//vt16tSpMzcUEKCHH35Yo0ePLtQGAQDwFbGDU3IdT01OLOJOAABAceFVKA8LC9M///lPjR49Wr/88ovMTDVq1FB4eHhh9wcAAAAAQLHl1cfXs+3evVu7d+9WrVq1FB4eLjMrrL4AAAAAACj2vArl+/fvV+vWrVWrVi117NhRu3fvliT16dOHn0MDAAAAACCfvArlTz/9tAIDA7V9+3aFhYW5x++9914tWLCg0JoDAAAAAKA48+o75Z999pk+/fRTValSxWO8Zs2a2rZtW6E0BgAAAABAcefVkfL09HSPI+TZfv/9dwUHB190UwAAAAAAlARehfIWLVro3XffdV93uVzKysrS6NGj1apVq0JrDgAAAACA4syrj6+PHj1aCQkJWrVqlU6ePKlnn31WGzdu1IEDB/T1118Xdo8AAAAAABRLXh0pr1OnjtavX68bb7xRbdq0UXp6urp27arvv/9eV111VWH3CAAAAABAsVTgI+WnTp1S27ZtNXHiRA0bNuxS9AQAAAAAQIlQ4CPlgYGB+uGHH+RyuS5FPwAAAAAAlBhefXy9Z8+emjRpUmH3AgAAAABAieLVid5Onjypf/3rX1q4cKEaNWqk8PBwj+Vjx44tlOYAAAAAACjOChTKf/31V8XGxuqHH37QDTfcIEnavHmzxzp8rB0AAAAAgPwp0MfXa9asqd9//11LlizRkiVLVLFiRc2YMcN9fcmSJVq8eHG+b2/EiBFq3LixIiIiVLFiRd1xxx3atGmTxzpmpqSkJMXExCg0NFQJCQnauHFjQdoGAAAAAMAnFSiUm5nH9fnz5ys9Pd3rjS9dulT9+vXTN998o4ULF+r06dNq27atx22OGjVKY8eO1RtvvKGVK1cqOjpabdq00ZEjR7zeLgAAAAAAvsCr75RnOzekF9SCBQs8rk+ePFkVK1bU6tWr1aJFC5mZxo0bpyFDhqhr166SpClTpigqKkrTpk3TY489dlHbBwAAAADASQU6Uu5yuXJ8Z7wwv0N+6NAhSVL58uUlSVu3blVaWpratm3rXic4OFgtW7bU8uXLc72NjIwMHT582OMCAAAAAIAvKtCRcjNT7969FRwcLEk6ceKEHn/88RxnX581a1aBGzEzDRw4UM2bN1e9evUkSWlpaZKkqKgoj3WjoqK0bdu2XG9nxIgRGjZsWIG3DwA4v9jBKXkuS01OLMJOAAAAio8ChfJevXp5XL///vsLrZEnn3xS69ev11dffZVj2blH480szyP0zz//vAYOHOi+fvjwYVWtWrXQ+gQAAAAAoLAUKJRPnjz5kjTxpz/9SR9//LGWLVumKlWquMejo6MlnTliXqlSJff43r17cxw9zxYcHOw+kg8AAAAAgC8r0HfKC5uZ6cknn9SsWbO0ePFixcXFeSyPi4tTdHS0Fi5c6B47efKkli5dqvj4+KJuFwAAAACAQnVRZ1+/WP369dO0adM0d+5cRUREuL9DXqZMGYWGhsrlcmnAgAEaPny4atasqZo1a2r48OEKCwtT9+7dnWwdAAAAAICL5mgoHz9+vCQpISHBY3zy5Mnq3bu3JOnZZ5/V8ePH1bdvXx08eFBNmjTRZ599poiIiCLuFgAAAACAwuVoKM/P75y7XC4lJSUpKSnp0jcEAAAAAEARcvQ75QAAAAAAlGSEcgAAAAAAHEIoBwAAAADAIY5+pxwA4Cl2cEqey1KTE4uwEwDIyZs5inkNAM6PI+UAAAAAADiEUA4AAAAAgEMI5QAAAAAAOIRQDgAAAACAQwjlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADiEUA4AAAAAgEMI5QAAAAAAOCTA6QYAoLiKHZyS57LU5MQi7AQAAAC+iiPlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADiEUA4AAAAAgEMI5QAAAAAAOIRQDgAAAACAQwjlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADgkwOkGAOByETs4Jdfx1OTEIu4EAAoH8xoAOI8j5QAAAAAAOIRQDgAAAACAQwjlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADiEUA4AAAAAgEMI5QAAAAAAOIRQDgAAAACAQwKcbgAAnBA7OCXX8dTkxCLuBABwrrzmaIl5GkDxw5FyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABwS4HQDAAAAAC5e7OCUXMdTkxOLuBMABcGRcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcEuB0AwBwsWIHp+Q6npqcWMSdAAAuJ3n9+yHxbwiAosORcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcEuB0AwBwttjBKbmOpyYnFnEnAAAUDm/+bePfQ6Dk4Eg5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOCQAKcbAAAAAC4XsYNTch1PTU4s4k4AFBccKQcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIQFONwAUtdjBKXkuS01OLMJOir+8HmseZwAAAOAMjpQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEdD+bJly9SpUyfFxMTI5XJpzpw5HsvNTElJSYqJiVFoaKgSEhK0ceNGZ5oFAAAAAKCQORrK09PTdd111+mNN97IdfmoUaM0duxYvfHGG1q5cqWio6PVpk0bHTlypIg7BQAAAACg8Dn6O+UdOnRQhw4dcl1mZho3bpyGDBmirl27SpKmTJmiqKgoTZs2TY899lhRtgoAAAAAQKHz2e+Ub926VWlpaWrbtq17LDg4WC1bttTy5cvzrMvIyNDhw4c9LgAAAAAA+CJHj5SfT1pamiQpKirKYzwqKkrbtm3Ls27EiBEaNmzYJe0NyI/YwSl5LktNTizCTnLKqzen+wIAAABKGp89Up7N5XJ5XDezHGNne/7553Xo0CH3ZceOHZe6RQAAAAAAvOKzR8qjo6MlnTliXqlSJff43r17cxw9P1twcLCCg4MveX8AAAAAAFwsnz1SHhcXp+joaC1cuNA9dvLkSS1dulTx8fEOdgYAAAAAQOFw9Ej50aNH9fPPP7uvb926VWvXrlX58uVVrVo1DRgwQMOHD1fNmjVVs2ZNDR8+XGFhYerevbuDXQMAAAAAUDgcDeWrVq1Sq1at3NcHDhwoSerVq5feeecdPfvsszp+/Lj69u2rgwcPqkmTJvrss88UERHhVMsAAAAAABQaR0N5QkKCzCzP5S6XS0lJSUpKSiq6pgAAAAAAKCI++51yAAAAAACKO0I5AAAAAAAOIZQDAAAAAOAQn/2dcgAAACC/Ygen5LksNTmxCDsBgILhSDkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADglwugEA/xM7OCXPZanJiYVWAwAAUJTyer/CexWAI+UAAAAAADiGUA4AAAAAgEMI5QAAAAAAOIRQDgAAAACAQwjlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADiEUA4AAAAAgEMCnG4AwOUhdnBKruOpyYlF3AkAACgs3vz7XtLfE+R1/6WS8xigcHGkHAAAAAAAhxDKAQAAAABwCKEcAAAAAACHEMoBAAAAAHAIoRwAAAAAAIcQygEAAAAAcAihHAAAAAAAhxDKAQAAAABwCKEcAAAAAACHBDjdAHA5iB2ckuey1OTEIuwEAAAAQHHCkXIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHBLgdAO4PMQOTsl1PDU5sYg7AQAAAIDigyPlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADiEUA4AAAAAgEMI5QAAAAAAOIRQDgAAAACAQwjlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADgkwOkGAAAAAOBssYNT8lyWmpx42W3Hl+X1GJSU++8LOFIOAAAAAIBDCOUAAAAAADiEUA4AAAAAgEMI5QAAAAAAOIRQDgAAAACAQwjlAAAAAAA4hFAOAAAAAIBDCOUAAAAAADgkwOkGgLPFDk7JdTw1ObFQawAAAIDipqjeF/P+u3BxpBwAAAAAAIcQygEAAAAAcAihHAAAAAAAhxDKAQAAAABwCKEcAAAAAACHEMoBAAAAAHAIoRwAAAAAAIcQygEAAAAAcAihHAAAAAAAhwQ43UBRix2ckuey1OTEQqvxRl7bOd82vKkpKr7cGwAAAIqXonrP7o3CzCBO3xcUPo6UAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4BBCOQAAAAAADiGUAwAAAADgEEI5AAAAAAAOIZQDAAAAAOCQAKcbKK5iB6fkuSw1ObEIO8kpr96c7gsAAABA8eRNBimKGm9yW2FnPY6UAwAAAADgEEI5AAAAAAAOIZQDAAAAAOAQQjkAAAAAAA4hlAMAAAAA4JDLIpT/85//VFxcnEJCQtSwYUN9+eWXTrcEAAAAAMBF8/lQPnPmTA0YMEBDhgzR999/r5tvvlkdOnTQ9u3bnW4NAAAAAICL4vOhfOzYsXr44YfVp08f1a5dW+PGjVPVqlU1fvx4p1sDAAAAAOCiBDjdwPmcPHlSq1ev1uDBgz3G27Ztq+XLl+dak5GRoYyMDPf1Q4cOSZIOHz4sScrKOJbn9rLXOZfTNXmtT413NU4/n75c4/RzU9xqnH4+fbnG6eemuNU4/Xz6co3Tz01xq3H6+fTlGqefm+JW4/Tz6cs1Tj83xa3mUj2f2f81szzXzeay/KzlkF27dqly5cr6+uuvFR8f7x4fPny4pkyZok2bNuWoSUpK0rBhw4qyTQAAAAAActixY4eqVKly3nV8+kh5NpfL5XHdzHKMZXv++ec1cOBA9/WsrCwdOHBAkZGRHjWHDx9W1apVtWPHDpUuXTpffVBDjTc1vtoXNcWvxlf7oqb41fhqX9QUvxpf7Yua4lfjq31Rc/nWmJmOHDmimJiYC96GT4fyChUqyN/fX2lpaR7je/fuVVRUVK41wcHBCg4O9hgrW7ZsntsoXbp0vh9waqi5mBpf7Yua4lfjq31RU/xqfLUvaopfja/2RU3xq/HVvqi5PGvKlCmTr1qfPtFbUFCQGjZsqIULF3qML1y40OPj7AAAAAAAXI58+ki5JA0cOFAPPPCAGjVqpKZNm+rNN9/U9u3b9fjjjzvdGgAAAAAAF8XnQ/m9996r/fv366WXXtLu3btVr149ffLJJ6pevfpF3W5wcLCGDh2a46Pu1FBT2DW+2hc1xa/GV/uipvjV+Gpf1BS/Gl/ti5riV+OrfVFTPGvO5dNnXwcAAAAAoDjz6e+UAwAAAABQnBHKAQAAAABwCKEcAAAAAACHEMoBAAAAAHAIoRwAAAAAAIf4/E+i+YLMzEz9/vvvcrlcioyMlL+//yWpKareimo7RdUbAAAAAFyuSuSR8szMTO3Zs0d79+5VZmZmnuvNnj1bzZo1U1hYmGJiYlSpUiWFhYWpWbNmmjNnTqHVFLQvX9/OxfSGkmvlypXq0aOH4uLiFBoaqrCwMMXFxalHjx5atWoVNbnU+Gpf3tYAvrx/FqcaX+0LyFbSXwfU+LZLcn+sBJk1a5bFx8dbUFCQ+fn5mZ+fnwUFBVl8fLzNnj3bY90JEyZYUFCQPf744zZ79mxbvny5ff311zZ79mx7/PHHLTg42N58882LriloX76+HW97++6776x79+4WGxtrISEhFhoaarGxsda9e3dbuXJlLs8mNcWpZvbs2RYYGGjt27e3V1991aZNm2ZTp061V1991Tp06GBBQUE2Z84cas6q8dW+vK0p6D5Dje/XFHR9X94/i1ONr/Z1tku9r1Hj2zUl/XVAjXf7TVHVXMzcdj4lJpQXNCxeddVV9q9//SvP25s0aZJdeeWVHmPe1HgTYn15O97U+PKkQE3R1NStW9dGjBhheUlOTrY6dep4jJX0Gl/ty9saX903qfGuxptt+PL+WZxqfLWvbIQrakr664Ca4rd/5keJCeUFDYshISH23//+N8/1f/rpJwsJCfEY86bGmxDry9vxpsaXJwVqiqYmODjYNm3alOf6//3vfy04ONhjrKTX+Gpf3tb46r5JjXc13mzDl/fP4lTjq31lI1xRU9JfB9QUv/0zP0pMKC9oWGzYsKENHDgwz/UHDhxoDRs29BjzpsabEOvL2/GmxpcnBWqKpqZOnTo2cuTIPNcfOXKk1a5d22OspNf4al/e1vjqvkmNdzXebMOX98/iVOOrfWUjXFFT0l8H1BS//TM/SszZ1+vWras333xTY8aMyXX5W2+9pbp167qvjxkzRomJiVqwYIHatm2rqKgouVwupaWlaeHChdq2bZs++eQTj9vwpqagffn6drypueqqqzRnzhw9++yzufY2d+5cXXnlldQU45qXXnpJ3bp109KlS3Pdbz777DPNmDHD4zZKeo2v9uVtja/um9R4V+PNNnx5/yxONb7aV7ai2Neo8e2akv46oKb47Z/5UuAYf5n64osvLDw83OrUqWMDBgywESNGWHJysg0YMMDq1q1rpUqVsmXLlnnUbN261Z599llr0aKF1apVy2rVqmUtWrSw5557zrZu3Zrrdgpa401fvrwdb2o+/PBDCwgIsI4dO9q4ceNs+vTpNmPGDBs3bpwlJiZaYGCgffTRR9QU85rly5fbvffea9WqVbOgoCALCgqyatWq2b333mvLly/Psd9Q47t9eVPjy/smNQWv8WYb3uw31HhX46t9mRXNvkaNb9eY8Too6TXFcf+8kBITys28C5jFqS9fvf9mvjspUFO0NSjZfHnfpKZo3vACZoQraoCSt3+6zMwKfnwdAAAAAABcLD+nG7hc9erVS7fccsslr/GGL2+nqHpD8fLCCy/ooYceoqYANb7al7c1gC/vn8Wpxlf7ArKV9NcBNb7N2/tDKP//ChoWK1eurOrVqxdoG97UeBNifXk73tT48qRATdHU/Pbbb0pNTS3QNkp6ja/25W2Nr+6b1HhX4802fHn/LE41vtpXNsIVNSX9dUBN8ds/JanEnH39QmJiYuTnl/+/UQwfPjzf65qZXC5XgWq87UsqWG/ZKleuXCTb8abmt99+044dO6gpwTVTpkwp0O1T47t9eVvjq/smNd7VeLMNX94/i1ONr/aVrSj2NWp8u6akvw6oKX77pyTxnfIiEBQUpHXr1ql27dpOt1Ikdu/erfHjx+urr77S7t275e/vr7i4ON1xxx3q3bu3/P39nW4RAAAAAHwCofz/27Fjh4YOHaq3337bPXb8+HGtXr1a5cuXV506dTzWP3HihD744AP17NnTPTZw4MBcb/u1117T/fffr8jISEnS2LFj8+zj4MGDmjJlirZs2aJKlSqpV69eqlq1qsc633//vcqWLau4uDhJ0vvvv6/x48dr+/btql69up588kl169bNo+ZPf/qT7rnnHt188835eDT+5/XXX9eqVauUmJioe+65R++9955GjBihrKwsde3aVS+99JICAv73gYtVq1bp1ltvVVxcnEJDQ/Xtt9+qR48eOnnypD799FPVrl1bn376qSIiIgrUB4q/9PR0TZs2TcuXL1daWppcLpeioqLUrFkz3XfffQoPDy/Q7e3Zs0cTJ07Uiy++mGPZzp07VbZsWZUqVcpj/NSpU1qxYoVatGjhMb5//36tX79e1113ncqXL6/ff/9dkyZNUkZGhu6+++58/8Htyiuv1KeffqqaNWtecN1Tp04pJSXFPRd06dLF4zHYuXOnQkJCVKFCBUnSl19+qQkTJrjngX79+qlp06YetzlmzBjdddddBf4Kybx587Rq1Sq1b99eTZs21eLFi/XKK6+454FHH300R83x48c1ffr0XP8417p16wJtHyUH84CnC80D2fejIHMB8wAuB0U1F5TUeUBiLrhYBd13LqjIzvPu49auXWt+fn7u65s2bbLq1auby+UyPz8/a9mype3atcu9PC0tzWN9MzOXy2UNGjSwhIQEj4vL5bLGjRtbQkKCtWrVyqOmUqVK9vvvv5uZ2a+//mrR0dEWHR1tbdq0sSpVqliZMmXsp59+8qi5/vrrbfHixWZm9tZbb1loaKg99dRTNn78eBswYICVKlXKJk2alKM3Pz8/q1mzpiUnJ9vu3bsv+Ji89NJLFhERYXfeeadFR0dbcnKyRUZG2ssvv2zDhw+3K664wl588UWPmmbNmllSUpL7+nvvvWdNmjQxM7MDBw5YgwYN7KmnnsqxraNHj9qbb75pvXv3tvbt21uHDh2sd+/e9tZbb9nRo0cv2Ou50tLSbNiwYbku27Fjhx05ciTH+MmTJ23p0qU5xn///XdbvHix7d+/38zM9u3bZ8nJyTZs2DD78ccf891TXFycbd68OV/rnjx50mbPnm2jRo2y9957L9fHYMeOHbZv3z739WXLlln37t2tefPm1qNHj1x/xuGVV16x1NTUfPec7eOPP7YXX3zRfZuff/65dejQwdq1a2cTJ07MtebYsWM2adIke/DBB619+/aWmJhoTz75pC1atCjHuhs3brSYmBgrW7asde7c2R599FF75JFHrHPnzla2bFmrXLmybdy4sUA9n/uaNjPbtWuXNW7c2Pz8/Mzf39969uzpsS/k9rr+9ttvrUyZMuZyuaxc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gQMHWmhoqDVv3tweeeQRa9GihQUFBXm8QLK3k9sLL1tWVpZ99tlnHmNDhgyxK664wvr06WNxcXH2/PPPW7Vq1Wz8+PE2YcIEq1q1qj399NMeNUeOHLF77rnHAgICzOVyWXx8vP3666/u5Z9++qlHsDfjjZgZE/DQoUOtTJkyNnr0aFu7dq3t3r3b0tLSbO3atTZ69GgrV65cju8BtWvXzv7617/muC/Zzn1Nm5lde+219uGHH+ZYN3s/qFatWo594JprrvH4BMt//vMf9yc/zHL/NEu2nTt32i233GLt27e33bt3X3Af6Nixo3Xp0sXKlSvn/ihithUrVlhUVJT7+o8//miRkZHWs2dP++tf/2qlSpWy+++/3/72t79Zz549LTg42CZPnuxxG35+fuedBw4dOuQ+CpKtX79+VrNmTXv55ZftxhtvtF69etk111xj8+fPtwULFti1116b46hNr169rGXLlvbTTz/Zr7/+avfee6/HUZovvvjCqlat6lHDPFC85gFv3oQxDxR8HjAr+Fzgy/OAWcHnAuYB350HzHx3Lijp84CZb88FRfmeoKCva2/2nfwoMaF82bJl7qO+uTl69Kh98cUX7uvDhw93f7wmN0888US+vi+wY8cOmzNnTp4nJEhKSvK4LFiwwGP5M888Y926dctRd/DgQXvuueesTp06FhISYkFBQVa9enXr3r27rVy5Msf6sbGx7r9K5tfp06ft5Zdftttuu839Uajp06db1apVLTIy0nr37p3n/Tp+/HiuJ0/JDW/EmIDNzJKTk93fN/Pz83P/VbNSpUo2cuTIHL3OmjXL3nvvvTzvy4EDB+ydd97xGHv22Wetbdu2ua5/6tQpu/3223PsA0lJSTZ9+vQ8t/PCCy9Y165d81yelZVlw4cPt+joaPP3989zH+jdu7fH5dw/Xj3zzDPWrl07j7Gff/7ZunXrZhEREe6/BgcGBlp8fHyunwy60B/ncnP06FHr06eP1atXzx5//HE7efKkjR492oKCgszlcllCQkKO29yzZ4/ddNNN7ucyNjbW1qxZ417+73//2/7+97971DAPFK95wNtAxjxQ8HnArGBzgS/PA2YFnwuYB3x3HjDz3bmgpM8DZr49FxTVewJvXtfe7Dv5UWJCOXybr7wRO/fFygRctG/GzM781Xz58uW2fPlyj09ZFIZTp07ZoUOH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ZcoUrVmzRjVq1FC7du104MAB9zp//vOf9corr2jlypWqWLGibr/9dp06dUqS1K9fP2VkZGjZsmXasGGDRo4cqVKlSkmSdu/erZYtW6pBgwZatWqVFixYoD179uiee+7x6GHKlCkKCAjQ119/rYkTJ6pHjx76+OOPdfToUfc6n376qdLT03XnnXdKktLT0zVw4ECtXLlSn3/+ufz8/NSlSxdlZWVJkr777jtJ0qJFi7R7927NmjXL6/svSUOGDNGYMWO0atUqBQQE6KGHHrqYhx0AAN9gAADAMUePHrXAwECbOnWqe+zkyZMWExNjo0aNsiVLlpgkmzFjhnv5/v37LTQ01GbOnGlmZtdee60lJSXlevt/+ctfrG3bth5jO3bsMEm2adMmMzNr2bKlNWjQwGOdkydPWoUKFezdd991j9133312991353lf9u7da5Jsw4YNZma2detWk2Tff/+9x3q9evWyzp075+v+m5n7MVi0aJF7nZSUFJNkx48fz7MfAAAuBxwpBwDAQb/88otOnTqlZs2auccCAwN144036qeffnKPNW3a1P3/5cuX19VXX+1e/tRTT+nll19Ws2bNNHToUK1fv9697urVq7VkyRKVKlXKfbnmmmvc287WqFEjj74CAwN19913a+rUqZLOHBWfO3euevTo4dF79+7ddeWVV6p06dLuj6tv37690O+/JNWvX9/9/5UqVZIk7d27N9/bAgDAFxHKAQBwkP3/s5C7XK4c4+eOnSt7eZ8+ffTrr7/qgQce0IYNG9SoUSO9/vrrkqSsrCx16tRJa9eu9bhs2bJFLVq0cN9WeHh4jtvv0aOHFi1apL1792rOnDkKCQlRhw4d3Ms7deqk/fv366233tK3336rb7/9VtKZE8VdivsfGBiY475nf1QeAIDLFaEcAAAH1ahRQ0FBQfrqq6/cY6dOndKqVatUu3Zt99g333zj/v+DBw9q8+bN7iPeklS1alU9/vjjmjVrlgYNGqS33npLknTDDTdo48aNio2NVY0aNTwuuQXxs8XHx6tq1aqaOXOmpk6dqrvvvtt9Vvb9+/frp59+0v/93/+pdevWql27tg4ePOhRn71uZmbmRd9/AACKK34SDQAAB4WHh+uJJ57Qn//8Z5UvX17VqlXTqFGjdOzYMT388MNat26dJOmll15SZGSkoqKiNGTIEFWoUMF9BvMBAwaoQ4cOqlWrlg4ePKjFixe7A22/fv301ltv6b777tOf//xnVahQQT///LNmzJiht956S/7+/nn25nK51L17d02YMEGbN2/WkiVL3MvKlSunyMhIvfnmm6pUqZK2b9+uwYMHe9RXrFhRoaGhWrBggapUqaKQkJAcP4d2ofsPAEBxx5FyAAAclpycrDvvvFMPPPCAbrjhBv3888/69NNPVa5cOY91+vfvr4YNG2r37t36+OOPPY5E9+vXT7Vr11b79u119dVX65///KckKSYmRl9//bUyMzPVrl071atXT/3791eZMmXk53fhtwE9evTQjz/+qMqVK3t879vPz08zZszQ6tWrVa9ePT399NMaPXq0R21AQID+/ve/a+LEiYqJiVHnzp29vv8AABRXLsv+MhcAAAAAAChSHCkHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIf8P+d1sVTI3qo4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frequency_distribution.plot(kind='bar', figsize=(12, 6))\n", + "plt.title('Frequency Distribution of Ages')\n", + "plt.xlabel('observation')\n", + "plt.ylabel('Frequency')\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Exact mean of ages: 36.56\n", + "Exact standard deviation of ages: 12.816499625976762\n" + ] + } + ], + "source": [ + "mean_age = ages['observation'].mean()\n", + "std_dev_age = ages['observation'].std()\n", + "\n", + "print(f\"Exact mean of ages: {mean_age}\")\n", + "print(f\"Exact standard deviation of ages: {std_dev_age}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Calculate the exact mean and standard deviation and compare them with your guesses. Do they fall inside the ranges you guessed?" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Exact mean of ages: 36.56\n", + "Exact standard deviation of ages: 12.82\n" + ] + } + ], + "source": [ + "# your code here\n", + "mean_age = ages['observation'].mean()\n", + "std_dev_age = ages['observation'].std()\n", + "\n", + "print(f\"Exact mean of ages: {mean_age:.2f}\")\n", + "print(f\"Exact standard deviation of ages: {std_dev_age:.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "\"\"\"\n", + "Mean Age\n", + "Guess: 30 to 45\n", + "Calculated Mean: 36.56\n", + "The calculated mean falls comfortably within our guessed range (30 to 45)\n", + "Calculated Standard Deviation: 12.82\n", + "most individuals' ages = (mean - standard deviation) to (mean + standard deviation)\n", + " = 23.74 to 49.37\n", + "68% of the data if the distribution is approximately normal. This range extends slightly beyond your initial guess but still suggests a concentration of values within estimated bounds, albeit with significant spread." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3.- Now read the file `ages_population2.csv` . Calculate the frequency distribution and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
observation
025.0
131.0
229.0
331.0
429.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 25.0\n", + "1 31.0\n", + "2 29.0\n", + "3 31.0\n", + "4 29.0" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ".# your code here\n", + "ages_population = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\ages_population2.csv')\n", + "ages_population.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "observation\n", + "19.0 3\n", + "20.0 13\n", + "21.0 17\n", + "22.0 35\n", + "23.0 41\n", + "24.0 78\n", + "25.0 98\n", + "26.0 120\n", + "27.0 125\n", + "28.0 139\n", + "29.0 115\n", + "30.0 90\n", + "31.0 61\n", + "32.0 31\n", + "33.0 22\n", + "34.0 7\n", + "35.0 3\n", + "36.0 2\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "frequency_distribution = ages_population['observation'].value_counts().sort_index()\n", + "print(frequency_distribution)" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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FAADAEABmDZtmpGU4yMjI8OsXLnSSDL33nuvy+vS0tJMyZIlTdu2bV3GMzMzTa1atcydd97pHKtXr56JiooyZ8+edY6lpqaakiVLmj9/pO3du9dIMtOmTctWpyTz0ksvOZ+3aNHClCtXzpw8edJlvaefftoEBASYEydOGGOMs/5WrVq5rPfRRx8ZSWbt2rXGGGNOnTplihcvbho0aGCysrJyfb9eeukl4+fnZ44ePeocmzdvnpFkVq1alevrjPn/93rdunW5rhMREWGqVq3qsr8/v0cff/yxkWQ2bdqU6zaOHTuW7f366/b++c9/5rrszypWrGgcDke2/TVr1swUL17cpKWlufS2d+9el/Uuvv8rV650jrVu3dpUrFgxx9r/Wne3bt2Mv7+/OXDggMt6LVu2NEFBQeb333932c/lfs65ueuuu0x4eLg5deqUc+zChQumevXqply5cs7fiYu/o6+++uolt3fRvn37jJeXl+nWrZtzrGHDhiY4ONikpqY6x7Zv324kmeeff97l9XPmzDGSTM+ePZ1jffv2NcWKFTP79+93Wfe1114zksz27duNMX/8t1CiRIkrqhMAUPCYaQcAFKiZM2dq3bp1Lo8/X7PeuXNnl/XXrFmjEydOqGfPni6z81lZWbr//vu1bt06paWlKS0tTevWrVOnTp0UEBDgfP3FWcz8OHfunJYvX66OHTsqKCjIZf+tWrXSuXPn9P3337u8pl27di7Pa9asKUnav3+/s5/U1FT169fvkndrf/LJJyVJ7733nnNs4sSJqlGjhu6999589fNnxphLLq9du7b8/Pz0xBNPaMaMGfr111/ztZ+//jwvpVq1aqpVq5bLWPfu3ZWamqqNGzfma/9XasWKFWrSpInKly/vMv7oo4/qzJkz2WbpL/dzzklaWpp++OEHPfDAAypWrJhz3NvbWw8//LAOHTp0xafY/9W0adOUlZWlXr16Ocd69eqltLQ05wy+9MdMvyR17drV5fUPPPBAtntHfPbZZ2rcuLGioqJcfvdbtmzpsq0777xTv//+ux566CEtWrRIv/32W756AADkD6EdAFCgqlatqrp167o8/qxMmTIuz48ePSrpj1Dh6+vr8hgzZoyMMTpx4oRSUlKUlZWlyMjIbPvMaexKHD9+XBcuXNCECROy7btVq1aSlC2glCpVyuW5v7+/JOns2bOSpGPHjknSZW/EFhERoQcffFCTJ09WZmamtmzZom+//VZPP/10vnr5s7S0NB0/fvySp9jfdNNNWrZsmcLDw/XUU0/ppptu0k033aQ333wzT/v668/zUi71szt+/Hie9ptXx48fz7HWi+/RX/d/uZ9zTlJSUmSMydN+rkRWVpamT5+uqKgo1alTR7///rt+//13NW3aVMHBwS6nyF/c/sUbEF7k4+OTraejR4/q008/zfa7X61aNUn//7v/8MMP6/3339f+/fvVuXNnhYeHq169ekpISMhzLwCAvON2vQCAQvXX2efSpUtLkiZMmJDrHb8jIiKcd5pPSkrKtvyvYxdn4tPT013G/xqYwsLCnLOgTz31VI77jomJuUQ32V28edvF69cvZcCAAfrggw+0aNEiLV26VCVKlFCPHj3ytL+cLFmyRJmZmZf9mrZ77rlH99xzjzIzM7V+/XpNmDBBAwcOVEREhLp163ZF+8rLd79f6md3MVDm9rO72tndUqVK5fi95hdv+Hfx9/BqhIWFycvLq8D3s2zZMucM/1+DtyR9//33+vnnn3Xrrbc6lx89elRly5Z1rnPhwoVsv/+lS5dWzZo19a9//SvH/f75oM9jjz2mxx57TGlpafrmm2/00ksvqU2bNtq5c6cqVqyY554AAFeO0A4AcKv69eurRIkS+vnnny85y+zn56c777xT8+fP16uvvuoMd6dOndKnn37qsm5ERIQCAgK0ZcsWl/FFixa5PA8KClLjxo31008/qWbNmvLz87vqfmJjYxUaGqpJkyapW7dulwy1derUUWxsrMaMGaNt27bpiSeeUHBw8FXt/8CBAxoyZIhCQ0PVt2/fK3qNt7e36tWrp1tuuUUffvihNm7cqG7dul3R7HJebN++XZs3b3Y5RX727NkKCQnR7bffLknOu6hv2bLF5XvLFy9enG17/v7+V1xbkyZNtGDBAh05csQljM6cOVNBQUEF8hVxwcHBqlevnubPn6/XXntNgYGBkv6YKZ81a5bKlSunKlWq5Hm7U6dOlZeXl+bPn6/Q0FCXZYcOHXLOhL/22mvOSyvmzZvnfE8l6eOPP852U8g2bdro888/10033aSwsLAr7rFly5Y6f/68OnTooO3btxPaAeAaI7QDANyqWLFimjBhgnr27KkTJ07ogQceUHh4uI4dO6bNmzfr2LFjevfddyVJ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1/r16+Xj46NevXpdzdsOAID7GQAAYLXTp08bX19f8+GHHzrHzp8/b6KioszYsWPNypUrjSQzd+5c5/Ljx4+bwMBAM2/ePGOMMTVq1DBxcXE5bv/FF180zZs3dxk7ePCgkWR27NhhjDGmYcOGpnbt2i7rnD9/3pQuXdrMnDnTOfbQQw+ZLl265NpLcnKykWS2bt1qjDFm7969RpL56aefXNbr2bOnad++/RX1b4xxvgfLli1zrrNkyRIjyZw9ezbXegAAsB0z7QAAWG7Pnj3KyMhQ/fr1nWO+vr6688479d///tc5dvfddzv/XbJkSd18883O5f3799crr7yi+vXr66WXXtKWLVuc627YsEErV65UsWLFnI9bbrnFue+L6tat61KXr6+vunTpog8//FDSH7PqixYtUo8ePVxq7969u2688UYVL17ceTr8gQMHCrx/SapZs6bz32XKlJEkJScnX/G+AACwDaEdAADLmf+7i7rD4cg2/texv7q4vE+fPvr111/18MMPa+vWrapbt64mTJggScrKylLbtm21adMml8euXbt07733OrcVHBycbfs9evTQsmXLlJycrIULFyogIEAtW7Z0Lm/btq2OHz+u9957Tz/88IN++OEHSX/cyO5a9O/r65ut94un4gMAUBQR2gEAsFylSpXk5+en1atXO8cyMjK0fv16Va1a1Tn2/fffO/+dkpKinTt3OmfMJal8+fL6+9//rvnz52vw4MF67733JEm33367tm/frujoaFWqVMnlkVNQ/7PY2FiVL19e8+bN04cffqguXbo47yp//Phx/fe//9U//vEPNWnSRFWrVlVKSorL6y+um5mZedX9AwDgifjKNwAALBccHKwnn3xSzz33nEqWLKkKFSpo7NixOnPmjHr37q3NmzdLkl5++WWVKlVKERERGjFihEqXLu28A/vAgQPVsmVLValSRSkpKVqxYoUz8D711FN677339NBDD+m5555T6dKltXv3bs2dO1fvvfeevL29c63N4XCoe/fumjRpknbu3KmVK1c6l4WFhalUqVKaMmWKypQpowMHDmjYsGEurw8PD1dgYKCWLl2qcuXKKSAgINvXvV2ufwAAPBkz7QAAFAGjR49W586d9fDDD+v222/X7t279eWXXyosLMxlnQEDBqhOnTpKTEzU4sWLXWayn3rqKVWtWlX333+/br75Zr3zzjuSpKioKH333XfKzMxUixYtVL16dQ0YMEChoaHy8rr8nwo9evTQzz//rLJly7pcd+7l5aW5c+dqw4YNql69up599lm9+uqrLq/18fHRW2+9pcmTJysqKkrt27fPd/8AAHgih7l4oRgAAAAAALAKM+0AAAAAAFiK0A4AAAAAgKUI7QAAAAAAWIrQDgAAAACApQjtAAAAAABYitAOAAAAAIClCO0AAAAAAFiK0A4AAAAAgKUI7QAAAAAAWIrQDgAAAACApQjtAAAAAABY6n8B9pyxZT8GfP8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frequency_distribution.plot(kind='bar', figsize=(12, 6))\n", + "plt.title('Frequency Distribution of Ages')\n", + "plt.xlabel('observation')\n", + "plt.ylabel('Frequency')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- What do you see? Is there any difference with the frequency distribution in step 1?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Comparing dice rolls to age distributions: Dice rolls generally have uniform outcomes (each outcome from 1 to 6 has an equal probability), resulting in a flat distribution over many rolls. On the other hand, a population's age distribution (ages_population.csv) illustrate a skewed or normal distribution, depending on demographic factors. The age distribution might show a peak at a certain age group and taper off towards older ages, reflecting natural population structures.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.- Calculate the mean and standard deviation. Compare the results with the mean and standard deviation in step 2. What do you think?" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Exact standard deviation of ages: 2.969813932689186\n", + "Exact mean of ages: 27.16\n" + ] + } + ], + "source": [ + "# your code here\n", + "std_dev = ages_population['observation'].std()\n", + "print(f\"Exact standard deviation of ages: {std_dev}\")\n", + "mean = ages_population['observation'].mean()\n", + "print(f\"Exact mean of ages: {mean:.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "A higher mean in ages_population.csv dataset might indicate an older population on average compared to the ages_population2.csv.\n", + "A larger standard deviation suggests a wider spread of ages around the mean, indicating more diversity in the population's ages.\n", + "A smaller(ages_population2.csv) standard deviation indicates that the ages are clustered more tightly around the mean, suggesting less age diversity.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 5\n", + "Now is the turn of `ages_population3.csv`.\n", + "\n", + "#### 1.- Read the file `ages_population3.csv`. Calculate the frequency distribution and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
observation
021.0
121.0
224.0
331.0
454.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 21.0\n", + "1 21.0\n", + "2 24.0\n", + "3 31.0\n", + "4 54.0" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population3 = pd.read_csv(r'C:\\Users\\navin\\OneDrive\\Desktop\\Ironhack\\Week 3\\Descriptive-Stats\\data\\ages_population3.csv')\n", + "ages_population3.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "observation\n", + "1.0 1\n", + "2.0 2\n", + "4.0 2\n", + "5.0 1\n", + "7.0 1\n", + " ..\n", + "73.0 6\n", + "74.0 6\n", + "75.0 2\n", + "76.0 1\n", + "77.0 2\n", + "Name: count, Length: 75, dtype: int64\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+UAAAIyCAYAAACtj2upAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABdvElEQVR4nO3de5yN9f7//+ea88E4N6eGmSmUQ1JIDjkkMiTRgVSotDuolNol/fY22m1GIu3aG7UlSmgXyp5SJFRUKIfUlso4xCDkMBjMvH5/9J31scwMM8vMupY1j/vttm61ruv9vt6va63rvWY9XWtdy2VmJgAAAAAA4HNBThcAAAAAAEBFRSgHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAnNHrr78ul8tV5O3xxx93uryAcupjHRERofj4eHXo0EGjRo3Srl27CvVJT0+Xy+Uq1TiHDx9Wenq6Fi9eXKp+RY2VkpKi6667rlTbOZO33npL48ePL3Kdy+VSenp6mY5X1j755BM1a9ZM0dHRcrlcmjt37hn7rFu3Ti6XS6GhodqxY0f5FwkA8AshThcAADh3TJkyRRdffLHHssTERIeqCWwFj/Xx48e1a9cuff755xo9erSef/55zZo1S9dcc4277cCBA9WlS5dSbf/w4cMaMWKEJKl9+/Yl7ufNWN5466239N133+mRRx4ptG758uVKSkoq9xq8ZWa65ZZbVK9ePb3//vuKjo7WRRdddMZ+//73vyVJJ06c0LRp0/Tkk0+Wd6kAAD9AKAcAlFijRo3UrFmzErU9fvy4XC6XQkL4U+ONUx/rG2+8UY8++qjatGmjXr16aePGjYqLi5MkJSUllXtIPXz4sKKionwy1plceeWVjo5/Jtu3b9fevXvVs2dPdezYsUR9cnNzNX36dF166aX67bff9NprrxHKAaCC4OPrAICztnjxYrlcLr3xxht67LHHdP755ys8PFw//fSTJGnhwoXq2LGjKleurKioKLVu3VqffPJJoe1kZmaqSZMmCg8PV2pqqp5//vlCH5fOysqSy+XS66+/Xqh/UR9r3rhxo/r27avY2FiFh4erfv36+uc//1lk/TNmzNDTTz+txMREVa5cWddcc402bNhQaJz58+erY8eOqlKliqKiolS/fn2NGjVKkvTGG2/I5XJp+fLlhfo988wzCg0N1fbt28/4mBaldu3aGjt2rA4ePKhJkya5lxf1kfJFixapffv2qlGjhiIjI1W7dm3deOONOnz4sLKysnTeeedJkkaMGOH+qPyAAQM8tvfNN9/opptuUrVq1XThhRcWO1aBOXPmqHHjxoqIiNAFF1ygf/zjHx7rCz6an5WV5bG84PEv+Ch9+/btlZmZqc2bN3t8lL9AUc/zd999px49eqhatWqKiIhQkyZNNHXq1CLHKenzXJTPP/9cHTt2VExMjKKiotSqVStlZma616enp7v/0eLJJ5+Uy+VSSkrKGbc7d+5c7dmzRwMHDlT//v31448/6vPPPy/ULjc3V4899pji4+MVFRWltm3batWqVUpJSXE/fwWys7N17733KikpSWFhYUpNTdWIESN04sQJj3YTJkzQpZdeqkqVKikmJkYXX3yxhg0bVqLHAwBw9gjlAIASy8vL04kTJzxuJ3vqqae0ZcsWTZw4UfPmzVNsbKzefPNNde7cWZUrV9bUqVP19ttvq3r16rr22ms9gvknn3yiHj16KCYmRjNnztSYMWP09ttva8qUKV7X+/3336t58+b67rvvNHbsWP33v/9Vt27d9PDDD7s/un2yYcOGafPmzfr3v/+tV155RRs3blT37t2Vl5fnbjN58mR17dpV+fn57v18+OGHtW3bNklS7969FR8fXyj4nzhxQpMmTVLPnj3P6iP/Xbt2VXBwsJYuXVpsm6ysLHXr1k1hYWF67bXXNH/+fGVkZCg6OlrHjh1TQkKC5s+fL0m6++67tXz5ci1fvlx/+ctfPLbTq1cv1alTR//5z380ceLE09a1evVqPfLII3r00Uc1Z84ctWrVSoMHD9bzzz9f6n3817/+pdatWys+Pt5dW1H/yFFgw4YNatWqldavX69//OMfmj17tho0aKABAwboueeeK9S+JM9zUZYsWaKrr75a+/fv1+TJkzVjxgzFxMSoe/fumjVrlqQ/Pt4/e/ZsSdJDDz2k5cuXa86cOWfc58mTJys8PFy33Xab7rrrLrlcLk2ePLlQuzvvvFPjx4/XnXfeqffee0833nijevbsqd9//92jXXZ2tq644gp99NFH+utf/6oPP/xQd999t0aNGqV77rnH3W7mzJl64IEH1K5dO82ZM0dz587Vo48+qpycnDPWDAAoIwYAwBlMmTLFJBV5O378uH366acmydq2bevRLycnx6pXr27du3f3WJ6Xl2eXXnqpXXHFFe5lLVq0sMTERDty5Ih72YEDB6x69ep28p+rTZs2mSSbMmVKoTol2fDhw933r732WktKSrL9+/d7tHvwwQctIiLC9u7da2bmrr9r164e7d5++22TZMuXLzczs4MHD1rlypWtTZs2lp+fX+zjNXz4cAsLC7OdO3e6l82aNcsk2ZIlS4rtZ/Z/j/WKFSuKbRMXF2f169f3GO/kx+idd94xSbZ69epit7F79+5Cj9ep2/vrX/9a7LqTJScnm8vlKjRep06drHLlypaTk+Oxb5s2bfJoV/D4f/rpp+5l3bp1s+Tk5CJrP7XuPn36WHh4uG3ZssWjXVpamkVFRdnvv//uMc6ZnufiXHnllRYbG2sHDx50Lztx4oQ1atTIkpKS3MdEwTE6ZsyY026vQFZWlgUFBVmfPn3cy9q1a2fR0dF24MAB97L169ebJHvyySc9+s+YMcMkWf/+/d3L7r33XqtUqZJt3rzZo+3zzz9vkmz9+vVm9sdcqFq1aonqBACUD86UAwBKbNq0aVqxYoXH7eTvjN94440e7ZctW6a9e/eqf//+HmfX8/Pz1aVLF61YsUI5OTnKycnRihUr1KtXL0VERLj7F5yF9MbRo0f1ySefqGfPnoqKivIYv2vXrjp69Ki+/PJLjz7XX3+9x/3GjRtLkjZv3uzenwMHDuiBBx447dXO77//fknSq6++6l728ssv65JLLlHbtm292p+Tmdlp1zdp0kRhYWH605/+pKlTp+qXX37xapxTn8/TadiwoS699FKPZX379tWBAwf0zTffeDV+SS1atEgdO3ZUrVq1PJYPGDBAhw8fLnSW/UzPc1FycnL01Vdf6aabblKlSpXcy4ODg3XHHXdo27ZtJf4I/KmmTJmi/Px83XXXXe5ld911l3Jyctxn4KU/ztRL0i233OLR/6abbip07Yb//ve/6tChgxITEz2O/bS0NI9tXXHFFfr9999166236r333tNvv/3m1T4AALxHKAcAlFj9+vXVrFkzj9vJEhISPO7v3LlT0h+hITQ01OM2evRomZn27t2rffv2KT8/X/Hx8YXGLGpZSezZs0cnTpzQSy+9VGjsrl27SlKhAFKjRg2P++Hh4ZKkI0eOSJJ2794tSWe80FlcXJx69+6tSZMmKS8vT2vXrtVnn32mBx980Kt9OVlOTo727Nlz2o/AX3jhhVq4cKFiY2M1aNAgXXjhhbrwwgv14osvlmqsU5/P0zndc7dnz55SjVtae/bsKbLWgsfo1PHP9DwXZd++fTKzUo1TEvn5+Xr99deVmJiopk2b6vfff9fvv/+ua665RtHR0R4fYS/YfsEF/gqEhIQU2qedO3dq3rx5hY79hg0bSvq/Y/+OO+7Qa6+9ps2bN+vGG29UbGysWrRooQULFpR6XwAA3uGSuACAMnPq2eOaNWtKkl566aVir5gdFxfnvlJ7dnZ2ofWnLis4k56bm+ux/NRAVK1aNfdZzEGDBhU5dmpq6mn2prCCi6MVfH/8dAYPHqw33nhD7733nubPn6+qVavqtttuK9V4RcnMzFReXt4Zf8bsqquu0lVXXaW8vDytXLlSL730kh555BHFxcWpT58+JRqrNL99frrnriAwFvfcne3Z2Ro1ahT5u94FF9QrOA7PRrVq1RQUFFTm4yxcuNB9hv7UYC1JX375pb7//ns1aNDAvX7nzp06//zz3W1OnDhR6PivWbOmGjdurL///e9FjnvyP+rceeeduvPOO5WTk6OlS5dq+PDhuu666/Tjjz8qOTm51PsEACgdQjkAoNy0bt1aVatW1ffff3/as8RhYWG64oorNHv2bI0ZM8Yd3g4ePKh58+Z5tI2Li1NERITWrl3rsfy9997zuB8VFaUOHTro22+/VePGjRUWFnbW+9OqVStVqVJFEydOVJ8+fU4bWps2bapWrVpp9OjR+u677/SnP/1J0dHRZzX+li1b9Pjjj6tKlSq69957S9QnODhYLVq00MUXX6zp06frm2++UZ8+fUp0drg01q9frzVr1nh8hP2tt95STEyMLr/8cklyX4V87dq1Hr/b/f777xfaXnh4eIlr69ixo+bMmaPt27d7hM1p06YpKiqqTH5CLTo6Wi1atNDs2bP1/PPPKzIyUtIfZ7rffPNNJSUlqV69eqXe7uTJkxUUFKTZs2erSpUqHuu2bdvmPpP9/PPPu7/6MGvWLPdjKknvvPNOoYsuXnfddfrggw904YUXqlq1aiXex7S0NB07dkw33HCD1q9fTygHAB8glAMAyk2lSpX00ksvqX///tq7d69uuukmxcbGavfu3VqzZo12796tCRMmSJL+9re/qUuXLurUqZMee+wx5eXlafTo0YqOjtbevXvd23S5XLr99tv12muv6cILL9Sll16qr7/+Wm+99Vah8V988UW1adNGV111le6//36lpKTo4MGD+umnnzRv3jwtWrSo1PszduxYDRw4UNdcc43uuecexcXF6aefftKaNWv08ssve7QfPHiwevfuLZfLpQceeKBUY3333Xfu7wHv2rVLn332maZMmaLg4GDNmTPHfda+KBMnTtSiRYvUrVs31a5dW0ePHtVrr70mSbrmmmsk/fF9/eTkZL333nvq2LGjqlevrpo1a5bo57uKkpiYqOuvv17p6elKSEjQm2++qQULFmj06NGKioqSJDVv3lwXXXSRHn/8cZ04cULVqlXTnDlzivzpr0suuUSzZ8/WhAkT1LRpUwUFBRX6ukSB4cOHu79D/de//lXVq1fX9OnTlZmZqeeee65Q2PXWqFGj1KlTJ3Xo0EGPP/64wsLC9K9//UvfffedZsyYUapPFkh/fLrjvffe07XXXqsePXoU2eaFF17QtGnTNGrUKDVs2FC33nqrxo4dq+DgYF199dVav369xo4dqypVqigo6P++lfjMM89owYIFatWqlR5++GFddNFFOnr0qLKysvTBBx9o4sSJSkpK0j333KPIyEi1bt1aCQkJys7O1qhRo1SlShU1b978rB4vAEAJOXyhOQDAOeBMVwQvuKr1f/7znyLXL1myxLp162bVq1e30NBQO//8861bt26F2r///vvWuHFjCwsLs9q1a1tGRkaRV/vev3+/DRw40OLi4iw6Otq6d+9uWVlZRV5NfNOmTXbXXXfZ+eefb6GhoXbeeedZq1at7Nlnnz1j/cVd6f2DDz5wXx07KirKGjRoYKNHjy6037m5uRYeHm5dunQp8nEpyqlXug8LC7PY2Fhr166djRw50nbt2lWoz6mP0fLly61nz56WnJxs4eHhVqNGDWvXrp29//77Hv0WLlxol112mYWHh3tcvbtge7t37z7jWGZ/XH29W7du9s4771jDhg0tLCzMUlJSbNy4cYX6//jjj9a5c2erXLmynXfeefbQQw9ZZmZmoauv792712666SarWrWquVwujzGLep7XrVtn3bt3typVqlhYWJhdeumlhZ630j7PRfnss8/s6quvtujoaIuMjLQrr7zS5s2bV+T2znT19fHj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lrp161pGRobt2LHjtPv0zDPPWExMjN14440WHx9vGRkZVqNGDXv22Wdt5MiRdt5559lf//pXjz6tW7e29PR09/033njDWrRoYWZme/futSZNmtjDDz9caKxDhw7ZK6+8YgMGDLAuXbpYWlqaDRgwwF599VU7dOjQaes8VXZ2to0YMaLQ8q1bt9rBgwcLLT927JgtWbKk0PLffvvNFi1aZHv27DEzs927d1tGRoaNGDHCvv/++xLVkpqaaj/++GOJ2h47dszmzJljzz33nL3xxhuF9nvr1q22e/du9/2lS5da3759rU2bNnbbbbcV+gmF559/3rKysko09snef/99++tf/+re3ieffGJpaWl27bXX2qRJkwq1P3z4sE2ePNnuvPNO69Kli3Xr1s0efPBBW7hwYaG269evt8TERKtatar16NHD/vSnP9k999xjPXr0sKpVq9r5559v69evL3Gtp847M7Pt27db8+bNLSgoyIKDg61fv34ez/upc++rr76yKlWqmMvlsmrVqtnKlSstNTXV6tata3Xq1LHIyEhbtWqVxxgvvvhikbfg4GB76qmn3PcLtGzZ0vbt22dmZrt27bJLLrnEwsLCrG7duhYREWG1a9e2bdu2ebT/4IMPzMxs7ty5FhQUZNdff709+eST1rNnTwsNDbV58+Z51ORyuSw4ONiuueYamzlzpuXm5p72sZswYYKFhIRY06ZNrXLlyvbmm29aTEyMDRw40O69916LjIy08ePHe/TZuHGjJScnW40aNSwhIcFcLpd169bNWrRoYcHBwXbzzTfb8ePHPfr4Ym6blW5+l8XcNiv5/C7ruW3m3fwu7dw2q3jzu7Rz2yww5rc3c9uM+V1QA/P73JjfZvz9durvt1nZvD/3t/ldUL8v3p+fSYUJ5e+9995pby+88ILHC8UNN9xg1113ne3evds2btxo3bt3t9TUVNu8ebOZFX5hGTlypKWmptonn3ziMW5ISEiRL3Iul8t27txpZmZ9+vSx9u3bW05OjpmZHT161K677jq76aabCvVZuHChDR482GrWrGmhoaF2/fXX27x58ywvL6/QGBdccIH7x+tXr15twcHB9uabb7rXz5492+rUqePRJzIy0n7++Wf3/by8PAsNDbXs7GwzM/v4448tMTHRo095v9CX9kXeLDDeyJX2Rd6s/N/ItW/f3vr06VNk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pcwMGDBAN9xwg9NlAADgF/hJNAAAUC6ysrKUmpqqb7/9Vk2aNHEvf/HFF8WPvwAA8AdCOQAA8HDs2DGFhYWV2/arVKlSbtsGAOBcw8fXAQBwWG5urh5++GHFxsYqIiJCbdq00YoVKzzafPHFF7r00ksVERGhFi1aaN26de51mzdvVvfu3VWtWjVFR0erYcOG+uCDD9zrv//+e3Xt2lWVKlVSXFyc7rjjDv3222/u9e3bt9eDDz6oIUOGqGbNmurUqZNuvfVW9enTx6OG48ePq2bNmpoyZYokaf78+WrTpo2qVq2qGjVq6LrrrtPPP//sbp+amipJuuyyy+RyudS+fXtJhT++fqb9L/gI/yeffKJmzZopKipKrVq10oYNG7x8xAEA8B+EcgAAHPbEE0/o3Xff1dSpU/XNN9+oTp06uvbaa7V37153mz//+c96/vnntWLFCsXGxur666/X8ePHJUmDBg1Sbm6uli5dqnXr1mn06NGqVKmSJGnHjh1q166dmjRpopUrV2r+/PnauXOnbrnlFo8apk6dqpCQEH3xxReaNGmSbrvtNr3//vs6dOiQu81HH32knJwc3XjjjZKknJwcDRkyRCtWrNAnn3yioKAg9ezZU/n5+ZKkr7/+WpK0cOFC7dixQ7Nnz/Z6/yXp6aef1tixY7Vy5UqFhITorrvuOpuHHQAA/2AAAMAxhw4dstDQUJs+fbp72bFjxywxMdGee+45+/TTT02SzZw5071+z549FhkZabNmzTIzs0suucTS09OL3P5f/vIX69y5s8eyrVu3miTbsGGDmZm1a9fOmjRp4tHm2LFjVrNmTZs2bZp72a233mo333xzsfuya9cuk2Tr1q0zM7NNmzaZJPv222892vXv39969OhRov03M/djsHDhQnebzMxMk2RHjhwpth4AAM4FnCkHAMBBP//8s44fP67WrVu7l4WGhuqKK67QDz/84F7WsmVL9/9Xr15dF110kXv9ww8/rGeffVatW7fW8OHDtXbtWnfbVatW6dNPP1WlSpXct4svvtg9doFmzZp51BUaGqqbb75Z06dPl/THWfH33ntPt912m0ftffv21QUXXKDKlSu7P66+ZcuWMt9/SWrcuLH7/xMSEiRJu3btKvFYAAD4I0I5AAAOsv93FXKXy1Vo+anLTlWwfuDAgfrll190xx13aN26dWrWrJleeuklSVJ+fr66d++u1atXe9w2btyotm3burcVHR1daPu33XabFi5cqF27dmnu3LmKiIhQWlqae3337t21Z88evfrqq/rqq6/01VdfSfrjQnHlsf+hoaGF9r3go/IAAJyrCOUAADioTp06CgsL0+eff+5edvz4ca1cuVL169d3L/vyyy/d/79v3z79+OOP7jPeklSrVi3dd999mj17th577DG9+uqrkqTLL79c69evV0pKiurUqeNxKyqIn6xVq1aqVauWZs2apenTp+vmm292X5V9z549+uGHH/T//X//nzp27Kj69etr3759Hv0L2ubl5Z31/gMAEKj4STQAABwUHR2t+++/X3/+859VvXp11a5dW88995wOHz6su+++W2vWrJEkPfPMM6pRo4bi4uL09NNPq2bNmu4rmD/yyCNKS0tTvXr1tG/fPi1atMgdaAcNGqRXX31Vt956q/785z+rZs2a+umnnzRz5ky9+uqrCg4OLrY2l8ulvn37auLEifrxxx/16aefutdVq1ZNNWrU0CuvvKKEhARt2bJFQ4cO9egfGxuryMhIzZ8/X0lJSYqIiCj0c2hn2n8AAAIdZ8oBAHBYRkaGbrzxRt1xxx26/PLL9dNPP+mjjz5StWrVPNoMHjxYTZs21Y4dO/T+++97nIkeNGiQ6tevry5duuiiiy7Sv/71L0lSYmKivvjiC+Xl5enaa69Vo0aNNHjwYFWpUkVBQWd+G3Dbbbfp+++/1/nnn+/xve+goCDNnDlTq1atUqNGjfToo49qzJgxHn1DQkL0j3/8Q5MmTVJiYqJ69Ojh9f4DABCoXFbwZS4AAAAAAOBTnCkHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIYRyAAAAAAAcQigHAAAAAMAhhHIAAAAAABxCKAcAAAAAwCGEcgAAAAAAHEIoBwAAAADAIf8/S0i3wtzyznIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frequency_distribution = ages_population3['observation'].value_counts().sort_index()\n", + "print(frequency_distribution)\n", + "frequency_distribution.plot(kind='bar', figsize=(12, 6))\n", + "plt.title('Frequency Distribution of Ages')\n", + "plt.xlabel('observation')\n", + "plt.ylabel('Frequency')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Calculate the mean and standard deviation. Compare the results with the plot in step 1. What is happening?" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Exact mean of ages: 41.989\n", + "Exact standard deviation of ages: 16.144705959865934\n" + ] + } + ], + "source": [ + "# your code here\n", + "mean_age3 = ages_population3['observation'].mean()\n", + "std_dev_age3 = ages_population3['observation'].std()\n", + "\n", + "print(f\"Exact mean of ages: {mean_age3}\")\n", + "print(f\"Exact standard deviation of ages: {std_dev_age3}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"\"\"\n", + "your comments here\n", + "In the plot step 1 frequecy distribution of older age was less as compared to the current. Also the mean and Standared deviation is higher as compared to ages_population1\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Calculate the four quartiles. Use the results to explain your reasoning for question in step 2. How much of a difference is there between the median and the mean?" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Quartiles: Q1=30.0, Q2=40.0(Median), Q3=53.0, Q4(Maximum Age)=77.0\n", + "Mean Age: 41.989\n", + "Median Age: 40.0\n", + "Diffrence between the Median and the Mean: 1.9889999999999972\n" + ] + } + ], + "source": [ + "# your code here\n", + "Q1 = ages_population3['observation'].quantile(0.25)\n", + "Q2 = ages_population3['observation'].quantile(0.5)\n", + "Q3 = ages_population3['observation'].quantile(0.75)\n", + "Q4 = ages_population3['observation'].max()\n", + "median_age3 = ages_population3['observation'].median()\n", + "print(f\"Quartiles: Q1={Q1}, Q2={Q2}(Median), Q3={Q3}, Q4(Maximum Age)={Q4}\")\n", + "print(f\"Mean Age: {mean_age3}\")\n", + "print(f\"Median Age: {median_age3}\")\n", + "diffrence = mean_age3 - median_age3\n", + "print(f\"Diffrence between the Median and the Mean: {diffrence}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "In this case the data is symmetrically distributed\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " 4.- Calculate other percentiles that might be useful to give more arguments to your reasoning." + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Additional Percentiles:\n", + "0.1 22.0\n", + "0.2 28.0\n", + "0.8 57.0\n", + "0.9 67.0\n", + "Name: observation, dtype: float64\n" + ] + } + ], + "source": [ + "# your code here\n", + "percentiles_to_obtain = [0.1, 0.2, 0.8, 0.9]\n", + "\n", + "# Calculating the additional percentil\n", + "additional_percentiles = ages_population3['observation'].quantile(percentiles_to_obtain)\n", + "\n", + "print(\"Additional Percentiles:\")\n", + "print(additional_percentiles)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "The calculation of these additional percentiles offers granular insights into the distribution tails. \n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Bonus challenge\n", + "Compare the information about the three neighbourhoods. Prepare a report about the three of them. Remember to find out which are their similarities and their differences backing your arguments in basic statistics." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}