diff --git a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb new file mode 100644 index 0000000..f58187d --- /dev/null +++ b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb @@ -0,0 +1,1893 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Understanding Descriptive Statistics\n", + "\n", + "Import the necessary libraries here:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy import stats\n", + "from random import choices\n", + "import pandas as pd" + ] + }, + { + "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": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Roll Result\n", + "0 1 3\n", + "1 2 1\n", + "2 3 5\n", + "3 4 3\n", + "4 5 4\n", + "5 6 6\n", + "6 7 3\n", + "7 8 3\n", + "8 9 5\n", + "9 10 3\n" + ] + } + ], + "source": [ + "def simulate_dice_rolls():\n", + " # Simulate rolling a dice 10 times\n", + " rolls = choices(range(1, 7), k=10)\n", + " \n", + " # Create a dataframe from the simulated data\n", + " df = pd.DataFrame({'Roll': range(1, 11), 'Result': rolls})\n", + " \n", + " return df\n", + "\n", + "# Call the function and print the dataframe\n", + "dice_rolls_df = simulate_dice_rolls()\n", + "print(dice_rolls_df) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Results Sorted by Value')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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u5sOHTr49RszZowJDQ012dnZ53yd7OxsU7duXXPjjTf6tV9++eUmOjrat8+cKS8vzxw5csTUqVPHPPfcc772DRs2FFq/4u5Lr732mpFk/vGPf/j127Ztm5Fk5s2bd851Acobp36Ac7jyyisVFBSkkJAQ9enTR/Xr19fatWsVGHjyYOT333+v7777TsOGDZMk5eXl+aZ+/fopPT1de/bskSR17txZ69ev12OPPaaNGzfq+PHjFbIOLVq0UP369TV58mQtWLDgrIM4i9KpUyd9//33SkpK0tSpU9WlSxd99NFHuvPOO3XjjTfKGCNJ+vjjj1WnTh3deuutfs8/dTTpo48+8mu/5pprVL9+/WLVkJOTo48++kg33XSTateuXeg9zsnJ0ZYtWySdPLrVpk0btW/f3m8Zt99+e7HXWZJve54yePBgBQYGasOGDb628ePHKzk5Wf/6178kSVlZWVq+fLlGjBihunXrnnP5devW1eDBg/XPf/7Tdxpx9+7d2r59u0aOHOk7rXbkyBFNnjxZLVq0UGBgoAIDA1W3bl0dPXpU3377bYnW6Wzeeecd1atXTwMGDPB7bzt06KCIiIgqPbgZlQNBBTiHV199Vdu2bdPHH3+s++67T99++62GDh3qm3/qS+bhhx9WUFCQ33T//fdLku9S1+eff16TJ0/WmjVr1LNnT4WFhWnQoEHlfrmzx+PRpk2b1KFDB02dOlVt2rRRVFSU4uPjdeLEifM+PygoSNdff72efPJJvffee0pLS1OPHj30zjvvaP369ZKkzMxMRUREFDotFB4ersDAwEKnt8427qUomZmZysvL0wsvvFDoPe7Xr5+k//8en6rjTEW1ncuZ/QMDA9WgQQO/9Rg4cKCaNWvmO82zbNkyHT16VGPHji3Wa4waNUp5eXlavny5pJODaF0ul98g7dtvv11z587VPffco/fee09bt27Vtm3b1LBhwzILur/88osOHz6smjVrFnp/MzIyyu1SbaC4GKMCnENsbKxvAG3Pnj2Vn5+vxYsX63//93916623+sYITJkyRTfffHORy2jVqpUkqU6dOkpISFBCQoJ++eUX39GVAQMG6LvvvpMkBQcHy+v1FlrGH/2yuPTSS7V69WoZY/T1119r2bJleuKJJ1SrVi099thjJVpWgwYNNGHCBG3cuFG7d+9Wv3791KBBA33xxRcyxviFlYMHDyovL6/QWIqixrmcTf369RUQEKA77rjjrCEgJibGV1tGRkah+UW1nUtGRoYuvPBC3+O8vDxlZmaqQYMGvrYaNWpo7Nixmjp1qmbPnq158+bp2muv9W3v8+natatiY2O1dOlSjR8/XitWrNA111zjWxev16t33nlH8fHxftsoNzdXhw4dOu/yi7svXXDBBWrQoIGSkpKKXE5ISEix1gcoLxxRAUrg6aefVv369fXXv/5VBQUFatWqlVq2bKmdO3cqLi6uyKmoD/pGjRpp5MiRGjp0qPbs2eO7eqRZs2bau3ev35UymZmZ+uyzz85bm9vtlqRz/kvb5XKpffv2+tvf/qZ69eppx44dZ+174sSJsw70PXXaISoqSpJ07bXX6siRI1qzZo1fv1dffdU3v7T1165dWz179tRXX32ldu3aFfkenwoQPXv21DfffKOdO3f6LWPVqlXnff3TrVy50u/xG2+8oby8vEJX0dxzzz2qWbOmhg0bpj179pR40O7dd9+tlJQU/eUvf9Gvv/6qu+++2zfP5XLJGON7X05ZvHix8vPzz7vs4u5L/fv3V2ZmpvLz84t8b4sbvIDywhEVoATq16+vKVOm6NFHH9WqVas0fPhwvfTSS+rbt6+uv/56jRw5UhdeeKEOHTqkb7/9Vjt27NDf//53SdIVV1yh/v37q127dqpfv76+/fZbLV++XF26dFHt2rUlSXfccYdeeuklDR8+XPfee68yMzP19NNPKzQ09Ly1tW3bVpK0cOFChYSEKDg4WDExMfr88881b948DRo0SBdddJGMMXrzzTd1+PBh9e7d+6zL83q9atasmW677Tb16tVL0dHROnLkiDZu3KjnnntOsbGxvqNId955p1588UWNGDFC+/fv16WXXqpPP/1UM2bMUL9+/dSrV6/z1h8SEqKmTZtq7dq1uvbaaxUWFqYLLrhAzZo103PPPadu3brpT3/6k8aMGaNmzZopOztb33//vdatW6ePP/5YkjRhwgQtWbJEN9xwg+/GdCtXrvQdsSquN998U4GBgerdu7fvqp/27dtr8ODBfv3q1aunO++8U/Pnz1fTpk01YMCAEr3OnXfeqalTp+qZZ55RvXr1/I7KhYaG6uqrr9Yzzzzjex82bdqkl19+WfXq1Tvvsou7Lw0ZMkQrV65Uv379NH78eHXu3FlBQUH66aeftGHDBg0cOFA33XRTidYLKFOODuUFLHXqqp9t27YVmnf8+HHTpEkT07JlS5OXl2eMMWbnzp1m8ODBJjw83AQFBZmIiAhzzTXXmAULFvie99hjj5m4uDhTv35943a7zUUXXWQmTpxofvvtN7/lv/LKKyY2NtYEBweb1q1bm9dff71YV/0YY8ycOXNMTEyMCQgIMJLM0qVLzXfffWeGDh1qmjdvbmrVqmU8Ho/p3LmzWbZs2Tnfg9zcXDNr1izTt29f06RJE+N2u01wcLCJjY01jz76qMnMzPTrn5mZaUaPHm0iIyNNYGCgadq0qZkyZYrJyckpVPfYsWOLfM0PP/zQdOzY0bjdbiPJjBgxwjcvNTXV3H333ebCCy80QUFBpmHDhqZr165m+vTpfstISUkxvXv3NsHBwSYsLMyMGjXKrF27tkRX/Wzfvt0MGDDA1K1b14SEhJihQ4eaX375pcjnbNy40UgyTz311DmXfTY33XSTkWTuv//+QvN++uknc8stt5j69eubkJAQ06dPH7N7927TtGlTv/emqKt+jCn+vnTixAkza9Ys0759exMcHGzq1q1rLrnkEnPfffeZffv2lWq9gLLiMub/hu0DAErsoYce0vz585WWluY3hgVA2eDUDwCUwpYtW7R3717NmzdP9913HyEFKCccUQGAUnC5XKpdu7b69eunpUuXnvfeKQBKhyMqAFAK/BsPqBhcngwAAKxFUAEAANYiqAAAAGtV6jEqBQUF+vnnnxUSElKiW3IDAADnGGOUnZ2tqKgo349wnk2lDio///yzoqOjnS4DAACUQlpamho3bnzOPpU6qJz6DZW0tLRi3WIcAAA4LysrS9HR0cX60ctKHVROne4JDQ0lqAAAUMkUZ9gGg2kBAIC1CCoAAMBaBBUAAGAtggoAALAWQQUAAFiLoAIAAKxFUAEAANYiqAAAAGsRVAAAgLUq9Z1pAaC08guMtqYe0sHsHIWHBKtzTJgCavDjpoBtHA8q//nPfzR58mStX79ex48f18UXX6yXX35Zl19+udOlAaiiknanK2FditK9Ob62SE+w4ge0Vp+2kQ5WBuBMjp76+f3333XVVVcpKChI69evV0pKimbPnq169eo5WRaAKixpd7rGrNjhF1IkKcObozErdihpd7pDlQEoiqNHVGbOnKno6GgtXbrU19asWTPnCgJQpeUX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urRq4ejRo2rfvr3mzp1b5Pynn35azz77rObOnatt27YpIiJCvXv39v3eXnnj8uRq4Ndff1V4eLg2bdqkq6++2ulyqq0jR47osssu07x58zR9+nR16NBBc+bMcbqsaumxxx7Tv/71L33yySdOlwJJ/fv3V6NGjfTyyy/72m655RbVrl1by5cvd7Cy6sflcumtt97SoEGDJJ08mhIVFaUJEyZo8uTJkqTc3Fw1atRIM2fO1H333VfuNXFEpRrwer2SpLCwMIcrqd7Gjh2rG264Qb169XK6lGrv7bffVlxcnG677TaFh4erY8eOWrRokdNlVVvdunXTRx99pL1790qSdu7cqU8//VT9+vVzuDKkpqYqIyND1113na/N7Xare/fu+uyzzyqkhkr9o4Q4P2OMJk2apG7duqlt27ZOl1NtrV69Wjt27NC2bducLgWSfvjhB82fP1+TJk3S1KlTtXXrVj344INyu9268847nS6v2pk8ebK8Xq8uueQSBQQEKD8/X08++aSGDh3qdGnVXkZGhiSpUaNGfu2NGjXSgQMHKqQGgkoVN27cOH399df69NNPnS6l2kpLS9P48eP1/vvvKzg42OlyIKmgoEBxcXGaMWOGJKljx4765ptvNH/+fIKKA15//XWtWLFCq1atUps2bZScnKwJEyYoKipKI0aMcLo86OQpodMZYwq1lReCShX2wAMP6O2339bmzZvVuHFjp8uptrZv366DBw/q8ssv97Xl5+dr8+bNmjt3rnJzcxUQEOBghdVPZGSkWrdu7dcWGxurf/zjHw5VVL098sgjeuyxxzRkyBBJ0qWXXqoDBw4oMTGRoOKwiIgISSePrERGRvraDx48WOgoS3lhjEoVZIzRuHHj9Oabb+rjjz9WTEyM0yVVa9dee6127dql5ORk3xQXF6dhw4YpOTmZkOKAq666qtAl+3v37lXTpk0dqqh6O3bsmGrU8P86CggI4PJkC8TExCgiIkIffPCBr+2///2vNm3apK5du1ZIDRxRqYLGjh2rVatWae3atQoJCfGdY/R4PKpVq5bD1VU/ISEhhcYH1alTRw0aNGDckEMmTpyorl27asaMGRo8eLC2bt2qhQsXauHChU6XVi0NGDBATz75pJo0aaI2bdroq6++0rPPPqu7777b6dKqhSNHjuj777/3PU5NTVVycrLCwsLUpEkTTZgwQTNmzFDLli3VsmVLzZgxQ7Vr19btt99eMQUaVDmSipyWLl3qdGn4P927dzfjx493uoxqbd26daZt27bG7XabSy65xCxcuNDpkqqtrKwsM378eNOkSRMTHBxsLrroIvP444+b3Nxcp0urFjZs2FDkd8aIESOMMcYUFBSY+Ph4ExERYdxut7n66qvNrl27Kqw+7qMCAACsxRgVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgAAABrEVQAAIC1CCoAqoWRI0dq0KBBTpcBoIQIKgDKzMiRI+VyueRyuRQYGKgmTZpozJgx+v33350uDUAlRVABUKb69Omj9PR07d+/X4sXL9a6det0//33O10WgEqKoAKgTLndbkVERKhx48a67rrr9Oc//1nvv/++JKmgoEBPPPGEGjduLLfbrQ4dOigpKcn33I0bN8rlcunw4cO+tuTkZLlcLu3fv1+StGzZMtWrV0/vvfeeYmNjVbduXV84OiU/P1+TJk1SvXr11KBBAz366KPi10KAyomgAqDc/PDDD0pKSlJQUJAk6bnnntPs2bM1a9Ysff3117r++ut14403at++fSVa7rFjxzRr1iwtX75cmzdv1o8//qiHH37YN3/27NlasmSJXn75ZX366ac6dOiQ3nrrrTJdNwAVg6ACoEy98847qlu3rmrVqqXmzZsrJSVFkydPliTNmjVLkydP1pAhQ9SqVSvNnDlTHTp00Jw5c0r0GidOnNCCBQsUFxenyy67TOPGjdNHH33kmz9nzhxNmTJFt9xyi2JjY7VgwQJ5PJ6yXE0AFSTQ6QIAVC09e/bU/PnzdezYMS1evFh79+7VAw88oKysLP3888+66qqr/PpfddVV2rlzZ4leo3bt2mrevLnvcWRkpA4ePChJ8nq9Sk9PV5cuXXzzAwMDFRcXx+kfoBLiiAqAMlWnTh21aNFC7dq10/PPP6/c3FwlJCT45rtcLr/+xhhfW40aNXxtp5w4caLQa5w6lXT6MgkhQNVEUAFQruLj4zVr1iwdOXJEUVFR+vTTT/3mf/bZZ4qNjZUkNWzYUJL8BsYmJyeX6PU8Ho8iIyO1ZcsWX1teXp62b99eyjUA4CRO/QAoVz169FCbNm00Y8YMPfLII4qPj1fz5s3VoUMHLV26VMnJyVq5cqUkqUWLFoqOjta0adM0ffp07du3T7Nnzy7xa44fP15PPfWUWrZsqdjYWD377LN+VxIBqDwIKgDK3aRJk3TXXXdp7969ysrK0kMPPaSDBw+qdevWevvtt9WyZUtJJ0/pvPbaaxozZozat2+vTp06afr06brttttK9HoPPfSQ0tPTNXLkSNWoUUN33323brrpJnm93vJYPQDlyGU4sQsAACzFGBUAAGAtggoAALAWQQUAAFiLoAIAAKxFUAEAANYiqAAAAGsRVAAAgLUIKgAAwFoEFQAAYC2CCgAAsBZBBQAAWIugAgAArPX/AAptzsr2qUP6AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(dice_rolls_df['Roll'], dice_rolls_df['Result'],'o')\n", + "plt.xlabel('Round')\n", + "plt.ylabel('Result')\n", + "plt.title('Results Sorted by Value')" + ] + }, + { + "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": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# We can see the frequency in both" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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kg4fPuz+PLm5uRo9erTXEzhXe/LJJyVJ8+fPd6+bNWuWmjdvro4dO153v996He655x7t2rVLo0eP1po1a5Sbm3vTfa4VHx+vBg0a3PL2jz32mMe1iImJUWJiotavX1/scxfHV199pZ9//tnrdlTt2rV1//33e91adDgcXtcwPj7e/WcLmIZbP4APGjdufMPJtNc+kVF4u2LgwIHX3efMmTNyOBwqKChQjRo1vN4vat2tOH36tK5cuaKZM2dq5syZRW5z6tQpj+UqVap4LDudTkm/TiiVpJMnT0qSatWqdcNzV69eXUlJSZo7d65efPFF7d69W19++aXmzp17w/3Onj37m67D+PHjFRoaqsWLF2vOnDkqX768OnbsqClTptzyJOjiPlVzvay7du0q1nGK6/Tp05KKzhsdHa21a9d6rAsJCfEof9Kvf76XLl0quZDAb0BRAUrAtaMMVatWlSTNnDlT9913X5H7VK9e3f2E0PHjx73ev3Zd4V82106CLPyLq1ClSpVUvnx5Pf744xozZkyR546Li7vBp/FWOF/i6NGjN9127Nixevfdd/XRRx9p9erVioyM1KBBg264T6VKlW75OhQlICBAKSkpSklJ0blz5/T5559rwoQJeuCBB5SVlaWQkJCbHuNGI0VFuV7Wq0tfcHCwcnJyvLa7tigWR+Hxs7Ozvd47duyY+2cPKK249QPcBu3atVNkZKT27Nmjtm3bFvkKCgpSaGio7rnnHi1fvtzjX7jnz5/Xxx9/7HHM6tWrKzg4WN9++63H+o8++shjOSQkRF26dNGOHTsUHx9f5LmvHUG5mcTEREVERGjOnDmyLOuG27Zp00aJiYmaMmWK/vu//1tDhw696cTU4lyHm4mMjNTAgQM1ZswYnTlzxv20zLWjRL/VkiVLPK7F4cOHtXnzZo+nfGJjY7Vv3z6Pcnn69Glt3rzZ41jFyZaQkKAKFSpo8eLFHuuPHj2qL774wj1JGyitGFEBboOKFStq5syZSk5O1pkzZzRw4EBFRUXp5MmT2rVrl06ePKnZs2dLkl555RX17NlT3bt317hx45Sfn68pU6YoNDRUZ86ccR/T4XBo8ODBevvtt1W3bl21aNFCX3/9td577z2v87/++utq3769OnTooCeffFKxsbE6f/68Dhw4oI8//lhffPFFsT/P9OnTNWLECHXr1k0jR45U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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frequency=dice_rolls_df['Result'].value_counts()\n", + "plt.xlabel('Result')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency distribution')\n", + "\n", + "plt.bar(frequency.index, frequency.values)" + ] + }, + { + "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": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.6" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def mean(list):\n", + " sum=0\n", + " observations=len(list)\n", + " for i in list:\n", + " sum+=i\n", + " mean=sum/observations\n", + " return mean\n", + "mean(dice_rolls_df['Result'])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.6" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.mean(dice_rolls_df['Result'])" + ] + }, + { + "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": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'freq {3: 5, 1: 1, 5: 2, 4: 1, 6: 1} and mean of freq 2.0'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def mean_freq (list):\n", + " dict={}\n", + " for i in list:\n", + " if i in dict.keys():\n", + " dict[i]+=1\n", + " else:\n", + " dict[i]=1\n", + " return f'freq {dict} and mean of freq {mean(dict.values())}'\n", + "\n", + "mean_freq(dice_rolls_df['Result'])" + ] + }, + { + "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": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The median of the dice rolls is: 3.0\n" + ] + } + ], + "source": [ + "def median(lst):\n", + " lst.sort()\n", + " n = len(lst)\n", + " if n % 2 == 0:\n", + " median1 = lst[n//2]\n", + " median2 = lst[n//2 - 1]\n", + " return (median1 + median2) / 2\n", + " else:\n", + " return lst[n//2]\n", + "\n", + "# Convert the 'Result' column to a list\n", + "results_list = dice_rolls_df['Result'].tolist()\n", + "\n", + "# Calculate and print the median\n", + "median_result = median(results_list)\n", + "print(f\"The median of the dice rolls is: {median_result}\")" + ] + }, + { + "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": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Roll Result\n", + "0 1 2\n", + "1 2 5\n", + "2 3 5\n", + "3 4 1\n", + "4 5 1\n", + "5 6 3\n", + "6 7 1\n", + "7 8 5\n", + "8 9 6\n", + "9 10 4\n" + ] + } + ], + "source": [ + "# Function to calculate the quartiles manually\n", + "def calculate_quartiles(df):\n", + " # Sort the results\n", + " sorted_results = sorted(df['Result'])\n", + " \n", + " # Number of data points\n", + " n = len(sorted_results)\n", + " \n", + " # Function to calculate percentile-based position (not using direct quartile methods)\n", + " def get_percentile_value(sorted_data, percentile):\n", + " pos = (percentile / 100) * (n + 1)\n", + " pos_int = int(pos) - 1 # Subtract 1 because list indexing starts from 0\n", + " return sorted_data[pos_int]\n", + " \n", + " # Calculate quartiles\n", + " Q1 = get_percentile_value(sorted_results, 25)\n", + " Q2 = get_percentile_value(sorted_results, 50) # Median\n", + " Q3 = get_percentile_value(sorted_results, 75)\n", + " Q4 = max(sorted_results) # Maximum value\n", + " \n", + " # Return the quartiles\n", + " return {'Q1': Q1, 'Q2 (Median)': Q2, 'Q3': Q3, 'Q4 (Max)': Q4}\n", + "\n", + "# Simulate dice rolls and calculate the quartiles\n", + "dice_rolls_df = simulate_dice_rolls()\n", + "quartiles = calculate_quartiles(dice_rolls_df)\n", + "\n", + "print(dice_rolls_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Calculated Quartiles: {'Q1': 1, 'Q2 (Median)': 3, 'Q3': 5, 'Q4 (Max)': 6}\n" + ] + } + ], + "source": [ + "print(\"\\nCalculated Quartiles:\", quartiles)" + ] + }, + { + "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": 12, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rollvalue
001
112
226
331
446
555
662
772
884
991
\n", + "
" + ], + "text/plain": [ + " roll value\n", + "0 0 1\n", + "1 1 2\n", + "2 2 6\n", + "3 3 1\n", + "4 4 6\n", + "5 5 5\n", + "6 6 2\n", + "7 7 2\n", + "8 8 4\n", + "9 9 1" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "dice = pd.read_csv(\"../data/roll_the_dice_hundred.csv\",index_col=0)\n", + "#../ to go one folder back for the import just like in bash\n", + "\n", + "#df_100.shape\n", + "\n", + "display(dice.head(10))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0EAAAIhCAYAAACIfrE3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPp0lEQVR4nO3deXxTVf7/8Xe60pa2LGUrICIiIIKgqAO4sI8CMihfEFAWZfy6gIDMOIp8oduwKCrOiCzOKHz9akUZlUEGkarAiKDsgjCK/gQFAaEsTQXpen5/xBRCC01Dk3vTvJ6PRx5J7rk3+dxyCH1zzj1xGGOMAAAAACBEhFldAAAAAAAEEiEIAAAAQEghBAEAAAAIKYQgAAAAACGFEAQAAAAgpBCCAAAAAIQUQhAAAACAkEIIAgAAABBSCEEAAAAAQgohCMBFW7hwoRwOhzZt2nTeffbu3SuHw6GFCxcGrrBfuetz3yIiItSoUSPde++9+vHHH0v2W716tRwOh1avXl3h91i3bp1SU1N14sSJyiv8V2+++aZat26tmJgYORwObdu2rcz93PW7b1FRUapTp446d+6sSZMm6fvvvy91jPtns3fv3kqv+0LOrtPhcCghIUGdOnXSG2+8cVGvmZqaWvL8Yv48y/LBBx+oV69eSk5OVnR0tJKTk9WlSxfNmDGjUl7/bNOmTdOSJUsq/XW9/Xvozd/pi9W+fXs1bNhQRUVF592nc+fOSkpKUn5+vlevaeXnDIDgQggCEBANGjTQ+vXr1adPH8tqWLBggdavX6+srCzdf//9euONN3TTTTfp5MmTF/3a69atU1paWqWHoCNHjmjYsGFq1qyZVqxYofXr1+uKK6644DHTpk3T+vXrtWrVKr388svq0qWLXnnlFbVq1Uqvv/66x759+vTR+vXr1aBBg0qt2xv/9V//pfXr12vdunWaN2+enE6nhg4dqszMzIDXUp558+bp1ltvVUJCgmbPnq0PPvhATz31lFq1aqV//OMflf5+/gpBdjJq1CgdOHBAH3zwQZntu3fv1rp16zRs2DBFRUUFuDoAVV2E1QUACA3R0dH6zW9+Y2kNV111lTp06CBJ6tq1q4qKipSRkaElS5bo7rvvtrS289m9e7cKCgp0zz336JZbbvHqmObNm3v8rPv166c//OEP6tGjh0aOHKm2bduqTZs2kqQ6deqoTp06fqm9PPXq1Sups2PHjurcubMuvfRSzZ8/X0OHDrWkpvOZPn26br755lKBZ9iwYSouLq609/nll18UExNTaa9nZ3fffbcee+wxvfLKK+rdu3ep9ldeeUWSdN999wW6NAAhgJEgAAFR1jSV1NRUORwO7dy5U0OGDFFiYqLq1aun++67Tzk5OR7HG2M0Z84ctWvXTjExMapZs6b+67/+S999953PNbl/AS9rmtjZli5dqo4dOyo2Nlbx8fHq2bOn1q9f73Eejz32mCSpadOmJVO8ypuGVd7rjhw5UjfeeKMk6a677pLD4VCXLl18OFOpVq1amj9/vgoLCzVr1qyS7eebDrdixQp1795diYmJio2NVatWrTR9+nSPfTZt2qR+/fqpVq1aqlatmtq3b6+33nrLp/okqUmTJqpTp45++uknj+0//PCD7rnnHtWtW1fR0dFq1aqVnn32WZ/Cx3fffafBgweXTGmrV6+eunfvft4phm5Hjx4972hZWJjnP6WnT5/WxIkT1bRpU0VFRalhw4YaPXp0qVHCSy+9VH379tU777yj9u3bq1q1akpLS5PD4dDJkyf1v//7vyV96ew/90OHDumBBx5Qo0aNFBUVpaZNmyotLU2FhYUer3/gwAENGjRI8fHxSkxM1F133aVDhw55/bOSpOPHj+vee+9VrVq1FBcXp9tvv93j71xGRoYiIiK0b9++Usfed999ql27tk6fPl3ma9esWVN33HGH3nvvPR09etSjraioSP/3f/+n6667Tm3atNG3336re++9V82bN1dsbKwaNmyo22+/XTt27Cj3HEaOHKlLL7201Hb358/ZvP2c2bp1q/r27VvSJ5OTk9WnTx/t37+/3HoA2AMhCIDlBgwYoCuuuEJvv/22nnjiCWVmZurRRx/12OeBBx7Q+PHj1aNHDy1ZskRz5szRzp071alTp1K/NHvr22+/laQLjoRkZmbqd7/7nRISEvTGG2/o5Zdf1vHjx9WlSxetXbtWkvT73/9ejzzyiCTpnXfe0fr167V+/Xpdc801F/W6kydP1osvvijpzBS3OXPm+HSuknTdddepQYMG+ve//33B/V5++WX17t1bxcXFmjdvnt577z2NHTvW4xe8VatWqXPnzjpx4oTmzZunf/7zn2rXrp3uuusun6/HyMnJ0bFjxzym+x05ckSdOnXSypUrlZGRoaVLl6pHjx764x//qDFjxlT4PXr37q3Nmzfr6aefVlZWlubOnav27duXO42xY8eOevvtt5WamqovvvjivNexGGPUv39/PfPMMxo2bJj+9a9/acKECfrf//1fdevWTXl5eR77b9myRY899pjGjh2rFStWaMCAAVq/fr1iYmLUu3fvkr7k/nM/dOiQrr/+en3wwQeaMmWK3n//fY0aNUrTp0/X/fffX/K6v/zyi3r06KGVK1dq+vTpWrx4serXr6+77rqrQj+vUaNGKSwsTJmZmXr++ee1YcMGdenSpeTn9cADDygiIkLz58/3OO7YsWNatGiRRo0apWrVql3w9fPz8/Xaa695bP/ggw904MABjRo1SpIr0NWuXVszZszQihUr9OKLLyoiIkI33HCDvv766wqd04V48zlz8uRJ9ezZUz/99JNefPFFZWVl6fnnn9cll1yi3NzcSqsFgJ8ZALhICxYsMJLMxo0bz7vPnj17jCSzYMGCkm0pKSlGknn66ac99n344YdNtWrVTHFxsTHGmPXr1xtJ5tlnn/XYb9++fSYmJsb86U9/8qq+zz77zBQUFJjc3FyzbNkyU6dOHRMfH28OHTpkjDFm1apVRpJZtWqVMcaYoqIik5ycbNq0aWOKiopKXi83N9fUrVvXdOrUqWTbzJkzjSSzZ8+eC9ZS0dd117R48eJyX9ebfW+44QYTExNT6mfjrjs3N9ckJCSYG2+8seTnX5aWLVua9u3bm4KCAo/tffv2NQ0aNPA4r7JIMg8//LApKCgw+fn5Zvfu3aZfv34mPj7ebNq0qWS/J554wkgyn3/+ucfxDz30kHE4HObrr7/2eM2UlJRSPw/3n2d2draRZJ5//vkL1laWb7/91lx11VVGkpFkYmJiTPfu3c3s2bNNfn5+yX4rVqwos0+/+eabRpJ56aWXSrY1adLEhIeHe5yDW1xcnBkxYkSp7Q888ICpXr26+f777z22P/PMM0aS2blzpzHGmLlz5xpJ5p///KfHfvfff3+pv4dlcfeLO+64w2P7p59+aiSZP//5zyXbRowYYerWrWvy8vJKtj311FMmLCys3L8PxcXFpmnTpqZt27Ye2wcMGGBiY2NNTk5OmccVFhaa/Px807x5c/Poo4+WbC/rc2bEiBGmSZMmpV7D/fnj5u3nzKZNm4wks2TJkgueGwB7YyQIgOX69evn8bxt27Y6ffq0Dh8+LElatmyZHA6H7rnnHhUWFpbc6tevr6uvvtrr1b9+85vfKDIyUvHx8erbt6/q16+v999/X/Xq1Stz/6+//loHDhzQsGHDPKY8Va9eXQMGDNBnn32mU6dOVfh8/fW63jDGXLB93bp1cjqdevjhh0tNFXL79ttv9dVXX5VcR3X2n0nv3r118OBBr/53fs6cOYqMjFRUVJSuuOIKvf/++3rjjTd07bXXluzz8ccf68orr9T111/vcezIkSNljNHHH39c7vu41apVS82aNdPMmTP13HPPaevWrV5PqWvWrJm++OILrVmzRmlpaerRo4c2btyoMWPGqGPHjiVTvtz1jBw50uP4gQMHKi4uTh999JHH9rZt25a70MXZli1bpq5duyo5Odnj537bbbdJktasWSPJNVIXHx9f6u9WRa+1OvdauU6dOqlJkyZatWpVybZx48bp8OHDWrx4sSSpuLhYc+fOVZ8+fcqchnY2h8Ohe++9V9u3b9fmzZsluaYevvfeexowYIASEhIkufrYtGnTdOWVVyoqKkoRERGKiorSN998o//85z8VOqfz8fZz5vLLL1fNmjX1+OOPa968edq1a1elvD+AwCIEAbBc7dq1PZ5HR0dLck3pkaSffvpJxhjVq1dPkZGRHrfPPvtM2dnZXr3Pq6++qo0bN2rr1q06cOCAtm/frs6dO593f/d1CmVdC5KcnKzi4mIdP37cq/cOxOt644cfflBycvJ5248cOSJJatSo0Xn3cU8L+uMf/1jqz+Phhx+WJK/+TAYNGqSNGzdq3bp1mj9/vuLj4zV48GB98803Jfuc71oc9zmcey3JhTgcDn300Uf67W9/q6efflrXXHON6tSpo7Fjx3o1jSksLEw333yzpkyZoqVLl+rAgQO66667tHnz5pKL+I8ePaqIiIhSUywdDofq169fqt6Krsr3008/6b333iv1c2/durWkMz/3o0ePlhnu69evX6H3K2v/c8+jffv2uummm0qmbi5btkx79+71errivffeq7CwMC1YsECS9Prrrys/P79kKpwkTZgwQZMnT1b//v313nvv6fPPP9fGjRt19dVXl3xOXCxvP2cSExO1Zs0atWvXTk8++aRat26t5ORkpaSkqKCgoFJqAeB/rA4HwPaSkpLkcDj0ySeflASks5W1rSytWrUqWR3OG+5wdvDgwVJtBw4cUFhYmGrWrOn16/n7dcuzYcMGHTp0yOOXy3O5f3m/0AXeSUlJkqSJEyfqzjvvLHOfFi1alFtPnTp1Sv48OnbsqFatWumWW27Ro48+qmXLlkly/azO93M6uxZvNWnSRC+//LIk18p7b731llJTU5Wfn6958+ZV6LXi4uI0ceJEvfnmm/ryyy9L6i0sLNSRI0c8gpAxRocOHdJ1113n8RrnG207n6SkJLVt21ZTp04ts90dDmvXrq0NGzaUaq/owghl7X/o0CFdfvnlHtvGjh2rgQMHasuWLZo9e7auuOIK9ezZ06v3aNSokXr16qXMzEw9++yzWrBggS6//HLdfPPNJfu89tprGj58uKZNm+ZxbHZ2tmrUqHHB169WrVqpa7Hcx56tIp8zbdq00aJFi2SM0fbt27Vw4UKlp6crJiZGTzzxhDenDcBijAQBsL2+ffvKGKMff/xRHTp0KHVzL/dc2Vq0aKGGDRsqMzPTYxrZyZMn9fbbb5es7CaVHr2qrNetLMeOHdODDz6oyMjIUotOnK1Tp05KTEzUvHnzzjt1rkWLFmrevLm++OKLMv88OnTooPj4+ArXeNNNN2n48OH617/+VbJKXvfu3bVr1y5t2bLFY99XX31VDodDXbt2rfD7uF1xxRX6n//5H7Vp06bU65+rrCAmqWQqljt8dO/eXZJKXej/9ttv6+TJkyXt5YmOji6zL/Xt21dffvmlmjVrVubP3V1H165dlZubq6VLl3ocX9HvYDr3e6XWrVun77//vtQqhXfccYcuueQS/eEPf9CHH354wemUZRk1apSOHz+uKVOmaNu2bbr33ns9jnc4HKWCyb/+9S+PLzs+n0svvVSHDx/2WEAlPz+/1PcT+fI543A4dPXVV2vWrFmqUaNGuf0IgH0wEgSg0nz88celllqWVOZ3gFRE586d9d///d+69957tWnTJt18882Ki4vTwYMHtXbtWrVp00YPPfTQRb1HWcLCwvT000/r7rvvVt++ffXAAw8oLy9PM2fO1IkTJzRjxoySfd2/IP3lL3/RiBEjFBkZqRYtWpQZBiryur745ptv9Nlnn6m4uFhHjx7V559/rpdffllOp1OvvvpqydSpslSvXl3PPvusfv/736tHjx66//77Va9ePX377bf64osvNHv2bEnS/Pnzddttt+m3v/2tRo4cqYYNG+rYsWP6z3/+oy1btpRcH1JRGRkZevPNNzV58mR9+OGHevTRR/Xqq6+qT58+Sk9PV5MmTfSvf/1Lc+bM0UMPPVSh62m2b9+uMWPGaODAgWrevLmioqL08ccfa/v27eX+733r1q3VvXt33XbbbWrWrJlOnz6tzz//XM8++6zq1atXMrrWs2dP/fa3v9Xjjz8up9Opzp07a/v27UpJSVH79u01bNgwr2pt06aNVq9erffee08NGjRQfHy8WrRoofT0dGVlZalTp04aO3asWrRoodOnT2vv3r1avny55s2bp0aNGmn48OGaNWuWhg8frqlTp6p58+Zavnz5eb+Y9Hw2bdqk3//+9xo4cKD27dunSZMmqWHDhiXTHt3Cw8M1evRoPf7444qLiyt1TVR5+vXrp6SkJM2cOVPh4eEaMWKER3vfvn21cOFCtWzZUm3bttXmzZs1c+bMC07bdLvrrrs0ZcoUDR48WI899phOnz6tv/71r6VW+PP2c2bZsmWaM2eO+vfvr8suu0zGGL3zzjs6ceKE16NfAGzAmvUYAFQl7pWkznfbs2fPBVeHO3LkSJmvd+7KUq+88oq54YYbTFxcnImJiTHNmjUzw4cP91hN7EL1XWj1OmNKrybmtmTJEnPDDTeYatWqmbi4ONO9e3fz6aefljp+4sSJJjk52YSFhZX5Oufy5nV9WR3OfYuIiDC1a9c2HTt2NE8++aTZu3dvqWPO97Nevny5ueWWW0xcXJyJjY01V155pXnqqac89vniiy/MoEGDTN26dU1kZKSpX7++6datm5k3b165tUoyo0ePLrPtscceM5LMmjVrjDHGfP/992bo0KGmdu3aJjIy0rRo0cLMnDmz1Ap0Kmd1uJ9++smMHDnStGzZ0sTFxZnq1aubtm3bmlmzZpnCwsIL1jt//nxz5513mssuu8zExsaaqKgo06xZM/Pggw+affv2eez7yy+/mMcff9w0adLEREZGmgYNGpiHHnrIHD9+3GO/Jk2amD59+pT5ftu2bTOdO3c2sbGxRpK55ZZbStqOHDlixo4da5o2bWoiIyNNrVq1zLXXXmsmTZpkfv7555L99u/fbwYMGGCqV69u4uPjzYABA8y6desqtDrcypUrzbBhw0yNGjVMTEyM6d27t/nmm2/KPGbv3r1GknnwwQcv+Nrn8+ijjxpJpnfv3qXajh8/bkaNGmXq1q1rYmNjzY033mg++eQTc8stt3j8bMr6nDHG1Z/btWtnYmJizGWXXWZmz55danU4t/I+Z7766iszZMgQ06xZMxMTE2MSExPN9ddfbxYuXOjTeQOwhsOYcpYKAgAAKMcLL7ygsWPH6ssvv7zgaCMA2AEhCAAA+Gzr1q3as2ePHnjgAXXu3FlLliyxuiQAKBchCAAA+OzSSy/VoUOHdNNNN+n//u//KrwMNwBYgRAEAAAAIKSwRDYAAACAkEIIAgAAABBSCEEAAAAAQkpQf1lqcXGxDhw4oPj4+Ap9MzUAAACAqsUYo9zcXCUnJyss7MJjPUEdgg4cOKDGjRtbXQYAAAAAm9i3b58aNWp0wX2COgTFx8dLcp1oQkKCpbUUFBRo5cqV6tWrlyIjIy2tBcGFvgNf0G/gC/oNfEXfgS8C3W+cTqcaN25ckhEuJKhDkHsKXEJCgi1CUGxsrBISEvhwQIXQd+AL+g18Qb+Br+g78IVV/caby2RYGAEAAABASCEEAQAAAAgphCAAAAAAIYUQBAAAACCkEIIAAAAAhBRCEAAAAICQQggCAAAAEFIIQQAAAABCCiEIAAAAQEghBAEAAAAIKYQgAAAAACGFEAQAAAAgpBCCAAAAAIQUQhAAAACAkGJ5CPrxxx91zz33qHbt2oqNjVW7du20efNmq8sCAAAIDqmpUkZG2W1du7puZcnIkLp08e3YYGkLhXO02/lnZLj6pN0ZCx07dsw0adLEjBw50nz++edmz5495sMPPzTffvutV8fn5OQYSSYnJ8fPlZYvPz/fLFmyxOTn51tdCoIMfQe+oN/AF/SbKio93RjJdV/W9gu1devm1bEefceb17VTm5fnWGXbrDj/X7cH+jOnItkgwsoA9tRTT6lx48ZasGBBybZLL73UuoIAAACCzeTJrvspU6SCAun666XXX5cWLZIGDz7TtmuXNHCgtHjxmbaBA6W6dc/f/uuxYV9+qQZNmyosM1N6663yX9dObV6eY5VtC8T533WXtGOH63l6+pk+aWMOY4yx6s2vvPJK/fa3v9X+/fu1Zs0aNWzYUA8//LDuv//+MvfPy8tTXl5eyXOn06nGjRsrOztbCQkJgSq7TAUFBcrKylLPnj0VGRlpaS0ILvQd+IJ+A1/Qb6q2sKlTFZ6WZnUZCEFGkkNSUUqKiidNKtke6M8cp9OppKQk5eTklJsNLA1B1apVkyRNmDBBAwcO1IYNGzR+/HjNnz9fw4cPL7V/amqq0sr4y52ZmanY2Fi/1wsAAGBn/e64Qw5jZCQda9XKo63WV1+52hwOHWvZstSxF2qvCm12q6eqnX9RRISW/eMfpd4zkE6dOqWhQ4d6FYIsnQ5XXFysDh06aNq0aZKk9u3ba+fOnZo7d26ZIWjixImaMGFCyXP3SFCvXr0YCULQou/AF/Qb+IJ+U7WFTZ0qx6//t+2QVGPQoJL/lQ+bOlWOtDSZqCg58vM92sprd7cVRUQovLDQ69e1U5vd6qmK5x+en6++W7daPhLkNT9fn3RBl1xyiRk1apTHtjlz5pjk5GSvjmdhBFQF9B34gn4DX9BvqjD3BekxMa77MWPOXKB+7sIJFXn+6+PClBSzZMkSU5iS4t3r2qnNy3Ossm1WnP+v7LwwgqUhaMiQIebGG2/02DZ+/HjTsWNHr44nBKEqoO/AF/Qb+IJ+U0W5f/l0BxTJmMOHK3XlMFaHC+I2Vocrk6XXBG3cuFGdOnVSWlqaBg0apA0bNuj+++/XSy+9pLvvvrvc451OpxITE72a9+dvBQUFWr58uXr37s0UA1QIfQe+oN/AF/SbKio1VQoPl+6/X2rQQHI4XKvEhYef+S6XVatKH5eRIX30kdS9e9mreZ11bKm+c6HXtVNbBc6xSrZZcf4ZGVJRkZSaGvDPnIpkA0tDkCQtW7ZMEydO1DfffKOmTZtqwoQJ510d7lyEIFQF9B34gn4DX9Bvqrjt26Wrr5bq1JEOH67Ul6bvwBd2DkGWLowgSX379lXfvn2tLgMAACC4uYNP3brW1gEEgTCrCwAAAEAlOHLEdV+njrV1AEGAEAQAAFAVMBIEeI0QBAAAUBUQggCvEYIAAACqAqbDAV4jBAEAAFQFjAQBXiMEAQAAVAWEIMBrhCAAAICqwD0djhAElIsQBAAAUBW4R4K4JggoFyEIAAAg2OXlSU6n6zEjQUC5CEEAAADBzj0VLiJCqlHD0lKAYEAIAgAACHZnT4VzOKytBQgChCAAAIBgx8pwQIUQggAAAIIdIQioEEIQAABAsHNfE8TKcIBXCEEAAADBjpEgoEIIQQAAAMGOEARUCCEIAAAg2DEdDqgQQhAAAECwYyQIqBBCEAAAQLAjBAEVQggCAAAIdkyHAyqEEAQAABDMTp6UTp1yPWYkCPAKIQgAACCYuafCVasmVa9ubS1AkCAEAQAABDP3VLi6dSWHw9pagCBBCAIAAAhm7pEgrgcCvEYIAgAACGasDAdUGCEIAAAgmJ09HQ6AVwhBAAAAwYzpcECFEYIAAACCGdPhgAojBAEAAAQzpsMBFUYIAgAACGZMhwMqjBAEAAAQzJgOB1QYIQgAACBYGUMIAnxACAIAAAhWTqdUUOB6zHQ4wGuEIAAAgGDlHgWqXl2KibG2FiCIEIIAAACCFVPhAJ8QggAAAIKVe3lspsIBFUIIAgAACFaMBAE+IQQBAAAEK0IQ4BNCEAAAQLByT4cjBAEVQggCAAAIVu6RIK4JAiqEEAQAABCsmA4H+IQQBAAAEKyYDgf4hBAEAAAQrJgOB/iEEAQAABCMioul7GzXY0aCgAohBAEAAASj48eloiLX46Qka2sBggwhCAAAIBi5p8LVqCFFRVlaChBsCEEAAADBiJXhAJ8RggAAAIIRIQjwGSEIAAAgGLmXx2ZlOKDCCEEAAADBiJEgwGeEIAAAgGBECAJ8RggCAAAIRkyHA3xGCAIAAAhGjAQBPiMEAQAABCNCEOAzQhAAAEAwck+HIwQBFUYIAgAACDaFhdLRo67HXBMEVBghCAAAINhkZ7vuHQ6pdm1rawGCECEIAAAg2LinwiUlSeHh1tYCBCFCEAAAQLBxL4rAVDjAJ4QgAACAYMPKcMBFIQQBAAAEG1aGAy4KIQgAACDYMB0OuCiEIAAAgGDDdDjgohCCAAAAgg0hCLgohCAAAIBg474miOlwgE8IQQAAAMGGkSDgohCCAAAAgg0hCLgohCAAAIBgkpcnOZ2ux0yHA3xCCAIAAAgm7uuBIiKkGjUsLQUIVoQgAACAYHL2dwSF8asc4Av+5gAAAAQT90gQ1wMBPiMEAQAABJOzR4IA+IQQBAAAEExYGQ64aJaGoNTUVDkcDo9b/fr1rSwJAAD4U2qqlJFRdlvXrq5boNoyMqQuXexTj7dt506Hy8hw/VwBeM3ykaDWrVvr4MGDJbcdO3ZYXRIAAPCX8HBpypTSwSMjQ1q92nULVNuUKfaqx9u2s6fDnX0eALwWYXkBERGM/gAAEComT3bdT5kiHT0q3XyztHixtGiRNHjwmbZdu6SBA/3fNnCga0QlkO95sW0NG7oeb9gg/fOfUnr6mZ8rAK84jDHGqjdPTU3VzJkzlZiYqOjoaN1www2aNm2aLrvssjL3z8vLU15eXslzp9Opxo0bKzs7WwkJCYEqu0wFBQXKyspSz549FRkZaWktCC70HfiCfgNf2KnfhKWmKnzaNEtrqAqKUlJUPGmS39/HTn0HwSPQ/cbpdCopKUk5OTnlZgNLQ9D777+vU6dO6YorrtBPP/2kP//5z/rqq6+0c+dO1a5du9T+qampSktLK7U9MzNTsbGxgSgZAABUguo//qjuo0dLkozDoWMtW3q01/rqKzmMCVibFe95sW1FERFa9o9/lDoPIFSdOnVKQ4cOtX8IOtfJkyfVrFkz/elPf9KECRNKtTMShKqIvgNf0G/gCzv1m7AHHlD4ggUykhzyHNEImzpV4WlpMlFRcuTn+73Nivf013n4i536DoKHnUeCLL8m6GxxcXFq06aNvvnmmzLbo6OjFR0dXWp7ZGSkbf5C2qkWBBf6DnxBv4EvLO83GRnSggWSJEenTtKttyp8yhSFuy/uT0uT0tPlmDxZysjwb9uvzwP6nv46jwCwvO8gKAWq31ToPYyNnD592jRs2NCkpaV5tX9OTo6RZHJycvxcWfny8/PNkiVLTH5+vtWlIMjQd+AL+g18YYt+k55ujGRM376u+/79PbdLrsdlHeOPtm7dAv+e/mg7d3sls0XfQdAJdL+pSDawdCToj3/8o26//XZdcsklOnz4sP785z/L6XRqxIgRVpYFAAD8pajItZqZMdKyZa5lniXXSMbHH595fDZ/tUnSRx+VvbqaFfVczHkUFQmA9ywNQfv379eQIUOUnZ2tOnXq6De/+Y0+++wzNWnSxMqyAACAv7i/1HPMGNe9+ws/JWnVqvMf54+2yZMvPI0s0PVczHkAqBBLQ9CiRYusfHsAAGAV9xd+nh2CACBAwqwuAAAAhKAjR1z37ulwABBAhCAAABB4jAQBsBAhCAAABB4hCICFCEEAACCwioqko0ddj5kOB8AChCAAABBYR4+6lsiWpKQka2sBEJIIQQAAILDcU+Fq15YiLF2oFkCIIgQBAIDAcq8Mx/VAACxCCAIAAIHlHgnieiAAFiEEAQCAwGJlOAAWIwQBAIDAYjocAIsRggAAQGAxHQ6AxQhBAAAgsJgOB8BihCAAABBYhCAAFiMEAQCAwHJfE8R0OAAWIQQBAIDAYiQIgMUIQQAAIHDy86UTJ1yPCUEALEIIAgAAgZOd7boPD5dq1rS2FgAhixAEAAACxz0VLilJCuPXEADW4NMHAAAEDtcDAbABQhAAAAgcVoYDYAOEIAAAEDiMBAGwAUIQAAAIHEIQABsgBAEAgMBxT4cjBAGwECEIAAAEjnskiGuCAFiIEAQAAAKH6XAAbIAQBAAAAofpcABsgBAEAAACh+lwAGyAEAQAAALjl1+kn392PWYkCICFCEEAACAw3FPhoqKkhARrawEQ0ghBAAAgMM6eCudwWFsLgJBGCAIAAIHBynAAbIIQBAAAAoMQBMAmCEEAACAw3NcEsTIcAIsRggAAQGAwEgTAJghBAAAgMAhBAGyCEAQAAAKD6XAAbIIQBAAAAoORIAA2QQgCAACBQQgCYBOEIAAA4H/GnJkORwgCYDFCEAAA8L+ff5ZOn3Y95pogABYjBAEAAP9zT4WLjZXi4qytBUDIIwQBAAD/YyocABshBAEAAP9zjwQxFQ6ADRCCAACA/7EyHAAbIQQBAAD/YzocABshBAEAAP9jOhwAGyEEAQAA/2M6HAAbIQQBAAD/IwQBsBFCEAAA8D/3NUFMhwNgA4QgAADgf4wEAbARQhAAAPAvY1gdDoCtEIIAAIB/nTghFRa6HjMdDoANEIIAAIB/uafCJSRI0dHW1gIAIgQBAAB/43ogADZDCAIAAP7F9UAAbIYQBAAA/Ms9EsT1QABsghAEAAD8i+lwAGyGEAQAAPyL6XAAbIYQBAAA/IvpcABshhAEAAD8i+lwAGyGEAQAAPyL6XAAbIYQBAAA/IvpcABshhAEAAD8p6hIys52PWYkCIBNEIIAAID/HD0qGeN6nJRkbS0A8CtCEAAA8B/39UC1akkREdbWAgC/IgQBAAD/YWU4ADZECAIAAP5DCAJgQ4QgAADgP+7pcKwMB8BGCEEAAMB/GAkCYEOEIAAA4D+EIAA2RAgCAAD+454ORwgCYCOEIAAA4D/ukSCuCQJgI4QgAADgP0yHA2BDtglB06dPl8Ph0Pjx460uBQBCR2qqlJFRdltGhtSly/nbu3Z13apqG+dfOed/7nS4jAxXvwMAKxkb2LBhg7n00ktN27Ztzbhx47w+Licnx0gyOTk5/ivOS/n5+WbJkiUmPz/f6lIQZOg78EWl9Zv0dGMk131Z27t1u3B7VW+rYufv0W8Ccf4pKWceHzly/v4G2+PfKvgi0P2mItkgwuoQ9vPPP+vuu+/W3/72N/35z3+2uhwACC2TJ7vup0yRCgqkG26QXntNWrRIGjxYGjjQ9T/4U6ZIu3a5ni9efKbdfWxVbati5x/25Zdq0LSpwjIzpbfe8v/5p6W57sPCpDlzpJQUKT39TL8DAIs4jDHGygJGjBihWrVqadasWerSpYvatWun559/vsx98/LylJeXV/Lc6XSqcePGys7OVkJCQoAqLltBQYGysrLUs2dPRUZGWloLggt9B76o7H4TNnWqwt2/sAKVzEhySCpKSVHxpElWlwMf8G8VfBHofuN0OpWUlKScnJxys4GlI0GLFi3Sli1btHHjRq/2nz59utLK+Ed65cqVio2NrezyfJKVlWV1CQhS9B34otL6Tfv26udwyGGMjKRjrVqV2qXWV1+52h0OHWvZMqTa7FZPMJ5/UUSElrVvLy1fXuq1ETz4twq+CFS/OXXqlNf7WhaC9u3bp3HjxmnlypWqVq2aV8dMnDhREyZMKHnuHgnq1asXI0EIWvQd+MIfI0GOXycGOCTVGDTI43/sw6ZOlSMtTSYqSo78fI/2qt5mt3outq0oIkLhhYUBP//w/Hz13bqVkaAgxb9V8IUVI0Fe8/sVSufx7rvvGkkmPDy85CbJOBwOEx4ebgoLC8t9DRZGQFVA34EvKrXfuC9Wj4933T/wgOfF6+dezH7286reVsXOvzAlxSxZssQUuhcssOr8EXT4twq+sPPCCJaFIKfTaXbs2OFx69Chg7nnnnvMjh07vHoNQhCqAvoOfFHpq8OlpRkTGel6/P33VXZ1tAq3VbHzD/jqcOdrIwgFHf6tgi/sHIIsXxjhbOUtjHAup9OpxMREry5+8reCggItX75cvXv3ZpgYFULfgS8qrd+kpkrh4dLYsVKNGq5tp05JMTGu73P56COpe/eyV/Nyfw/MqlVVs60Knn+pfmPF+WdkSEVFfFdQkOHfKvgi0P2mItmAEFRJ+HCAr+g78EWl95tvvpGuuEKqXl3Kzb3414Mt8XkDX9F34As7hyDLvyfobKtXr7a6BAAITYcPu+7r1rW2DgAAAiDM6gIAADZw5Ijrvk4da+sAACAACEEAAEaCAAAhhRAEACAEAQBCCiEIAMB0OABASCEEAQAYCQIAhBRCEACAEAQACCmEIADAmelwhCAAQAggBAEAzowEcU0QACAEEIIAINQVF0vZ2a7HjAQBAEIAIQgAQt3x41JRketxUpK1tQAAEACEIAAIde6pcDVqSFFRlpYCAEAgEIIAINSxMhwAIMQQggAg1BGCAAAhhhAEAKHOvTw2K8MBAEIEIQgAQh0jQQCAEFPhELRv3z7t37+/5PmGDRs0fvx4vfTSS5VaGAAgQAhBAIAQU+EQNHToUK1atUqSdOjQIfXs2VMbNmzQk08+qfT09EovEADgZ0yHAwCEmAqHoC+//FLXX3+9JOmtt97SVVddpXXr1ikzM1MLFy6s7PoAAP7GSBAAIMRUOAQVFBQoOjpakvThhx+qX79+kqSWLVvq4MGDlVsdAMD/CEEAgBBT4RDUunVrzZs3T5988omysrJ06623SpIOHDig2rVrV3qBAAA/YzocACDEVDgEPfXUU5o/f766dOmiIUOG6Oqrr5YkLV26tGSaHAAgSBQWSkePuh4zEgQACBERFT2gS5cuys7OltPpVM2aNUu2//d//7diY2MrtTgAgJ9lZ7vuHQ6J0XwAQIjw6XuCjDHavHmz5s+fr9zcXElSVFQUIQgAgo17KlxSkhQebm0tAAAESIVHgr7//nvdeuut+uGHH5SXl6eePXsqPj5eTz/9tE6fPq158+b5o04AgD+4F0XgeiAAQAip8EjQuHHj1KFDBx0/flwxMTEl2++44w599NFHlVocAMDPWBkOABCCKjwStHbtWn366aeKiory2N6kSRP9+OOPlVYYACAA3NPhCEEAgBBS4ZGg4uJiFRUVldq+f/9+xcfHV0pRAIAAYTocACAEVTgE9ezZU88//3zJc4fDoZ9//lkpKSnq3bt3ZdYGAPA3psMBAEJQhafDzZo1S127dtWVV16p06dPa+jQofrmm2+UlJSkN954wx81AgD8helwAIAQVOEQlJycrG3btumNN97Qli1bVFxcrFGjRunuu+/2WCgBABAEmA4HAAhBFQ5BkhQTE6P77rtP9913X2XXAwAIJKbDAQBCUIVD0KuvvnrB9uHDh/tcDAAgwAhBAIAQVOEQNG7cOI/nBQUFOnXqlKKiohQbG0sIAoBgkZcnOZ2ux0yHAwCEkAqvDnf8+HGP288//6yvv/5aN954IwsjAEAwcS+KEBEh1ahhaSkAAARShUNQWZo3b64ZM2aUGiUCANjY2YsihFXKPwcAAASFSvtXLzw8XAcOHKislwMA+Jt7JIipcACAEFPha4KWLl3q8dwYo4MHD2r27Nnq3LlzpRUGAPAzFkUAAISoCoeg/v37ezx3OByqU6eOunXrpmeffbay6gIA+BshCAAQoiocgoqLi/1RBwAg0NzT4QhBAIAQw5WwABCqzl4YAQCAEOLVSNCECRO8fsHnnnvO52IAAAHEdDgAQIjyKgRt3brVqxdzOBwXVQwAIICYDgcACFFehaBVq1b5uw4AQKAxHQ4AEKK4JggAQhXT4QAAIarCq8NJ0saNG7V48WL98MMPys/P92h75513KqUwAIAfnTwpnTrlekwIAgCEmAqPBC1atEidO3fWrl279O6776qgoEC7du3Sxx9/rMTERH/UCACobO7rgaKjperVra0FAIAAq3AImjZtmmbNmqVly5YpKipKf/nLX/Sf//xHgwYN0iWXXOKPGgEAle3sqXAsagMACDEVDkH/7//9P/Xp00eSFB0drZMnT8rhcOjRRx/VSy+9VOkFAgD8gOuBAAAhrMIhqFatWsrNzZUkNWzYUF9++aUk6cSJEzrlnl8OALA393Q4VoYDAIQgr0PQtm3bJEk33XSTsrKyJEmDBg3SuHHjdP/992vIkCHq3r27X4oEAFQyRoIAACHM69XhrrnmGrVv3179+/fXkCFDJEkTJ05UZGSk1q5dqzvvvFOTJ0/2W6EAgEpECAIAhDCvR4I+/fRTXXPNNXrmmWfUrFkz3XPPPVqzZo3+9Kc/aenSpXruuedUs2ZNf9YKAKgsTIcDAIQwr0NQx44d9be//U2HDh3S3LlztX//fvXo0UPNmjXT1KlTtX//fn/WCQCoTIwEAQBCWIUXRoiJidGIESO0evVq7d69W0OGDNH8+fPVtGlT9e7d2x81AgAqGyEIABDCKhyCztasWTM98cQTmjRpkhISEvTBBx9UVl0AAH9yT4cjBAEAQpDXCyOca82aNXrllVf09ttvKzw8XIMGDdKoUaMqszYAgD8Yc2YkiGuCAAAhqEIhaN++fVq4cKEWLlyoPXv2qFOnTnrhhRc0aNAgxcXF+atGAEBlcjql/HzXY0IQACAEeR2CevbsqVWrVqlOnToaPny47rvvPrVo0cKftQEA/ME9Fa56dSk21tpaAACwgNchKCYmRm+//bb69u2r8PBwf9YEAPAnpsIBAEKc1yFo6dKl/qwDABAorAwHAAhxF7U6HAAgCLEyHAAgxBGCACDUMB0OABDiCEEAEGqYDgcACHGEIAAINYQgAECIIwQBQKhxXxPEdDgAQIgiBAFAqGEkCAAQ4ghBABBqCEEAgBBHCAKAUFJcLGVnux4zHQ4AEKIIQQAQSo4fl4qKXI8JQQCAEEUIAoBQ4p4KV6OGFBVlaSkAAFiFEAQAocS9MhzXAwEAQhghCABCiXskiKlwAIAQRggCgFDCynAAAFgbgubOnau2bdsqISFBCQkJ6tixo95//30rSwIQCKmpUkZG2W1du7pudm/LyJC6dAm+8zh3OlxGhuvPAwCAEGJpCGrUqJFmzJihTZs2adOmTerWrZt+97vfaefOnVaWBcDfwsOlKVNKB4iMDGn1atfN7m1TpgTneZw9He7s8wAAIIREWPnmt99+u8fzqVOnau7cufrss8/UunVri6oC4HeTJ7vup0yRfvxR6tVLWrxYWrRIGjz4TNuuXdLAgfZtGzjQNaJiQT1hX36pBk2bKiwzU3rrLe9f85JLXI+3bJGWL5fS08/8eQAAECIcxhhjdRGSVFRUpMWLF2vEiBHaunWrrrzyylL75OXlKS8vr+S50+lU48aNlZ2drYSEhECWW0pBQYGysrLUs2dPRUZGWloLgkso952wRx5R+Pz5VpcRsopSUlQ8aZLVZSCAQvnzBheHvgNfBLrfOJ1OJSUlKScnp9xsYHkI2rFjhzp27KjTp0+revXqyszMVO/evcvcNzU1VWlpaaW2Z2ZmKjY21t+lAqhkDdesUYdZsyRJxuHQsZYtPdprffWVHMbYvs1u9XjTVhQRoWX/+Eep8wAAIFidOnVKQ4cO9SoEWTodTpJatGihbdu26cSJE3r77bc1YsQIrVmzpsyRoIkTJ2rChAklz90jQb169WIkCEErlPtO+Ny5kiQTFiZHcbFqDBpUMjIRNnWqHGlpMlFRcuTn27bNynqKIiIUXljo02uG5+er79atjASFmFD+vMHFoe/AF1aMBHnL8hAUFRWlyy+/XJLUoUMHbdy4UX/5y180v4wpMtHR0YqOji61PTIy0jZ/Ie1UC4JLyPWdjAzpgw8kSY7Ro6U6dRQ+ZYrC3Rfpp6VJ6elyTJ4sZWTYs+3X51bUU5SSomXt26vv1q0KT0u7+PNASAm5zxtUGvoOfBGoflOh9zA2061bNzNixAiv9s3JyTGSTE5Ojn+L8kJ+fr5ZsmSJyc/Pt7oUBJmQ7Dvp6cZIxlxzjes+I8Nzu+R6XNYxdmrr1s2yejz6zcW+5rnbUWWF5OcNKgV9B74IdL+pSDaw9JqgJ598UrfddpsaN26s3NxcLVq0SDNmzNCKFSvUs2fPco93Op1KTEz0at6fvxUUFGj58uXq3bs3/0OCCgnJvpOa6lqWedMmaelSad486YEHXG3u77NZtar0cXZqy8iQPvpI6t697JEUP9dTqt9czHkUFfFdQSEiJD9vUCnoO/BFoPtNRbKBpdPhfvrpJw0bNkwHDx5UYmKi2rZt63UAAhDE3L9wd+zound/cadU9i/qdmybPPnC08jsVGt55wEAQIixNAS9/PLLVr49AKu5v7jz7BAEAADgZ2FWFwAghB054rqvU8faOgAAQEghBAGwxi+/SLm5rseMBAEAgAAiBAGwhnsUKDJSSky0thYAABBSCEEArHH2VDiHw9paAABASCEEAbAGiyIAAACLEIIAWIMQBAAALEIIAmAN93Q4QhAAAAgwQhAAa7hHglgeGwAABBghCIA1mA4HAAAsQggCYA2mwwEAAIsQggBYg+lwAADAIoQgANZgOhwAALAIIQhA4BlDCAIAAJYhBAEIvJMnpdOnXY+ZDgcAAAKMEAQg8NyjQDExUlyctbUAAICQQwgCEHhnT4VzOKytBQAAhBxCEIDAcy+PzVQ4AABgAUIQgMBjUQQAAGAhQhCAwCMEAQAACxGCAAQe0+EAAICFCEEAAo+RIAAAYCFCEIDAIwQBAAALEYIABJ57OhwhCAAAWIAQBCDw3CNBXBMEAAAsQAgCEFjGMBIEAAAsRQgCEFg5OVJBgesxI0EAAMAChCAAgeWeChcfL1WrZm0tAAAgJBGCAAQWK8MBAACLEYIABBbXAwEAAIsRggAEFivDAQAAixGCAAQW0+EAAIDFCEEAAosQBAAALEYIAhBY7muCmA4HAAAsQggCEFiMBAEAAIsRggAEFiEIAABYjBAEILCYDgcAACxGCAIQOEVFUna26zEjQQAAwCKEIACBc+yYVFzsepyUZG0tAAAgZBGCAASOeypcrVpSZKS1tQAAgJBFCAIQOO5FEbgeCAAAWIgQBCBwWBkOAADYACEIQOC4p8MRggAAgIUIQQACh+lwAADABghBAAKH6XAAAMAGCEEAAofpcAAAwAYIQQACh+lwAADABghBAAKH6XAAAMAGCEEAAocQBAAAbIAQBCAwCgqk48ddj5kOBwAALEQIAhAY2dmu+7AwqVYta2sBAAAhjRAEIDDcU+GSkqTwcGtrAQAAIY0QBCAw3MtjMxUOAABYjBAEIDBYFAEAANgEIQhAYBCCAACATRCCAASGezocIQgAAFiMEAQgMNwjQVwTBAAALEYIAhAYTIcDAAA2QQgCEBhMhwMAADZBCAIQGEyHAwAANkEIAhAYTIcDAAA2QQgC4H+nT0u5ua7HhCAAAGAxQhAA/3NfDxQZKSUmWlsLAAAIeYQgAP539vVADoe1tQAAgJBHCALgf1wPBAAAbIQQBMD/3NPhWBkOAADYACEIgP8xEgQAAGyEEATA/whBAADARghBAPyP6XAAAMBGCEEA/I+RIAAAYCOEIAD+RwgCAAA2QggC4H/u6XCEIAAAYAOEIAD+ZYznl6UCAABYjBAEwL9OnpR++cX1mJEgAABgA5aGoOnTp+u6665TfHy86tatq/79++vrr7+2siTYQWqqlJFRdlvXrq6b3dsyMqQuXYL/PCrjHN1T4WJipLi4M8emppZ9HAAAgJ9ZGoLWrFmj0aNH67PPPlNWVpYKCwvVq1cvnTx50sqyYLXwcGnKlNK/XGdkSKtXu252b5sypWqcR2Wc44wZrm116kgOh+exAAAAFoiw8s1XrFjh8XzBggWqW7euNm/erJtvvtmiqmC5yZNd91OmSAcOSD17SosXS4sWSYMHn2nbtUsaONC+bQMHuqZ/lXNs2JdfqkHTpgrLzJTeest+53Gx5/jSS677unXPBKD09DN/zgAAAAHmMMYYq4tw+/bbb9W8eXPt2LFDV111Van2vLw85eXllTx3Op1q3LixsrOzlZCQEMhSSykoKFBWVpZ69uypyMhIS2upKsLGjVP43LlWl4FKYsLC5CguVlFKioonTbK6nKDHZw58Qb+Br+g78EWg+43T6VRSUpJycnLKzQa2CUHGGP3ud7/T8ePH9cknn5S5T2pqqtLS0kptz8zMVGxsrL9LRIAlf/qprps5U5JkHA4da9nSo73WV1/JYYzt2+xWj5XnWBQRoWX/+EepYwEAAC7WqVOnNHToUK9CkKXT4c42ZswYbd++XWvXrj3vPhMnTtSECRNKnrtHgnr16sVIUBUU/us0KvcIQo1Bg0pGEMKmTpUjLU0mKkqO/Hzbtnl7bFFEhMILC217HpVxjiYqSuH5+eq7dSsjQZWAzxz4gn4DX9F34AsrRoK8ZmxgzJgxplGjRua7776r0HE5OTlGksnJyfFTZd7Lz883S5YsMfn5+VaXUjWkpxvj+oYZYx588Mzz9HTPx2fva7e28p7/+rgwJcUsWbLEFKak2PM8KuEcz7svfMZnDnxBv4Gv6DvwRaD7TUWygaUhqLi42IwePdokJyeb3bt3V/h4QlAV5f5F+brrXPdTpnhuL+uXaDu2devm1bEefceO51EJ51hmG0HoovCZA1/Qb+Ar+g58YecQZOk1QQ8//LAyMzP1z3/+Uy1atCjZnpiYqJiYmHKPdzqdSkxM9Gren78VFBRo+fLl6t27N8PEFys11bV88hdfSG+/Lb3wgjRmjKvN/Z01q1aVPs5ObRkZ0kcfSd27l70K2lnHluo7djqPSjrHMo8tKuK7gi4CnznwBf0GvqLvwBeB7jcVyQaWhiCHw1Hm9gULFmjkyJHlHk8IquJuvln65BPpzTelQYOsrsZv6DvwBf0GvqDfwFf0HfjCziHI0oURLMxfCAaHD7vu69a1tg4AAABUKWFWFwCc15Ejrvs6daytAwAAAFUKIQj2VFAgHTvmesxIEAAAACoRIQj2lJ3tug8Lk2rVsrYWAAAAVCmEINiTeypcUpJrpTgAAACgkhCCYE/uRRG4HggAAACVjBAEe2JlOAAAAPgJIQj25J4ORwgCAABAJSMEwZ6YDgcAAAA/IQTBnpgOBwAAAD8hBMGemA4HAAAAPyEEwZ6YDgcAAAA/IQTBnpgOBwAAAD8hBMGeCEEAAADwE0IQ7Of0aSk31/WYEAQAAIBKRgiC/bgXRYiMlBITra0FAAAAVQ4hCPZz9qIIDoe1tQAAAKDKIQTBflgeGwAAAH5ECIL9sDw2AAAA/IgQBPthZTgAAAD4ESEI9sN0OAAAAPgRIQj2w3Q4AAAA+BEhCPbDdDgAAAD4ESEI9sN0OAAAAPgRIQj2w0gQAAAA/IgQBPvhmiAAAAD4ESEI9nLypPTLL67HjAQBAADADwhBsBf3KFBMjBQXZ20tAAAAqJIIQbCXs6fCORzW1gIAAIAqiRAEe2FlOAAAAPgZIQj2wspwAAAA8DNCEOyFleEAAADgZ4Qg2AsjQQAAAPAzQhDshWuCAAAA4GeEINgLI0EAAADwM0IQ7IVrggAAAOBnhCDYC9PhAAAA4GeEINiHMUyHAwAAgN8RgmAfOTlSQYHrMdPhAAAA4CeEINiHeypcfLxUrZq1tQAAAKDKIgTBPpgKBwAAgAAgBME+WBkOAAAAAUAIgn2wMhwAAAACgBAE+2A6HAAAAAKAEAT7IAQBAAAgAAhBsA/3dDiuCQIAAIAfEYJgH4wEAQAAIAAIQbAPQhAAAAACgBAE+2CJbAAAAAQAIQj2UFwsZWe7HjMSBAAAAD8iBMEejh1zBSFJSkqythYAAABUaYQg2IN7KlzNmlJkpLW1AAAAoEojBMEe3MtjMxUOAAAAfkYIgj2wMhwAAAAChBAEeyAEAQAAIEAIQbAH93Q4lscGAACAnxGCYA+MBAEAACBACEGwB0IQAAAAAoQQBHtgOhwAAAAChBAEe2AkCAAAAAFCCII9EIIAAAAQIIQgWK+wUDp2zPWY6XAAAADwM0IQrJed7boPC5Nq1bK2FgAAAFR5hCBYzz0VLilJCg+3thYAAABUeYQgWI/rgQAAABBAhCBYj+WxAQAAEECEIFiPkSAAAAAEECEI1iMEAQAAIIAIQbAe0+EAAAAQQIQgWI+RIAAAAAQQIQjWIwQBAAAggAhBsB7T4QAAABBAhCBYj5EgAAAABBAhCNbKy5OcTtdjQhAAAAACwNIQ9O9//1u33367kpOT5XA4tGTJEivLqbjUVCkjo+y2rl1dt7JkZEhduvh2bLC0eXuO7qlwkZFSYuKZY1NTyz4OAAAAuEiWhqCTJ0/q6quv1uzZs60sw3fh4dKUKaV/0c/IkFavdt3Kapsyxfdjg6XN23OcOtW1rU4dyeHwPBYAAADwgwgr3/y2227TbbfdZmUJF2fyZNf9lCkK++EHNahdW2GZmdJbb0mDB5e0adcuaeBAafFiadEiV9vAga7pX+drv9CxwdLmzTnOm+e6r1v3TABKTz/zswUAAAAqmcMYY6wuQpIcDofeffdd9e/f/7z75OXlKS8vr+S50+lU48aNlZ2drYSEhABUWbawqVMVnpZm2ftXBcbhkMMYFaWkqHjSJKvLCaiCggJlZWWpZ8+eioyMtLocBAn6DXxBv4Gv6DvwRaD7jdPpVFJSknJycsrNBkEVglJTU5VWRtjIzMxUbGysH6sr3+133qmw4mIZh0PHWrb0aKv11VdyGFNmW3ntVaHN22OLIiK07B//KHUsAAAAUJ5Tp05p6NChXoUgS6fDVdTEiRM1YcKEkufukaBevXpZPhIUVlysoogIhRcWqsagQSWjGWFTp8qRliYTFSVHfr5HW3ntVaGtIseG5+er79atjAQBXqDfwBf0G/iKvgNfWDES5K2gCkHR0dGKjo4utT0yMtK6v5AZGVJamopSUrSsfXv13bpV4WlpCndf2J+WJqWnyzF5spSRofApU1xtvz4/b/uFjg2Wtos5xxC8JsjSfoygRb+BL+g38BV9B74IVL+p0HsYm5Bk3n333Qodk5OTYySZnJwc/xRVnvR0YyRj0tNNfn6+WbJkicnPzz+z/de2Mo/p1u3C7VWh7WLO8dztVZhH3wG8RL+BL+g38BV9B74IdL+pSDawdCTo559/1rffflvyfM+ePdq2bZtq1aqlSy65xMLKvFRUdGYls4KCM9snT5Y+/vjM47O5n3/0UdmroJV3bLC0Xcw5Sq6fLQAAAOAHloagTZs2qetZX7bpvt5nxIgRWrhwoUVVVcCFvtBz1arzt02efOHpXhc6NljaLuYcQ3AqHAAAAALH0hDUpUsXGXssTgcAAAAgRIRZXQAAAAAABBIhCAAAAEBIIQQBAAAACCmEIAAAAAAhhRAEAAAAIKQQggAAAACEFEIQAAAAgJBCCAIAAAAQUghBAAAAAEIKIQgAAABASCEEAQAAAAgphCAAAAAAIYUQBAAAACCkRFhdwMUwxkiSnE6nxZVIBQUFOnXqlJxOpyIjI60uB0GEvgNf0G/gC/oNfEXfgS8C3W/cmcCdES4kqENQbm6uJKlx48YWVwIAAADADnJzc5WYmHjBfRzGm6hkU8XFxTpw4IDi4+PlcDgsrcXpdKpx48bat2+fEhISLK0FwYW+A1/Qb+AL+g18Rd+BLwLdb4wxys3NVXJyssLCLnzVT1CPBIWFhalRo0ZWl+EhISGBDwf4hL4DX9Bv4Av6DXxF34EvAtlvyhsBcmNhBAAAAAAhhRAEAAAAIKQQgipJdHS0UlJSFB0dbXUpCDL0HfiCfgNf0G/gK/oOfGHnfhPUCyMAAAAAQEUxEgQAAAAgpBCCAAAAAIQUQhAAAACAkEIIAgAAABBSCEGVZM6cOWratKmqVauma6+9Vp988onVJcFGpk+fruuuu07x8fGqW7eu+vfvr6+//tpjH2OMUlNTlZycrJiYGHXp0kU7d+60qGLY0fTp0+VwODR+/PiSbfQbnM+PP/6oe+65R7Vr11ZsbKzatWunzZs3l7TTd3CuwsJC/c///I+aNm2qmJgYXXbZZUpPT1dxcXHJPvQb/Pvf/9btt9+u5ORkORwOLVmyxKPdmz6Sl5enRx55RElJSYqLi1O/fv20f//+AJ4FIahSvPnmmxo/frwmTZqkrVu36qabbtJtt92mH374werSYBNr1qzR6NGj9dlnnykrK0uFhYXq1auXTp48WbLP008/reeee06zZ8/Wxo0bVb9+ffXs2VO5ubkWVg672Lhxo1566SW1bdvWYzv9BmU5fvy4OnfurMjISL3//vvatWuXnn32WdWoUaNkH/oOzvXUU09p3rx5mj17tv7zn//o6aef1syZM/XCCy+U7EO/wcmTJ3X11Vdr9uzZZbZ700fGjx+vd999V4sWLdLatWv1888/q2/fvioqKgrUaUgGF+366683Dz74oMe2li1bmieeeMKiimB3hw8fNpLMmjVrjDHGFBcXm/r165sZM2aU7HP69GmTmJho5s2bZ1WZsInc3FzTvHlzk5WVZW655RYzbtw4Ywz9Buf3+OOPmxtvvPG87fQdlKVPnz7mvvvu89h25513mnvuuccYQ79BaZLMu+++W/Lcmz5y4sQJExkZaRYtWlSyz48//mjCwsLMihUrAlY7I0EXKT8/X5s3b1avXr08tvfq1Uvr1q2zqCrYXU5OjiSpVq1akqQ9e/bo0KFDHv0oOjpat9xyC/0IGj16tPr06aMePXp4bKff4HyWLl2qDh06aODAgapbt67at2+vv/3tbyXt9B2U5cYbb9RHH32k3bt3S5K++OILrV27Vr1795ZEv0H5vOkjmzdvVkFBgcc+ycnJuuqqqwLajyIC9k5VVHZ2toqKilSvXj2P7fXq1dOhQ4csqgp2ZozRhAkTdOONN+qqq66SpJK+UlY/+v777wNeI+xj0aJF2rJlizZu3FiqjX6D8/nuu+80d+5cTZgwQU8++aQ2bNigsWPHKjo6WsOHD6fvoEyPP/64cnJy1LJlS4WHh6uoqEhTp07VkCFDJPGZg/J500cOHTqkqKgo1axZs9Q+gfzdmRBUSRwOh8dzY0ypbYAkjRkzRtu3b9fatWtLtdGPcLZ9+/Zp3LhxWrlypapVq3be/eg3OFdxcbE6dOigadOmSZLat2+vnTt3au7cuRo+fHjJfvQdnO3NN9/Ua6+9pszMTLVu3Vrbtm3T+PHjlZycrBEjRpTsR79BeXzpI4HuR0yHu0hJSUkKDw8vlVwPHz5cKgUDjzzyiJYuXapVq1apUaNGJdvr168vSfQjeNi8ebMOHz6sa6+9VhEREYqIiNCaNWv017/+VRERESV9g36DczVo0EBXXnmlx7ZWrVqVLNjDZw7K8thjj+mJJ57Q4MGD1aZNGw0bNkyPPvqopk+fLol+g/J500fq16+v/Px8HT9+/Lz7BAIh6CJFRUXp2muvVVZWlsf2rKwsderUyaKqYDfGGI0ZM0bvvPOOPv74YzVt2tSjvWnTpqpfv75HP8rPz9eaNWvoRyGse/fu2rFjh7Zt21Zy69Chg+6++25t27ZNl112Gf0GZercuXOpZfh3796tJk2aSOIzB2U7deqUwsI8fzUMDw8vWSKbfoPyeNNHrr32WkVGRnrsc/DgQX355ZeB7UcBW4KhClu0aJGJjIw0L7/8stm1a5cZP368iYuLM3v37rW6NNjEQw89ZBITE83q1avNwYMHS26nTp0q2WfGjBkmMTHRvPPOO2bHjh1myJAhpkGDBsbpdFpYOezm7NXhjKHfoGwbNmwwERERZurUqeabb74xr7/+uomNjTWvvfZayT70HZxrxIgRpmHDhmbZsmVmz5495p133jFJSUnmT3/6U8k+9Bvk5uaarVu3mq1btxpJ5rnnnjNbt24133//vTHGuz7y4IMPmkaNGpkPP/zQbNmyxXTr1s1cffXVprCwMGDnQQiqJC+++KJp0qSJiYqKMtdcc03J0seAMa4lJMu6LViwoGSf4uJik5KSYurXr2+io6PNzTffbHbs2GFd0bClc0MQ/Qbn895775mrrrrKREdHm5YtW5qXXnrJo52+g3M5nU4zbtw4c8kll5hq1aqZyy67zEyaNMnk5eWV7EO/wapVq8r8nWbEiBHGGO/6yC+//GLGjBljatWqZWJiYkzfvn3NDz/8ENDzcBhjTODGnQAAAADAWlwTBAAAACCkEIIAAAAAhBRCEAAAAICQQggCAAAAEFIIQQAAAABCCiEIAAAAQEghBAEAAAAIKYQgAAAAACGFEAQAqDL27t0rh8Ohbdu2SZJWr14th8OhEydOWFoXAMBeCEEAANsYOXKkHA6HHA6HIiIidMkll+ihhx7S8ePHrS4NAFCFEIIAALZy66236uDBg9q7d6/+/ve/67333tPDDz9sdVkAgCqEEAQAsJXo6GjVr19fjRo1Uq9evXTXXXdp5cqVkqTi4mKlp6erUaNGio6OVrt27bRixQqvX/v777/X7bffrpo1ayouLk6tW7fW8uXL/XUqAACbirC6AAAAzue7777TihUrFBkZKUn6y1/+omeffVbz589X+/bt9corr6hfv37auXOnmjdvXu7rjR49Wvn5+fr3v/+tuLg47dq1S9WrV/f3aQAAbIYQBACwlWXLlql69eoqKirS6dOnJUnPPfecJOmZZ57R448/rsGDB0uSnnrqKa1atUrPP/+8XnzxxXJf+4cfftCAAQPUpk0bSdJll13mp7MAANgZIQgAYCtdu3bV3LlzderUKf3973/X7t279cgjj8jpdOrAgQPq3Lmzx/6dO3fWF1984dVrjx07Vg899JBWrlypHj16aMCAAWrbtq0/TgMAYGNcEwQAsJW4uDhdfvnlatu2rf76178qLy9PaWlpJe0Oh8Njf2NMqW3n8/vf/17fffedhg0bph07dqhDhw564YUXKrV+AID9EYIAALaWkpKiZ555Rj///LOSk5O1du1aj/Z169apVatWXr9e48aN9eCDD+qdd97RH/7wB/3tb3+r7JIBADbHdDgAgK116dJFrVu31rRp0/TYY48pJSVFzZo1U7t27bRgwQJt27ZNr7/+ulevNX78eN1222264oordPz4cX388ccVClAAgKqBEAQAsL0JEybo3nvv1e7du+V0OvWHP/xBhw8f1pVXXqmlS5d6tTKcJBUVFWn06NHav3+/EhISdOutt2rWrFl+rh4AYDcOY4yxuggAAAAACBSuCQIAAAAQUghBAAAAAEIKIQgAAABASCEEAQAAAAgphCAAAAAAIYUQBAAAACCkEIIAAAAAhBRCEAAAAICQQggCAAAAEFIIQQAAAABCCiEIAAAAQEj5/0xTHmZ/nigFAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#sort the values\n", + "sorted_dice_values = dice.sort_values(by='value').reset_index(drop=True)\n", + "\n", + "# Creating the plot\n", + "plt.figure(figsize=(10, 6))\n", + "plt.plot(sorted_dice_values.index, sorted_dice_values['value'],marker='x', color='r') # Plot using columns\n", + "plt.title('Line Plot of Dice Rolls Sorted by Values')\n", + "plt.xlabel('Rolls')\n", + "plt.ylabel('Values')\n", + "plt.grid(True)\n", + "plt.show()" + ] + }, + { + "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": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.74" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean(dice['value'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "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", + "
frequency
value
112
217
314
422
512
623
\n", + "
" + ], + "text/plain": [ + " frequency\n", + "value \n", + "1 12\n", + "2 17\n", + "3 14\n", + "4 22\n", + "5 12\n", + "6 23" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency = dice['value'].value_counts().sort_index()\n", + "frequency = frequency.to_frame(name='frequency')\n", + "frequency" + ] + }, + { + "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": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNAklEQVR4nO3deXwTdeL/8XfSpm1KW65S2nKUChRQAUUUQYUiwsq1Ah4oKof4VRdQAZWf6LoUF0Fh5Yu7unisgvBdQFzFZVVAVgEPwOUQROQWKEcrlKMXaUmb+f2hzZIpV9Om04bX8/HIo2QymXkn09C+O5+ZsRmGYQgAAAAA4GW3OgAAAAAAVDUUJQAAAAAwoSgBAAAAgAlFCQAAAABMKEoAAAAAYEJRAgAAAAATihIAAAAAmFCUAAAAAMCEogQAAAAAJhQlALiA2bNny2azaf369Wd9vE+fPmrSpInPtCZNmmjo0KFlWs/q1auVlpamkydP+hf0EvTee+/piiuukNPplM1m06ZNm8457+9//3v16dNHDRo0kM1mO+/2+emnnzRgwADVqlVLUVFR6t69uzZu3HjWeRcsWKCrrrpKERERSkxM1OjRo5WXl3fB7Pv27ZPNZvPeHA6H6tatq2uvvVZjxozR1q1bSz1n5cqVstlsWrly5QWXX5GaNGnik7VGjRpq166dXn31VRmG4fcyz9wGJe/H7NmzKyY0AJQTRQkAAmDRokV67rnnyvSc1atXa+LEiRSli3T06FHdf//9atq0qZYuXao1a9YoJSXlnPP/7//+r44dO6bf/va3CgsLO+9yb7rpJu3cuVPvvPOOFi5cqIKCAqWmpmrHjh0+8/7973/XPffco2uvvVZLlizRhAkTNHv2bA0YMOCiX8ejjz6qNWvWaNWqVZo7d6769eunxYsXq23btpo2bZrPvO3atdOaNWvUrl27i15+Rbnhhhu0Zs0arVmzRnPnzlVkZKQeffRRTZkypdKzAEBlCLU6AAAEo6uvvtrqCGXmdrtls9kUGlo9fjTs3LlTbrdb9913n7p06XLB+XNzc2W3//L3wblz555zvmnTpuno0aNavXq1kpKSJEk33nijmjZtqj/84Q967733JEnFxcV66qmn1KNHD7311luSpK5duyo6Olr33nuvlixZop49e14wV+PGjXX99dd77/fq1Utjx47VgAEDNG7cOF155ZXe5cTExPjMW5lq1arls+5bbrlFjRs31htvvKFnnnnGkkwAEEjsUQKAADAPK/J4PJo0aZJatGghp9OpWrVqqU2bNnrllVckSWlpaXrqqackScnJyd4hTiVDrDwej6ZOnaqWLVsqPDxccXFxGjx4sA4ePOizXsMwNHnyZCUlJSkiIkLt27fX8uXLlZqaqtTUVO98JUO45s6dqyeeeEINGjRQeHi4du/eraNHj2rEiBG6/PLLFRUVpbi4ON1888366quvfNZVMlRq2rRpeumll9SkSRM5nU6lpqZ6S8zTTz+txMRE1axZU/3799eRI0cu6v1bvHixOnbsqMjISEVHR6t79+5as2aN9/GhQ4fqxhtvlCQNHDhQNpvN5/WdTUlJupBFixbp5ptv9pYk6ZeCMmDAAP3rX/9SUVGRJGnt2rXKyMjQsGHDfJ5/5513KioqSosWLbqo9Z2N0+nU22+/LYfD4bNX6VxD77799lv17dtXdevWVUREhJo2barRo0f7zLNr1y4NGjRIcXFxCg8PV6tWrfTaa6/5nTEmJkYpKSn6+eeffaYfP35cI0aMUIMGDRQWFqbLLrtMzz77rAoLC8u8jqNHj+qhhx5So0aNFB4ernr16umGG27Qv//9b79zA8DFqh5/NgSAKqC4uNj7S/KZLuYYjalTpyotLU2///3v1blzZ7ndbm3fvt07zO7BBx/U8ePH9Ze//EUffvihEhISJEmXX365JOl3v/ud3nzzTY0aNUp9+vTRvn379Nxzz2nlypXauHGjYmNjJUnPPvuspkyZooceekgDBgzQgQMH9OCDD8rtdp91WNr48ePVsWNHvf7667Lb7YqLi9PRo0clSRMmTFB8fLzy8vK0aNEipaam6vPPPy9VSF577TW1adNGr732mk6ePKknnnhCffv2VYcOHeRwOPTOO+9o//79evLJJ/Xggw9q8eLF532v5s2bp3vvvVc9evTQ/PnzVVhYqKlTp3rXf+ONN+q5557Tddddp5EjR2ry5Mnq2rWrYmJiLrgdLsTlcmnPnj3q379/qcfatGkjl8uln376SSkpKfrhhx+808/kcDjUsmVL7+P+SkxM1DXXXKPVq1erqKjonHv6li1bpr59+6pVq1aaPn26GjdurH379umzzz7zzvPjjz+qU6dOaty4sV5++WXFx8dr2bJleuyxx5SVlaUJEyaUOV9RUZEOHDjg831VUFCgrl27as+ePZo4caLatGmjr776SlOmTNGmTZv0ySeflGkd999/vzZu3KgXXnhBKSkpOnnypDZu3Khjx46VOS8AlJkBADivWbNmGZLOe0tKSvJ5TlJSkjFkyBDv/T59+hhXXXXVedczbdo0Q5Kxd+9en+nbtm0zJBkjRozwmf7tt98akoxnnnnGMAzDOH78uBEeHm4MHDjQZ741a9YYkowuXbp4p61YscKQZHTu3PmCr7+oqMhwu91Gt27djP79+3un792715BktG3b1iguLvZOnzFjhiHJ+O1vf+uznNGjRxuSjOzs7HOuq7i42EhMTDRat27ts8zc3FwjLi7O6NSpU6nX8P7771/wNZjVqFHDZ/uUOHTokCHJmDJlSqnH5s2bZ0gyVq9ebRiGYbzwwguGJCMjI6PUvD169DBSUlLOm6Hk/Zs2bdo55xk4cKAhyfj5558Nw/jva16xYoV3nqZNmxpNmzY1XC7XOZfzm9/8xmjYsGGp937UqFFGRESEcfz48fNmTUpKMnr16mW43W7D7XYb+/fvN/7nf/7HcDgcxscff+yd7/XXXzckGQsXLvR5/ksvvWRIMj777DOfZZ65DUrej1mzZnmnRUVFGaNHjz5vNgAIFIbeAcBFmjNnjtatW1fqVjIE7Hyuu+46bd68WSNGjNCyZcuUk5Nz0etdsWKFJJU6S9t1112nVq1a6fPPP5f0y1CwwsJC3XXXXT7zXX/99aXOylfi9ttvP+v0119/Xe3atVNERIRCQ0PlcDj0+eefa9u2baXm7dWrl8+wtlatWkmSevfu7TNfyfT09PRzvFJpx44dOnz4sO6//36fZUZFRen222/X2rVrderUqXM+v6LYbLaLfuxc855vGRfLuMDeyp07d2rPnj0aPny4IiIizjpPQUGBPv/8c/Xv31+RkZEqKiry3nr16qWCggKtXbv2glk+/fRTORwOORwOJSUl6a233tJf/vIXn+38xRdfqEaNGrrjjjt8nlvyvVvyvXqxrrvuOs2ePVuTJk3S2rVr5Xa7y/R8ACgPihIAXKRWrVqpffv2pW41a9a84HPHjx+vP/3pT1q7dq169uypunXrqlu3buc85fiZSoYZlQzHO1NiYqL38ZKv9evXLzXf2aada5nTp0/X7373O3Xo0EEffPCB1q5dq3Xr1unWW2+Vy+UqNX+dOnV87pecUe5c0wsKCs6a5czXcK7X6vF4dOLEiXM+v7xq164tm8121qFdx48fl/Tf11W3bl1JOue85tfvj/379ys8PPycyyoZJtmwYcNzLuPYsWMqKirSX/7yF2/RKbn16tVLkpSVlXXBLDfeeKPWrVuntWvXau7cuWrSpIlGjRqlr7/+2mdd8fHxpUpiXFycQkNDyzxk7r333tOQIUP0t7/9TR07dlSdOnU0ePBgZWZmlmk5AOAPjlECgEoQGhqqsWPHauzYsTp58qT+/e9/65lnntFvfvMbHThwQJGRked8bskv5BkZGaV+IT58+LD3+KSS+cwH10tSZmbmWfcqnW2vx//93/8pNTVVM2fO9Jmem5t7/hdZAc58rWaHDx+W3W5X7dq1A7Z+p9OpZs2aacuWLaUe27Jli5xOpy677DJJUuvWrb3TS44lk345dmf79u265557ypXl0KFD2rBhg7p06XLO45Pq1asnSaVO6nGm2rVrKyQkRPfff79Gjhx51nmSk5MvmKdmzZpq3769JKlDhw7q0KGD2rZtqxEjRmjTpk2y2+2qW7euvv32WxmG4fO9deTIERUVFXm/Vy9WbGysZsyYoRkzZig9PV2LFy/W008/rSNHjmjp0qVlWhYAlBV7lACgktWqVUt33HGHRo4cqePHj2vfvn2SpPDwcEkqtdfm5ptvlvRLgTnTunXrtG3bNnXr1k3SL7+8hoeHe09fXWLt2rXav3//Reez2WzeLCW+//57n7POBUqLFi3UoEEDzZs3z2fYWX5+vj744APvmfACqX///vriiy904MAB77Tc3Fx9+OGH+u1vf+stLR06dFBCQkKpC6T+4x//UF5eXpmupWTmcrn04IMPqqioSOPGjTvnfCkpKWratKneeeedc55VLjIyUl27dtV3332nNm3anHWvaElBLYvmzZtr3Lhx2rJli/d7rlu3bsrLy9NHH33kM++cOXO8j/urcePGGjVq1Hkv/gsAFYk9SgBQCfr27asrr7xS7du3V7169bR//37NmDFDSUlJat68uaT/7qF45ZVXNGTIEDkcDrVo0UItWrTQQw89pL/85S+y2+3q2bOn96x3jRo10pgxYyT9MiRs7NixmjJlimrXrq3+/fvr4MGDmjhxohISEi769Nh9+vTRH//4R02YMEFdunTRjh079Pzzzys5OfmsZ/2rSHa7XVOnTtW9996rPn366OGHH1ZhYaGmTZumkydP6sUXX/R72atWrfIOVSsuLtb+/fv1j3/8Q5LUpUsX796ZJ598UnPnzlXv3r31/PPPKzw8XC+++KIKCgqUlpbmXV5ISIimTp2q+++/Xw8//LDuuece7dq1S+PGjVP37t116623XlSu9PR0rV27Vh6PR9nZ2fruu++8Zwp8+eWX1aNHj/M+/7XXXlPfvn11/fXXa8yYMWrcuLHS09O1bNky/f3vf5f0y/fUjTfeqJtuukm/+93v1KRJE+Xm5mr37t3617/+pS+++KKsb6f3vXr99dc1ceJE3XXXXRo8eLBee+01DRkyRPv27VPr1q319ddfa/LkyerVq5duueWWi152dna2unbtqkGDBqlly5aKjo7WunXrtHTp0nKVUAC4aBafTAIAqrySs96tW7furI/37t37gme9e/nll41OnToZsbGxRlhYmNG4cWNj+PDhxr59+3yeN378eCMxMdGw2+0+ZzcrLi42XnrpJSMlJcVwOBxGbGyscd999xkHDhzweb7H4zEmTZpkNGzY0AgLCzPatGljfPzxx0bbtm19zlh3vjPGFRYWGk8++aTRoEEDIyIiwmjXrp3x0UcfGUOGDPF5nec6a9u5ln2h9/FMH330kdGhQwcjIiLCqFGjhtGtWzfjm2++uaj1nEuXLl3OedbCM88iZxiGsXv3bqNfv35GTEyMERkZaXTr1s3YsGHDWZc7b948o02bNkZYWJgRHx9vPPbYY0Zubu4F85S8fyW3kJAQo3bt2sY111xjjB492ti6dWup55ztrHeG8cuZDXv27GnUrFnTCA8PN5o2bWqMGTOm1PoeeOABo0GDBobD4TDq1atndOrUyZg0adIFsyYlJRm9e/c+62OvvfaaIcl49913DcMwjGPHjhmPPPKIkZCQYISGhhpJSUnG+PHjjYKCglLLPN9Z7woKCoxHHnnEaNOmjRETE2M4nU6jRYsWxoQJE4z8/PwLZgaA8rIZxkVcAAQAUG3t3btXLVu21IQJE/TMM89YHQcAgGqBogQAQWTz5s2aP3++OnXqpJiYGO3YsUNTp05VTk6Ofvjhh3Oe/Q4AAPjiGCUACCI1atTQ+vXr9fbbb+vkyZOqWbOmUlNT9cILL1CSAAAoA/YoAQAAAIAJpwcHAAAAABOKEgAAAACYUJQAAAAAwCToT+bg8Xh0+PBhRUdHy2azWR0HAAAAgEUMw1Bubq4SExMveCH2oC9Khw8fVqNGjayOAQAAAKCKOHDggBo2bHjeeYK+KEVHR0v65c2IiYmxOM2lw+1267PPPlOPHj3kcDisjoMKwDYNTmzXwPnspyMqKPYoIsSuHpfFVdp62abBie0afNim1sjJyVGjRo28HeF8gr4olQy3i4mJoShVIrfbrcjISMXExPDhDxJs0+DEdg2cyGiX7EUeRYTaK/XnD9s0OLFdgw/b1FoXc0gOJ3MAAAAAABOKEgAAAACYUJQAAAAAwCToj1ECAMAKXZNiZRgSV6YAgOqJogQAQAA4Q0OsjgAAKAeG3gEAAACACUUJAAAAAEwYegcAQADsPXlKRR6PQu12JdeKtDoOAKCMKEoAAATAtmO5Kvj1grMUJQCofhh6BwAAAAAmFCUAAAAAMKEoAQAAAIAJRQkAAAAATChKAAAAAGBCUQIAAAAAE4oSAAAAAJhQlAAAAADAhAvOAgAQANFhoXLYf7ngLACg+qEoAQAQADc1qmt1BKBaSk9PV1ZWltUxAs7j8UiSNm/eLLs9+P+gEhsbq8aNG1sdo0woSgAAAKgS0tPT1bJFS7kKXFZHCTin06n58+erc+fOcrkugdcb4dT2HdurVVmiKAEAAKBKyMrKkqvApQEaoFjFWh0noEJ//TV8mIapSEUWpwmsLGXpw4IPlZWVRVECAAAA/BWrWCUq0eoYAWX/9Zxq8YqXRx6L0+BsKEoAAATAusMnVFjsUXiIXdcm1rY6DgCgjChKAAAEwFHXaRUUcdY7AKiu+N8bAAAAAEwoSgAAAABgQlECAAAAABOKEgAAAACYUJQAAAAAwISiBAAAAAAmFCUAAAAAMKEoAQAAAIAJF5wFACAAkmtGyu0x5LDbrI4CAPADRQkAgABoFRttdQQAQDkw9A4AAAAATChKAAAAAGBCUQIAAAAAE45RAgBcMtLT05WVlVUp6zrgjFOxPUQhnmI1ch2plHVKksfjkSRt3rxZdnvw/z00NjZWjRs3tjoGgCBEUQIAXBLS09PVskVLuQpclbK+N1euV934RB058rP6pbavlHVKktPp1Pz589W5c2e5XJXzWq3kjHBq+47tlCUAFY6iBAC4JGRlZclV4NIADVCsYgO+vhqK8n59SA8FfH0lQn/90T5Mw1SkokpbrxWylKUPCz5UVlYWRQlAhaMoAQAuKbGKVaISA76ekF8PAw6RvVLWV8L+63rjFS+PPJW2XgAINsE/eBkAAAAAyoiiBAAAAAAmFCUAAAAAMKEoAQAAAIAJRQkAAAAATChKAAAAAGDC6cEBAAiAA+NWyBYWIuN0sdVRAAB+oCgBABAA+f/JsDoCAKAcGHoHAAAAACYUJQAAAAAwYegdAAABUOO6BO8xSgzDA4Dqh6IEAEAANJraVY74KLkz87Q9dZ7VcQAAZcTQOwAAAAAwoSgBAAAAgAlFCQAAAABMKEoAAAAAYEJRAgAAAAATihIAAAAAmFCUAAAAAMCEogQAAAAAJhQlAAAAADAJtToAAADBaHvqPKsjAADKgT1KAAAAAGBCUQIAAAAAE4oSAAAAAJhwjBIAAAEQN7KdQqLDVJx7Wkde22h1HABAGVGUAAAIgDp3tpQjPkruzDyKEgBUQwy9AwAAAAATihIAAAAAmFCUAAAAAMCEogQAAAAAJpYWpSlTpujaa69VdHS04uLi1K9fP+3YscNnHsMwlJaWpsTERDmdTqWmpmrr1q0WJQYAAABwKbC0KK1atUojR47U2rVrtXz5chUVFalHjx7Kz8/3zjN16lRNnz5dr776qtatW6f4+Hh1795dubm5FiYHAAAAEMwsPT340qVLfe7PmjVLcXFx2rBhgzp37izDMDRjxgw9++yzGjBggCTp3XffVf369TVv3jw9/PDDVsQGAAAAEOSq1HWUsrOzJUl16tSRJO3du1eZmZnq0aOHd57w8HB16dJFq1evPmtRKiwsVGFhofd+Tk6OJMntdsvtdgcyPs5Q8l7zngcPtmlwupS2q8fjkdPpVKhCZa+MARU2m/er3Vl5AzhK1lWZ67RKqELllFMejyfov4cvlc9qpX9OLcRn1RplWb/NMAwjgFkummEYuu2223TixAl99dVXkqTVq1frhhtu0KFDh5SYmOid96GHHtL+/fu1bNmyUstJS0vTxIkTS02fN2+eIiMjA/cCAAA4gyfhMhkhDtmK3bJn/GR1HACApFOnTmnQoEHKzs5WTEzMeeetMnuURo0ape+//15ff/11qcdsJX+V+5VhGKWmlRg/frzGjh3rvZ+Tk6NGjRqpR48eF3wzUHHcbreWL1+u7t27y+FwWB0HFYBtGpwupe26efNmde7cWcM0TPGKr4Q1fl8J6yjN7rTryneu1A8P/CCPy2NJhsqSqUzN0ix9+eWXatu2rdVxAupS+axW/ufUOnxWrVEy2uxiVImi9Oijj2rx4sX68ssv1bBhQ+/0+PhfPiCZmZlKSEjwTj9y5Ijq169/1mWFh4crPDy81HSHwxHU/7FUVbzvwYdtGpwuhe1qt9vlcrlUpCJ5FNy/lEiSx+UJ+l++ilQkl1yy2+1B//1bItg/q5fa51Tis1rZyrJ+SwdFGoahUaNG6cMPP9QXX3yh5ORkn8eTk5MVHx+v5cuXe6edPn1aq1atUqdOnSo7LgAAAIBLhKV7lEaOHKl58+bpn//8p6Kjo5WZmSlJqlmzppxOp2w2m0aPHq3JkyerefPmat68uSZPnqzIyEgNGjTIyugAAAAAgpilRWnmzJmSpNTUVJ/ps2bN0tChQyVJ48aNk8vl0ogRI3TixAl16NBBn332maKjoys5LQAAFy95dm+F1nWq6JhLe4d+YnUcAEAZWVqULuaEezabTWlpaUpLSwt8IAAAKkh4k5pyxEfJHZ1ndRQAgB+qxMkcAACA1HBKF9Xu30LHFvyow2m+Z4FN/MMNqjvoCp1YtEMHx6+yKOG5xY26RjV7NVVYfA0Zbo9cW48qc8Y6ub4/es7nJM/po6jrEktNz1mZrv2PLC01vd5DVyl+7HXKeneLMqasqdD8AGBGUQIAoAo5fThPtXo1VcaUNTIKiyVJtrAQ1erdTKcP5Vqc7twK953U4T9+o9MHcmSPCFXskNZKfru3dvRYoOITBWd9Tvqjy2Vz/Pe8UiG1ItT8o9uVvaz0daecV9ZTnbtayrX9WMBeAwCciaIEAEAV4voxS2GNolWze7JOfrxbkhTTo4lOZ+bp9IHSRSl2eFvVvbuVQutFqnBftrLe/u6/D9ptavD8TYq6PlGhsZFyZ+Tp2LwfdWzuD95ZGk7pInt0uE5tzFTs0DayhdmV/ckeHZ6yWiq6+GvSZ3+8x+d+xotrVOfOlopoUUf5aw+f9TnF2YU+92v2aipPQZGyl/oWJXtkqBr9qasOPveV4n539UVnAoDysPT04AAAoLQTH+5U7QEp3vt1BrTQiQ92lJqv/uhrVXtAig5N/Fo7+7yvrHe3qMGkVBnOX094ZJfcP+crffTn2tn7fR15baPix1yrmrde5rOcqA6JCmsUo71D/qWDT69U7f4pqt2/hffxuFHXqMXn91x0fpvDrjoDW6k4p1AFZdgDVOeOlsr+dI8MV5HP9MQ/3KjclQeUv+bQRS8LAMqLPUoAAFQxJ/+5U/Fjr5WjQZRkSJHt4pU+9nPVOON4HpszVLFDW2vv0I91atORX553MFdR1yWozs1xv8xUZOjIXzb8d7mHchV5dX3V7HmZz16b4pxCHf7jN5LHUOHebOWsSlfU9Q104v3tvzx+okCn0y98Nfvo1MZq9HI32Z2hKjp6Snsf+FTFJwsv+DxJcraup4iUOjr4rO/xVzV7NZXz8ljtvmPRRS0HACoKRQkAgCqm+GShclcdUO1+KZLNptxV6aUKR0TT2rJHhKrJ2719ptvC7DKKXN77dQa2Uu07WyosMUq28FDZHPZSe3kKdp2QPP8dZld09JQiUup47x/7+1Yd+/vWC+bO+/awdvf/QCG1I1TnzpZqPKObdt/1kYqPn/0YpTPVvqOlCnYel2vLf0/+4IivoYRnOmrf8E9lnC6+4DIAoCJRlAAAqIJOfLBdic/dIEk6/Pw3pWf4dfD8/keWyv1z/n8nR9jVYvovw/Zq3nqZEsZ3VMZLa3Vq08/y5LsVO7ytItvU81mUUeTxXbYhyW4rc2bDVfTLnqf0HB3afEQpSweqzh0tdfTNTed9ni0iRLV6NdXPf17vM915RawcsZFq9sGA/84baleN9gmqe+8VOtzmj5LHvDQAqBgUJQAAqqDcrw7K5gj55d9fHyz1eOGek/IUFsmREKX8dRne6XanXbai05KkyPbxOvXdzzo+/0fv4+GNKvGC7bZfzth3ITV7NpUtzK6T/9rlMz1v7WHt7Pu+z7SGk7uo8KdsHf3bJp+9YABQ0ShKAAAEwM9/3aiQSIeKT7n9W4DH0M5eC73/LvVwvltZ73yvhPEdJbt0akOm7FFhirouXp6YWEnS6f05qn1biqJubKjTB3NV+7fN5Wwdp9MHL3y80Znq3nuFYm5por3DPjnr4zZnqOIeuVo5X+xX0dFTCqkVrrr3XCFHfA2fY6Eavpgq95F8/Tx9nc/z69zeQjn/3l9qeKEn363CXSd8p7mKVHyyoNR0AKhoFCUAAALgxMLt5V6GJ//8JevnV9ar6LhL9R66WmENo+XJPS3X9izZ3HmSpOMLflREq7pqPL2bZEgnP9mtY/O3KvqmRmXKEVI7QmGNY849Q7Gh8ORaSvpzikJqR6j4ZIFcW47qp3v/pcLd/y00jsQoyfAtfWFNaqpG+wTtfeDsJQwArEJRAgCgijg4ftV5H08f9VmpacfmbtWxuf890YLdaVeb+W0kSYbbo0PPrNKhZ3yXe+YenbOtM2PKGp/7R17doCOvbig1XwnjdLHSH1t+3uyStHfwx6Wmnd6XrS0t37zgc8+3DAAIBK6jBAAAAAAm7FECACAAQus5Jbtd8nhUdNR14ScAAKoUihIAAAHQ7P3+csRHyZ2Zp+2p86yOAwAoI4beAQAAAIAJRQkAAAAATChKAAAAAGBCUQIAAAAAE4oSAAAAAJhQlAAAAADAhKIEAAAAACYUJQAAAAAwoSgBAAAAgEmo1QEAAAhGPw37RLYQu4xij9VRAAB+oCgBABAAp/dmWx0BAFAODL0DAAAAABOKEgAAAACYMPQOAIAAqNmnqewRofIUFCn74z1WxwEAlBFFCQCAAEh4soMc8VFyZ+ZRlACgGmLoHQAAAACYUJQAAAAAwISiBAAAAAAmFCUAAAAAMKEoAQAAAIAJRQkAAAAATChKAAAAAGBCUQIAAAAAEy44CwBAALizXD5fAQDVC0UJAIAA2HPHIqsjAADKgaF3AAAAAGBCUQIAAAAAE4oSAAAAAJhwjBIAAAGQOPEmhdYMV1F2oQ5P+MrqOACAMqIoAQAQADFdGskRHyV3Zp4OWx0GAFBmDL0DAAAAABOKEgAAAACYUJQAAAAAwISiBAAAAAAmFCUAAAAAMKEoAQAAAIAJpwcHKkB6erqysrKsjhFQHo9HkrR582bZ7cH/N5bY2Fg1btzY6hgAAMAiFCWgnNLT09WyRUu5ClxWRwkop9Op+fPnq3PnznK5gvu1SpIzwqntO7ZTlgAAuERRlIByysrKkqvApQEaoFjFWh0nYEJ//e9imIapSEUWpwmsLGXpw4IPlZWVRVGC305+skchMeEqzim0OgoAwA8UJaCCxCpWiUq0OkbA2H89pDFe8fLIY3EaoOrLnPat1REAAOUQ/AcaAAAAAEAZUZQAAAAAwISiBAAAAAAmHKMEAEAANP/0LjniIuU+ckq7ei20Og4AoIzYowQAQACERIYqJCpMIZH8TRIAqiOKEgAAAACYUJQAAAAAwISiBAAAAAAmFCUAAAAAMKEoAQAAAIAJRQkAAAAATChKAAAAAGBCUQIAAAAAE66CBwBAABxK+1q28BAZhcVWRwEA+IGiBABAAOSuTLc6AgCgHBh6BwAAAAAmFCUAAAAAMGHoHQAAARBxRazsDrs8bo8KtmZZHQcAUEYUJQAAAqDJaz3kiI+SOzNP21PnWR0HAFBGDL0DAAAAABOKEgAAAACYUJQAAAAAwISiBAAAAAAmFCUAAAAAMKEoAQAAAIAJRQkAAAAATChKAAAAAGBCUQIAAAAAk1CrAwAAEIx29n7f6ggAgHKgKAEAEACefLfVEQAA5cDQOwAAAAAwsbQoffnll+rbt68SExNls9n00Ucf+Tw+dOhQ2Ww2n9v1119vTVgAAAAAlwxLh97l5+erbdu2GjZsmG6//fazznPrrbdq1qxZ3vthYWGVFQ8AAL/FDm0te1SYPHmnlTV7i9VxAABlZGlR6tmzp3r27HneecLDwxUfH19JiQAAqBixQ1vLER8ld2YeRQkAqqEqfzKHlStXKi4uTrVq1VKXLl30wgsvKC4u7pzzFxYWqrCw0Hs/JydHkuR2u+V2c2BtZSl5ry+F99zj8cjpdCpUobIH8WF/dqfd52swC1WonHLK4/EE/fcwn9UAstm8Xyvzc8NnNThdKp/VS+VnqsRn1SplWb/NMAwjgFkums1m06JFi9SvXz/vtPfee09RUVFKSkrS3r179dxzz6moqEgbNmxQeHj4WZeTlpamiRMnlpo+b948RUZGBio+AAA+ipteJTnCJPdphezZZHUcAICkU6dOadCgQcrOzlZMTMx5563SRcksIyNDSUlJWrBggQYMGHDWec62R6lRo0bKysq64JuBiuN2u7V8+XJ1795dDofD6jgBtXnzZnXu3FnDNEzxCt5honanXVe+c6V+eOAHeVweq+MEVKYyNUuz9OWXX6pt27ZWxwkoPquBk7L0Hjnq15D753ztvHV+wNdXgs9qcLpUPquXys9Uic+qVXJychQbG3tRRanKD707U0JCgpKSkrRr165zzhMeHn7WvU0OhyOo/2Opqi6F991ut8vlcqlIRfIouP+jkySPyxP0/6EXqUguuWS324P++7cEn9UAKPk7pGFY8pnhsxqcgv2zeqn9TJX4rFa2sqy/Wg2KPHbsmA4cOKCEhASrowAAAAAIYpbuUcrLy9Pu3bu99/fu3atNmzapTp06qlOnjtLS0nT77bcrISFB+/bt0zPPPKPY2Fj179/fwtQAAAAAgp2lRWn9+vXq2rWr9/7YsWMlSUOGDNHMmTO1ZcsWzZkzRydPnlRCQoK6du2q9957T9HR0VZFBgAAAHAJsLQopaam6nznkli2bFklpgEAAACAX1SrkzkAAFBduH48JndmvoqOF1gdBQDgB4oSAAABsH8EoyIAoDqrVme9AwAAAIDKQFECAAAAABOKEgAAAACYcIwSAAABkPTX3yi0ToSKjhdwvBIAVEMUJQAAAsB5eV054qPkzsyzOgoAwA8MvQMAAAAAE4oSAAAAAJhQlAAAAADAhKIEAAAAACaczAEAzmHbtm1WRwg4j8cjSdq8ebPs9uD+29mlsD0BABWHogQAJnnKk0023XfffVZHCTin06n58+erc+fOcrlcVscBAKDKoCgBgEmBCmTI0AANUKxirY4TUKG//hgYpmEqUpHFaQJrl3ZphVZYHQMAUE1QlADgHGIVq0QlWh0joOy/Hqoar3h55LE4TWBlKcvqCACAaoSiBABAAGTN3iJ7VJg8eaetjgIA8INfRWnv3r1KTk6u6CwAAASNrNlbrI4AACgHv05x1KxZM3Xt2lX/93//p4KCgorOBAAAAACW8qsobd68WVdffbWeeOIJxcfH6+GHH9Z//vOfis4GAAAAAJbwqyhdeeWVmj59ug4dOqRZs2YpMzNTN954o6644gpNnz5dR48ereicAABUK/YaDu8NAFD9lOvqgqGhoerfv78WLlyol156SXv27NGTTz6phg0bavDgwcrIyKionAAAVCspn9ypKzYMU8ond1odBQDgh3IVpfXr12vEiBFKSEjQ9OnT9eSTT2rPnj364osvdOjQId12220VlRMAAAAAKo1fZ72bPn26Zs2apR07dqhXr16aM2eOevXqJbv9l96VnJysN954Qy1btqzQsAAAAABQGfwqSjNnztQDDzygYcOGKT4+/qzzNG7cWG+//Xa5wgEAAACAFfwqSrt27brgPGFhYRoyZIg/iwcAAAAAS/l1jNKsWbP0/vvvl5r+/vvv69133y13KAAAAACwkl9F6cUXX1RsbGyp6XFxcZo8eXK5QwEAAACAlfwqSvv371dycnKp6UlJSUpPTy93KAAAAACwkl9FKS4uTt9//32p6Zs3b1bdunXLHQoAAAAArORXUbr77rv12GOPacWKFSouLlZxcbG++OILPf7447r77rsrOiMAAAAAVCq/zno3adIk7d+/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FRcXq6CgQKdOnVJkZGSp59SqVUsDBgzQO++8o2HDhik3N1cffPCBz9C5119/XX/729+0f/9+uVwunT59WldddZXfr3HDhg3Ky8tT3bp1faa7XC7t2bNHkjR27Fg9+OCDmjt3rm655Rbdeeedatq0qd/rBAAEBkUJAFAptm3bpuTk5LM+5nQ6z/tcj8ejiRMnasCAAaUei4iIOOfzhg8frm7dumnXrl1atWqVJGngwIGSpIULF2rMmDF6+eWX1bFjR0VHR2vatGk+x0WZ2e12GYbhM83tdvvkTEhI0MqVK0s9t1atWpKktLQ0DRo0SJ988omWLFmiCRMmaMGCBerfv/851wsAqHwUJQBAwH3xxRfasmWLxowZc9bH27Rpo7/97W86fvz4WfcqtWvXTjt27PAZjncxunbtqssuu0yzZ8/WihUrdNdddyk6OlqS9NVXX6lTp04aMWKEd/6SvT7nUq9ePWVkZHjv5+TkaO/evT45MzMzFRoaqiZNmpxzOSkpKUpJSdGYMWN0zz33aNasWRQlAKhiOJkDAKBCFRYWKjMzU4cOHdLGjRs1efJk3XbbberTp48GDx581ufcc889io+PV79+/fTNN9/op59+0gcffKA1a9ZIkv7whz9ozpw5SktL09atW7Vt2za99957+v3vf3/eLDabTcOGDdPMmTO1Zs0aDR8+3PtYs2bNtH79ei1btkw7d+7Uc889p3Xr1p13eTfffLPmzp2rr776Sj/88IOGDBmikJAQ7+O33HKLOnbsqH79+mnZsmXat2+fVq9erd///vdav369XC6XRo0apZUrV2r//v365ptvtG7dOrVq1epi314AQCWhKAEAKtTSpUuVkJCgJk2a6NZbb9WKFSv05z//Wf/85z99SsWZwsLC9NlnnykuLk69evVS69at9eKLL3rn/81vfqOPP/5Yy5cv17XXXqvrr79e06dPV1JS0gXzDB06VNnZ2WrRooVuuOEG7/RHHnlEAwYM0MCBA9WhQwcdO3bMZ+/S2YwfP16dO3dWnz591KtXL/Xr18/n+CKbzaZPP/1UnTt31gMPPKCUlBTdfffd2rdvn+rXr6+QkBAdO3ZMgwcPVkpKiu666y717NnT56QSAICqwWaYB1sDAAAAwCWOPUoAAAAAYEJRAgAAAAATihIAAAAAmFCUAAAAAMCEogQAAAAAJhQlAAAAADChKAEAAACACUUJAAAAAEwoSgAAAABgQlECAAAAABOKEgAAAACY/H/EKU4qWnNIYQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Calculate the mean value of dice rolls\n", + "mean_value = mean(dice['value'])\n", + "\n", + "plt.figure(figsize=(10, 6))\n", + "plt.hist(dice['value'], bins=range(1, 8), align='left', color='purple', edgecolor='black') # \n", + "plt.title('Histogram of 100 Dice Rolls')\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency')\n", + "plt.xticks(range(1, 7))\n", + "plt.grid(True)\n", + "plt.axvline(mean_value, color='lightblue', linestyle='dashed', linewidth=2) # Add a vertical line for the mean on the histogram\n", + "plt.text(mean_value+0.1, plt.ylim()[1]-5, f'Mean: {mean_value:.2f}', color = 'lightblue')\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"\\nShape: The histogram shows bars corresponding to each of the six dice values (1 through 6). \\nThe height of each bar represents the number of times each value was rolled.\\nValues: Each bar's height (frequency) shows how often that particular result was rolled in the 100 trials. \\nLooking at the histogram, we can see that, in these 100 rolls, the numbers 4 and 6 showed up way more often—22 and 23 times, respectively—\\ncompared to the others, which appeared only 12 to 17 times each. \\nLooking at the mean in the plot, we can see that it is, indeed, slighlty skewed to the right\\nNormally, you'd expect each number to come up about 16 or 17 times if the dice rolls were completely random and the dice was fair. \\nThe higher counts for 4 and 6 might just be chance, or it might mean something's off with the dice or how we're rolling it. \\nTo really figure out what's happening, I'd probably need to do more rolls or check out the dice and how we're rolling more closely\\n\"" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "Shape: The histogram shows bars corresponding to each of the six dice values (1 through 6). \n", + "The height of each bar represents the number of times each value was rolled.\n", + "Values: Each bar's height (frequency) shows how often that particular result was rolled in the 100 trials. \n", + "Looking at the histogram, we can see that, in these 100 rolls, the numbers 4 and 6 showed up way more often—22 and 23 times, respectively—\n", + "compared to the others, which appeared only 12 to 17 times each. \n", + "Looking at the mean in the plot, we can see that it is, indeed, slighlty skewed to the right\n", + "Normally, you'd expect each number to come up about 16 or 17 times if the dice rolls were completely random and the dice was fair. \n", + "The higher counts for 4 and 6 might just be chance, or it might mean something's off with the dice or how we're rolling it. \n", + "To really figure out what's happening, I'd probably need to do more rolls or check out the dice and how we're rolling more closely\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": 60, + "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", + " \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
............
9959959951
9969969964
9979979974
9989989983
9999999996
\n", + "

1000 rows × 3 columns

\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\n", + ".. ... ... ...\n", + "995 995 995 1\n", + "996 996 996 4\n", + "997 997 997 4\n", + "998 998 998 3\n", + "999 999 999 6\n", + "\n", + "[1000 rows x 3 columns]" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "roll_the_dice_thousand = pd.read_csv(\"../data/roll_the_dice_thousand.csv\")\n", + "roll_the_dice_thousand" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unique Values: [1 2 3 4 5 6]\n", + "Frequency Values: [175 167 175 168 149 166]\n" + ] + } + ], + "source": [ + "unique, frequency = np.unique(roll_the_dice_thousand[\"value\"],return_counts = True)\n", + "\n", + "print(\"Unique Values:\",unique)\n", + " \n", + "# print frequency array\n", + "print(\"Frequency Values:\",frequency)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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HPNmzpypCRMmaNy4cfEeJaHU1tbK5/MpJydHU6ZM0UcffRTvkUzbsGGD8vLydOuttyozM1ODBw/WkiVL4j1WXBAoSHiO46i4uFhXXnmlcnNz4z2Oefv27dN3v/tdud1u3X333Vq3bp1++MMfxnss09asWaM9e/aovLw83qMklGHDhmnFihXatGmTlixZosbGRo0cOVKHDx+O92hmffTRR1q0aJH69eunTZs26e6779avfvUrrVixIt6jfet4iwcJ795779U777yj7du3x3uUhPCDH/xAe/fu1dGjR/XHP/5RRUVFqq6uJlLOoL6+Xvfdd582b96srl27xnuchPLfb10PHDhQI0aM0MUXX6zly5eruLg4jpPZdfr0aeXl5WnevHmSpMGDB+vAgQNatGiR7rjjjjhP9+3iDgoS2qxZs7RhwwZt3bpVffr0ifc4CSElJUXf//73lZeXp/Lycg0aNEjPPvtsvMcyq6amRk1NTRo6dKiSk5OVnJys6upq/f73v1dycrJOnToV7xETRo8ePTRw4EDV1tbGexSzvF5vm/9ZuPTSS3Xo0KE4TRQ/3EFBQnIcR7NmzdK6detUVVWlnJyceI+UsBzHUSgUivcYZo0dO7bNb578/Oc/1yWXXKIHHnhASUlJcZos8YRCIb333nu66qqr4j2KWaNGjWrzTyZ88MEH5+UX6RIoBrS0tOjgwYPh9bq6Ou3du1fp6enq27dvHCeza+bMmVq9erVefvllpaamqrGxUZKUlpambt26xXk6ux566CEFAgH5/X4dO3ZMa9asUVVVVZvfisL/S01NbfPZph49eqhXr1585ulrlJSUqLCwUH379lVTU5Mee+wxBYNBFRUVxXs0s379619r5MiRmjdvniZNmqS//vWvWrx4sRYvXhzv0b59DuJu69atjqQ2S1FRUbxHM6u96yXJqaioiPdopt15551Odna2k5KS4vTu3dsZO3ass3nz5niPlXBGjx7t3HffffEew7zJkyc7Xq/X6dKli+Pz+ZyJEyc6Bw4ciPdY5v3pT39ycnNzHbfb7VxyySXO4sWL4z1SXLgcx3Hi1EYAAADt4kOyAADAHAIFAACYQ6AAAABzCBQAAGAOgQIAAMwhUAAAgDkECgAAMIdAAQAA5hAoAADAHAIFAACYQ6AAAABzCBQAAGDO/wHLWZklKQbCeQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.bar(unique, frequency)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Along with the increase in the number of roll dicing, the frequency of values almost evens out.'" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Along with the increase in the number of roll dicing, the frequency of values almost evens out.\"\"\"" + ] + }, + { + "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": 20, + "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": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population= pd.read_csv('../data/ages_population.csv')\n", + "ages_population.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Frequency')" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9w0lEQVR4nO3de5iN9f7/8ddqDmsOZiZDcwpjEiqDiiLkkDHOldGOjoS2nXP4VfLd2+gro0SKHe2dBkl0GNImmomUaCc5ty9pN0MymmKYsTDMzOf3R9esb8uM05phrXV7Pq5rXZf1uT/3fb/fs+bwch/WshljjAAAACzqKk8XAAAAcCkRdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdnDFmjdvnmw2W4WPsWPHero8Sznzax0UFKSYmBh16NBBaWlpysvLK7dOamqqbDbbRe3n+PHjSk1N1WeffXZR61W0r7p166pHjx4XtZ3zWbRokWbMmFHhMpvNptTU1CrdX1X79NNP1bx5c4WGhspms2nZsmXnXWfHjh2y2WwKCAhQbm7upS8SqIC/pwsAPC09PV033HCDy1hcXJyHqrG2sq/16dOnlZeXp/Xr1+uFF17QSy+9pCVLligpKck5d9CgQerSpctFbf/48eOaOHGiJKl9+/YXvJ47+3LHokWLtHPnTo0aNarcso0bN6pWrVqXvAZ3GWN0//33q0GDBlq+fLlCQ0PVsGHD8673xhtvSJKKi4u1YMECPf3005e6VKAcwg6ueImJiWrevPkFzT19+rRsNpv8/fnRcceZX+vevXvrySefVJs2bZSSkqI9e/YoOjpaklSrVq1L/sf/+PHjCgkJuSz7Op+WLVt6dP/nc+DAAR0+fFi9evVSx44dL2idoqIivf3222ratKl+++03vfnmm4QdeASnsYCz+Oyzz2Sz2fTWW29pzJgxuvbaa2W32/XDDz9IkrKystSxY0eFh4crJCRErVu31qefflpuOytWrNDNN98su92uhIQEvfTSS+VOm+Tk5Mhms2nevHnl1q/o9MaePXv04IMPKioqSna7XTfeeKP+/ve/V1j/O++8o/HjxysuLk7h4eFKSkrS7t27y+1n1apV6tixoyIiIhQSEqIbb7xRaWlpkqS33npLNptNGzduLLfec889p4CAAB04cOC8X9OK1KlTR9OmTVNhYaFef/1153hFp5bWrFmj9u3bq0aNGgoODladOnXUu3dvHT9+XDk5ObrmmmskSRMnTnSeMuvfv7/L9r799lvdd999ql69uurVq3fWfZVZunSpmjRpoqCgIF133XV69dVXXZaXnaLLyclxGS/7+pedUmvfvr1WrFihvXv3upzSK1PR67xz507dc889ql69uoKCgnTzzTdr/vz5Fe7nQl/niqxfv14dO3ZUWFiYQkJC1KpVK61YscK5PDU11RkGn376adlsNtWtW/e82122bJkOHTqkQYMGqV+/fvr++++1fv36cvOKioo0ZswYxcTEKCQkRG3bttXmzZtVt25d5+tX5uDBgxo8eLBq1aqlwMBAJSQkaOLEiSouLr6gXnFlIuzgildSUqLi4mKXxx+NGzdO+/bt05w5c/TRRx8pKipKCxcuVHJyssLDwzV//ny9++67ioyMVOfOnV0Cz6effqp77rlHYWFhWrx4saZOnap3331X6enpbtf73Xff6bbbbtPOnTs1bdo0/etf/1L37t01YsQI5ymcP3r22We1d+9evfHGG/rHP/6hPXv2qGfPniopKXHOmTt3rrp166bS0lJnnyNGjND+/fslSX369FFMTEy5QFVcXKzXX39dvXr1qtSpv27dusnPz0+ff/75Wefk5OSoe/fuCgwM1JtvvqlVq1ZpypQpCg0N1alTpxQbG6tVq1ZJkgYOHKiNGzdq48aN+utf/+qynZSUFF1//fV67733NGfOnHPWtXXrVo0aNUpPPvmkli5dqlatWmnkyJF66aWXLrrH1157Ta1bt1ZMTIyztorCY5ndu3erVatW2rVrl1599VVlZGTopptuUv/+/fXiiy+Wm38hr3NF1q1bp7vuuktHjx7V3Llz9c477ygsLEw9e/bUkiVLJP1+mi8jI0OSNHz4cG3cuFFLly49b89z586V3W7XQw89pAEDBshms2nu3Lnl5j322GOaMWOGHnvsMX344Yfq3bu3evXqpSNHjrjMO3jwoG6//XatXr1af/vb3/Txxx9r4MCBSktL0+OPP37eenAFM8AVKj093Uiq8HH69Gmzdu1aI8m0bdvWZT2Hw2EiIyNNz549XcZLSkpM06ZNze233+4ca9GihYmLizMnTpxwjhUUFJjIyEjzxx+/7OxsI8mkp6eXq1OSmTBhgvN5586dTa1atczRo0dd5g0bNswEBQWZw4cPG2OMs/5u3bq5zHv33XeNJLNx40ZjjDGFhYUmPDzctGnTxpSWlp716zVhwgQTGBhofvnlF+fYkiVLjCSzbt26s65nzP99rTdt2nTWOdHR0ebGG2902d8fv0bvv/++kWS2bt161m38+uuv5b5eZ27vb3/721mX/VF8fLyx2Wzl9tepUycTHh5uHA6HS2/Z2dku88q+/mvXrnWOde/e3cTHx1dY+5l19+3b19jtdrNv3z6XeV27djUhISHmyJEjLvs53+t8Ni1btjRRUVGmsLDQOVZcXGwSExNNrVq1nN8TZd+jU6dOPef2yuTk5JirrrrK9O3b1znWrl07ExoaagoKCpxju3btMpLM008/7bL+O++8YySZfv36OccGDx5sqlWrZvbu3esy96WXXjKSzK5duy6oNlx5OLKDK96CBQu0adMml8cfr8np3bu3y/wNGzbo8OHD6tevn8vRoNLSUnXp0kWbNm2Sw+GQw+HQpk2blJKSoqCgIOf6Zf9rdsfJkyf16aefqlevXgoJCXHZf7du3XTy5El99dVXLuvcfffdLs+bNGkiSdq7d6+zn4KCAg0ZMuScdz898cQTkqR//vOfzrFZs2apcePGatu2rVv9/JEx5pzLb775ZgUGBurPf/6z5s+frx9//NGt/Zz5ep5Lo0aN1LRpU5exBx98UAUFBfr222/d2v+FWrNmjTp27KjatWu7jPfv31/Hjx8vd1TofK9zRRwOh/7973/rvvvuU7Vq1Zzjfn5+euSRR7R///4LPhV2pvT0dJWWlmrAgAHOsQEDBsjhcDiPGEm/H1mSpPvvv99l/fvuu6/ctXH/+te/1KFDB8XFxbl873ft2tVlW8CZCDu44t14441q3ry5y+OPYmNjXZ7/8ssvkn7/ZRwQEODyeOGFF2SM0eHDh5Wfn6/S0lLFxMSU22dFYxfi0KFDKi4u1syZM8vtu1u3bpKk3377zWWdGjVquDy32+2SpBMnTkiSfv31V0k67wW60dHR6tOnj15//XWVlJRo+/bt+uKLLzRs2DC3evkjh8OhQ4cOnfNUWL169ZSVlaWoqCgNHTpU9erVU7169fTKK69c1L7OfD3P5Vyv3aFDhy5qvxfr0KFDFdZa9jU6c//ne50rkp+fL2PMRe3nQpSWlmrevHmKi4tTs2bNdOTIER05ckRJSUkKDQ11OZVVtv2yC9PL+Pv7l+vpl19+0UcffVTue79Ro0aSyn/vA2W4pQQ4jzOPdtSsWVOSNHPmzLPeQRMdHe28c+vgwYPllp85Vnbkp6ioyGX8zD801atXd/6ve+jQoRXuOyEh4RzdlFd2UW/Z9TnnMnLkSL311lv68MMPtWrVKl199dV66KGHLmp/FVmxYoVKSkrOe7v4nXfeqTvvvFMlJSX65ptvNHPmTI0aNUrR0dHq27fvBe3rYt6751yvXdkf4rO9dpX9w1ujRo0K35em7ELwsu/DyqhevbquuuqqKt9PVlaW84jSmYFFkr766it99913uummm5zLf/nlF1177bXOOcXFxeW+/2vWrKkmTZro+eefr3C/vGUEzoawA1yk1q1b6+qrr9Z33313zqMagYGBuv3225WRkaGpU6c6/ygWFhbqo48+cpkbHR2toKAgbd++3WX8ww8/dHkeEhKiDh06aMuWLWrSpIkCAwMr3U+rVq0UERGhOXPmqG/fvucMA82aNVOrVq30wgsvaOfOnfrzn/+s0NDQSu1/3759Gjt2rCIiIjR48OALWsfPz08tWrTQDTfcoLffflvffvut+vbte0FHMy7Grl27tG3bNpdTWYsWLVJYWJhuvfVWSXLelbR9+3aX951Zvnx5ue3Z7fYLrq1jx45aunSpDhw44PJHfMGCBQoJCamSW9VDQ0PVokULZWRk6KWXXlJwcLCk34/MLFy4ULVq1VKDBg0uertz587VVVddpYyMDEVERLgs279/vx555BG9+eabeumll5ynQJcsWeL8mkrS+++/X+5mgR49emjlypWqV6+eqlevftF14cpF2AEuUrVq1TRz5kz169dPhw8f1n333aeoqCj9+uuv2rZtm3799VfNnj1bkvS///u/6tKlizp16qQxY8aopKREL7zwgkJDQ3X48GHnNm02mx5++GG9+eabqlevnpo2baqvv/5aixYtKrf/V155RW3atNGdd96pJ554QnXr1lVhYaF++OEHffTRR1qzZs1F9zNt2jQNGjRISUlJevzxxxUdHa0ffvhB27Zt06xZs1zmjxw5Un369JHNZtOQIUMual87d+50XmeRl5enL774Qunp6fLz89PSpUudR5kqMmfOHK1Zs0bdu3dXnTp1dPLkSb355puS5HwzwrCwMMXHx+vDDz9Ux44dFRkZqZo1a17QbdIViYuL0913363U1FTFxsZq4cKFyszM1AsvvKCQkBBJ0m233aaGDRtq7NixKi4uVvXq1bV06dIKb7Fu3LixMjIyNHv2bDVr1kxXXXXVWd/jacKECc5rVP72t78pMjJSb7/9tlasWKEXX3yxXIhwV1pamjp16qQOHTpo7NixCgwM1GuvvaadO3fqnXfeueh3sT506JA+/PBDde7cWffcc0+Fc15++WUtWLBAaWlpatSokR544AFNmzZNfn5+uuuuu7Rr1y5NmzZNERERuuqq/7va4rnnnlNmZqZatWqlESNGqGHDhjp58qRycnK0cuVKzZkzx+PvlwQv5eELpAGPOd8dQmV3ubz33nsVLl+3bp3p3r27iYyMNAEBAebaa6813bt3Lzd/+fLlpkmTJiYwMNDUqVPHTJkypcK7f44ePWoGDRpkoqOjTWhoqOnZs6fJycmp8O6i7OxsM2DAAHPttdeagIAAc80115hWrVqZSZMmnbf+s935tXLlSufdMiEhIeamm24yL7zwQrm+i4qKjN1uN126dKnw61KRM+98CwwMNFFRUaZdu3Zm8uTJJi8vr9w6Z36NNm7caHr16mXi4+ON3W43NWrUMO3atTPLly93WS8rK8vccsstxm63u9zNU7a9X3/99bz7Mub3u7G6d+9u3n//fdOoUSMTGBho6tata6ZPn15u/e+//94kJyeb8PBwc80115jhw4ebFStWlLsb6/Dhw+a+++4zV199tbHZbC77rOh13rFjh+nZs6eJiIgwgYGBpmnTpuVet4t9nSvyxRdfmLvuusuEhoaa4OBg07JlS/PRRx9VuL3z3Y01Y8YMI8ksW7bsrHPmzJljJJkPPvjAGGPMyZMnzejRo01UVJQJCgoyLVu2NBs3bjQRERHmySefdFn3119/NSNGjDAJCQkmICDAREZGmmbNmpnx48ebY8eOnbdXXJlsxpznFggAVS41NVUTJ0487x1I3uijjz7S3XffrRUrVjgvigaq2oYNG9S6dWu9/fbbevDBBz1dDnwcp7EAXJDvvvtOe/fu1ZgxY3TzzTc7b/cFKiszM1MbN25Us2bNFBwcrG3btmnKlCmqX7++UlJSPF0eLICwA+CCDBkyRF9++aVuvfVWzZ8//6Kv5QDOJjw8XJ988olmzJihwsJC1axZU127dlVaWprLe1QB7uI0FgAAsDTeVBAAAFgaYQcAAFgaYQcAAFgaFyjr93cLPXDggMLCwrjoEgAAH2GMUWFhoeLi4lzegPJMhB39/hkwZ36yMAAA8A0//fTTOd89m7Cj399iXvr9ixUeHu72drKyspxvW29FVu7Pyr1J9OfLrNybRH++zBt6KygoUO3atZ1/x8+GsKP/+xTk8PDwSoWd0NDQSq3v7azcn5V7k+jPl1m5N4n+fJk39Xa+S1C4QBkAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFgaYQcAAFiav6cLAOBbMnbnerqEcg7kO+Q4R10pDWMvYzUAvA1HdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKV5NOykpaXptttuU1hYmKKionTvvfdq9+7dLnP69+8vm83m8mjZsqXLnKKiIg0fPlw1a9ZUaGio7r77bu3fv/9ytgIAALyUR8POunXrNHToUH311VfKzMxUcXGxkpOT5XA4XOZ16dJFubm5zsfKlStdlo8aNUpLly7V4sWLtX79eh07dkw9evRQSUnJ5WwHAAB4IY9+NtaqVatcnqenpysqKkqbN29W27ZtneN2u10xMTEVbuPo0aOaO3eu3nrrLSUlJUmSFi5cqNq1aysrK0udO3e+dA0AAACv51XX7Bw9elSSFBkZ6TL+2WefKSoqSg0aNNDjjz+uvLw857LNmzfr9OnTSk5Odo7FxcUpMTFRGzZsuDyFAwAAr+U1n3pujNHo0aPVpk0bJSYmOse7du2qP/3pT4qPj1d2drb++te/6q677tLmzZtlt9t18OBBBQYGqnr16i7bi46O1sGDByvcV1FRkYqKipzPCwoKLk1TAADA47wm7AwbNkzbt2/X+vXrXcb79Onj/HdiYqKaN2+u+Ph4rVixQikpKWfdnjFGNputwmVpaWmaOHFiufGsrCyFhoa62YGUk5Oj1atXu72+t7Nyf1buTara/g7kO84/6TJz5B3QgS0bz7p8dY77P9eexvemb7Nyf97Q25nX+J6NV4Sd4cOHa/ny5fr8889Vq1atc86NjY1VfHy89uzZI0mKiYnRqVOnlJ+f73J0Jy8vT61atapwG+PGjdPo0aOdzwsKClS7dm0lJSUpPDzc7T5Wr15t6WuErNyflXuTqrY/x+7cKtlOVTqwZaPibrnjrMs7N4y9jNVULb43fZuV+/OG3i70zIxHr9kxxmjYsGHKyMjQmjVrlJCQcN51Dh06pJ9++kmxsb//8mrWrJkCAgKUmZnpnJObm6udO3eeNezY7XaFh4e7PAAAgDV59MjO0KFDtWjRIn344YcKCwtzXmMTERGh4OBgHTt2TKmpqerdu7diY2OVk5OjZ599VjVr1lSvXr2ccwcOHKgxY8aoRo0aioyM1NixY9W4cWPn3VkAAODK5dGwM3v2bElS+/btXcbT09PVv39/+fn5aceOHVqwYIGOHDmi2NhYdejQQUuWLFFYWJhz/ssvvyx/f3/df//9OnHihDp27Kh58+bJz8/vcrYDAAC8kEfDjjHmnMuDg4Mv6OKnoKAgzZw5UzNnzqyq0gAAgEV41fvsAAAAVDXCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDR/TxcAXMkydudelv0cyHfIcZn2BQDexqNHdtLS0nTbbbcpLCxMUVFRuvfee7V7926XOcYYpaamKi4uTsHBwWrfvr127drlMqeoqEjDhw9XzZo1FRoaqrvvvlv79++/nK0AAAAv5dGws27dOg0dOlRfffWVMjMzVVxcrOTkZDkcDuecF198UdOnT9esWbO0adMmxcTEqFOnTiosLHTOGTVqlJYuXarFixdr/fr1OnbsmHr06KGSkhJPtAUAALyIR09jrVq1yuV5enq6oqKitHnzZrVt21bGGM2YMUPjx49XSkqKJGn+/PmKjo7WokWLNHjwYB09elRz587VW2+9paSkJEnSwoULVbt2bWVlZalz586XvS8AAOA9vOoC5aNHj0qSIiMjJUnZ2dk6ePCgkpOTnXPsdrvatWunDRs2SJI2b96s06dPu8yJi4tTYmKic86ZioqKVFBQ4PIAAADW5DUXKBtjNHr0aLVp00aJiYmSpIMHD0qSoqOjXeZGR0dr7969zjmBgYGqXr16uTll658pLS1NEydOLDeelZWl0NBQt3vIycnR6tWr3V7f21m5P0/1diDfcf5JVcCRd0AHtmy8LPvyhPP1tzrH/Z9rT7Pyz51Ef77MG3r742Uv5+I1YWfYsGHavn271q9fX26ZzWZzeW6MKTd2pnPNGTdunEaPHu18XlBQoNq1ayspKUnh4eFuVP+71atXW/q0mZX781Rvl+sOqQNbNiruljsuy7484Xz9dW4YexmrqVpW/rmT6M+XeUNvF3pmxitOYw0fPlzLly/X2rVrVatWLed4TEyMJJU7QpOXl+c82hMTE6NTp04pPz//rHPOZLfbFR4e7vIAAADW5NGwY4zRsGHDlJGRoTVr1ighIcFleUJCgmJiYpSZmekcO3XqlNatW6dWrVpJkpo1a6aAgACXObm5udq5c6dzDgAAuHJ59DTW0KFDtWjRIn344YcKCwtzHsGJiIhQcHCwbDabRo0apcmTJ6t+/fqqX7++Jk+erJCQED344IPOuQMHDtSYMWNUo0YNRUZGauzYsWrcuLHz7iwAAHDl8mjYmT17tiSpffv2LuPp6enq37+/JOmpp57SiRMnNGTIEOXn56tFixb65JNPFBYW5pz/8ssvy9/fX/fff79OnDihjh07at68efLz87tcrQAAAC/l0bBjjDnvHJvNptTUVKWmpp51TlBQkGbOnKmZM2dWYXUAAMAKvOICZQAAgEvFa249B4BL5XJ94GpVSvHh2+UBb8ORHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGluhZ3s7OyqrgMAAOCScCvsXH/99erQoYMWLlyokydPVnVNAAAAVcatsLNt2zbdcsstGjNmjGJiYjR48GB9/fXXVV0bAABApbkVdhITEzV9+nT9/PPPSk9P18GDB9WmTRs1atRI06dP16+//lrVdQIAALilUhco+/v7q1evXnr33Xf1wgsv6L///a/Gjh2rWrVq6dFHH1Vubm5V1QkAAOCWSoWdb775RkOGDFFsbKymT5+usWPH6r///a/WrFmjn3/+Wffcc09V1QkAAOAWf3dWmj59utLT07V7925169ZNCxYsULdu3XTVVb9np4SEBL3++uu64YYbqrRYAACAi+VW2Jk9e7YGDBigxx57TDExMRXOqVOnjubOnVup4gAAACrLrbCzZ8+e884JDAxUv3793Nk8AABAlXHrmp309HS999575cbfe+89zZ8/v9JFAQAAVBW3ws6UKVNUs2bNcuNRUVGaPHlypYsCAACoKm6Fnb179yohIaHceHx8vPbt23fB2/n888/Vs2dPxcXFyWazadmyZS7L+/fvL5vN5vJo2bKly5yioiINHz5cNWvWVGhoqO6++27t37/fnbYAAIAFuRV2oqKitH379nLj27ZtU40aNS54Ow6HQ02bNtWsWbPOOqdLly7Kzc11PlauXOmyfNSoUVq6dKkWL16s9evX69ixY+rRo4dKSkouvCEAAGBZbl2g3LdvX40YMUJhYWFq27atJGndunUaOXKk+vbte8Hb6dq1q7p27XrOOXa7/ax3fB09elRz587VW2+9paSkJEnSwoULVbt2bWVlZalz584XXAsAALAmt47sTJo0SS1atFDHjh0VHBys4OBgJScn66677qrya3Y+++wzRUVFqUGDBnr88ceVl5fnXLZ582adPn1aycnJzrG4uDglJiZqw4YNZ91mUVGRCgoKXB4AAMCabMYY4+7K33//vbZt26bg4GA1btxY8fHx7hdis2np0qW69957nWNLlixRtWrVFB8fr+zsbP31r39VcXGxNm/eLLvdrkWLFumxxx5TUVGRy7aSk5Odb2xYkdTUVE2cOLHc+Acf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jvl6b//v//0/PfPMM+rbt68aN26sRx55RE8++aTS0tIk+VZ/hJ1KCAwMVLNmzZSZmekynpmZqVatWnmoqksjISFBMTExLr2eOnVK69at84lejTEaNmyYMjIytGbNGiUkJLgs9/X+KmKMUVFRkc/31rFjR+3YsUNbt251Ppo3b66HHnpIW7du1XXXXefT/Z2pqKhI//nPfxQbG+vzr50ktW7dutzbPHz//feKj4+XZJ2fvfT0dEVFRal79+7OMV/v7fjx47rqKteY4Ofn57z13Kf688x10dZRduv53LlzzXfffWdGjRplQkNDTU5OjqdLu2iFhYVmy5YtZsuWLUaSmT59utmyZYvzNvopU6aYiIgIk5GRYXbs2GEeeOABr7zFsCJPPPGEiYiIMJ999pnLbaLHjx93zvHl/saNG2c+//xzk52dbbZv326effZZc9VVV5lPPvnEGOPbvVXkj3djGePb/Y0ZM8Z89tln5scffzRfffWV6dGjhwkLC3P+DvHl3oz5/e0C/P39zfPPP2/27Nlj3n77bRMSEmIWLlzonOPrPZaUlJg6deqYp59+utwyX+6tX79+5tprr3Xeep6RkWFq1qxpnnrqKeccX+mPsFMF/v73v5v4+HgTGBhobr31VuftzL5m7dq1RlK5R79+/Ywxv99mOGHCBBMTE2Psdrtp27at2bFjh2eLvkAV9SXJpKenO+f4cn8DBgxwfg9ec801pmPHjs6gY4xv91aRM8OOL/dX9r4kAQEBJi4uzqSkpJhdu3Y5l/tyb2U++ugjk5iYaOx2u7nhhhvMP/7xD5flvt7j6tWrjSSze/fucst8ubeCggIzcuRIU6dOHRMUFGSuu+46M378eFNUVOSc4yv92YwxxiOHlAAAAC4DrtkBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgB4LM2bNggPz8/denSxdOlAPBivIMyAJ81aNAgVatWTW+88Ya+++471alTx9MlAfBCHNkB4JMcDofeffddPfHEE+rRo4fmzZvnsnz58uWqX7++goOD1aFDB82fP182m01HjhxxztmwYYPatm2r4OBg1a5dWyNGjJDD4bi8jQC45Ag7AHzSkiVL1LBhQzVs2FAPP/yw0tPTVXagOicnR/fdd5/uvfdebd26VYMHD9b48eNd1t+xY4c6d+6slJQUbd++XUuWLNH69es1bNgwT7QD4BLiNBYAn9S6dWvdf//9GjlypIqLixUbG6t33nlHSUlJeuaZZ7RixQrt2LHDOf9//ud/9Pzzzys/P19XX321Hn30UQUHB+v11193zlm/fr3atWsnh8OhoKAgT7QF4BLgyA4An7N79259/fXX6tu3ryTJ399fffr00Ztvvulcftttt7msc/vtt7s837x5s+bNm6dq1ao5H507d1Zpaamys7MvTyMALgt/TxcAABdr7ty5Ki4u1rXXXuscM8YoICBA+fn5MsbIZrO5rHPmQezS0lINHjxYI0aMKLd9LnQGrIWwA8CnFBcXa8GCBZo2bZqSk5NdlvXu3Vtvv/22brjhBq1cudJl2TfffOPy/NZbb9WuXbt0/fXXX/KaAXgW1+wA8CnLli1Tnz59lJeXp4iICJdl48eP18qVK5WRkaGGDRvqySef1MCBA7V161aNGTNG+/fv15EjRxQREaHt27erZcuWeuyxx/T4448rNDRU//nPf5SZmamZM2d6qDsAlwLX7ADwKXPnzlVSUlK5oCP9fmRn69atys/P1/vvv6+MjAw1adJEs2fPdt6NZbfbJUlNmjTRunXrtGfPHt1555265ZZb9Ne//lWxsbGXtR8Alx5HdgBcEZ5//nnNmTNHP/30k6dLAXCZcc0OAEt67bXXdNttt6lGjRr68ssvNXXqVN5DB7hCEXYAWNKePXs0adIkHT58WHXq1NGYMWM0btw4T5cFwAM4jQUAACyNC5QBAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAICl/X8H6kQ1dokOtwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Freqyency distribution of the the observation of the ages\n", + "plt.hist(ages_population, color = \"lightblue\")\n", + "plt.title('Frequency Distribution of Age')\n", + "plt.grid(color='grey', linewidth=0.4)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')" + ] + }, + { + "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": 22, + "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", + "
observation
count1000.0000
mean36.5600
std12.8165
min1.0000
25%28.0000
50%37.0000
75%45.0000
max82.0000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.0000\n", + "mean 36.5600\n", + "std 12.8165\n", + "min 1.0000\n", + "25% 28.0000\n", + "50% 37.0000\n", + "75% 45.0000\n", + "max 82.0000" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Yes, it was what I expected. Maybe because people whose responses fall within this range (mean of 36.56 and a standard deviation of 12.82) are likely to have more patience to participate in the poll.'" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Yes, it was what I expected. Maybe because people whose responses fall within this range (mean of 36.56 and a standard deviation of 12.82) are likely to have more patience to participate in the poll.\"\"\"" + ] + }, + { + "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": 43, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
observation
025.0
131.0
229.0
331.0
429.0
......
99526.0
99622.0
99721.0
99819.0
99928.0
\n", + "

1000 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 25.0\n", + "1 31.0\n", + "2 29.0\n", + "3 31.0\n", + "4 29.0\n", + ".. ...\n", + "995 26.0\n", + "996 22.0\n", + "997 21.0\n", + "998 19.0\n", + "999 28.0\n", + "\n", + "[1000 rows x 1 columns]" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population2 = pd.read_csv(\"../data/ages_population2.csv\")\n", + "ages_population2" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Frequency')" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9HklEQVR4nO3de1hVZf7//9dOYQsEJBqnVOJjapmHSi1T8yxqnlIbdZxKSxsn0zT1qhy/TTjTiIc0G/2kzidDzTxUg2WjaZBmmTZ5PjWXWQMeBohSFERFgfv3Bz+2bjlvN25YPB/Xta/Lvda97vVeN4vFy3XY22aMMQIAALCoWzxdAAAAQEUi7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7KDaWrZsmWw2W5GvKVOmeLo8S7l+rGvVqqXQ0FB16dJFMTExSktLK7RMdHS0bDZbudZz4cIFRUdH68svvyzXckWt684771Tfvn3L1U9pVq1apfnz5xc5z2azKTo62q3rc7cvvvhCrVu3lp+fn2w2mz7++ONSlzl06JBsNpu8vLyUkpJS8UUCRajp6QIAT4uNjdXdd9/tNC08PNxD1VhbwVhfuXJFaWlp2r59u2bNmqU33nhDa9euVffu3R1tR48erV69epWr/wsXLmj69OmSpM6dO5d5OVfW5YpVq1bp8OHDmjhxYqF5O3fuVL169Sq8BlcZYzRkyBA1btxY69evl5+fn5o0aVLqcu+8844kKScnRytWrNDLL79c0aUChRB2UO01a9ZMrVu3LlPbK1euyGazqWZNfnVccf1YDx48WC+++KI6dOigQYMG6dixYwoJCZEk1atXr8L/+F+4cEG+vr43ZV2ladu2rUfXX5rk5GSdOXNGAwcOVLdu3cq0THZ2tt5//321bNlSv/76q959913CDjyCy1hAMb788kvZbDa99957mjx5su644w7Z7Xb9+OOPkqSEhAR169ZNAQEB8vX1Vfv27fXFF18U6mfDhg267777ZLfbFRkZqTfeeKPQZZOkpCTZbDYtW7as0PJFXd44duyYhg8fruDgYNntdt1zzz363//93yLrX716taZNm6bw8HAFBASoe/fuOnr0aKH1bNq0Sd26dVNgYKB8fX11zz33KCYmRpL03nvvyWazaefOnYWW+/Of/ywvLy8lJyeXOqZFadCggebOnavMzEwtWbLEMb2oS0tbtmxR586dVadOHfn4+KhBgwYaPHiwLly4oKSkJN1+++2SpOnTpzsumY0cOdKpv7179+rxxx9X7dq11bBhw2LXVWDdunVq0aKFatWqpf/5n//R3/72N6f5BZfokpKSnKYXjH/BJbXOnTtrw4YNOn78uNMlvQJF/ZwPHz6sAQMGqHbt2qpVq5buu+8+LV++vMj1lPXnXJTt27erW7du8vf3l6+vr9q1a6cNGzY45kdHRzvC4MsvvyybzaY777yz1H4//vhjnT59WqNHj9aIESP0ww8/aPv27YXaZWdna/LkyQoNDZWvr686duyoPXv26M4773T8/AqkpqZqzJgxqlevnry9vRUZGanp06crJyenTNuK6omwg2ovNzdXOTk5Tq9rTZ06VSdOnNDixYv16aefKjg4WCtXrlRUVJQCAgK0fPlyffDBBwoKClLPnj2dAs8XX3yhAQMGyN/fX2vWrNGcOXP0wQcfKDY21uV6v//+e7Vp00aHDx/W3Llz9c9//lN9+vTRCy+84LiEc60//vGPOn78uN555x39/e9/17Fjx9SvXz/l5uY62ixdulSPPvqo8vLyHNv5wgsv6NSpU5KkoUOHKjQ0tFCgysnJ0ZIlSzRw4MAbuvT36KOPqkaNGvrqq6+KbZOUlKQ+ffrI29tb7777rjZt2qSZM2fKz89Ply9fVlhYmDZt2iRJGjVqlHbu3KmdO3fq1Vdfdepn0KBBuuuuu/Thhx9q8eLFJda1f/9+TZw4US+++KLWrVundu3aacKECXrjjTfKvY1vv/222rdvr9DQUEdtRYXHAkePHlW7du105MgR/e1vf1NcXJyaNm2qkSNHavbs2YXal+XnXJRt27apa9euOnfunJYuXarVq1fL399f/fr109q1ayXlX+aLi4uTJI0fP147d+7UunXrSt3mpUuXym6363e/+52eeeYZ2Ww2LV26tFC7p59+WvPnz9fTTz+tTz75RIMHD9bAgQN19uxZp3apqal68MEHtXnzZv3pT3/SZ599plGjRikmJkbPPvtsqfWgGjNANRUbG2skFfm6cuWK2bp1q5FkOnbs6LRcVlaWCQoKMv369XOanpuba1q2bGkefPBBx7SHHnrIhIeHm4sXLzqmZWRkmKCgIHPtr19iYqKRZGJjYwvVKcm89tpr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1k1BQUGqW7dumR6TLkp4eLj69++v6OhohYWFaeXKlYqPj9esWbPk6+srSWrTpo2aNGmiKVOmKCcnR7Vr19a6deuKfMS6efPmiouL06JFi9SqVSvdcsstxX7G02uvvea4R+VPf/qTgoKC9P7772vDhg2aPXt2oRDhqpiYGPXo0UNdunTRlClT5O3trbfffluHDx/W6tWry/0p1qdPn9Ynn3yinj17asCAAUW2efPNN7VixQrFxMTo3nvv1W9/+1vNnTtXNWrUUNeuXXXkyBHNnTtXgYGBuuWWq3db/PnPf1Z8fLzatWunF154QU2aNNGlS5eUlJSkjRs3avHixR7/vCRUUh6+QRrwmNKeECp4yuXDDz8scv62bdtMnz59TFBQkPHy8jJ33HGH6dOnT6H269evNy1atDDe3t6mQYMGZubMmUU+/XPu3DkzevRoExISYvz8/Ey/fv1MUlJSkU8XJSYmmmeeecbccccdxsvLy9x+++2mXbt25vXXXy+1/uKe/Nq4caPjaRlfX1/TtGlTM2vWrELbnZ2dbex2u+nVq1eR41KU65988/b2NsHBwaZTp05mxowZJi0trdAy14/Rzp07zcCBA01ERISx2+2mTp06plOnTmb9+vVOyyUkJJj777/f2O12p6d5Cvr75ZdfSl2XMflPY/Xp08d89NFH5t577zXe3t7mzjvvNPPmzSu0/A8//GCioqJMQECAuf3228348ePNhg0bCj2NdebMGfP444+b2267zdhsNqd1FvVzPnTokOnXr58JDAw03t7epmXLloV+buX9ORfl66+/Nl27djV+fn7Gx8fHtG3b1nz66adF9lfa01jz5883kszHH39cbJvFixcbSeYf//iHMcaYS5cumUmTJpng4GBTq1Yt07ZtW7Nz504TGBhoXnzxRadlf/nlF/PCCy+YyMhI4+XlZYKCgkyrVq3MtGnTzPnz50vdVlRPNmNKeQQCgNtFR0dr+vTppT6BVBl9+umn6t+/vzZs2OC4KRpwtx07dqh9+/Z6//33NXz4cE+XgyqOy1gAyuT777/X8ePHNXnyZN13332Ox32BGxUfH6+dO3eqVatW8vHx0YEDBzRz5kw1atRIgwYN8nR5sADCDoAyGTt2rL755hs98MADWr58ebnv5QCKExAQoM8//1zz589XZmam6tatq969eysmJsbpM6oAV3EZCwAAWBofKggAACyNsAMAACyNsAMAACyNG5SV/2mhycnJ8vf356ZLAACqCGOMMjMzFR4e7vQBlNcj7Cj/O2Cu/2ZhAABQNZw8ebLET88m7Cj/I+al/MEKCAjwcDWuS0hIcHxsfnXGOFzFWORjHPIxDlcxFvmq+jhkZGSofv36jr/jxSHs6Oq3IAcEBFTpsOPn51el63cXxuEqxiIf45CPcbiKschnlXEo7RYUblAGAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWVtPTBQBARTuWnqWsoymeLqNcBjUJ83QJgGV49MxOTEyM2rRpI39/fwUHB+uxxx7T0aNHndqMHDlSNpvN6dW2bVunNtnZ2Ro/frzq1q0rPz8/9e/fX6dOnbqZmwIAACopj4adbdu26fnnn9e3336r+Ph45eTkKCoqSllZWU7tevXqpZSUFMdr48aNTvMnTpyodevWac2aNdq+fbvOnz+vvn37Kjc392ZuDgAAqIQ8ehlr06ZNTu9jY2MVHBysPXv2qGPHjo7pdrtdoaGhRfZx7tw5LV26VO+99566d+8uSVq5cqXq16+vhIQE9ezZs+I2AAAAVHqV6gblc+fOSZKCgoKcpn/55ZcKDg5W48aN9eyzzyotLc0xb8+ePbpy5YqioqIc08LDw9WsWTPt2LGjyPVkZ2crIyPD6QUAAKyp0tygbIzRpEmT1KFDBzVr1swxvXfv3vrNb36jiIgIJSYm6tVXX1XXrl21Z88e2e12paamytvbW7Vr13bqLyQkRKmpqUWuKyYmRtOnTy80PSEhQX5+fu7dsJsoKSlJmzdv9nQZHsc4XMVY5MtKS1byvp2eLqNcNie5/1jE/nAVY5Gvqo/D9be9FKfShJ1x48bp4MGD2r59u9P0oUOHOv7drFkztW7dWhEREdqwYYMGDRpUbH/GGNlstiLnTZ06VZMmTXK8z8jIUP369dW9e3cFBATc4JZ4zubNm7lsJ8bhWoxFvmPpWQq//2FPl1EuPSvgaSz2h6sYi3xVfRzKemWmUlzGGj9+vNavX6+tW7eqXr16JbYNCwtTRESEjh07JkkKDQ3V5cuXlZ6e7tQuLS1NISEhRfZht9sVEBDg9AIAANbk0bBjjNG4ceMUFxenLVu2KDIystRlTp8+rZMnTyosLP9/Pa1atZKXl5fi4+MdbVJSUnT48GG1a9euwmoHAABVg0cvYz3//PNatWqVPvnkE/n7+zvusQkMDJSPj4/Onz+v6OhoDR48WGFhYUpKStIf//hH1a1bVwMHDnS0HTVqlCZPnqw6deooKChIU6ZMUfPmzR1PZwEAgOrLo2Fn0aJFkqTOnTs7TY+NjdXIkSNVo0YNHTp0SCtWrNDZs2cVFhamLl26aO3atfL393e0f/PNN1WzZk0NGTJEFy9eVLdu3bRs2TLVqFHjZm4OAACohDwadowxJc738fEp013itWrV0oIFC7RgwQJ3lQYAACyi0jyNBaBqiKti3zEFAJXiaSwAAICKQtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACW5tGwExMTozZt2sjf31/BwcF67LHHdPToUac2xhhFR0crPDxcPj4+6ty5s44cOeLUJjs7W+PHj1fdunXl5+en/v3769SpUzdzUwAAQCXl0bCzbds2Pf/88/r2228VHx+vnJwcRUVFKSsry9Fm9uzZmjdvnhYuXKhdu3YpNDRUPXr0UGZmpqPNxIkTtW7dOq1Zs0bbt2/X+fPn1bdvX+Xm5npiswAAQCVS05Mr37Rpk9P72NhYBQcHa8+ePerYsaOMMZo/f76mTZumQYMGSZKWL1+ukJAQrVq1SmPGjNG5c+e0dOlSvffee+revbskaeXKlapfv74SEhLUs2fPm75dAACg8qhU9+ycO3dOkhQUFCRJ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p8Lvf9jTZVQKjEU+xiEf43BVwVgMahJWemMLc+ffDU/IyMhQYGBgqX+/K/1lrGv5+fmpefPmOnbsmOM+noIzPAXS0tIKne25nt1uV0BAgNMLAABYU5UKO9nZ2fr3v/+tsLAwRUZGKjQ0VPHx8Y75ly9f1rZt29SuXTsPVgkAACqTSn3PzpQpU9SvXz81aNBAaWlpev3115WRkaERI0bIZrNp4sSJmjFjhho1aqRGjRppxowZ8vX11fDhwz1dOgAAqCQqddg5deqUfvvb3+rXX3/V7bffrrZt2+rbb79VRESEJOmll17SxYsXNXbsWKWnp+uhhx7S559/Ln9/fw9XDgAAKotKHXbWrFlT4nybzabo6GhFR0ffnIIAAECVU6Xu2QEAACgvwg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALC0mp4uAAAAT4k7muLpEsptUJMwT5dQ5XBmBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWFpNTxdgdXFHU27aupLTs5R1E9cHAEBVwJkdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaTU9XQAAACi7uKMpbusrOT1LWW7srziDmoRV+DpKwpkdAABgaZYJO2+//bYiIyNVq1YttWrVSl9//bWnSwIAAJWAJcLO2rVrNXHiRE2bNk379u3TI488ot69e+vEiROeLg0AAHiYJcLOvHnzNGrUKI0ePVr33HOP5s+fr/r162vRokWeLg0AAHhYlQ87ly9f1p49exQVFeU0PSoqSjt27PBQVQAAoLKo8k9j/frrr8rNzVVISIjT9JCQEKWmpha5THZ2trKzsx3vz507J0nKyMhwe30Xzme6vc/iXLxw4aaur7JiHK5iLPIxDvkYh6sYi3w3axwyMvwqqN/8v9vGmBLbVfmwU8Bmszm9N8YUmlYgJiZG06dPLzS9fv36FVIbAACoOJmZmQoMDCx2fpUPO3Xr1lWNGjUKncVJS0srdLanwNSpUzVp0iTH+7y8PJ05c0Z16tQpNiBVdhkZGapfv75OnjypgIAAT5fjMYzDVYxFPsYhH+NwFWORzwrjYIxRZmamwsPDS2xX5cOOt7e3WrVqpfj4eA0cONAxPT4+XgMGDChyGbvdLrvd7jTttttuq8gyb5qAgIAqu9O6E+NwFWORj3HIxzhcxVjkq+rjUNIZnQJVPuxI0qRJk/Tkk0+qdevWevjhh/X3v/9dJ06c0B/+8AdPlwYAADzMEmFn6NChOn36tP785z8rJSVFzZo108aNGxUREeHp0gAAgIdZIuxI0tixYzV27FhPl+Exdrtdr732WqHLc9UN43AVY5GPccjHOFzFWOSrTuNgM6U9rwUAAFCFVfkPFQQAACgJYQcAAFgaYQcAAFgaYQcAAFgaYaeSiYmJUZs2beTv76/g4GA99thjOnr0qFMbY4yio6MVHh4uHx8fde7cWUeOHCm173/84x9q2rSp7Ha7mjZtqnXr1lXUZrhFaWNx5coVvfzyy2revLn8/PwUHh6up556SsnJySX2u2zZMtlstkKvS5cuVfQmuaQs+8TIkSMLbU/btm1L7bsq7RNlGYeifq42m01z5swptt+qtj9I0qJFi9SiRQvHh8E9/PDD+uyzzxzzq8sxoqRxqC7HB6n0/aE6HB9KQ9ipZLZt26bnn39e3377reLj45WTk6OoqChlZWU52syePVvz5s3TwoULtWvXLoWGhqpHjx7KzCz+y9x27typoUOH6sknn9SBAwf05JNPasiQIfrXv/51MzbLJaWNxYULF7R37169+uqr2rt3r+Li4vTDDz+of//+pfYdEBCglJQUp1etWrUqepNcUpZ9QpJ69erltD0bN24ssd+qtk+UZRyu/5m+++67stlsGjx4cIl9V6X9QZLq1aunmTNnavfu3dq9e7e6du2qAQMGOAJNdTlGlDQO1eX4IJW+P0jWPz6UyqBSS0tLM5LMtm3bjDHG5OXlmdDQUDNz5kxHm0uXLpnAwECzePHiYvsZMmSI6dWrl9O0nj17mmHDhlVM4RXg+rEoynfffWckmePHjxfbJjY21gQGBlZAhTdHUeMwYsQIM2DAgHL1U9X3ibLsDwMGDDBdu3YtsZ+qvj8UqF27tnnnnXeq9THCmKvjUJTqcHwocO04VMfjw/U4s1PJnTt3TpIUFBQkSUpMTFRqaqqioqIcbex2uzp16qQdO3YU28/OnTudlpGknj17lrhMZXP9WBTXxmazlfpdZ+fPn1dERITq1aunvn37at++fe4stUIVNw5ffvmlgoOD1bhxYz377LNKS0srsZ+qvk+Utj/8/PPP2rBhg0aNGlVqX1V5f8jNzdWaNWuUlZWlhx9+uNoeI64fh6JUh+NDceNQ3Y4P1yPsVGLGGE2aNEkdOnRQs2bNJMnx7e7Xf6N7SEhIoW9+v1Zqamq5l6lMihqL6126dEmvvPKKhg8fXuKX2t19991atmyZ1q9fr9WrV6tWrVpq3769jh07VlHlu01x49C7d2+9//772rJli+bOnatdu3apa9euys7OLravqrxPlGV/WL58ufz9/TVo0KAS+6qq+8OhQ4d06623ym636w9/+IPWrVunpk2bVrtjRHHjcD2rHx9KGofqdnwokmdPLKEkY8eONREREebkyZOOad98842RZJKTk53ajh492vTs2bPYvry8vMyqVaucpq1cudLY7Xb3Fl1BihqLa12+fNkMGDDA3H///ebcuXPl6js3N9e0bNnSjB8/3h2lVqjSxqFAcnKy8fLyMv/4xz+KbVOV94myjEOTJk3MuHHjyt13VdkfsrOzzbFjx8yuXbvMK6+8YurWrWuOHDlS7Y4RxY3DtarD8aEs41DA6seHoljmu7GsZvz48Vq/fr2++uor1atXzzE9NDRUUn7qDgsLc0xPS0srlMKvFRoaWiiRl7ZMZVHcWBS4cuWKhgwZosTERG3ZsqXE/7UV5ZZbblGbNm0q/f/cShuHa4WFhSkiIqLEbaqq+0RZxuHrr7/W0aNHtXbt2nL3X1X2B29vb911112SpNatW2vXrl1666239PLLL0uqPseI4sZhyZIlkqrP8aG0cbiWlY8PxeEyViVjjNG4ceMUFxenLVu2KDIy0ml+ZGSkQkNDFR8f75h2+fJlbdu2Te3atSu234cffthpGUn6/PPPS1zG00obC+nqgezYsWNKSEhQnTp1XFrP/v37nf4wVCZlGYfrnT59WidPnixxm6raPlGecVi6dKlatWqlli1burSeyrw/FMcYo+zs7Gp1jChKwThI1eP4UJxrx+F6Vjw+lMpTp5RQtOeee84EBgaaL7/80qSkpDheFy5ccLSZOXOmCQwMNHFxcebQoUPmt7/9rQkLCzMZGRmONk8++aR55ZVXHO+/+eYbU6NGDTNz5kzz73//28ycOdPUrFnTfPvttzd1+8qjtLG4cuWK6d+/v6lXr57Zv3+/U5vs7GxHP9ePRXR0tNm0aZP56aefzL59+8zTTz9tatasaf71r3/d9G0si9LGITMz00yePNns2LHDJCYmmq1bt5qHH37Y3HHHHZbaJ8ryu2GMMefOnTO+vr5m0aJFRfZT1fcHY4yZOnWq+eqrr0xiYqI5ePCg+eMf/2huueUW8/nnnxtjqs8xoqRxqC7HB2NKHofqcnwoDWGnkpFU5Cs2NtbRJi8vz7z22msmNDTU2O1207FjR3Po0CGnfjp16mRGjBjhNO3DDz80TZo0MV5eXubuu+8u8XptZVDaWCQmJhbbZuvWrY5+rh+LiRMnmgYNGhhvb29z++23m6ioKLNjx46bu3HlUNo4XLhwwURFRZnbb7/deHl5mQYNGpgRI0aYEydOOPVT1feJsvxuGGPMkiVLjI+Pjzl79myR/VT1/cEYY5555hkTERHhqLlbt26OoGNM9TlGlDQO1eX4YEzJ41Bdjg+lsRljTMWeOwIAAPAc7tkBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBUGXt2LFDNWrUUK9evTxdCoBKjE9QBlBljR49Wrfeeqveeecdff/992rQoIGnSwJQCXFmB0CVlJWVpQ8++EDPPfec+vbtq2XLljnNX79+vRo1aiQfHx916dJFy5cvl81m09mzZx1tduzYoY4dO8rHx0f169fXCy+8oKysrJu7IQAqHGEHQJW0du1aNWnSRE2aNNETTzyh2NhYFZyoTkpK0uOPP67HHntM+/fv15gxYzRt2jSn5Q8dOqSePXtq0KBBOnjwoNauXavt27dr3LhxntgcABWIy1gAqqT27dtryJAhmjBhgnJychQWFqbVq1ere/fueuWVV7RhwwYdOnTI0f7//b//p7/+9a9KT0/Xbbfdpqeeeko+Pj5asmSJo8327dvVqVMnZWVlqVatWp7YLAAVgDM7AKqco0eP6rvvvtOwYcMkSTVr1tTQoUP17rvvOua3adPGaZkHH3zQ6f2ePXu0bNky3XrrrY5Xz549lZeXp8TExJuzIQBuipqeLgAAymvp0qXKycnRHXfc4ZhmjJGXl5fS09NljJHNZnNa5vqT2Hl5eRozZoxeeOGFQv1zozNgLYQdAFVKTk6OVqxYoblz5yoqKspp3uDBg/X+++/r7rvv1saNG53m7d692+n9Aw88oCNHjuiuu+6q8JoBeBb37ACoUj7++GMNHTpUaWlpCgwMdJo3bdo0bdy4UXFxcWrSpIlefPFFjRo1Svv379fkyZN16tQpnT17VoGBgTp48KDatm2rp59+Ws8++6z8/Pz073//W/Hx8VqwYIGHtg5AReCeHQBVytKlS9W9e/dCQUfKP7Ozf/9+paen66OPPlJcXJxatGihRYsWOZ7GstvtkqQWLVpo27ZtOnbsmB555BHdf//9evXVVxUWFnZTtwdAxePMDoBq4a9//asWL16skydPeroUADcZ9+wAsKS3335bbdq0UZ06dfTNN99ozpw5fIYOUE0RdgBY0rFjx/T666/rzJkzatCggSZPnqypU6d6uiwAHsBlLAAAYGncoAwAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACzt/wPGcWVSn+vYEgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Freqyency distribution of the the observation of the ages\n", + "plt.hist(ages_population2, color = \"lightblue\")\n", + "plt.title('Frequency Distribution of Age')\n", + "plt.grid(color='grey', linewidth=0.4)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unique Values: [19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.]\n", + "Frequency Values: [ 3 13 17 35 41 78 98 120 125 139 115 90 61 31 22 7 3 2]\n" + ] + } + ], + "source": [ + "unique, frequency = np.unique(ages_population2[\"observation\"],return_counts = True)\n", + "\n", + "print(\"Unique Values:\",unique)\n", + " \n", + "# print frequency array\n", + "print(\"Frequency Values:\",frequency)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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06xZs8yAAQNMZWVluO2tt94yksyhQ4ci+t5xxx1m7NixLY4VGxtr1qxZE9G2evVq43a7nZ20Q5qr/evq6urM5MmTzRVXXGGCwWCbxm5oaDBDhgwxc+bMcWKq7eJ09Z906NAhExsba1544YUW+0TbvTfGmEGDBpnZs2e3eWxb730oFDL79u0zZWVlJicnx/Tp08fs2bOnyzzvLdX/ddH6zJ9J7SdF4/PuhA57F09XNWfOHG3YsEFbt25Vv379wu1er1fSVym5b9++4faqqqomqfnrvF5vkwR9unM6Sku1n1RfX6+pU6eqoqJCr776aptfOX7OOefoyiuvtPK/pqTT1/91ffv21YABA1qtJZruvSS98cYb2rt3r55//vk2j2/rve/evbu+973vSZKGDRumsrIyPfHEE1qwYIGk6H7epZbrf/rppyVF9zN/utq/Ltqed6fwJ56zxBij2bNna926dXr11VeVmpoacTw1NVVer1clJSXhtrq6Om3ZskUZGRktjjtixIiIcyRp06ZNrZ5ztp2udun//0G1b98+bd68WcnJyd/oOuXl5RH/wLfBmdR/qs8//1yVlZWt1hIt9/6kFStWaOjQoRoyZMg3uo6N9/5UxhiFQqGoft5bc7J+Kbqf+eZ8vfZTRcvz7riOWrrpan75y1+axMRE8/rrr0d8tezYsWPhPgUFBSYxMdGsW7fO7Nq1y9x0001NvnZ4yy23mJycnPD+W2+9Zbp162YKCgrMBx98YAoKCqz76tnpaq+vrzeTJk0y/fr1M+Xl5RF9QqFQeJxTa/f7/ebll182n3zyidm5c6f5xS9+YWJiYsy777571mtszenqP3LkiJk3b54pLS01FRUV5rXXXjMjRoww3/3ud6P+3p8UDAZNz549zbJly5odpzPe+9zcXLN161ZTUVFh3n//fXP//febc845x2zatMkYE73P+0mt1R/tz3xrtUfz8+40AspZIqnZbeXKleE+jY2N5sEHHzRer9e43W7z4x//2OzatStinJEjR5rp06dHtP31r381gwYNMrGxseaiiy5q9e+YHeF0tVdUVLTY57XXXguPc2rt2dnZpn///qZ79+7mvPPOM1lZWaa0tPTsFncGTlf/sWPHTFZWljnvvPNMbGys6d+/v5k+fbo5ePBgxDjReO9Pevrpp01cXJz54osvmh2nM97722+/3QwYMCA8x1GjRoXDiTHR+7yf1Fr90f7Mt1Z7ND/vTnMZY0z7rtEAAAC0DZ9BAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6/wevVeclx4003gAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.bar(unique, frequency)\n", + "plt.show()" + ] + }, + { + "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": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'In this case, the range of ages is less than the first dataset but the distribution is also normal.'" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"In this case, the range of ages is less than the first dataset but the distribution is also normal.\"\"\"" + ] + }, + { + "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": 46, + "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", + "
observation
count1000.000000
mean27.155000
std2.969814
min19.000000
25%25.000000
50%27.000000
75%29.000000
max36.000000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.000000\n", + "mean 27.155000\n", + "std 2.969814\n", + "min 19.000000\n", + "25% 25.000000\n", + "50% 27.000000\n", + "75% 29.000000\n", + "max 36.000000" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population2.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'The lower mean suggests a younger demographic, with most respondents around their late twenties.The smaller standard deviation indicates that the responses are more consistent, with less variation between individuals.'" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"The lower mean suggests a younger demographic, with most respondents around their late twenties.The smaller standard deviation indicates that the responses are more consistent, with less variation between individuals.\"\"\"" + ] + }, + { + "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": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Frequency')" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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1q2bqVmzpjl69KjLvCeeeMJUrVrVHDp0yBhjnPX36NHDZd4HH3xgJJn169cbY4zJy8szISEhpl27dqawsPCsz9fYsWNNQECA+f33351jixYtMpLMmjVrzrqeMf97rr///vuzzomMjDTXXnuty+Od+Rx99NFHRpLZvHnzWbdx4MCBEs9X8e3985//POuyM8XFxRmbzVbi8bp06WJCQkKMw+Fw6S0zM9NlXtHzv2rVKudYz549TVxcXKm1F6+7X79+xm63mz179rjMS0hIMIGBgebIkSMuj3O+1/lsWrVqZSIiIkxeXp5z7PTp06ZRo0amZs2azp+Jop/RiRMnnnN7RbKyssxll11m+vXr5xxr3769CQoKMrm5uc6xHTt2GEnm2WefdVn//fffN5JM//79nWNDhgwxl19+udm9e7fL3FdffdVIMjt27Lig2gBjjGEPECxv7ty5+v77711uZ57j06dPH5f569at06FDh9S/f3+XvUaFhYXq3r27vv/+ezkcDjkcDn3//fdKTExU1apVnesX/e/aHSdOnNBXX32l3r17KzAw0OXxe/TooRMnTujbb791Wef22293ud+kSRNJ0u7du5395Obm6vHHHz/nVVePPfaYJOntt992jk2bNk2NGzfWLbfc4lY/ZzLGnHP59ddfr4CAAD366KOaM2eOfvnlF7cep/jreS4NGzZU06ZNXcbuu+8+5ebmauPGjW49/oVauXKlOnXqpNjYWJfxAQMG6Pjx4yX2Hp3vdS6Nw+HQ//3f/+muu+7S5Zdf7hz38/PTgw8+qL17917wYbTiUlJSVFhYqIEDBzrHBg4cKIfD4dyzJP21B0qS7rnnHpf177rrrhLn2n322Wfq2LGjYmJiXH72ExISXLYFXAgCECzv2muvVcuWLV1uZ4qOjna5//vvv0v66w3a39/f5fbyyy/LGKNDhw7p8OHDKiwsVFRUVInHLG3sQhw8eFCnT5/W1KlTSzx2jx49JEl//PGHyzo1atRwuW+32yVJf/75pyTpwIEDknTek4AjIyPVt29fzZw5UwUFBdq6dau++eYbPfHEE271ciaHw6GDBw+e8zBanTp1tGLFCkVERGjo0KGqU6eO6tSpo9dff71Mj1X89TyXc712Bw8eLNPjltXBgwdLrbXoOSr++Od7nUtz+PBhGWPK9DgXorCwULNnz1ZMTIxatGihI0eO6MiRI+rcubOCgoJcDoMVbb/o5PciVapUKdHT77//rk8//bTEz37Dhg0llfzZB86FS1mA8yi+VyQ8PFySNHXq1LNeuRMZGem8Ymz//v0llhcfK9pDlJ+f7zJe/I9P9erVnf87Hzp0aKmPHR8ff45uSio6cbjofJ9zGTZsmN577z198skn+uKLL3TFFVfo/vvvL9PjlWbZsmUqKCg476XrN998s26++WYVFBTohx9+0NSpUzV8+HBFRkaqX79+F/RYZflsoXO9dkV/nM/22l3sH+MaNWqU+rk5RSebF/0cXozq1avrsssu8/jjrFixwrnnqXiIkaRvv/1WO3fu1HXXXedc/vvvv+uqq65yzjl9+nSJn//w8HA1adJEL774YqmPy8dXoCwIQEAZtW3bVldccYV27tx5zr0fAQEBuvHGG5WamqqJEyc6/1Dm5eXp008/dZkbGRmpqlWrauvWrS7jn3zyicv9wMBAdezYUZs2bVKTJk0UEBBw0f20adNGoaGhmjFjhvr163fOgNCiRQu1adNGL7/8srZv365HH31UQUFBF/X4e/bs0ahRoxQaGqohQ4Zc0Dp+fn666aab1KBBA82fP18bN25Uv379LmivR1ns2LFDW7ZscTkMtmDBAgUHB6t58+aS5LwaauvWrS6fi7N06dIS27Pb7RdcW6dOnbR48WLt27fP5Q/73LlzFRgY6JHL5oOCgnTTTTcpNTVVr776qqpVqybprz048+bNU82aNVWvXr0yb3fWrFm67LLLlJqaqtDQUJdle/fu1YMPPqh3331Xr776qvPw6aJFi5zPqSR99NFHJS5IuO2227R8+XLVqVNH1atXL3NdwJkIQEAZXX755Zo6dar69++vQ4cO6a677lJERIQOHDigLVu26MCBA5o+fbok6V//+pe6d++uLl26aOTIkSooKNDLL7+soKAgHTp0yLlNm82mBx54QO+++67q1Kmjpk2b6rvvvtOCBQtKPP7rr7+udu3a6eabb9Zjjz2m2rVrKy8vTz/99JM+/fRTrVy5ssz9TJo0SYMHD1bnzp31yCOPKDIyUj/99JO2bNmiadOmucwfNmyY+vbtK5vNpscff7xMj7V9+3bneRs5OTn65ptvlJKSIj8/Py1evNi5N6o0M2bM0MqVK9WzZ0/VqlVLJ06c0LvvvitJzg9QDA4OVlxcnD755BN1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5gEAAErn1T1Ax44d008//eS8n5mZqc2bNyssLEy1atWS9NfurQ8//FCTJk0qsf7PP/+s+fPnq0ePHgoPD9fOnTs1cuRINWvWTG3btr1kfQAAgMrFqwHohx9+UMeOHZ33R4wYIUnq37+/Zs+eLUlauHChjDG69957S6wfEBCgr776Sq+//rqOHTum2NhY9ezZU2PHjpWfn98l6QEAAFQ+Xg1AHTp00PnOwX700Uf16KOPlrosNjZWa9asKY/SAACAD6sU5wABAAB4EgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYThVvFwBYWequbG+XUMK+ww45KmBdAOBJ7AECAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACW49UA9PXXX6tXr16KiYmRzWbTkiVLXJYPGDBANpvN5daqVSuXOfn5+XryyScVHh6uoKAg3X777dq7d+8l7AIAAFQ2Xg1ADodDTZs21bRp0846p3v37srOznbeli9f7rJ8+PDhWrx4sRYuXKi1a9fq2LFjuu2221RQUFDe5QMAgErKq1+GmpCQoISEhHPOsdvtioqKKnXZ0aNHNWvWLL333nvq3LmzJGnevHmKjY3VihUr1K1bN4/XDAAAKr8Kfw7Q6tWrFRERoXr16umRRx5RTk6Oc9mGDRt06tQpde3a1TkWExOjRo0aad26dWfdZn5+vnJzc11uAADAOry6B+h8EhISdPfddysuLk6ZmZl6/vnndeutt2rDhg2y2+3av3+/AgICVL16dZf1IiMjtX///rNuNzk5WePGjSsxvmLFCgUFBbldb1ZWltLS0txevzKhV8/Yd9hRLtu9GI6cfdq3ab23y7gkKnKvaVnuvxeVht9Z32Wlfov36nC4/x5aoQNQ3759nf9u1KiRWrZsqbi4OC1btkyJiYlnXc8YI5vNdtblo0eP1ogRI5z3c3NzFRsbq86dOyskJMTtetPS0ixz2I1ePcOxK7tctnsx9m1ar5hmrb1dxiVR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gHbv3q34+PgS43FxcdqzZ89FFwUAAFCe3ApAERER2rp1a4nxLVu2qEaNGhddFAAAQHlyKwD169dPTz31lFatWqWCggIVFBRo5cqVGjZsmPr16+fpGgEAADzKravAxo8fr927d6tTp06qUuWvTRQWFuqhhx7iHCAAAFDhuRWAAgICtGjRIv3rX//Sli1bVK1aNTVu3FhxcXGerg8AAMDj3ApARerVq6d69ep5qhYAAIBLwq0AVFBQoNmzZ+urr75STk6OCgsLXZavXLnSI8UBAACUB7cC0LBhwzR79mz17NlTjRo1ks1m83RdAAAA5catALRw4UJ98MEH6tGjh6frAQAAKHduXQYfEBCga665xtO1AAAAXBJuBaCRI0fq9ddflzHG0/UAAACUO7cOga1du1arVq3S559/roYNG8rf399leWpqqkeKAwAAKA9uBaArrrhCvXv39nQtAAAAl4RbASglJcXTdQAAAFwybp0DJEmnT5/WihUrNHPmTOXl5UmS9u3bp2PHjl3wNr7++mv16tVLMTExstlsWrJkictyY4ySkpIUExOjatWqqUOHDtqxY4fLnPz8fD355JMKDw9XUFCQbr/9du3du9fdtgAAgAW4FYB2796txo0b64477tDQoUN14MABSdIrr7yiUaNGXfB2HA6HmjZtqmnTppW6/JVXXtHkyZM1bdo0ff/994qKilKXLl2cgUuShg8frsWLF2vhwoVau3atjh07pttuu00FBQXutAYAACzA7Q9CbNmypbZs2aIaNWo4x3v37q3Bgwdf8HYSEhKUkJBQ6jJjjKZMmaIxY8YoMTFRkjRnzhxFRkZqwYIFGjJkiI4ePapZs2bpvffeU+fOnSVJ8+bNU2xsrFasWKFu3bq50x4AAPBxbu0BWrt2rf7xj38oICDAZTwuLk6//fabRwrLzMzU/v371bVrV+eY3W5X+/bttW7dOknShg0bdOrUKZc5MTExatSokXNOafLz85Wbm+tyAwAA1uHWHqDCwsJSDzHt3btXwcHBF12UJO3fv1+SFBkZ6TIeGRmp3bt3O+cEBASoevXqJeYUrV+a5ORkjRs3rsT4ihUrFBQU5HbNWVlZSktLc3v9yoRePWPfYUe5bPdiOHL2ad+m9d4u45KgV89Ky3L//dOTyvI7WxF/B8+n+PNs5fdjh8P918+tANSlSxdNmTJFb731liTJZrPp2LFjGjt2rMe/HqP494wZY8773WPnmzN69GiNGDHCeT83N1exsbHq3LmzQkJC3K41LS3NMofd6NUzHLuyy2W7F2PfpvWKadba22VcEvTqWd3qR5fr9i9UWX5nK+Lv4PkUf56t/H58MUdw3ApAr732mjp27KjrrrtOJ06c0H333aeMjAyFh4fr/fffd7uYM0VFRUn6ay9PdPT/XuycnBznXqGoqCidPHlShw8fdtkLlJOTozZt2px123a7XXa73SN1AgCAysetc4BiYmK0efNmjRo1SkOGDFGzZs00YcIEbdq0SRERER4pLD4+XlFRUUpPT3eOnTx5UmvWrHGGmxYtWsjf399lTnZ2trZv337OAAQAAKzNrT1AklStWjUNHDhQAwcOdPvBjx07pp9++sl5PzMzU5s3b1ZYWJhq1aql4cOH66WXXlLdunVVt25dvfTSSwoMDNR9990nSQoNDdWgQYM0cuRI1ahRQ2FhYRo1apQaN27svCoMAACgOLcC0Ny5c8+5/KGHHrqg7fzwww/q2LGj837ReTn9+/fX7Nmz9cwzz+jPP//U448/rsOHD+umm27Sl19+6XKi9WuvvaYqVaronnvu0Z9//qlOnTpp9uzZ8vPzc6MzAABgBW5/DtCZTp06pePHjysgIECBgYEXHIA6dOhwzm+Ut9lsSkpKUlJS0lnnVK1aVVOnTtXUqVMv6DEBAADcOgfo8OHDLrdjx45p165dateuncdOggYAACgvbn8XWHF169bVhAkTSuwdAgAAqGg8FoAkyc/PT/v27fPkJgEAADzOrXOAli5d6nLfGKPs7GxNmzZNbdu29UhhAAAA5cWtAHTnnXe63LfZbLryyit16623atKkSZ6oCwAAoNy4/V1gAAAAlZVHzwECAACoDNzaA3TmF4mez+TJk915CAAAgHLjVgDatGmTNm7cqNOnT6t+/fqSpB9//FF+fn5q3ry5c975vrUdAADAG9wKQL169VJwcLDmzJnj/Bb2w4cP6+GHH9bNN9+skSNHerRIAAAAT3LrHKBJkyYpOTnZGX4kqXr16ho/fjxXgQEAgArPrQCUm5ur33//vcR4Tk6O8vLyLrooAACA8uRWAOrdu7cefvhhffTRR9q7d6/27t2rjz76SIMGDVJiYqKnawQAAPAot84BmjFjhkaNGqUHHnhAp06d+mtDVapo0KBBmjhxokcLBAAA8DS3AlBgYKDefPNNTZw4UT///LOMMbrmmmsUFBTk6foAAAA87qI+CDE7O1vZ2dmqV6+egoKCZIzxVF0AAADlxq0AdPDgQXXq1En16tVTjx49lJ2dLUkaPHgwl8ADAIAKz60A9PTTT8vf31979uxRYGCgc7xv37764osvPFYcAABAeXDrHKAvv/xSaWlpqlmzpst43bp1tXv3bo8UBgAAUF7c2gPkcDhc9vwU+eOPP2S32y+6KAAAgPLkVgC65ZZbNHfuXOd9m82mwsJCTZw4UR07dvRYcQAAAOXBrUNgEydOVIcOHfTDDz/o5MmTeuaZZ7Rjxw4dOnRI//nPfzxdIwAAgEe5tQfouuuu09atW3XjjTeqS5cucjgcSkxM1KZNm1SnTh1P1wgAAOBRZd4DdOrUKXXt2lUzZ87UuHHjyqMmAACAclXmPUD+/v7avn27bDZbedQDAABQ7tw6BPbQQw9p1qxZnq4FAADgknDrJOiTJ0/qnXfeUXp6ulq2bFniO8AmT57skeIAAADKQ5kC0C+//KLatWtr+/btat68uSTpxx9/dJnDoTEAAFDRlSkA1a1bV9nZ2Vq1apWkv7764o033lBkZGS5FAcAAFAeynQOUPFve//888/lcDg8WhAAAEB5c+sk6CLFAxEAAEBlUKYAZLPZSpzjwzk/AACgsinTOUDGGA0YMMD5hacnTpzQ3/72txJXgaWmpnquQgAAAA8rUwDq37+/y/0HHnjAo8UAAABcCmUKQCkpKeVVBwAAwCXj1gchAhVR6q7sctnuvsMOOcpp2wAA77ioq8Auhdq1aztPvj7zNnToUEnSgAEDSixr1aqVl6sGAAAVWYXfA/T999+roKDAeX/79u3q0qWL7r77budY9+7dXQ7PBQQEXNIaAQBA5VLhA9CVV17pcn/ChAmqU6eO2rdv7xyz2+2Kioq61KUBAIBKqsIfAjvTyZMnNW/ePA0cONDl84dWr16tiIgI1atXT4888ohycnK8WCUAAKjoKvweoDMtWbJER44c0YABA5xjCQkJuvvuuxUXF6fMzEw9//zzuvXWW7Vhwwbn5xUVl5+fr/z8fOf93Nzc8i4dAABUIDZTib7Polu3bgoICNCnn3561jnZ2dmKi4vTwoULlZiYWOqcpKQkjRs3rsT4xx9/XOJDHcsiKytLtWvXdnv9yqQi9ppxuHy+l86Rs09BETHlsu2KyEr90qtn1a3u/vunJ5Xl/am83jfKU/HnuSK+H5eX4r06HA716dNHR48eVUhISJm2VWn2AO3evVsrVqw476dMR0dHKy4uThkZGWedM3r0aI0YMcJ5Pzc3V7GxsercuXOZn8AzpaWlqVu3bm6vX5lUxF7L61L1fZvWK6ZZ63LZdkVkpX7p1bO61Y8u1+1fqLK8P1XGj7go/jxXxPfj8lK814s5glNpAlBKSooiIiLUs2fPc847ePCgfv31V0VHn/0X0W63n/XwGAAA8H2V4iTowsJCpaSkqH///qpS5X+Z7dixYxo1apTWr1+vrKwsrV69Wr169VJ4eLh69+7txYoBAEBFVin2AK1YsUJ79uzRwIEDXcb9/Py0bds2zZ07V0eOHFF0dLQ6duyoRYsWKTg42EvVAgCAiq5SBKCuXbuqtHO1q1WrprS0NC9UBAAAKrNKcQgMAADAkwhAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcqp4uwAAgG9I3ZXt7RIkSfsOO+SoILWg4mIPEAAAsBwCEAAAsBwCEAAAsBzOAQIAoBIpfq5VZTjnKbF+tLdLKIE9QAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIqdABKSkqSzWZzuUVFRTmXG2OUlJSkmJgYVatWTR06dNCOHTu8WDEAAKgMKnQAkqSGDRsqOzvbedu2bZtz2SuvvKLJkydr2rRp+v777xUVFaUuXbooLy/PixUDAICKrsIHoCpVqigqKsp5u/LKKyX9tfdnypQpGjNmjBITE9WoUSPNmTNHx48f14IFC7xcNQAAqMgqfADKyMhQTEyM4uPj1a9fP/3yyy+SpMzMTO3fv19du3Z1zrXb7Wrfvr3WrVvnrXIBAEAlUKE/CPGmm27S3LlzVa9ePf3+++8aP3682rRpox07dmj//v2SpMjISJd1IiMjtXv37nNuNz8/X/n5+c77ubm5ni8eAABUWBU6ACUkJDj/3bhxY7Vu3Vp16tTRnDlz1KpVK0mSzWZzWccYU2KsuOTkZI0bN67E+IoVKxQUFOR2vVlZWUpLS3N7/cqkIva677CjXLbryNmnfZvWl8u2KyIr9UuvvslKvUqVo9+0LPf/tp6p+N8eh8P99/0KHYCKCwoKUuPGjZWRkaE777xTkrR//35FR//vI7ZzcnJK7BUqbvTo0RoxYoTzfm5urmJjY9W5c2eFhIS4XV9aWpq6devm9vqVSUXstbw+Cn7fpvWKada6XLZdEVmpX3r1TVbqVaoc/Xbz0FdhFP/bczFHcCr8OUBnys/P13//+19FR0crPj5eUVFRSk9Pdy4/efKk1qxZozZt2pxzO3a7XSEhIS43AABgHRV6D9CoUaPUq1cv1apVSzk5ORo/frxyc3PVv39/2Ww2DR8+XC+99JLq1q2runXr6qWXXlJgYKDuu+8+b5cOAAAqsAodgPbu3at7771Xf/zxh6688kq1atVK3377reLi4iRJzzzzjP788089/vjjOnz4sG666SZ9+eWXCg4O9nLlAACgIqvQAWjhwoXnXG6z2ZSUlKSkpKRLUxAAAPAJleocIAAAAE8gAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMup4u0CUDGl7so+5/J9hx1ynGcOAAAVFXuAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5VToAJScnKwbbrhBwcHBioiI0J133qldu3a5zBkwYIBsNpvLrVWrVl6qGAAAVAYVOgCtWbNGQ4cO1bfffqv09HSdPn1aXbt2lcPhcJnXvXt3ZWdnO2/Lly/3UsUAAKAyqNDfBfbFF1+43E9JSVFERIQ2bNigW265xTlut9sVFRV1qcsDAACVVIXeA1Tc0aNHJUlhYWEu46tXr1ZERITq1aunRx55RDk5Od4oDwAAVBIVeg/QmYwxGjFihNq1a6dGjRo5xxMSEnT33XcrLi5OmZmZev7553Xrrbdqw4YNstvtpW4rPz9f+fn5zvu5ubnlXj8AAKg4bMYY4+0iLsTQoUO1bNkyrV27VjVr1jzrvOzsbMXFxWnhwoVKTEwsdU5SUpLGjRtXYvzjjz9WUFCQ2zVmZWWpdu3abq9fkWQcdpxzuSNnn4IiYi5RNd5lpV4la/VLr77JSr1KlaPfutXd/9t6puJ/Zx0Oh/r06aOjR48qJCSkTNuqFAHoySef1JIlS/T1118rPj7+vPPr1q2rwYMH69lnny11eWl7gGJjY916As+Ulpambt26ub1+RZK6K/ucy/dtWq+YZq0vUTXeZaVeJWv1S6++yUq9SpWj38T60R7ZTvG/s7m5uQoNDXXr73eFPgRmjNGTTz6pxYsXa/Xq1RcUfg4ePKhff/1V0dFnf7LtdvtZD48BAADfV6FPgh46dKjmzZunBQsWKDg4WPv379f+/fv1559/SpKOHTumUaNGaf369crKytLq1avVq1cvhYeHq3fv3l6uHgAAVFQVeg/Q9OnTJUkdOnRwGU9JSdGAAQPk5+enbdu2ae7cuTpy5Iiio6PVsWNHLVq0SMHBwV6oGAAAVAYVOgCd7/SkatWqKS0t7RJVAwAAfEWFPgQGAABQHghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcqp4uwBfl7or29slAACAYtgDBAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALMdnAtCbb76p+Ph4Va1aVS1atNA333zj7ZIAAEAF5RMBaNGiRRo+fLjGjBmjTZs26eabb1ZCQoL27Nnj7dIAAEAF5BMBaPLkyRo0aJAGDx6sa6+9VlOmTFFsbKymT5/u7dIAAEAFVOkD0MmTJ7VhwwZ17drVZbxr165at26dl6oCAAAVWaX/Nvg//vhDBQUFioyMdBmPjIzU/v37S10nPz9f+fn5zvtHjx6VJOXm5l5ULQ6Ho8Q2jh/Lu6htVlR/Hj/us70VZ6VeJWv1S6++yUq9SpWj39zcII9sp/jf2aJ/G2PKvK1KH4CK2Gw2l/vGmBJjRZKTkzVu3LgS47GxseVSGwAAKD95eXkKDQ0t0zqVPgCFh4fLz8+vxN6enJycEnuFiowePVojRoxw3i8sLNShQ4dUo0aNs4am88nNzVVsbKx+/fVXhYSEuLWNyoJefZeV+qVX32SlXiVr9Vtar8YY5eXlKSYmpszbq/QBKCAgQC1atFB6erp69+7tHE9PT9cdd9xR6jp2u112u91l7IorrvBIPSEhIT7/Q1iEXn2XlfqlV99kpV4la/VbvNey7vkpUukDkCSNGDFCDz74oFq2bKnWrVvrrbfe0p49e/S3v/3N26UBAIAKyCcCUN++fXXw4EG98MILys7OVqNGjbR8+XLFxcV5uzQAAFAB+UQAkqTHH39cjz/+uNce3263a+zYsSUOrfkievVdVuqXXn2TlXqVrNWvp3u1GXeuHQMAAKjEKv0HIQIAAJQVAQgAAFgOAQgAAFgOAQgAAFgOAcgD3nzzTcXHx6tq1apq0aKFvvnmG2+X5BFff/21evXqpZiYGNlsNi1ZssRluTFGSUlJiomJUbVq1dShQwft2LHDO8VehOTkZN1www0KDg5WRESE7rzzTu3atctljq/0KknTp09XkyZNnB8m1rp1a33++efO5b7Ua3HJycmy2WwaPny4c8xX+k1KSpLNZnO5RUVFOZf7Sp9n+u233/TAAw+oRo0aCgwM1PXXX68NGzY4l/tKz7Vr1y7x2tpsNg0dOlSS7/QpSadPn9Y//vEPxcfHq1q1arr66qv1wgsvqLCw0DnHY/0aXJSFCxcaf39/8/bbb5udO3eaYcOGmaCgILN7925vl3bRli9fbsaMGWM+/vhjI8ksXrzYZfmECRNMcHCw+fjjj822bdtM3759TXR0tMnNzfVOwW7q1q2bSUlJMdu3bzebN282PXv2NLVq1TLHjh1zzvGVXo0xZunSpWbZsmVm165dZteuXea5554z/v7+Zvv27cYY3+r1TN99952pXbu2adKkiRk2bJhz3Ff6HTt2rGnYsKHJzs523nJycpzLfaXPIocOHTJxcXFmwIAB5v/+7/9MZmamWbFihfnpp5+cc3yl55ycHJfXNT093Ugyq1atMsb4Tp/GGDN+/HhTo0YN89lnn5nMzEzz4Ycfmssvv9xMmTLFOcdT/RKALtKNN95o/va3v7mMNWjQwPz973/3UkXlo3gAKiwsNFFRUWbChAnOsRMnTpjQ0FAzY8YML1ToOTk5OUaSWbNmjTHGt3stUr16dfPOO+/4bK95eXmmbt26Jj093bRv394ZgHyp37Fjx5qmTZuWusyX+izy7LPPmnbt2p11uS/2XGTYsGGmTp06prCw0Of67Nmzpxk4cKDLWGJionnggQeMMZ59XTkEdhFOnjypDRs2qGvXri7jXbt21bp167xU1aWRmZmp/fv3u/Rut9vVvn37St/70aNHJUlhYWGSfLvXgoICLVy4UA6HQ61bt/bZXocOHaqePXuqc+fOLuO+1m9GRoZiYmIUHx+vfv366ZdffpHke31K0tKlS9WyZUvdfffdioiIULNmzfT22287l/tiz9Jff3fmzZungQMHymaz+Vyf7dq101dffaUff/xRkrRlyxatXbtWPXr0kOTZ19VnPgnaG/744w8VFBSU+Nb5yMjIEt9O72uK+iut9927d3ujJI8wxmjEiBFq166dGjVqJMk3e922bZtat26tEydO6PLLL9fixYt13XXXOd9AfKnXhQsXauPGjfr+++9LLPOl1/amm27S3LlzVa9ePf3+++8aP3682rRpox07dvhUn0V++eUXTZ8+XSNGjNBzzz2n7777Tk899ZTsdrseeughn+xZkpYsWaIjR45owIABknzrZ1iSnn32WR09elQNGjSQn5+fCgoK9OKLL+ree++V5Nl+CUAeYLPZXO4bY0qM+Spf6/2JJ57Q1q1btXbt2hLLfKnX+vXra/PmzTpy5Ig+/vhj9e/fX2vWrHEu95Vef/31Vw0bNkxffvmlqlatetZ5vtBvQkKC89+NGzdW69atVadOHc2ZM0etWrWS5Bt9FiksLFTLli310ksvSZKaNWumHTt2aPr06XrooYec83ypZ0maNWuWEhISFBMT4zLuK30uWrRI8+bN04IFC9SwYUNt3rxZw4cPV0xMjPr37++c54l+OQR2EcLDw+Xn51dib09OTk6JdOpriq4u8aXen3zySS1dulSrVq1SzZo1neO+2GtAQICuueYatWzZUsnJyWratKlef/11n+t1w4YNysnJUYsWLVSlShVVqVJFa9as0RtvvKEqVao4e/KVfs8UFBSkxo0bKyMjw+deV0mKjo7Wdddd5zJ27bXXas+ePZJ88/d29+7dWrFihQYPHuwc87U+/9//+3/6+9//rn79+qlx48Z68MEH9fTTTys5OVmSZ/sl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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ages_population3= pd.read_csv('../data/ages_population3.csv')\n", + "# Freqyency distribution of the the observation of the ages\n", + "plt.hist(ages_population3, color = \"lightblue\")\n", + "plt.title('Frequency Distribution of Age')\n", + "plt.grid(color='grey', linewidth=0.4)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')" + ] + }, + { + "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": 51, + "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", + "
observation
count1000.000000
mean41.989000
std16.144706
min1.000000
25%30.000000
50%40.000000
75%53.000000
max77.000000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.000000\n", + "mean 41.989000\n", + "std 16.144706\n", + "min 1.000000\n", + "25% 30.000000\n", + "50% 40.000000\n", + "75% 53.000000\n", + "max 77.000000" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population3.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'The mean has increased by approximately 5.43, indicating that the average value in this new dataset is higher. This might suggest that responses or data points in this step represent an older or larger scale, possibly indicating a different demographic or set of conditions. The standard deviation has also increased, meaning that the responses are more spread out in this step compared to step 1. This indicates greater variability in the data, suggesting that there’s a wider range of responses or more diversity among the participants.'" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"The mean has increased by approximately 5.43, indicating that the average value in this new dataset is higher. This might suggest that responses or data points in this step represent an older or larger scale, possibly indicating a different demographic or set of conditions. The standard deviation has also increased, meaning that the responses are more spread out in this step compared to step 1. This indicates greater variability in the data, suggesting that there’s a wider range of responses or more diversity among the participants.\"\"\"" + ] + }, + { + "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": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['observation'], dtype='object')" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population3.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " observation\n", + "0 21.0\n", + "1 21.0\n", + "2 24.0\n", + "3 31.0\n", + "4 54.0\n", + ".. ...\n", + "995 16.0\n", + "996 55.0\n", + "997 30.0\n", + "998 35.0\n", + "999 43.0\n", + "\n", + "[1000 rows x 1 columns]\n" + ] + } + ], + "source": [ + "def calculate_quartiles(df):\n", + " # Ensure the column name is correctly referenced\n", + " column_name = 'observation'\n", + " \n", + " # Sort the results\n", + " sorted_results = sorted(df[column_name])\n", + " \n", + " # Number of data points\n", + " n = len(sorted_results)\n", + " \n", + " # Helper function to calculate quartile values\n", + " def get_percentile_value(sorted_data, percentile):\n", + " k = (percentile / 100) * (n + 1)\n", + " f = int(np.floor(k)) # Integer part of the index\n", + " c = k - f # Fractional part of the index\n", + " if f == 0:\n", + " return sorted_data[0]\n", + " elif f >= n:\n", + " return sorted_data[-1]\n", + " else:\n", + " return sorted_data[f - 1] + c * (sorted_data[f] - sorted_data[f - 1])\n", + " \n", + " # Calculate quartiles\n", + " Q1 = get_percentile_value(sorted_results, 25)\n", + " Q2 = get_percentile_value(sorted_results, 50) # Median\n", + " Q3 = get_percentile_value(sorted_results, 75)\n", + " Q4 = sorted_results[-1] # Maximum value\n", + " \n", + " # Return the quartiles\n", + " return {'Q1': Q1, 'Q2 (Median)': Q2, 'Q3': Q3, 'Q4 (Max)': Q4}\n", + "\n", + "# Assuming you already have the DataFrame `ages_population3`\n", + "quartiles = calculate_quartiles(ages_population3)\n", + "\n", + "print(ages_population3)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Calculated Quartiles: {'Q1': 30.0, 'Q2 (Median)': 40.0, 'Q3': 53.0, 'Q4 (Max)': 77.0}\n" + ] + } + ], + "source": [ + "print(\"\\nCalculated Quartiles:\", quartiles)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Difference between Mean and Median: 1.99\n" + ] + } + ], + "source": [ + "# Calculate the mean and difference from the median\n", + "mean_value = ages_population3['observation'].mean()\n", + "median_value = quartiles['Q2 (Median)']\n", + "\n", + "difference = round(mean_value - median_value,2)\n", + "print(f\"Difference between Mean and Median: {difference}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'The mean being slightly higher than the median suggests that there might be some higher values pulling the mean upwards. A small difference like 1.99 indicates that while there might be some skew, the data is relatively symmetric.'" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"The mean being slightly higher than the median suggests that there might be some higher values pulling the mean upwards. A small difference like 1.99 indicates that while there might be some skew, the data is relatively symmetric.\"\"\"" + ] + }, + { + "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": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 35, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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..f58187d 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -1,522 +1,1893 @@ -{ - "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": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy import stats\n", + "from random import choices\n", + "import pandas as pd" + ] + }, + { + "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": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Roll Result\n", + "0 1 3\n", + "1 2 1\n", + "2 3 5\n", + "3 4 3\n", + "4 5 4\n", + "5 6 6\n", + "6 7 3\n", + "7 8 3\n", + "8 9 5\n", + "9 10 3\n" + ] + } + ], + "source": [ + "def simulate_dice_rolls():\n", + " # Simulate rolling a dice 10 times\n", + " rolls = choices(range(1, 7), k=10)\n", + " \n", + " # Create a dataframe from the simulated data\n", + " df = pd.DataFrame({'Roll': range(1, 11), 'Result': rolls})\n", + " \n", + " return df\n", + "\n", + "# Call the function and print the dataframe\n", + "dice_rolls_df = simulate_dice_rolls()\n", + "print(dice_rolls_df) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Results Sorted by Value')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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u5sOHTr49RszZowJDQ012dnZ53yd7OxsU7duXXPjjTf6tV9++eUmOjrat8+cKS8vzxw5csTUqVPHPPfcc772DRs2FFq/4u5Lr732mpFk/vGPf/j127Ztm5Fk5s2bd851Acobp36Ac7jyyisVFBSkkJAQ9enTR/Xr19fatWsVGHjyYOT333+v7777TsOGDZMk5eXl+aZ+/fopPT1de/bskSR17txZ69ev12OPPaaNGzfq+PHjFbIOLVq0UP369TV58mQtWLDgrIM4i9KpUyd9//33SkpK0tSpU9WlSxd99NFHuvPOO3XjjTfKGCNJ+vjjj1WnTh3deuutfs8/dTTpo48+8mu/5pprVL9+/WLVkJOTo48++kg33XSTateuXeg9zsnJ0ZYtWySdPLrVpk0btW/f3m8Zt99+e7HXWZJve54yePBgBQYGasOGDb628ePHKzk5Wf/6178kSVlZWVq+fLlGjBihunXrnnP5devW1eDBg/XPf/7Tdxpx9+7d2r59u0aOHOk7rXbkyBFNnjxZLVq0UGBgoAIDA1W3bl0dPXpU3377bYnW6Wzeeecd1atXTwMGDPB7bzt06KCIiIgqPbgZlQNBBTiHV199Vdu2bdPHH3+s++67T99++62GDh3qm3/qS+bhhx9WUFCQ33T//fdLku9S1+eff16TJ0/WmjVr1LNnT4WFhWnQoEHlfrmzx+PRpk2b1KFDB02dOlVt2rRRVFSU4uPjdeLEifM+PygoSNdff72efPJJvffee0pLS1OPHj30zjvvaP369ZKkzMxMRUREFDotFB4ersDAwEKnt8427qUomZmZysvL0wsvvFDoPe7Xr5+k//8en6rjTEW1ncuZ/QMDA9WgQQO/9Rg4cKCaNWvmO82zbNkyHT16VGPHji3Wa4waNUp5eXlavny5pJODaF0ul98g7dtvv11z587VPffco/fee09bt27Vtm3b1LBhwzILur/88osOHz6smjVrFnp/MzIyyu1SbaC4GKMCnENsbKxvAG3Pnj2Vn5+vxYsX63//93916623+sYITJkyRTfffHORy2jVqpUkqU6dOkpISFBCQoJ++eUX39GVAQMG6LvvvpMkBQcHy+v1FlrGH/2yuPTSS7V69WoZY/T1119r2bJleuKJJ1SrVi099thjJVpWgwYNNGHCBG3cuFG7d+9Wv3791KBBA33xxRcyxviFlYMHDyovL6/QWIqixrmcTf369RUQEKA77rjjrCEgJibGV1tGRkah+UW1nUtGRoYuvPBC3+O8vDxlZmaqQYMGvrYaNWpo7Nixmjp1qmbPnq158+bp2muv9W3v8+natatiY2O1dOlSjR8/XitWrNA111zjWxev16t33nlH8fHxftsoNzdXhw4dOu/yi7svXXDBBWrQoIGSkpKKXE5ISEix1gcoLxxRAUrg6aefVv369fXXv/5VBQUFatWqlVq2bKmdO3cqLi6uyKmoD/pGjRpp5MiRGjp0qPbs2eO7eqRZs2bau3ev35UymZmZ+uyzz85bm9vtlqRz/kvb5XKpffv2+tvf/qZ69eppx44dZ+174sSJsw70PXXaISoqSpJ07bXX6siRI1qzZo1fv1dffdU3v7T1165dWz179tRXX32ldu3aFfkenwoQPXv21DfffKOdO3f6LWPVqlXnff3TrVy50u/xG2+8oby8vEJX0dxzzz2qWbOmhg0bpj179pR40O7dd9+tlJQU/eUvf9Gvv/6qu+++2zfP5XLJGON7X05ZvHix8vPzz7vs4u5L/fv3V2ZmpvLz84t8b4sbvIDywhEVoATq16+vKVOm6NFHH9WqVas0fPhwvfTSS+rbt6+uv/56jRw5UhdeeKEOHTqkb7/9Vjt27NDf//53SdIVV1yh/v37q127dqpfv76+/fZbLV++XF26dFHt2rUlSXfccYdeeuklDR8+XPfee68yMzP19NNPKzQ09Ly1tW3bVpK0cOFChYSEKDg4WDExMfr88881b948DRo0SBdddJGMMXrzzTd1+PBh9e7d+6zL83q9atasmW677Tb16tVL0dHROnLkiDZu3KjnnntOsbGxvqNId955p1588UWNGDFC+/fv16WXXqpPP/1UM2bMUL9+/dSrV6/z1h8SEqKmTZtq7dq1uvbaaxUWFqYLLrhAzZo103PPPadu3brpT3/6k8aMGaNmzZopOztb33//vdatW6ePP/5YkjRhwgQtWbJEN9xwg+/GdCtXrvQdsSquN998U4GBgerdu7fvqp/27dtr8ODBfv3q1aunO++8U/Pnz1fTpk01YMCAEr3OnXfeqalTp+qZZ55RvXr1/I7KhYaG6uqrr9Yzzzzjex82bdqkl19+WfXq1Tvvsou7Lw0ZMkQrV65Uv379NH78eHXu3FlBQUH66aeftGHDBg0cOFA33XRTidYLKFOODuUFLHXqqp9t27YVmnf8+HHTpEkT07JlS5OXl2eMMWbnzp1m8ODBJjw83AQFBZmIiAhzzTXXmAULFvie99hjj5m4uDhTv35943a7zUUXXWQmTpxofvvtN7/lv/LKKyY2NtYEBweb1q1bm9dff71YV/0YY8ycOXNMTEyMCQgIMJLM0qVLzXfffWeGDh1qmjdvbmrVqmU8Ho/p3LmzWbZs2Tnfg9zcXDNr1izTt29f06RJE+N2u01wcLCJjY01jz76qMnMzPTrn5mZaUaPHm0iIyNNYGCgadq0qZkyZYrJyckpVPfYsWOLfM0PP/zQdOzY0bjdbiPJjBgxwjcvNTXV3H333ebCCy80QUFBpmHDhqZr165m+vTpfstISUkxvXv3NsHBwSYsLMyMGjXKrF27tkRX/Wzfvt0MGDDA1K1b14SEhJihQ4eaX375pcjnbNy40UgyTz311DmXfTY33XSTkWTuv//+QvN++uknc8stt5j69eubkJAQ06dPH7N7927TtGlTv/emqKt+jCn+vnTixAkza9Ys0759exMcHGzq1q1rLrnkEnPfffeZffv2lWq9gLLiMub/hu0DAErsoYce0vz585WWluY3hgVA2eDUDwCUwpYtW7R3717NmzdP9913HyEFKCccUQGAUnC5XKpdu7b69eunpUuXnvfeKQBKhyMqAFAK/BsPqBhcngwAAKxFUAEAANYiqAAAAGtV6jEqBQUF+vnnnxUSElKiW3IDAADnGGOUnZ2tqKgo349wnk2lDio///yzoqOjnS4DAACUQlpamho3bnzOPpU6qJz6DZW0tLRi3WIcAAA4LysrS9HR0cX60ctKHVROne4JDQ0lqAAAUMkUZ9gGg2kBAIC1CCoAAMBaBBUAAGAtggoAALAWQQUAAFiLoAIAAKxFUAEAANYiqAAAAGsRVAAAgLUq9Z1pAaC08guMtqYe0sHsHIWHBKtzTJgCavDjpoBtHA8q//nPfzR58mStX79ex48f18UXX6yXX35Zl19+udOlAaiiknanK2FditK9Ob62SE+w4ge0Vp+2kQ5WBuBMjp76+f3333XVVVcpKChI69evV0pKimbPnq169eo5WRaAKixpd7rGrNjhF1IkKcObozErdihpd7pDlQEoiqNHVGbOnKno6GgtXbrU19asWTPnCgJQpeUX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urRq4ejRo2rfvr3mzp1b5Pynn35azz77rObOnatt27YpIiJCvXv39v3eXnnj8uRq4Ndff1V4eLg2bdqkq6++2ulyqq0jR47osssu07x58zR9+nR16NBBc+bMcbqsaumxxx7Tv/71L33yySdOlwJJ/fv3V6NGjfTyyy/72m655RbVrl1by5cvd7Cy6sflcumtt97SoEGDJJ08mhIVFaUJEyZo8uTJkqTc3Fw1atRIM2fO1H333VfuNXFEpRrwer2SpLCwMIcrqd7Gjh2rG264Qb169XK6lGrv7bffVlxcnG677TaFh4erY8eOWrRokdNlVVvdunXTRx99pL1790qSdu7cqU8//VT9+vVzuDKkpqYqIyND1113na/N7Xare/fu+uyzzyqkhkr9o4Q4P2OMJk2apG7duqlt27ZOl1NtrV69Wjt27NC2bducLgWSfvjhB82fP1+TJk3S1KlTtXXrVj344INyu9268847nS6v2pk8ebK8Xq8uueQSBQQEKD8/X08++aSGDh3qdGnVXkZGhiSpUaNGfu2NGjXSgQMHKqQGgkoVN27cOH399df69NNPnS6l2kpLS9P48eP1/vvvKzg42OlyIKmgoEBxcXGaMWOGJKljx4765ptvNH/+fIKKA15//XWtWLFCq1atUps2bZScnKwJEyYoKipKI0aMcLo86OQpodMZYwq1lReCShX2wAMP6O2339bmzZvVuHFjp8uptrZv366DBw/q8ssv97Xl5+dr8+bNmjt3rnJzcxUQEOBghdVPZGSkWrdu7dcWGxurf/zjHw5VVL098sgjeuyxxzRkyBBJ0qWXXqoDBw4oMTGRoOKwiIgISSePrERGRvraDx48WOgoS3lhjEoVZIzRuHHj9Oabb+rjjz9WTEyM0yVVa9dee6127dql5ORk3xQXF6dhw4YpOTmZkOKAq666qtAl+3v37lXTpk0dqqh6O3bsmGrU8P86CggI4PJkC8TExCgiIkIffPCBr+2///2vNm3apK5du1ZIDRxRqYLGjh2rVatWae3atQoJCfGdY/R4PKpVq5bD1VU/ISEhhcYH1alTRw0aNGDckEMmTpyorl27asaMGRo8eLC2bt2qhQsXauHChU6XVi0NGDBATz75pJo0aaI2bdroq6++0rPPPqu7777b6dKqhSNHjuj777/3PU5NTVVycrLCwsLUpEkTTZgwQTNmzFDLli3VsmVLzZgxQ7Vr19btt99eMQUaVDmSipyWLl3qdGn4P927dzfjx493uoxqbd26daZt27bG7XabSy65xCxcuNDpkqqtrKwsM378eNOkSRMTHBxsLrroIvP444+b3Nxcp0urFjZs2FDkd8aIESOMMcYUFBSY+Ph4ExERYdxut7n66qvNrl27Kqw+7qMCAACsxRgVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgAAABrEVQAAIC1CCoAqoWRI0dq0KBBTpcBoIQIKgDKzMiRI+VyueRyuRQYGKgmTZpozJgx+v33350uDUAlRVABUKb69Omj9PR07d+/X4sXL9a6det0//33O10WgEqKoAKgTLndbkVERKhx48a67rrr9Oc//1nvv/++JKmgoEBPPPGEGjduLLfbrQ4dOigpKcn33I0bN8rlcunw4cO+tuTkZLlcLu3fv1+StGzZMtWrV0/vvfeeYmNjVbduXV84OiU/P1+TJk1SvXr11KBBAz366KPi10KAyomgAqDc/PDDD0pKSlJQUJAk6bnnntPs2bM1a9Ysff3117r++ut14403at++fSVa7rFjxzRr1iwtX75cmzdv1o8//qiHH37YN3/27NlasmSJXn75ZX366ac6dOiQ3nrrrTJdNwAVg6ACoEy98847qlu3rmrVqqXmzZsrJSVFkydPliTNmjVLkydP1pAhQ9SqVSvNnDlTHTp00Jw5c0r0GidOnNCCBQsUFxenyy67TOPGjdNHH33kmz9nzhxNmTJFt9xyi2JjY7VgwQJ5PJ6yXE0AFSTQ6QIAVC09e/bU/PnzdezYMS1evFh79+7VAw88oKysLP3888+66qqr/PpfddVV2rlzZ4leo3bt2mrevLnvcWRkpA4ePChJ8nq9Sk9PV5cuXXzzAwMDFRcXx+kfoBLiiAqAMlWnTh21aNFC7dq10/PPP6/c3FwlJCT45rtcLr/+xhhfW40aNXxtp5w4caLQa5w6lXT6MgkhQNVEUAFQruLj4zVr1iwdOXJEUVFR+vTTT/3mf/bZZ4qNjZUkNWzYUJL8BsYmJyeX6PU8Ho8iIyO1ZcsWX1teXp62b99eyjUA4CRO/QAoVz169FCbNm00Y8YMPfLII4qPj1fz5s3VoUMHLV26VMnJyVq5cqUkqUWLFoqOjta0adM0ffp07du3T7Nnzy7xa44fP15PPfWUWrZsqdjYWD377LN+VxIBqDwIKgDK3aRJk3TXXXdp7969ysrK0kMPPaSDBw+qdevWevvtt9WyZUtJJ0/pvPbaaxozZozat2+vTp06afr06brttttK9HoPPfSQ0tPTNXLkSNWoUUN33323brrpJnm93vJYPQDlyGU4sQsAACzFGBUAAGAtggoAALAWQQUAAFiLoAIAAKxFUAEAANYiqAAAAGsRVAAAgLUIKgAAwFoEFQAAYC2CCgAAsBZBBQAAWIugAgAArPX/AAptzsr2qUP6AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(dice_rolls_df['Roll'], dice_rolls_df['Result'],'o')\n", + "plt.xlabel('Round')\n", + "plt.ylabel('Result')\n", + "plt.title('Results Sorted by Value')" + ] + }, + { + "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": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# We can see the frequency in both" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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kg4fPuz+PLm5uRo9erTXEzhXe/LJJyVJ8+fPd6+bNWuWmjdvro4dO153v996He655x7t2rVLo0eP1po1a5Sbm3vTfa4VHx+vBg0a3PL2jz32mMe1iImJUWJiotavX1/scxfHV199pZ9//tnrdlTt2rV1//33e91adDgcXtcwPj7e/WcLmIZbP4APGjdufMPJtNc+kVF4u2LgwIHX3efMmTNyOBwqKChQjRo1vN4vat2tOH36tK5cuaKZM2dq5syZRW5z6tQpj+UqVap4LDudTkm/TiiVpJMnT0qSatWqdcNzV69eXUlJSZo7d65efPFF7d69W19++aXmzp17w/3Onj37m67D+PHjFRoaqsWLF2vOnDkqX768OnbsqClTptzyJOjiPlVzvay7du0q1nGK6/Tp05KKzhsdHa21a9d6rAsJCfEof9Kvf76XLl0quZDAb0BRAUrAtaMMVatWlSTNnDlT9913X5H7VK9e3f2E0PHjx73ev3Zd4V82106CLPyLq1ClSpVUvnx5Pf744xozZkyR546Li7vBp/FWOF/i6NGjN9127Nixevfdd/XRRx9p9erVioyM1KBBg264T6VKlW75OhQlICBAKSkpSklJ0blz5/T5559rwoQJeuCBB5SVlaWQkJCbHuNGI0VFuV7Wq0tfcHCwcnJyvLa7tigWR+Hxs7Ozvd47duyY+2cPKK249QPcBu3atVNkZKT27Nmjtm3bFvkKCgpSaGio7rnnHi1fvtzjX7jnz5/Xxx9/7HHM6tWrKzg4WN9++63H+o8++shjOSQkRF26dNGOHTsUHx9f5LmvHUG5mcTEREVERGjOnDmyLOuG27Zp00aJiYmaMmWK/vu//1tDhw696cTU4lyHm4mMjNTAgQM1ZswYnTlzxv20zLWjRL/VkiVLPK7F4cOHtXnzZo+nfGJjY7Vv3z6Pcnn69Glt3rzZ41jFyZaQkKAKFSpo8eLFHuuPHj2qL774wj1JGyitGFEBboOKFStq5syZSk5O1pkzZzRw4EBFRUXp5MmT2rVrl06ePKnZs2dLkl555RX17NlT3bt317hx45Sfn68pU6YoNDRUZ86ccR/T4XBo8ODBevvtt1W3bl21aNFCX3/9td577z2v87/++utq3769OnTooCeffFKxsbE6f/68Dhw4oI8//lhffPFFsT/P9OnTNWLECHXr1k0jR45U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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frequency=dice_rolls_df['Result'].value_counts()\n", + "plt.xlabel('Result')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency distribution')\n", + "\n", + "plt.bar(frequency.index, frequency.values)" + ] + }, + { + "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": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.6" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def mean(list):\n", + " sum=0\n", + " observations=len(list)\n", + " for i in list:\n", + " sum+=i\n", + " mean=sum/observations\n", + " return mean\n", + "mean(dice_rolls_df['Result'])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.6" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.mean(dice_rolls_df['Result'])" + ] + }, + { + "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": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'freq {3: 5, 1: 1, 5: 2, 4: 1, 6: 1} and mean of freq 2.0'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def mean_freq (list):\n", + " dict={}\n", + " for i in list:\n", + " if i in dict.keys():\n", + " dict[i]+=1\n", + " else:\n", + " dict[i]=1\n", + " return f'freq {dict} and mean of freq {mean(dict.values())}'\n", + "\n", + "mean_freq(dice_rolls_df['Result'])" + ] + }, + { + "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": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The median of the dice rolls is: 3.0\n" + ] + } + ], + "source": [ + "def median(lst):\n", + " lst.sort()\n", + " n = len(lst)\n", + " if n % 2 == 0:\n", + " median1 = lst[n//2]\n", + " median2 = lst[n//2 - 1]\n", + " return (median1 + median2) / 2\n", + " else:\n", + " return lst[n//2]\n", + "\n", + "# Convert the 'Result' column to a list\n", + "results_list = dice_rolls_df['Result'].tolist()\n", + "\n", + "# Calculate and print the median\n", + "median_result = median(results_list)\n", + "print(f\"The median of the dice rolls is: {median_result}\")" + ] + }, + { + "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": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Roll Result\n", + "0 1 2\n", + "1 2 5\n", + "2 3 5\n", + "3 4 1\n", + "4 5 1\n", + "5 6 3\n", + "6 7 1\n", + "7 8 5\n", + "8 9 6\n", + "9 10 4\n" + ] + } + ], + "source": [ + "# Function to calculate the quartiles manually\n", + "def calculate_quartiles(df):\n", + " # Sort the results\n", + " sorted_results = sorted(df['Result'])\n", + " \n", + " # Number of data points\n", + " n = len(sorted_results)\n", + " \n", + " # Function to calculate percentile-based position (not using direct quartile methods)\n", + " def get_percentile_value(sorted_data, percentile):\n", + " pos = (percentile / 100) * (n + 1)\n", + " pos_int = int(pos) - 1 # Subtract 1 because list indexing starts from 0\n", + " return sorted_data[pos_int]\n", + " \n", + " # Calculate quartiles\n", + " Q1 = get_percentile_value(sorted_results, 25)\n", + " Q2 = get_percentile_value(sorted_results, 50) # Median\n", + " Q3 = get_percentile_value(sorted_results, 75)\n", + " Q4 = max(sorted_results) # Maximum value\n", + " \n", + " # Return the quartiles\n", + " return {'Q1': Q1, 'Q2 (Median)': Q2, 'Q3': Q3, 'Q4 (Max)': Q4}\n", + "\n", + "# Simulate dice rolls and calculate the quartiles\n", + "dice_rolls_df = simulate_dice_rolls()\n", + "quartiles = calculate_quartiles(dice_rolls_df)\n", + "\n", + "print(dice_rolls_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Calculated Quartiles: {'Q1': 1, 'Q2 (Median)': 3, 'Q3': 5, 'Q4 (Max)': 6}\n" + ] + } + ], + "source": [ + "print(\"\\nCalculated Quartiles:\", quartiles)" + ] + }, + { + "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": 12, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rollvalue
001
112
226
331
446
555
662
772
884
991
\n", + "
" + ], + "text/plain": [ + " roll value\n", + "0 0 1\n", + "1 1 2\n", + "2 2 6\n", + "3 3 1\n", + "4 4 6\n", + "5 5 5\n", + "6 6 2\n", + "7 7 2\n", + "8 8 4\n", + "9 9 1" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "dice = pd.read_csv(\"../data/roll_the_dice_hundred.csv\",index_col=0)\n", + "#../ to go one folder back for the import just like in bash\n", + "\n", + "#df_100.shape\n", + "\n", + "display(dice.head(10))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0EAAAIhCAYAAACIfrE3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPp0lEQVR4nO3deXxTVf7/8Xe60pa2LGUrICIiIIKgqAO4sI8CMihfEFAWZfy6gIDMOIp8oduwKCrOiCzOKHz9akUZlUEGkarAiKDsgjCK/gQFAaEsTQXpen5/xBRCC01Dk3vTvJ6PRx5J7rk3+dxyCH1zzj1xGGOMAAAAACBEhFldAAAAAAAEEiEIAAAAQEghBAEAAAAIKYQgAAAAACGFEAQAAAAgpBCCAAAAAIQUQhAAAACAkEIIAgAAABBSCEEAAAAAQgohCMBFW7hwoRwOhzZt2nTeffbu3SuHw6GFCxcGrrBfuetz3yIiItSoUSPde++9+vHHH0v2W716tRwOh1avXl3h91i3bp1SU1N14sSJyiv8V2+++aZat26tmJgYORwObdu2rcz93PW7b1FRUapTp446d+6sSZMm6fvvvy91jPtns3fv3kqv+0LOrtPhcCghIUGdOnXSG2+8cVGvmZqaWvL8Yv48y/LBBx+oV69eSk5OVnR0tJKTk9WlSxfNmDGjUl7/bNOmTdOSJUsq/XW9/Xvozd/pi9W+fXs1bNhQRUVF592nc+fOSkpKUn5+vlevaeXnDIDgQggCEBANGjTQ+vXr1adPH8tqWLBggdavX6+srCzdf//9euONN3TTTTfp5MmTF/3a69atU1paWqWHoCNHjmjYsGFq1qyZVqxYofXr1+uKK6644DHTpk3T+vXrtWrVKr388svq0qWLXnnlFbVq1Uqvv/66x759+vTR+vXr1aBBg0qt2xv/9V//pfXr12vdunWaN2+enE6nhg4dqszMzIDXUp558+bp1ltvVUJCgmbPnq0PPvhATz31lFq1aqV//OMflf5+/gpBdjJq1CgdOHBAH3zwQZntu3fv1rp16zRs2DBFRUUFuDoAVV2E1QUACA3R0dH6zW9+Y2kNV111lTp06CBJ6tq1q4qKipSRkaElS5bo7rvvtrS289m9e7cKCgp0zz336JZbbvHqmObNm3v8rPv166c//OEP6tGjh0aOHKm2bduqTZs2kqQ6deqoTp06fqm9PPXq1Sups2PHjurcubMuvfRSzZ8/X0OHDrWkpvOZPn26br755lKBZ9iwYSouLq609/nll18UExNTaa9nZ3fffbcee+wxvfLKK+rdu3ep9ldeeUWSdN999wW6NAAhgJEgAAFR1jSV1NRUORwO7dy5U0OGDFFiYqLq1aun++67Tzk5OR7HG2M0Z84ctWvXTjExMapZs6b+67/+S999953PNbl/AS9rmtjZli5dqo4dOyo2Nlbx8fHq2bOn1q9f73Eejz32mCSpadOmJVO8ypuGVd7rjhw5UjfeeKMk6a677pLD4VCXLl18OFOpVq1amj9/vgoLCzVr1qyS7eebDrdixQp1795diYmJio2NVatWrTR9+nSPfTZt2qR+/fqpVq1aqlatmtq3b6+33nrLp/okqUmTJqpTp45++uknj+0//PCD7rnnHtWtW1fR0dFq1aqVnn32WZ/Cx3fffafBgweXTGmrV6+eunfvft4phm5Hjx4972hZWJjnP6WnT5/WxIkT1bRpU0VFRalhw4YaPXp0qVHCSy+9VH379tU777yj9u3bq1q1akpLS5PD4dDJkyf1v//7vyV96ew/90OHDumBBx5Qo0aNFBUVpaZNmyotLU2FhYUer3/gwAENGjRI8fHxSkxM1F133aVDhw55/bOSpOPHj+vee+9VrVq1FBcXp9tvv93j71xGRoYiIiK0b9++Usfed999ql27tk6fPl3ma9esWVN33HGH3nvvPR09etSjraioSP/3f/+n6667Tm3atNG3336re++9V82bN1dsbKwaNmyo22+/XTt27Cj3HEaOHKlLL7201Hb358/ZvP2c2bp1q/r27VvSJ5OTk9WnTx/t37+/3HoA2AMhCIDlBgwYoCuuuEJvv/22nnjiCWVmZurRRx/12OeBBx7Q+PHj1aNHDy1ZskRz5szRzp071alTp1K/NHvr22+/laQLjoRkZmbqd7/7nRISEvTGG2/o5Zdf1vHjx9WlSxetXbtWkvT73/9ejzzyiCTpnXfe0fr167V+/Xpdc801F/W6kydP1osvvijpzBS3OXPm+HSuknTdddepQYMG+ve//33B/V5++WX17t1bxcXFmjdvnt577z2NHTvW4xe8VatWqXPnzjpx4oTmzZunf/7zn2rXrp3uuusun6/HyMnJ0bFjxzym+x05ckSdOnXSypUrlZGRoaVLl6pHjx764x//qDFjxlT4PXr37q3Nmzfr6aefVlZWlubOnav27duXO42xY8eOevvtt5WamqovvvjivNexGGPUv39/PfPMMxo2bJj+9a9/acKECfrf//1fdevWTXl5eR77b9myRY899pjGjh2rFStWaMCAAVq/fr1iYmLUu3fvkr7k/nM/dOiQrr/+en3wwQeaMmWK3n//fY0aNUrTp0/X/fffX/K6v/zyi3r06KGVK1dq+vTpWrx4serXr6+77rqrQj+vUaNGKSwsTJmZmXr++ee1YcMGdenSpeTn9cADDygiIkLz58/3OO7YsWNatGiRRo0apWrVql3w9fPz8/Xaa695bP/ggw904MABjRo1SpIr0NWuXVszZszQihUr9OKLLyoiIkI33HCDvv766wqd04V48zlz8uRJ9ezZUz/99JNefPFFZWVl6fnnn9cll1yi3NzcSqsFgJ8ZALhICxYsMJLMxo0bz7vPnj17jCSzYMGCkm0pKSlGknn66ac99n344YdNtWrVTHFxsTHGmPXr1xtJ5tlnn/XYb9++fSYmJsb86U9/8qq+zz77zBQUFJjc3FyzbNkyU6dOHRMfH28OHTpkjDFm1apVRpJZtWqVMcaYoqIik5ycbNq0aWOKiopKXi83N9fUrVvXdOrUqWTbzJkzjSSzZ8+eC9ZS0dd117R48eJyX9ebfW+44QYTExNT6mfjrjs3N9ckJCSYG2+8seTnX5aWLVua9u3bm4KCAo/tffv2NQ0aNPA4r7JIMg8//LApKCgw+fn5Zvfu3aZfv34mPj7ebNq0qWS/J554wkgyn3/+ucfxDz30kHE4HObrr7/2eM2UlJRSPw/3n2d2draRZJ5//vkL1laWb7/91lx11VVGkpFkYmJiTPfu3c3s2bNNfn5+yX4rVqwos0+/+eabRpJ56aWXSrY1adLEhIeHe5yDW1xcnBkxYkSp7Q888ICpXr26+f777z22P/PMM0aS2blzpzHGmLlz5xpJ5p///KfHfvfff3+pv4dlcfeLO+64w2P7p59+aiSZP//5zyXbRowYYerWrWvy8vJKtj311FMmLCys3L8PxcXFpmnTpqZt27Ye2wcMGGBiY2NNTk5OmccVFhaa/Px807x5c/Poo4+WbC/rc2bEiBGmSZMmpV7D/fnj5u3nzKZNm4wks2TJkgueGwB7YyQIgOX69evn8bxt27Y6ffq0Dh8+LElatmyZHA6H7rnnHhUWFpbc6tevr6uvvtrr1b9+85vfKDIyUvHx8erbt6/q16+v999/X/Xq1Stz/6+//loHDhzQsGHDPKY8Va9eXQMGDNBnn32mU6dOVfh8/fW63jDGXLB93bp1cjqdevjhh0tNFXL79ttv9dVXX5VcR3X2n0nv3r118OBBr/53fs6cOYqMjFRUVJSuuOIKvf/++3rjjTd07bXXluzz8ccf68orr9T111/vcezIkSNljNHHH39c7vu41apVS82aNdPMmTP13HPPaevWrV5PqWvWrJm++OILrVmzRmlpaerRo4c2btyoMWPGqGPHjiVTvtz1jBw50uP4gQMHKi4uTh999JHH9rZt25a70MXZli1bpq5duyo5Odnj537bbbdJktasWSPJNVIXHx9f6u9WRa+1OvdauU6dOqlJkyZatWpVybZx48bp8OHDWrx4sSSpuLhYc+fOVZ8+fcqchnY2h8Ohe++9V9u3b9fmzZsluaYevvfeexowYIASEhIkufrYtGnTdOWVVyoqKkoRERGKiorSN998o//85z8VOqfz8fZz5vLLL1fNmjX1+OOPa968edq1a1elvD+AwCIEAbBc7dq1PZ5HR0dLck3pkaSffvpJxhjVq1dPkZGRHrfPPvtM2dnZXr3Pq6++qo0bN2rr1q06cOCAtm/frs6dO593f/d1CmVdC5KcnKzi4mIdP37cq/cOxOt644cfflBycvJ5248cOSJJatSo0Xn3cU8L+uMf/1jqz+Phhx+WJK/+TAYNGqSNGzdq3bp1mj9/vuLj4zV48GB98803Jfuc71oc9zmcey3JhTgcDn300Uf67W9/q6efflrXXHON6tSpo7Fjx3o1jSksLEw333yzpkyZoqVLl+rAgQO66667tHnz5pKL+I8ePaqIiIhSUywdDofq169fqt6Krsr3008/6b333iv1c2/durWkMz/3o0ePlhnu69evX6H3K2v/c8+jffv2uummm0qmbi5btkx79+71errivffeq7CwMC1YsECS9Prrrys/P79kKpwkTZgwQZMnT1b//v313nvv6fPPP9fGjRt19dVXl3xOXCxvP2cSExO1Zs0atWvXTk8++aRat26t5ORkpaSkqKCgoFJqAeB/rA4HwPaSkpLkcDj0ySeflASks5W1rSytWrUqWR3OG+5w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d6/+/ve/67333tPDDz9sdVkAgCqEEAQAsJXo6GjVr19fjRo1Uq9evXTXXXdp5cqVkqTi4mKlp6erUaNGio6OVrt27bRixQqvX/v777/X7bffrpo1ayouLk6tW7fW8uXL/XUqAACbirC6AAAAzue7777TihUrFBkZKUn6y1/+omeffVbz589X+/bt9corr6hfv37auXOnmjdvXu7rjR49Wvn5+fr3v/+tuLg47dq1S9WrV/f3aQAAbIYQBACwlWXLlql69eoqKirS6dOnJUnPPfecJOmZZ57R448/rsGDB0uSnnrqKa1atUrPP/+8XnzxxXJf+4cfftCAAQPUpk0bSdJll13mp7MAANgZIQgAYCtdu3bV3LlzderUKf3973/X7t279cgjj8jpdOrAgQPq3Lmzx/6dO3fWF1984dVrjx07Vg899JBWrlypHj16aMCAAWrbtq0/TgMAYGNcEwQAsJW4uDhdfvnlatu2rf76178qLy9PaWlpJe0Oh8Njf2NMqW3n8/vf/17fffedhg0bph07dqhDhw564YUXKrV+AID9EYIAALaWkpKiZ555Rj///LOSk5O1du1aj/Z169apVatWXr9e48aN9eCDD+qdd97RH/7wB/3tb3+r7JIBADbHdDgAgK116dJFrVu31rRp0/TYY48pJSVFzZo1U7t27bRgwQJt27ZNr7/+ulevNX78eN1222264oordPz4cX388ccVClAAgKqBEAQAsL0JEybo3nvv1e7du+V0OvWHP/xBhw8f1pVXXqmlS5d6tTKcJBUVFWn06NHav3+/EhISdOutt2rWrFl+rh4AYDcOY4yxuggAAAAACBSuCQIAAAAQUghBAAAAAEIKIQgAAABASCEEAQAAAAgphCAAAAAAIYUQBAAAACCkEIIAAAAAhBRCEAAAAICQQggCAAAAEFIIQQAAAABCCiEIAAAAQEj5/0xTHmZ/nigFAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#sort the values\n", + "sorted_dice_values = dice.sort_values(by='value').reset_index(drop=True)\n", + "\n", + "# Creating the plot\n", + "plt.figure(figsize=(10, 6))\n", + "plt.plot(sorted_dice_values.index, sorted_dice_values['value'],marker='x', color='r') # Plot using columns\n", + "plt.title('Line Plot of Dice Rolls Sorted by Values')\n", + "plt.xlabel('Rolls')\n", + "plt.ylabel('Values')\n", + "plt.grid(True)\n", + "plt.show()" + ] + }, + { + "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": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.74" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean(dice['value'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "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", + "
frequency
value
112
217
314
422
512
623
\n", + "
" + ], + "text/plain": [ + " frequency\n", + "value \n", + "1 12\n", + "2 17\n", + "3 14\n", + "4 22\n", + "5 12\n", + "6 23" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency = dice['value'].value_counts().sort_index()\n", + "frequency = frequency.to_frame(name='frequency')\n", + "frequency" + ] + }, + { + "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": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNAklEQVR4nO3deXwTdeL/8XfSpm1KW65S2nKUChRQAUUUQYUiwsq1Ah4oKof4VRdQAZWf6LoUF0Fh5Yu7unisgvBdQFzFZVVAVgEPwOUQROQWKEcrlKMXaUmb+f2hzZIpV9Om04bX8/HIo2QymXkn09C+O5+ZsRmGYQgAAAAA4GW3OgAAAAAAVDUUJQAAAAAwoSgBAAAAgAlFCQAAAABMKEoAAAAAYEJRAgAAAAATihIAAAAAmFCUAAAAAMCEogQAAAAAJhQlALiA2bNny2azaf369Wd9vE+fPmrSpInPtCZNmmjo0KFlWs/q1auVlpamkydP+hf0EvTee+/piiuukNPplM1m06ZNm8457+9//3v16dNHDRo0kM1mO+/2+emnnzRgwADVqlVLUVFR6t69uzZu3HjWeRcsWKCrrrpKERERSkxM1OjRo5WXl3fB7Pv27ZPNZvPeHA6H6tatq2uvvVZjxozR1q1bSz1n5cqVstlsWrly5QWXX5GaNGnik7VGjRpq166dXn31VRmG4fcyz9wGJe/H7NmzKyY0AJQTRQkAAmDRokV67rnnyvSc1atXa+LEiRSli3T06FHdf//9atq0qZYuXao1a9YoJSXlnPP/7//+r44dO6bf/va3CgsLO+9yb7rpJu3cuVPvvPOOFi5cqIKCAqWmpmrHjh0+8/7973/XPffco2uvvVZLlizRhAkTNHv2bA0YMOCiX8ejjz6qNWvWaNWqVZo7d6769eunxYsXq23btpo2bZrPvO3atdOaNWvUrl27i15+Rbnhhhu0Zs0arVmzRnPnzlVkZKQeffRRTZkypdKzAEBlCLU6AAAEo6uvvtrqCGXmdrtls9kUGlo9fjTs3LlTbrdb9913n7p06XLB+XNzc2W3//L3wblz555zvmnTpuno0aNavXq1kpKSJEk33nijmjZtqj/84Q967733JEnFxcV66qmn1KNHD7311luSpK5duyo6Olr33nuvlixZop49e14wV+PGjXX99dd77/fq1Utjx47VgAEDNG7cOF155ZXe5cTExPjMW5lq1arls+5bbrlFjRs31htvvKFnnnnGkkwAEEjsUQKAADAPK/J4PJo0aZJatGghp9OpWrVqqU2bNnrllVckSWlpaXrqqackScnJyd4hTiVDrDwej6ZOnaqWLVsqPDxccXFxGjx4sA4ePOizXsMwNHnyZCUlJSkiIkLt27fX8uXLlZqaqtTUVO98JUO45s6dqyeeeEINGjRQeHi4du/eraNHj2rEiBG6/PLLFRUVpbi4ON1888366quvfNZVMlRq2rRpeumll9SkSRM5nU6lpqZ6S8zTTz+txMRE1axZU/3799eRI0cu6v1bvHixOnbsqMjISEVHR6t79+5as2aN9/GhQ4fqxhtvlCQNHDhQNpvN5/WdTUlJupBFixbp5ptv9pYk6ZeCMmDAAP3rX/9SUVGRJGnt2rXKyMjQsGHDfJ5/5513KioqSosWLbqo9Z2N0+nU22+/LYfD4bNX6VxD77799lv17dtXdevWVUREhJo2barRo0f7zLNr1y4NGjRIcXFxCg8PV6tWrfTaa6/5nTEmJkYpKSn6+eeffaYfP35cI0aMUIMGDRQWFqbLLrtMzz77rAoLC8u8jqNHj+qhhx5So0aNFB4ernr16umGG27Qv//9b79zA8DFqh5/NgSAKqC4uNj7S/KZLuYYjalTpyotLU2///3v1blzZ7ndbm3fvt07zO7BBx/U8ePH9Ze//EUffvihEhISJEmXX365JOl3v/ud3nzzTY0aNUp9+vTRvn379Nxzz2nlypXauHGjYmNjJUnPPvuspkyZooceekgDBgzQgQMH9OCDD8rtdp91WNr48ePVsWNHvf7667Lb7YqLi9PRo0clSRMmTFB8fLzy8vK0aNEipaam6vPPPy9VSF577TW1adNGr732mk6ePKknnnhCffv2VYcOHeRwOPTOO+9o//79evLJJ/Xggw9q8eLF532v5s2bp3vvvVc9evTQ/PnzVVhYqKlTp3rXf+ONN+q5557Tddddp5EjR2ry5Mnq2rWrYmJiLrgdLsTlcmnPnj3q379/qcfatGkjl8uln376SSkpKfrhhx+808/kcDjUsmVL7+P+SkxM1DXXXKPVq1erqKjonHv6li1bpr59+6pVq1aaPn26GjdurH379umzzz7zzvPjjz+qU6dOaty4sV5++WXFx8dr2bJleuyxx5SVlaUJEyaUOV9RUZEOHDjg831VUFCgrl27as+ePZo4caLatGmjr776SlOmTNGmTZv0ySeflGkd999/vzZu3KgXXnhBKSkpOnnypDZu3Khjx46VOS8AlJkBADivWbNmGZLOe0tKSvJ5TlJSkjFkyBDv/T59+hhXXXXVedczbdo0Q5Kxd+9en+nbtm0zJBkjRozwmf7tt98akoxnnnnGMAzDOH78uBEeHm4MHDjQZ741a9YYkowuXbp4p61YscKQZHTu3PmCr7+oqMhwu91Gt27djP79+3un792715BktG3b1iguLvZOnzFjhiHJ+O1vf+uznNGjRxuSjOzs7HOuq7i42EhMTDRat27ts8zc3FwjLi7O6NSpU6nX8P7771/wNZjVqFHDZ/uUOHTokCHJmDJlSqnH5s2bZ0gyVq9ebRiGYbzwwguGJCMjI6PUvD169DBSUlLOm6Hk/Zs2bdo55xk4cKAhyfj5558Nw/jva16xYoV3nqZNmxpNmzY1XC7XOZfzm9/8xmjYsGGp937UqFFGRESEcfz48fNmTUpKMnr16mW43W7D7XYb+/fvN/7nf/7HcDgcxscff+yd7/XXXzckGQsXLvR5/ksvvWRIMj777DOfZZ65DUrej1mzZnmnRUVFGaNHjz5vNgAIFIbeAcBFmjNnjtatW1fqVjIE7Hyuu+46bd68WSNGjNCyZcuUk5Nz0etdsWKFJJU6S9t1112nVq1a6fPPP5f0y1CwwsJC3XXXXT7zXX/99aXOylfi9ttvP+v0119/Xe3atVNERIRCQ0PlcDj0+eefa9u2baXm7dWrl8+wtlatWkmSevfu7TNfyfT09PRzvFJpx44dOnz4sO6//36fZUZFRen222/X2rVrderUqXM+v6LYbLaLfuxc855vGRfLuMDeyp07d2rPnj0aPny4IiIizjpPQUGBPv/8c/Xv31+RkZEqKiry3nr16qWCggKtXbv2glk+/fRTORwOORwOJSUl6a233tJf/vIXn+38xRdfqEaNGrrjjjt8nlvyvVvyvXqxrrvuOs2ePVuTJk3S2rVr5Xa7y/R8ACgPihIAXKRWrVqpffv2pW41a9a84HPHjx+vP/3pT1q7dq169uypunXrqlu3buc85fiZSoYZlQzHO1NiYqL38ZKv9evXLzXf2aada5nTp0/X7373O3Xo0EEffPCB1q5dq3Xr1unWW2+Vy+UqNX+dOnV87pecUe5c0wsKCs6a5czXcK7X6vF4dOLEiXM+v7xq164tm8121qFdx48fl/Tf11W3bl1JOue85tfvj/379ys8PPycyyoZJtmwYcNzLuPYsWMqKirSX/7yF2/RKbn16tVLkpSVlXXBLDfeeKPWrVuntWvXau7cuWrSpIlGjRqlr7/+2mdd8fHxpUpiXFycQkNDyzxk7r333tOQIUP0t7/9TR07dlSdOnU0ePBgZWZmlmk5AOAPjlECgEoQGhqqsWPHauzYsTp58qT+/e9/65lnntFvfvMbHThwQJGRked8bskv5BkZGaV+IT58+LD3+KSS+cwH10tSZmbmWfcqnW2vx//93/8pNTVVM2fO9Jmem5t7/hdZAc58rWaHDx+W3W5X7dq1A7Z+p9OpZs2aacuWLaUe27Jli5xOpy677DJJUuvWrb3TS44lk345dmf79u265557ypXl0KFD2rBhg7p06XLO45Pq1asnSaVO6nGm2rVrKyQkRPfff79Gjhx51nmSk5MvmKdmzZpq3769JKlDhw7q0KGD2rZtqxEjRmjTpk2y2+2qW7euvv32WxmG4fO9deTIERUVFXm/Vy9WbGysZsyYoRkzZig9PV2LFy/W008/rSNHjmjp0qVlWhYAlBV7lACgktWqVUt33HGHRo4cqePHj2vfvn2SpPDwcEkqtdfm5ptvlvRLgTnTunXrtG3bNnXr1k3SL7+8hoeHe09fXWLt2rXav3//Reez2WzeLCW+//57n7POBUqLFi3UoEEDzZs3z2fYWX5+vj744APvmfACqX///vriiy904MAB77Tc3Fx9+OGH+u1vf+stLR06dFBCQkKpC6T+4x//UF5eXpmupWTmcrn04IMPqqioSOPGjTvnfCkpKWratKneeeedc55VLjIyUl27dtV3332nNm3anHWvaElBLYvmzZtr3Lhx2rJli/d7rlu3bsrLy9NHH33kM++cOXO8j/urcePGGjVq1Hkv/gsAFYk9SgBQCfr27asrr7xS7du3V7169bR//37NmDFDSUlJat68uaT/7qF45ZVXNGTIEDkcDrVo0UItWrTQQw89pL/85S+y2+3q2bOn96x3jRo10pgxYyT9MiRs7NixmjJlimrXrq3+/fvr4MGDmjhxohISEi769Nh9+vTRH//4R02YMEFdunTRjh079Pzzzys5Ofms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2rWr9/7YsWMlSUOGDNHMmTO1ZcsWzZkzRydPnlRCQoK6du2q9957T9HR0VZFBgAAAHAJsLQopaam6nznkli2bFklpgEAAACAX1SrkzkAAFBduH48JndmvoqOF1gdBQDgB4oSAAABsH8EoyIAoDqrVme9AwAAAIDKQFECAAAAABOKEgAAAACYcIwSAAABkPTX3yi0ToSKjhdwvBIAVEMUJQAAAsB5eV054qPkzsyzOgoAwA8MvQMAAAAAE4oSAAAAAJhQlAAAAADAhKIEAAAAACaczAEAzmHbtm1WRwg4j8cjSdq8ebPs9uD+29mlsD0BABWHogQAJnnKk0023XfffVZHCTin06n58+erc+fOcrlcVscBAKDKoCgBgEmBCmTI0AANUKxirY4TUKG//hgYpmEqUpHFaQJrl3ZphVZYHQMAUE1QlADgHGIVq0QlWh0joOy/Hqoar3h55LE4TWBlKcvqCACAaoSiBABAAGTN3iJ7VJg8eaetjgIA8INfRWnv3r1KTk6u6CwAAASNrNlbrI4AACgHv05x1KxZM3Xt2lX/93//p4KCgorOBAAAAACW8qsobd68WVdffbWeeOIJxcfH6+GHH9Z//vOfis4GAAAAAJbwqyhdeeWVmj59ug4dOqRZs2YpMzNTN954o6644gpNnz5dR48ereicAABUK/YaDu8NAFD9lOvqgqGhoerfv78WLlyol156SXv27NGTTz6phg0bavDgwcrIyKionAAAVCspn9ypKzYMU8ond1odBQDgh3IVpfXr12vEiBFKSEjQ9OnT9eSTT2rPnj364osvdOjQId12220VlRMAAAAAKo1fZ72bPn26Zs2apR07dqhXr16aM2eOevXqJbv9l96VnJysN954Qy1btqzQsAAAAABQGfwqSjNnztQDDzygYcOGKT4+/qzzNG7cWG+//Xa5wgEAAACAFfwqSrt27brgPGFhYRoyZIg/iwcAAAAAS/l1jNKsWbP0/vvvl5r+/vvv69133y13KAAAAACwkl9F6cUXX1RsbGyp6XFxcZo8eXK5QwEAAACAlfwqSvv371dycnKp6UlJSUpPTy93KAAAAACwkl9FKS4uTt9//32p6Zs3b1bdunXLHQoAAAAArORXUbr77rv12GOPacWKFSouLlZxcbG++OILPf7447r77rsrOiMAAAAAVCq/zno3adIk7d+/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FRcXq6CgQKdOnVJkZGSp59SqVUsDBgzQO++8o2HDhik3N1cffPCBz9C5119/XX/729+0f/9+uVwunT59WldddZXfr3HDhg3Ky8tT3bp1faa7XC7t2bNHkjR27Fg9+OCDmjt3rm655Rbdeeedatq0qd/rBAAEBkUJAFAptm3bpuTk5LM+5nQ6z/tcj8ejiRMnasCAAaUei4iIOOfzhg8frm7dumnXrl1atWqVJGngwIGSpIULF2rMmDF6+eWX1bFjR0VHR2vatGk+x0WZ2e12GYbhM83tdvvkTEhI0MqVK0s9t1atWpKktLQ0DRo0SJ988omWLFmiCRMmaMGCBerfv/851wsAqHwUJQBAwH3xxRfasmWLxowZc9bH27Rpo7/97W86fvz4WfcqtWvXTjt27PAZjncxunbtqssuu0yzZ8/WihUrdNdddyk6OlqS9NVXX6lTp04aMWKEd/6SvT7nUq9ePWVkZHjv5+TkaO/evT45MzMzFRoaqiZNmpxzOSkpKUpJSdGYMWN0zz33aNasWRQlAKhiOJkDAKBCFRYWKjMzU4cOHdLGjRs1efJk3XbbberTp48GDx581ufcc889io+PV79+/fTNN9/op59+0gcffKA1a9ZIkv7whz9ozpw5SktL09atW7Vt2za99957+v3vf3/eLDabTcOGDdPMmTO1Zs0aDR8+3PtYs2bNtH79ei1btkw7d+7Uc889p3Xr1p13eTfffLPmzp2rr776Sj/88IOGDBmikJAQ7+O33HKLOnbsqH79+mnZsmXat2+fVq9erd///vdav369XC6XRo0apZUrV2r//v365ptvtG7dOrVq1epi314AQCWhKAEAKtTSpUuVkJCgJk2a6NZbb9WKFSv05z//Wf/85z99SsWZwsLC9NlnnykuLk69evVS69at9eKLL3rn/81vfqOPP/5Yy5cv17XXXqvrr79e06dPV1JS0gXzDB06VNnZ2WrRooVuuOEG7/RHHnlEAwYM0MCBA9WhQwcdO3bMZ+/S2YwfP16dO3dWnz591KtXL/Xr18/n+CKbzaZPP/1UnTt31gMPPKCUlBTdfffd2rdvn+rXr6+QkBAdO3ZMgwcPVkpKiu666y717NnT56QSAICqwWaYB1sDAAAAwCWOPUoAAAAAYEJRAgAAAAATihIAAAAAmFCUAAAAAMCEogQAAAAAJhQlAAAAADChKAEAAACACUUJAAAAAEwoSgAAAABgQlECAAAAABOKEgAAAACY/H/EKU4qWnNIYQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Calculate the mean value of dice rolls\n", + "mean_value = mean(dice['value'])\n", + "\n", + "plt.figure(figsize=(10, 6))\n", + "plt.hist(dice['value'], bins=range(1, 8), align='left', color='purple', edgecolor='black') # \n", + "plt.title('Histogram of 100 Dice Rolls')\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency')\n", + "plt.xticks(range(1, 7))\n", + "plt.grid(True)\n", + "plt.axvline(mean_value, color='lightblue', linestyle='dashed', linewidth=2) # Add a vertical line for the mean on the histogram\n", + "plt.text(mean_value+0.1, plt.ylim()[1]-5, f'Mean: {mean_value:.2f}', color = 'lightblue')\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"\\nShape: The histogram shows bars corresponding to each of the six dice values (1 through 6). \\nThe height of each bar represents the number of times each value was rolled.\\nValues: Each bar's height (frequency) shows how often that particular result was rolled in the 100 trials. \\nLooking at the histogram, we can see that, in these 100 rolls, the numbers 4 and 6 showed up way more often—22 and 23 times, respectively—\\ncompared to the others, which appeared only 12 to 17 times each. \\nLooking at the mean in the plot, we can see that it is, indeed, slighlty skewed to the right\\nNormally, you'd expect each number to come up about 16 or 17 times if the dice rolls were completely random and the dice was fair. \\nThe higher counts for 4 and 6 might just be chance, or it might mean something's off with the dice or how we're rolling it. \\nTo really figure out what's happening, I'd probably need to do more rolls or check out the dice and how we're rolling more closely\\n\"" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "Shape: The histogram shows bars corresponding to each of the six dice values (1 through 6). \n", + "The height of each bar represents the number of times each value was rolled.\n", + "Values: Each bar's height (frequency) shows how often that particular result was rolled in the 100 trials. \n", + "Looking at the histogram, we can see that, in these 100 rolls, the numbers 4 and 6 showed up way more often—22 and 23 times, respectively—\n", + "compared to the others, which appeared only 12 to 17 times each. \n", + "Looking at the mean in the plot, we can see that it is, indeed, slighlty skewed to the right\n", + "Normally, you'd expect each number to come up about 16 or 17 times if the dice rolls were completely random and the dice was fair. \n", + "The higher counts for 4 and 6 might just be chance, or it might mean something's off with the dice or how we're rolling it. \n", + "To really figure out what's happening, I'd probably need to do more rolls or check out the dice and how we're rolling more closely\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": 60, + "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", + " \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
............
9959959951
9969969964
9979979974
9989989983
9999999996
\n", + "

1000 rows × 3 columns

\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\n", + ".. ... ... ...\n", + "995 995 995 1\n", + "996 996 996 4\n", + "997 997 997 4\n", + "998 998 998 3\n", + "999 999 999 6\n", + "\n", + "[1000 rows x 3 columns]" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "roll_the_dice_thousand = pd.read_csv(\"../data/roll_the_dice_thousand.csv\")\n", + "roll_the_dice_thousand" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unique Values: [1 2 3 4 5 6]\n", + "Frequency Values: [175 167 175 168 149 166]\n" + ] + } + ], + "source": [ + "unique, frequency = np.unique(roll_the_dice_thousand[\"value\"],return_counts = True)\n", + "\n", + "print(\"Unique Values:\",unique)\n", + " \n", + "# print frequency array\n", + "print(\"Frequency Values:\",frequency)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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HPNmzpypCRMmaNy4cfEeJaHU1tbK5/MpJydHU6ZM0UcffRTvkUzbsGGD8vLydOuttyozM1ODBw/WkiVL4j1WXBAoSHiO46i4uFhXXnmlcnNz4z2Oefv27dN3v/tdud1u3X333Vq3bp1++MMfxnss09asWaM9e/aovLw83qMklGHDhmnFihXatGmTlixZosbGRo0cOVKHDx+O92hmffTRR1q0aJH69eunTZs26e6779avfvUrrVixIt6jfet4iwcJ795779U777yj7du3x3uUhPCDH/xAe/fu1dGjR/XHP/5RRUVFqq6uJlLOoL6+Xvfdd582b96srl27xnuchPLfb10PHDhQI0aM0MUXX6zly5eruLg4jpPZdfr0aeXl5WnevHmSpMGDB+vAgQNatGiR7rjjjjhP9+3iDgoS2qxZs7RhwwZt3bpVffr0ifc4CSElJUXf//73lZeXp/Lycg0aNEjPPvtsvMcyq6amRk1NTRo6dKiSk5OVnJys6upq/f73v1dycrJOnToV7xETRo8ePTRw4EDV1tbGexSzvF5vm/9ZuPTSS3Xo0KE4TRQ/3EFBQnIcR7NmzdK6detUVVWlnJyceI+UsBzHUSgUivcYZo0dO7bNb578/Oc/1yWXXKIHHnhASUlJcZos8YRCIb333nu66qqr4j2KWaNGjWrzTyZ88MEH5+UX6RIoBrS0tOjgwYPh9bq6Ou3du1fp6enq27dvHCeza+bMmVq9erVefvllpaamqrGxUZKUlpambt26xXk6ux566CEFAgH5/X4dO3ZMa9asUVVVVZvfisL/S01NbfPZph49eqhXr1585ulrlJSUqLCwUH379lVTU5Mee+wxBYNBFRUVxXs0s379619r5MiRmjdvniZNmqS//vWvWrx4sRYvXhzv0b59DuJu69atjqQ2S1FRUbxHM6u96yXJqaioiPdopt15551Odna2k5KS4vTu3dsZO3ass3nz5niPlXBGjx7t3HffffEew7zJkyc7Xq/X6dKli+Pz+ZyJEyc6Bw4ciPdY5v3pT39ycnNzHbfb7VxyySXO4sWL4z1SXLgcx3Hi1EYAAADt4kOyAADAHAIFAACYQ6AAAABzCBQAAGAOgQIAAMwhUAAAgDkECgAAMIdAAQAA5hAoAADAHAIFAACYQ6AAAABzCBQAAGDO/wHLWZklKQbCeQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.bar(unique, frequency)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Along with the increase in the number of roll dicing, the frequency of values almost evens out.'" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Along with the increase in the number of roll dicing, the frequency of values almost evens out.\"\"\"" + ] + }, + { + "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": 20, + "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": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population= pd.read_csv('../data/ages_population.csv')\n", + "ages_population.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Frequency')" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9w0lEQVR4nO3de5iN9f7/8ddqDmsOZiZDcwpjEiqDiiLkkDHOldGOjoS2nXP4VfLd2+gro0SKHe2dBkl0GNImmomUaCc5ty9pN0MymmKYsTDMzOf3R9esb8uM05phrXV7Pq5rXZf1uT/3fb/fs+bwch/WshljjAAAACzqKk8XAAAAcCkRdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdnDFmjdvnmw2W4WPsWPHero8Sznzax0UFKSYmBh16NBBaWlpysvLK7dOamqqbDbbRe3n+PHjSk1N1WeffXZR61W0r7p166pHjx4XtZ3zWbRokWbMmFHhMpvNptTU1CrdX1X79NNP1bx5c4WGhspms2nZsmXnXWfHjh2y2WwKCAhQbm7upS8SqIC/pwsAPC09PV033HCDy1hcXJyHqrG2sq/16dOnlZeXp/Xr1+uFF17QSy+9pCVLligpKck5d9CgQerSpctFbf/48eOaOHGiJKl9+/YXvJ47+3LHokWLtHPnTo0aNarcso0bN6pWrVqXvAZ3GWN0//33q0GDBlq+fLlCQ0PVsGHD8673xhtvSJKKi4u1YMECPf3005e6VKAcwg6ueImJiWrevPkFzT19+rRsNpv8/fnRcceZX+vevXvrySefVJs2bZSSkqI9e/YoOjpaklSrVq1L/sf/+PHjCgkJuSz7Op+WLVt6dP/nc+DAAR0+fFi9evVSx44dL2idoqIivf3222ratKl+++03vfnmm4QdeASnsYCz+Oyzz2Sz2fTWW29pzJgxuvbaa2W32/XDDz9IkrKystSxY0eFh4crJCRErVu31qefflpuOytWrNDNN98su92uhIQEvfTSS+VOm+Tk5Mhms2nevHnl1q/o9MaePXv04IMPKioqSna7XTfeeKP+/ve/V1j/O++8o/HjxysuLk7h4eFKSkrS7t27y+1n1apV6tixoyIiIhQSEqIbb7xRaWlpkqS33npLNptNGzduLLfec889p4CAAB04cOC8X9OK1KlTR9OmTVNhYaFef/1153hFp5bWrFmj9u3bq0aNGgoODladOnXUu3dvHT9+XDk5ObrmmmskSRMnTnSeMuvfv7/L9r799lvdd999ql69uurVq3fWfZVZunSpmjRpoqCgIF133XV69dVXXZaXnaLLyclxGS/7+pedUmvfvr1WrFihvXv3upzSK1PR67xz507dc889ql69uoKCgnTzzTdr/vz5Fe7nQl/niqxfv14dO3ZUWFiYQkJC1KpVK61YscK5PDU11RkGn376adlsNtWtW/e82122bJkOHTqkQYMGqV+/fvr++++1fv36cvOKioo0ZswYxcTEKCQkRG3bttXmzZtVt25d5+tX5uDBgxo8eLBq1aqlwMBAJSQkaOLEiSouLr6gXnFlIuzgildSUqLi4mKXxx+NGzdO+/bt05w5c/TRRx8pKipKCxcuVHJyssLDwzV//ny9++67ioyMVOfOnV0Cz6effqp77rlHYWFhWrx4saZOnap3331X6enpbtf73Xff6bbbbtPOnTs1bdo0/etf/1L37t01YsQI5ymcP3r22We1d+9evfHGG/rHP/6hPXv2qGfPniopKXHOmTt3rrp166bS0lJnnyNGjND+/fslSX369FFMTEy5QFVcXKzXX39dvXr1qtSpv27dusnPz0+ff/75Wefk5OSoe/fuCgwM1JtvvqlVq1ZpypQpCg0N1alTpxQbG6tVq1ZJkgYOHKiNGzdq48aN+utf/+qynZSUFF1//fV67733NGfOnHPWtXXrVo0aNUpPPvmkli5dqlatWmnkyJF66aWXLrrH1157Ta1bt1ZMTIyztorCY5ndu3erVatW2rVrl1599VVlZGTopptuUv/+/fXiiy+Wm38hr3NF1q1bp7vuuktHjx7V3Llz9c477ygsLEw9e/bUkiVLJP1+mi8jI0OSNHz4cG3cuFFLly49b89z586V3W7XQw89pAEDBshms2nu3Lnl5j322GOaMWOGHnvsMX344Yfq3bu3evXqpSNHjrjMO3jwoG6//XatXr1af/vb3/Txxx9r4MCBSktL0+OPP37eenAFM8AVKj093Uiq8HH69Gmzdu1aI8m0bdvWZT2Hw2EiIyNNz549XcZLSkpM06ZNze233+4ca9GihYmLizMnTpxwjhUUFJjIyEjzxx+/7OxsI8mkp6eXq1OSmTBhgvN5586dTa1atczRo0dd5g0bNswEBQWZw4cPG2OMs/5u3bq5zHv33XeNJLNx40ZjjDGFhYUmPDzctGnTxpSWlp716zVhwgQTGBhofvnlF+fYkiVLjCSzbt26s65nzP99rTdt2nTWOdHR0ebGG2902d8fv0bvv/++kWS2bt161m38+uuv5b5eZ27vb3/721mX/VF8fLyx2Wzl9tepUycTHh5uHA6HS2/Z2dku88q+/mvXrnWOde/e3cTHx1dY+5l19+3b19jtdrNv3z6XeV27djUhISHmyJEjLvs53+t8Ni1btjRRUVGmsLDQOVZcXGwSExNNrVq1nN8TZd+jU6dOPef2yuTk5JirrrrK9O3b1znWrl07ExoaagoKCpxju3btMpLM008/7bL+O++8YySZfv36OccGDx5sqlWrZvbu3esy96WXXjKSzK5duy6oNlx5OLKDK96CBQu0adMml8cfr8np3bu3y/wNGzbo8OHD6tevn8vRoNLSUnXp0kWbNm2Sw+GQw+HQpk2blJKSoqCgIOf6Zf9rdsfJkyf16aefqlevXgoJCXHZf7du3XTy5El99dVXLuvcfffdLs+bNGkiSdq7d6+zn4KCAg0ZMuScdz898cQTkqR//vOfzrFZs2apcePGatu2rVv9/JEx5pzLb775ZgUGBurPf/6z5s+frx9//NGt/Zz5ep5Lo0aN1LRpU5exBx98UAUFBfr222/d2v+FWrNmjTp27KjatWu7jPfv31/Hjx8vd1TofK9zRRwOh/7973/rvvvuU7Vq1Zzjfn5+euSRR7R///4LPhV2pvT0dJWWlmrAgAHOsQEDBsjhcDiPGEm/H1mSpPvvv99l/fvuu6/ctXH/+te/1KFDB8XFxbl873ft2tVlW8CZCDu44t14441q3ry5y+OPYmNjXZ7/8ssvkn7/ZRwQEODyeOGFF2SM0eHDh5Wfn6/S0lLFxMSU22dFYxfi0KFDKi4u1syZM8vtu1u3bpKk3377zWWdGjVquDy32+2SpBMnTkiSfv31V0k67wW60dHR6tOnj15//XWVlJRo+/bt+uKLLzRs2DC3evkjh8OhQ4cOnfNUWL169ZSVlaWoqCgNHTpU9erVU7169fTKK69c1L7OfD3P5Vyv3aFDhy5qvxfr0KFDFdZa9jU6c//ne50rkp+fL2PMRe3nQpSWlmrevHmKi4tTs2bNdOTIER05ckRJSUkKDQ11OZVVtv2yC9PL+Pv7l+vpl19+0UcffVTue79Ro0aSyn/vA2W4pQQ4jzOPdtSsWVOSNHPmzLPeQRMdHe28c+vgwYPllp85Vnbkp6ioyGX8zD801atXd/6ve+jQoRXuOyEh4RzdlFd2UW/Z9TnnMnLkSL311lv68MMPtWrVKl199dV66KGHLmp/FVmxYoVKSkrOe7v4nXfeqTvvvFMlJSX65ptvNHPmTI0aNUrR0dHq27fvBe3rYt6751yvXdkf4rO9dpX9w1ujRo0K35em7ELwsu/DyqhevbquuuqqKt9PVlaW84jSmYFFkr766it99913uummm5zLf/nlF1177bXOOcXFxeW+/2vWrKkmTZro+eefr3C/vGUEzoawA1yk1q1b6+qrr9Z33313zqMagYGBuv3225WRkaGpU6c6/ygWFhbqo48+cpkbHR2toKAgbd++3WX8ww8/dHkeEhKiDh06aMuWLWrSpIkCAwMr3U+rVq0UERGhOXPmqG/fvucMA82aNVOrVq30wgsvaOfOnfrzn/+s0NDQSu1/3759Gjt2rCIiIjR48OALWsfPz08tWrTQDTfcoLffflvffvut+vbte0FHMy7Grl27tG3bNpdTWYsWLVJYWJhuvfVWSXLelbR9+3aX951Zvnx5ue3Z7fYLrq1jx45aunSpDhw44PJHfMGCBQoJCamSW9VDQ0PVokULZWRk6KWXXlJwcLCk34/MLFy4ULVq1VKDBg0uertz587VVVddpYyMDEVERLgs279/vx555BG9+eabeumll5ynQJcsWeL8mkrS+++/X+5mgR49emjlypWqV6+eqlevftF14cpF2AEuUrVq1TRz5kz169dPhw8f1n333aeoqCj9+uuv2rZtm3799VfNnj1bkvS///u/6tKlizp16qQxY8aopKREL7zwgkJDQ3X48GHnNm02mx5++GG9+eabqlevnpo2baqvv/5aixYtKrf/V155RW3atNGdd96pJ554QnXr1lVhYaF++OEHffTRR1qzZs1F9zNt2jQNGjRISUlJevzxxxUdHa0ffvhB27Zt06xZs1zmjxw5Un369JHNZtOQIUMual87d+50XmeRl5enL774Qunp6fLz89PSpUudR5kqMmfOHK1Zs0bdu3dXnTp1dPLkSb355puS5HwzwrCwMMXHx+vDDz9Ux44dFRkZqZo1a17QbdIViYuL0913363U1FTFxsZq4cKFyszM1AsvvKCQkBBJ0m233aaGDRtq7NixKi4uVvXq1bV06dIKb7Fu3LixMjIyNHv2bDVr1kxXXXXVWd/jacKECc5rVP72t78pMjJSb7/9tlasWKEXX3yxXIhwV1pamjp16qQOHTpo7NixCgwM1GuvvaadO3fqnXfeueh3sT506JA+/PBDde7cWffcc0+Fc15++WUtWLBAaWlpatSokR544AFNmzZNfn5+uuuuu7Rr1y5NmzZNERERuuqq/7va4rnnnlNmZqZatWqlESNGqGHDhjp58qRycnK0cuVKzZkzx+PvlwQv5eELpAGPOd8dQmV3ubz33nsVLl+3bp3p3r27iYyMNAEBAebaa6813bt3Lzd/+fLlpkmTJiYwMNDUqVPHTJkypcK7f44ePWoGDRpkoqOjTWhoqOnZs6fJycmp8O6i7OxsM2DAAHPttdeagIAAc80115hWrVqZSZMmnbf+s935tXLlSufdMiEhIeamm24yL7zwQrm+i4qKjN1uN126dKnw61KRM+98CwwMNFFRUaZdu3Zm8uTJJi8vr9w6Z36NNm7caHr16mXi4+ON3W43NWrUMO3atTPLly93WS8rK8vccsstxm63u9zNU7a9X3/99bz7Mub3u7G6d+9u3n//fdOoUSMTGBho6tata6ZPn15u/e+//94kJyeb8PBwc80115jhw4ebFStWlLsb6/Dhw+a+++4zV199tbHZbC77rOh13rFjh+nZs6eJiIgwgYGBpmnTpuVet4t9nSvyxRdfmLvuusuEhoaa4OBg07JlS/PRRx9VuL3z3Y01Y8YMI8ksW7bsrHPmzJljJJkPPvjAGGPMyZMnzejRo01UVJQJCgoyLVu2NBs3bjQRERHmySefdFn3119/NSNGjDAJCQkmICDAREZGmmbNmpnx48ebY8eOnbdXXJlsxpznFggAVS41NVUTJ0487x1I3uijjz7S3XffrRUrVjgvigaq2oYNG9S6dWu9/fbbevDBBz1dDnwcp7EAXJDvvvtOe/fu1ZgxY3TzzTc7b/cFKiszM1MbN25Us2bNFBwcrG3btmnKlCmqX7++UlJSPF0eLICwA+CCDBkyRF9++aVuvfVWzZ8//6Kv5QDOJjw8XJ988olmzJihwsJC1axZU127dlVaWprLe1QB7uI0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HQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGluhZ3s7OyqrgMAAOCScCvsXH/99erQoYMWLlyokydPVnVNAAAAVcatsLNt2zbdcsstGjNmjGJiYjR48GB9/fXXVV0bAABApbkVdhITEzV9+nT9/PPPSk9P18GDB9WmTRs1atRI06dP16+//lrVdQIAALilUhco+/v7q1evXnr33Xf1wgsv6L///a/Gjh2rWrVq6dFHH1Vubm5V1QkAAOCWSoWdb775RkOGDFFsbKymT5+usWPH6r///a/WrFmjn3/+Wffcc09V1QkAAOAWf3dWmj59utLT07V7925169ZNCxYsULdu3XTVVb9np4SEBL3++uu64YYbqrRYAACAi+VW2Jk9e7YGDBigxx57TDExMRXOqVOnjubOnVup4gAAACrLrbCzZ8+e884JDAxUv3793Nk8AABAlXHrmp309HS999575cbfe+89zZ8/v9JFAQAAVBW3ws6UKVNUs2bNcuNRUVGaPHlypYsCAACoKm6Fnb179yohIaHceHx8vPbt23fB2/n888/Vs2dPxcXFyWazadmyZS7L+/fvL5vN5vJo2bKly5yioiINHz5cNWvWVGhoqO6++27t37/fnbYAAIAFuRV2oqKitH379nLj27ZtU40aNS54Ow6HQ02bNtWsWbPOOqdLly7Kzc11PlauXOmyfNSoUVq6dKkWL16s9evX69ixY+rRo4dKSkouvCEAAGBZbl2g3LdvX40YMUJhYWFq27atJGndunUaOXKk+vbte8Hb6dq1q7p27XrOOXa7/ax3fB09elRz587VW2+9paSkJEnSwoULVbt2bWVlZalz584XXAsAALAmt47sTJo0SS1atFDHjh0VHBys4OBgJScn66677qrya3Y+++wzRUVFqUGDBnr88ceVl5fnXLZ582adPn1aycnJzrG4uDglJiZqw4YNZ91mUVGRCgoKXB4AAMCabMYY4+7K33//vbZt26bg4GA1btxY8fHx7hdis2np0qW69957nWNLlixRtWrVFB8fr+zsbP31r39VcXGxNm/eLLvdrkWLFumxxx5TUVGRy7aSk5Odb2xYkdTUVE2cOLHc+Acf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jvl6b//v//0/PfPMM+rbt68aN26sRx55RE8++aTS0tIk+VZ/hJ1KCAwMVLNmzZSZmekynpmZqVatWnmoqksjISFBMTExLr2eOnVK69at84lejTEaNmyYMjIytGbNGiUkJLgs9/X+KmKMUVFRkc/31rFjR+3YsUNbt251Ppo3b66HHnpIW7du1XXXXefT/Z2pqKhI//nPfxQbG+vzr50ktW7dutzbPHz//feKj4+XZJ2fvfT0dEVFRal79+7OMV/v7fjx47rqKteY4Ofn57z13Kf688x10dZRduv53LlzzXfffWdGjRplQkNDTU5OjqdLu2iFhYVmy5YtZsuWLUaSmT59utmyZYvzNvopU6aYiIgIk5GRYXbs2GEeeOABr7zFsCJPPPGEiYiIMJ999pnLbaLHjx93zvHl/saNG2c+//xzk52dbbZv326effZZc9VVV5lPPvnEGOPbvVXkj3djGePb/Y0ZM8Z89tln5scffzRfffWV6dGjhwkLC3P+DvHl3oz5/e0C/P39zfPPP2/27Nlj3n77bRMSEmIWLlzonOPrPZaUlJg6deqYp59+utwyX+6tX79+5tprr3Xeep6RkWFq1qxpnnrqKeccX+mPsFMF/v73v5v4+HgTGBhobr31VuftzL5m7dq1RlK5R79+/Ywxv99mOGHCBBMTE2Psdrtp27at2bFjh2eLvkAV9SXJpKenO+f4cn8DBgxwfg9ec801pmPHjs6gY4xv91aRM8OOL/dX9r4kAQEBJi4uzqSkpJhdu3Y5l/tyb2U++ugjk5iYaOx2u7nhhhvMP/7xD5flvt7j6tWrjSSze/fucst8ubeCggIzcuRIU6dOHRMUFGSuu+46M378eFNUVOSc4yv92YwxxiOHlAAAAC4DrtkBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgB4LM2bNggPz8/denSxdOlAPBivIMyAJ81aNAgVatWTW+88Ya+++471alTx9MlAfBCHNkB4JMcDofeffddPfHEE+rRo4fmzZvnsnz58uWqX7++goOD1aFDB82fP182m01HjhxxztmwYYPatm2r4OBg1a5dWyNGjJDD4bi8jQC45Ag7AHzSkiVL1LBhQzVs2FAPP/yw0tPTVXagOicnR/fdd5/uvfdebd26VYMHD9b48eNd1t+xY4c6d+6slJQUbd++XUuWLNH69es1bNgwT7QD4BLiNBYAn9S6dWvdf//9GjlypIqLixUbG6t33nlHSUlJeuaZZ7RixQrt2LHDOf9//ud/9Pzzzys/P19XX321Hn30UQUHB+v11193zlm/fr3atWsnh8OhoKAgT7QF4BLgyA4An7N79259/fXX6tu3ryTJ399fffr00Ztvvulcftttt7msc/vtt7s837x5s+bNm6dq1ao5H507d1Zpaamys7MvTyMALgt/TxcAABdr7ty5Ki4u1rXXXuscM8YoICBA+fn5MsbIZrO5rHPmQezS0lINHjxYI0aMKLd9LnQGrIWwA8CnFBcXa8GCBZo2bZqSk5NdlvXu3Vtvv/22brjhBq1cudJl2TfffOPy/NZbb9WuXbt0/fXXX/KaAXgW1+wA8CnLli1Tnz59lJeXp4iICJdl48eP18qVK5WRkaGGDRvqySef1MCBA7V161aNGTNG+/fv15EjRxQREaHt27erZcuWeuyxx/T4448rNDRU//nPf5SZmamZM2d6qDsAlwLX7ADwKXPnzlVSUlK5oCP9fmRn69atys/P1/vvv6+MjAw1adJEs2fPdt6NZbfbJUlNmjTRunXrtGfPHt1555265ZZb9Ne//lWxsbGXtR8Alx5HdgBcEZ5//nnNmTNHP/30k6dLAXCZcc0OAEt67bXXdNttt6lGjRr68ssvNXXqVN5DB7hCEXYAWNKePXs0adIkHT58WHXq1NGYMWM0btw4T5cFwAM4jQUAACyNC5QBAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAIClEXYAAICl/X8H6kQ1dokOtwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Freqyency distribution of the the observation of the ages\n", + "plt.hist(ages_population, color = \"lightblue\")\n", + "plt.title('Frequency Distribution of Age')\n", + "plt.grid(color='grey', linewidth=0.4)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')" + ] + }, + { + "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": 22, + "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", + "
observation
count1000.0000
mean36.5600
std12.8165
min1.0000
25%28.0000
50%37.0000
75%45.0000
max82.0000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.0000\n", + "mean 36.5600\n", + "std 12.8165\n", + "min 1.0000\n", + "25% 28.0000\n", + "50% 37.0000\n", + "75% 45.0000\n", + "max 82.0000" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Yes, it was what I expected. Maybe because people whose responses fall within this range (mean of 36.56 and a standard deviation of 12.82) are likely to have more patience to participate in the poll.'" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Yes, it was what I expected. Maybe because people whose responses fall within this range (mean of 36.56 and a standard deviation of 12.82) are likely to have more patience to participate in the poll.\"\"\"" + ] + }, + { + "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": 43, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
observation
025.0
131.0
229.0
331.0
429.0
......
99526.0
99622.0
99721.0
99819.0
99928.0
\n", + "

1000 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 25.0\n", + "1 31.0\n", + "2 29.0\n", + "3 31.0\n", + "4 29.0\n", + ".. ...\n", + "995 26.0\n", + "996 22.0\n", + "997 21.0\n", + "998 19.0\n", + "999 28.0\n", + "\n", + "[1000 rows x 1 columns]" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population2 = pd.read_csv(\"../data/ages_population2.csv\")\n", + "ages_population2" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Frequency')" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9HklEQVR4nO3de1hVZf7//9dOYQsEJBqnVOJjapmHSi1T8yxqnlIbdZxKSxsn0zT1qhy/TTjTiIc0G/2kzidDzTxUg2WjaZBmmTZ5PjWXWQMeBohSFERFgfv3Bz+2bjlvN25YPB/Xta/Lvda97vVeN4vFy3XY22aMMQIAALCoWzxdAAAAQEUi7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7KDaWrZsmWw2W5GvKVOmeLo8S7l+rGvVqqXQ0FB16dJFMTExSktLK7RMdHS0bDZbudZz4cIFRUdH68svvyzXckWt684771Tfvn3L1U9pVq1apfnz5xc5z2azKTo62q3rc7cvvvhCrVu3lp+fn2w2mz7++ONSlzl06JBsNpu8vLyUkpJS8UUCRajp6QIAT4uNjdXdd9/tNC08PNxD1VhbwVhfuXJFaWlp2r59u2bNmqU33nhDa9euVffu3R1tR48erV69epWr/wsXLmj69OmSpM6dO5d5OVfW5YpVq1bp8OHDmjhxYqF5O3fuVL169Sq8BlcZYzRkyBA1btxY69evl5+fn5o0aVLqcu+8844kKScnRytWrNDLL79c0aUChRB2UO01a9ZMrVu3LlPbK1euyGazqWZNfnVccf1YDx48WC+++KI6dOigQYMG6dixYwoJCZEk1atXr8L/+F+4cEG+vr43ZV2ladu2rUfXX5rk5GSdOXNGAwcOVLdu3cq0THZ2tt5//321bNlSv/76q959913CDjyCy1hAMb788kvZbDa99957mjx5su644w7Z7Xb9+OOPkqSEhAR169ZNAQEB8vX1Vfv27fXFF18U6mfDhg267777ZLfbFRkZqTfeeKPQZZOkpCTZbDYtW7as0PJFXd44duyYhg8fruDgYNntdt1zzz363//93yLrX716taZNm6bw8HAFBASoe/fuOnr0aKH1bNq0Sd26dVNgYKB8fX11zz33KCYmRpL03nvvyWazaefOnYWW+/Of/ywvLy8lJyeXOqZFadCggebOnavMzEwtWbLEMb2oS0tbtmxR586dVadOHfn4+KhBgwYaPHiwLly4oKSkJN1+++2SpOnTpzsumY0cOdKpv7179+rxxx9X7dq11bBhw2LXVWDdunVq0aKFatWqpf/5n//R3/72N6f5BZfokpKSnKYXjH/BJbXOnTtrw4YNOn78uNMlvQJF/ZwPHz6sAQMGqHbt2qpVq5buu+8+LV++vMj1lPXnXJTt27erW7du8vf3l6+vr9q1a6cNGzY45kdHRzvC4MsvvyybzaY777yz1H4//vhjnT59WqNHj9aIESP0ww8/aPv27YXaZWdna/LkyQoNDZWvr686duyoPXv26M4773T8/AqkpqZqzJgxqlevnry9vRUZGanp06crJyenTNuK6omwg2ovNzdXOTk5Tq9rTZ06VSdOnNDixYv16aefKjg4WCtXrlRUVJQCAgK0fPlyffDBBwoKClLPnj2dAs8XX3yhAQMGyN/fX2vWrNGcOXP0wQcfKDY21uV6v//+e7Vp00aHDx/W3Llz9c9//lN9+vTRCy+84LiEc60//vGPOn78uN555x39/e9/17Fjx9SvXz/l5uY62ixdulSPPvqo8vLyHNv5wgsv6NSpU5KkoUOHKjQ0tFCgysnJ0ZIlSzRw4MAbuvT36KOPqkaNGvrqq6+KbZOUlKQ+ffrI29tb7777rjZt2qSZM2fKz89Ply9fVlhYmDZt2iRJGjVqlHbu3KmdO3fq1Vdfdepn0KBBuuuuu/Thhx9q8eLFJda1f/9+TZw4US+++KLWrVundu3aacKECXrjjTfKvY1vv/222rdvr9DQUEdtRYXHAkePHlW7du105MgR/e1vf1NcXJyaNm2qkSNHavbs2YXal+XnXJRt27apa9euOnfunJYuXarVq1fL399f/fr109q1ayXlX+aLi4uTJI0fP147d+7UunXrSt3mpUuXym6363e/+52eeeYZ2Ww2LV26tFC7p59+WvPnz9fTTz+tTz75RIMHD9bAgQN19uxZp3apqal68MEHtXnzZv3pT3/SZ599plGjRikmJkbPPvtsqfWgGjNANRUbG2skFfm6cuWK2bp1q5FkOnbs6LRcVlaWCQoKMv369XOanpuba1q2bGkefPBBx7SHHnrIhIeHm4sXLzqmZWRkmKCgIHPtr19iYqKRZGJjYwvVKcm89tpr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1k1BQUGqW7dumR6TLkp4eLj69++v6OhohYWFaeXKlYqPj9esWbPk6+srSWrTpo2aNGmiKVOmKCcnR7Vr19a6deuKfMS6efPmiouL06JFi9SqVSvdcsstxX7G02uvvea4R+VPf/qTgoKC9P7772vDhg2aPXt2oRDhqpiYGPXo0UNdunTRlClT5O3trbfffluHDx/W6tWry/0p1qdPn9Ynn3yinj17asCAAUW2efPNN7VixQrFxMTo3nvv1W9/+1vNnTtXNWrUUNeuXXXkyBHNnTtXgYGBuuWWq3db/PnPf1Z8fLzatWunF154QU2aNNGlS5eUlJSkjRs3avHixR7/vCRUUh6+QRrwmNKeECp4yuXDDz8scv62bdtMnz59TFBQkPHy8jJ33HGH6dOnT6H269evNy1atDDe3t6mQYMGZubMmUU+/XPu3DkzevRoExISYvz8/Ey/fv1MUlJSkU8XJSYmmmeeecbccccdxsvLy9x+++2mXbt25vXXXy+1/uKe/Nq4caPjaRlfX1/TtGlTM2vWrELbnZ2dbex2u+nVq1eR41KU65988/b2NsHBwaZTp05mxowZJi0trdAy14/Rzp07zcCBA01ERISx2+2mTp06plOnTmb9+vVOyyUkJJj777/f2O12p6d5Cvr75ZdfSl2XMflPY/Xp08d89NFH5t577zXe3t7mzjvvNPPmzSu0/A8//GCioqJMQECAuf3228348ePNhg0bCj2NdebMGfP444+b2267zdhsNqd1FvVzPnTokOnXr58JDAw03t7epmXLloV+buX9ORfl66+/Nl27djV+fn7Gx8fHtG3b1nz66adF9lfa01jz5883kszHH39cbJvFixcbSeYf//iHMcaYS5cumUmTJpng4GBTq1Yt07ZtW7Nz504TGBhoXnzxRadlf/nlF/PCCy+YyMhI4+XlZYKCgkyrVq3MtGnTzPnz50vdVlRPNmNKeQQCgNtFR0dr+vTppT6BVBl9+umn6t+/vzZs2OC4KRpwtx07dqh9+/Z6//33NXz4cE+XgyqOy1gAyuT777/X8ePHNXnyZN13332Ox32BGxUfH6+dO3eqVatW8vHx0YEDBzRz5kw1atRIgwYN8nR5sADCDoAyGTt2rL755hs98MADWr58ebnv5QCKExAQoM8//1zz589XZmam6tatq969eysmJsbpM6oAV3EZCwAAWBofKggAACyNsAMAACyNsAMAACyNG5SV/2mhycnJ8vf356ZLAACqCGOMMjMzFR4e7vQBlNcj7Cj/O2Cu/2ZhAABQNZw8ebLET88m7Cj/I+al/MEKCAjwcDWuS0hIcHxsfnXGOFzFWORjHPIxDlcxFvmq+jhkZGSofv36jr/jxSHs6Oq3IAcEBFTpsOPn51el63cXxuEqxiIf45CPcbiKschnlXEo7RYUblAGAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWVtPTBQBARTuWnqWsoymeLqNcBjUJ83QJgGV49MxOTEyM2rRpI39/fwUHB+uxxx7T0aNHndqMHDlSNpvN6dW2bVunNtnZ2Ro/frzq1q0rPz8/9e/fX6dOnbqZmwIAACopj4adbdu26fnnn9e3336r+Ph45eTkKCoqSllZWU7tevXqpZSUFMdr48aNTvMnTpyodevWac2aNdq+fbvOnz+vvn37Kjc392ZuDgAAqIQ8ehlr06ZNTu9jY2MVHBysPXv2qGPHjo7pdrtdoaGhRfZx7tw5LV26VO+99566d+8uSVq5cqXq16+vhIQE9ezZs+I2AAAAVHqV6gblc+fOSZKCgoKcpn/55ZcKDg5W48aN9eyzzyotLc0xb8+ePbpy5YqioqIc08LDw9WsWTPt2LGjyPVkZ2crIyPD6QUAAKyp0tygbIzRpEmT1KFDBzVr1swxvXfv3vrNb36jiIgIJSYm6tVXX1XXrl21Z88e2e12paamytvbW7Vr13bqLyQkRKmpqUWuKyYmRtOnTy80PSEhQX5+fu7dsJsoKSlJmzdv9nQZHsc4XMVY5MtKS1byvp2eLqNcNie5/1jE/nAVY5Gvqo/D9be9FKfShJ1x48bp4MGD2r59u9P0oUOHOv7drFkztW7dWhEREdqwYYMGDRpUbH/GGNlstiLnTZ06VZMmTXK8z8jIUP369dW9e3cFBATc4JZ4zubNm7lsJ8bhWoxFvmPpWQq//2FPl1EuPSvgaSz2h6sYi3xVfRzKemWmUlzGGj9+vNavX6+tW7eqXr16JbYNCwtTRESEjh07JkkKDQ3V5cuXlZ6e7tQuLS1NISEhRfZht9sVEBDg9AIAANbk0bBjjNG4ceMUFxenLVu2KDIystRlTp8+rZMnTyosLP9/Pa1atZKXl5fi4+MdbVJSUnT48GG1a9euwmoHAABVg0cvYz3//PNatWqVPvnkE/n7+zvusQkMDJSPj4/Onz+v6OhoDR48WGFhYUpKStIf//hH1a1bVwMHDnS0HTVqlCZPnqw6deooKChIU6ZMUfPmzR1PZwEAgOrLo2Fn0aJFkqTOnTs7TY+NjdXIkSNVo0YNHTp0SCtWrNDZs2cVFhamLl26aO3atfL393e0f/PNN1WzZk0NGTJEFy9eVLdu3bRs2TLVqFHjZm4OAACohDwadowxJc738fEp013itWrV0oIFC7RgwQJ3lQYAACyi0jyNBaBqiKti3zEFAJXiaSwAAICKQtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACW5tGwExMTozZt2sjf31/BwcF67LHHdPToUac2xhhFR0crPDxcPj4+6ty5s44cOeLUJjs7W+PHj1fdunXl5+en/v3769SpUzdzUwAAQCXl0bCzbds2Pf/88/r2228VHx+vnJwcRUVFKSsry9Fm9uzZmjdvnhYuXKhdu3YpNDRUPXr0UGZmpqPNxIkTtW7dOq1Zs0bbt2/X+fPn1bdvX+Xm5npiswAAQCVS05Mr37Rpk9P72NhYBQcHa8+ePerYsaOMMZo/f76mTZumQYMGSZKWL1+ukJAQrVq1SmPGjNG5c+e0dOlSvffee+revbskaeXKlapfv74SEhLUs2fPm75dAACg8qhU9+ycO3dOkhQUFCRJ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p8Lvf9jTZVQKjEU+xiEf43BVwVgMahJWemMLc+ffDU/IyMhQYGBgqX+/K/1lrGv5+fmpefPmOnbsmOM+noIzPAXS0tIKne25nt1uV0BAgNMLAABYU5UKO9nZ2fr3v/+tsLAwRUZGKjQ0VPHx8Y75ly9f1rZt29SuXTsPVgkAACqTSn3PzpQpU9SvXz81aNBAaWlpev3115WRkaERI0bIZrNp4sSJmjFjhho1aqRGjRppxowZ8vX11fDhwz1dOgAAqCQqddg5deqUfvvb3+rXX3/V7bffrrZt2+rbb79VRESEJOmll17SxYsXNXbsWKWnp+uhhx7S559/Ln9/fw9XDgAAKotKHXbWrFlT4nybzabo6GhFR0ffnIIAAECVU6Xu2QEAACgvwg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALC0mp4uAAAAT4k7muLpEsptUJMwT5dQ5XBmBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWFpNTxdgdXFHU27aupLTs5R1E9cHAEBVwJkdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaTU9XQAAACi7uKMpbusrOT1LWW7srziDmoRV+DpKwpkdAABgaZYJO2+//bYiIyNVq1YttWrVSl9//bWnSwIAAJWAJcLO2rVrNXHiRE2bNk379u3TI488ot69e+vEiROeLg0AAHiYJcLOvHnzNGrUKI0ePVr33HOP5s+fr/r162vRokWeLg0AAHhYlQ87ly9f1p49exQVFeU0PSoqSjt27PBQVQAAoLKo8k9j/frrr8rNzVVISIjT9JCQEKWmpha5THZ2trKzsx3vz507J0nKyMhwe30Xzme6vc/iXLxw4aaur7JiHK5iLPIxDvkYh6sYi3w3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PXu0bNky3XrrrY5Xz549lZeXp8TExJuzIQBuipqeLgAAymvp0qXKycnRHXfc4ZhmjJGXl5fS09NljJHNZnNa5vqT2Hl5eRozZoxeeOGFQv1zozNgLYQdAFVKTk6OVqxYoblz5yoqKspp3uDBg/X+++/r7rvv1saNG53m7d692+n9Aw88oCNHjuiuu+6q8JoBeBb37ACoUj7++GMNHTpUaWlpCgwMdJo3bdo0bdy4UXFxcWrSpIlefPFFjRo1Svv379fkyZN16tQpnT17VoGBgTp48KDatm2rp59+Ws8++6z8/Pz073//W/Hx8VqwYIGHtg5AReCeHQBVytKlS9W9e/dCQUfKP7Ozf/9+paen66OPPlJcXJxatGihRYsWOZ7GstvtkqQWLVpo27ZtOnbsmB555BHdf//9evXVVxUWFnZTtwdAxePMDoBq4a9//asWL16skydPeroUADcZ9+wAsKS3335bbdq0UZ06dfTNN99ozpw5fIYOUE0RdgBY0rFjx/T666/rzJkzatCggSZPnqypU6d6uiwAHsBlLAAAYGncoAwAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACzt/wPGcWVSn+vYEgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Freqyency distribution of the the observation of the ages\n", + "plt.hist(ages_population2, color = \"lightblue\")\n", + "plt.title('Frequency Distribution of Age')\n", + "plt.grid(color='grey', linewidth=0.4)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unique Values: [19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.]\n", + "Frequency Values: [ 3 13 17 35 41 78 98 120 125 139 115 90 61 31 22 7 3 2]\n" + ] + } + ], + "source": [ + "unique, frequency = np.unique(ages_population2[\"observation\"],return_counts = True)\n", + "\n", + "print(\"Unique Values:\",unique)\n", + " \n", + "# print frequency array\n", + "print(\"Frequency Values:\",frequency)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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06xZs8yAAQNMZWVluO2tt94yksyhQ4ci+t5xxx1m7NixLY4VGxtr1qxZE9G2evVq43a7nZ20Q5qr/evq6urM5MmTzRVXXGGCwWCbxm5oaDBDhgwxc+bMcWKq7eJ09Z906NAhExsba1544YUW+0TbvTfGmEGDBpnZs2e3eWxb730oFDL79u0zZWVlJicnx/Tp08fs2bOnyzzvLdX/ddH6zJ9J7SdF4/PuhA57F09XNWfOHG3YsEFbt25Vv379wu1er1fSVym5b9++4faqqqomqfnrvF5vkwR9unM6Sku1n1RfX6+pU6eqoqJCr776aptfOX7OOefoyiuvtPK/pqTT1/91ffv21YABA1qtJZruvSS98cYb2rt3r55//vk2j2/rve/evbu+973vSZKGDRumsrIyPfHEE1qwYIGk6H7epZbrf/rppyVF9zN/utq/Ltqed6fwJ56zxBij2bNna926dXr11VeVmpoacTw1NVVer1clJSXhtrq6Om3ZskUZGRktjjtixIiIcyRp06ZNrZ5ztp2udun//0G1b98+bd68WcnJyd/oOuXl5RH/wLfBmdR/qs8//1yVlZWt1hIt9/6kFStWaOjQoRoyZMg3uo6N9/5UxhiFQqGoft5bc7J+Kbqf+eZ8vfZTRcvz7riOWrrpan75y1+axMRE8/rrr0d8tezYsWPhPgUFBSYxMdGsW7fO7Nq1y9x0001NvnZ4yy23mJycnPD+W2+9Zbp162YKCgrMBx98YAoKCqz76tnpaq+vrzeTJk0y/fr1M+Xl5RF9QqFQeJxTa/f7/ebll182n3zyidm5c6f5xS9+YWJiYsy777571mtszenqP3LkiJk3b54pLS01FRUV5rXXXjMjRoww3/3ud6P+3p8UDAZNz549zbJly5odpzPe+9zcXLN161ZTUVFh3n//fXP//febc845x2zatMkYE73P+0mt1R/tz3xrtUfz8+40AspZIqnZbeXKleE+jY2N5sEHHzRer9e43W7z4x//2OzatStinJEjR5rp06dHtP31r381gwYNMrGxseaiiy5q9e+YHeF0tVdUVLTY57XXXguPc2rt2dnZpn///qZ79+7mvPPOM1lZWaa0tPTsFncGTlf/sWPHTFZWljnvvPNMbGys6d+/v5k+fbo5ePBgxDjReO9Pevrpp01cXJz54osvmh2nM97722+/3QwYMCA8x1GjRoXDiTHR+7yf1Fr90f7Mt1Z7ND/vTnMZY0z7rtEAAAC0DZ9BAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6/wevVeclx4003gAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.bar(unique, frequency)\n", + "plt.show()" + ] + }, + { + "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": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'In this case, the range of ages is less than the first dataset but the distribution is also normal.'" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"In this case, the range of ages is less than the first dataset but the distribution is also normal.\"\"\"" + ] + }, + { + "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": 46, + "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", + "
observation
count1000.000000
mean27.155000
std2.969814
min19.000000
25%25.000000
50%27.000000
75%29.000000
max36.000000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.000000\n", + "mean 27.155000\n", + "std 2.969814\n", + "min 19.000000\n", + "25% 25.000000\n", + "50% 27.000000\n", + "75% 29.000000\n", + "max 36.000000" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population2.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'The lower mean suggests a younger demographic, with most respondents around their late twenties.The smaller standard deviation indicates that the responses are more consistent, with less variation between individuals.'" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"The lower mean suggests a younger demographic, with most respondents around their late twenties.The smaller standard deviation indicates that the responses are more consistent, with less variation between individuals.\"\"\"" + ] + }, + { + "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": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Frequency')" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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1q2bqVmzpjl69KjLvCeeeMJUrVrVHDp0yBhjnPX36NHDZd4HH3xgJJn169cbY4zJy8szISEhpl27dqawsPCsz9fYsWNNQECA+f33351jixYtMpLMmjVrzrqeMf97rr///vuzzomMjDTXXnuty+Od+Rx99NFHRpLZvHnzWbdx4MCBEs9X8e3985//POuyM8XFxRmbzVbi8bp06WJCQkKMw+Fw6S0zM9NlXtHzv2rVKudYz549TVxcXKm1F6+7X79+xm63mz179rjMS0hIMIGBgebIkSMuj3O+1/lsWrVqZSIiIkxeXp5z7PTp06ZRo0amZs2azp+Jop/RiRMnnnN7RbKyssxll11m+vXr5xxr3769CQoKMrm5uc6xHTt2GEnm2WefdVn//fffN5JM//79nWNDhgwxl19+udm9e7fL3FdffdVIMjt27Lig2gBjjGEPECxv7ty5+v77711uZ57j06dPH5f569at06FDh9S/f3+XvUaFhYXq3r27vv/+ezkcDjkcDn3//fdKTExU1apVnesX/e/aHSdOnNBXX32l3r17KzAw0OXxe/TooRMnTujbb791Wef22293ud+kSRNJ0u7du5395Obm6vHHHz/nVVePPfaYJOntt992jk2bNk2NGzfWLbfc4lY/ZzLGnHP59ddfr4CAAD366KOaM2eOfvnlF7cep/jreS4NGzZU06ZNXcbuu+8+5ebmauPGjW49/oVauXKlOnXqpNjYWJfxAQMG6Pjx4yX2Hp3vdS6Nw+HQ//3f/+muu+7S5Zdf7hz38/PTgw8+qL17917wYbTiUlJSVFhYqIEDBzrHBg4cKIfD4dyzJP21B0qS7rnnHpf177rrrhLn2n322Wfq2LGjYmJiXH72ExISXLYFXAgCECzv2muvVcuWLV1uZ4qOjna5//vvv0v66w3a39/f5fbyyy/LGKNDhw7p8OHDKiwsVFRUVInHLG3sQhw8eFCnT5/W1KlTSzx2jx49JEl//PGHyzo1atRwuW+32yVJf/75pyTpwIEDknTek4AjIyPVt29fzZw5UwUFBdq6dau++eYbPfHEE271ciaHw6GDBw+e8zBanTp1tGLFCkVERGjo0KGqU6eO6tSpo9dff71Mj1X89TyXc712Bw8eLNPjltXBgwdLrbXoOSr++Od7nUtz+PBhGWPK9DgXorCwULNnz1ZMTIxatGihI0eO6MiRI+rcubOCgoJcDoMVbb/o5PciVapUKdHT77//rk8//bTEz37Dhg0llfzZB86FS1mA8yi+VyQ8PFySNHXq1LNeuRMZGem8Ymz//v0llhcfK9pDlJ+f7zJe/I9P9erVnf87Hzp0aKmPHR8ff45uSio6cbjofJ9zGTZsmN577z198skn+uKLL3TFFVfo/vvvL9PjlWbZsmUqKCg476XrN998s26++WYVFBTohx9+0NSpUzV8+HBFRkaqX79+F/RYZflsoXO9dkV/nM/22l3sH+MaNWqU+rk5RSebF/0cXozq1avrsssu8/jjrFixwrnnqXiIkaRvv/1WO3fu1HXXXedc/vvvv+uqq65yzjl9+nSJn//w8HA1adJEL774YqmPy8dXoCwIQEAZtW3bVldccYV27tx5zr0fAQEBuvHGG5WamqqJEyc6/1Dm5eXp008/dZkbGRmpqlWrauvWrS7jn3zyicv9wMBAdezYUZs2bVKTJk0UEBBw0f20adNGoaGhmjFjhvr163fOgNCiRQu1adNGL7/8srZv365HH31UQUFBF/X4e/bs0ahRoxQaGqohQ4Zc0Dp+fn666aab1KBBA82fP18bN25Uv379LmivR1ns2LFDW7ZscTkMtmDBAgUHB6t58+aS5LwaauvWrS6fi7N06dIS27Pb7RdcW6dOnbR48WLt27fP5Q/73LlzFRgY6JHL5oOCgnTTTTcpNTVVr776qqpVqybprz048+bNU82aNVWvXr0yb3fWrFm67LLLlJqaqtDQUJdle/fu1YMPPqh3331Xr776qvPw6aJFi5zPqSR99NFHJS5IuO2227R8+XLVqVNH1atXL3NdwJkIQEAZXX755Zo6dar69++vQ4cO6a677lJERIQOHDigLVu26MCBA5o+fbok6V//+pe6d++uLl26aOTIkSooKNDLL7+soKAgHTp0yLlNm82mBx54QO+++67q1Kmjpk2b6rvvvtOCBQtKPP7rr7+udu3a6eabb9Zjjz2m2rVrKy8vTz/99JM+/fRTrVy5ssz9TJo0SYMHD1bnzp31yCOPKDIyUj/99JO2bNmiadOmucwfNmyY+vbtK5vNpscff7xMj7V9+3bneRs5OTn65ptvlJKSIj8/Py1evNi5N6o0M2bM0MqVK9WzZ0/VqlVLJ06c0LvvvitJzg9QDA4OVlxcnD755BN1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5gEAAErn1T1Ax44d008//eS8n5mZqc2bNyssLEy1atWS9NfurQ8//FCTJk0qsf7PP/+s+fPnq0ePHgoPD9fOnTs1cuRINWvWTG3btr1kfQAAgMrFqwHohx9+UMeOHZ33R4wYIUnq37+/Zs+eLUlauHChjDG69957S6wfEBCgr776Sq+//rqOHTum2NhY9ezZU2PHjpWfn98l6QEAAFQ+Xg1AHTp00PnOwX700Uf16KOPlrosNjZWa9asKY/SAACAD6sU5wABAAB4EgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYDgEIAABYThVvFwBYWequbG+XUMK+ww45KmBdAOBJ7AECAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACW49UA9PXXX6tXr16KiYmRzWbTkiVLXJYPGDBANpvN5daqVSuXOfn5+XryyScVHh6uoKAg3X777dq7d+8l7AIAAFQ2Xg1ADodDTZs21bRp0846p3v37srOznbeli9f7rJ8+PDhWrx4sRYuXKi1a9fq2LFjuu2221RQUFDe5QMAgErKq1+GmpCQoISEhHPOsdvtioqKKnXZ0aNHNWvWLL333nvq3LmzJGnevHmKjY3VihUr1K1bN4/XDAAAKr8Kfw7Q6tWrFRERoXr16umRRx5RTk6Oc9mGDRt06tQpde3a1TkWExOjRo0aad26dWfdZn5+vnJzc11uAADAOry6B+h8EhISdPfddysuLk6ZmZl6/vnndeutt2rDhg2y2+3av3+/AgICVL16dZf1IiMjtX///rNuNzk5WePGjSsxvmLFCgUFBbldb1ZWltLS0txevzKhV8/Yd9hRLtu9GI6cfdq3ab23y7gkKnKvaVnuvxeVht9Z32Wlfov36nC4/x5aoQNQ3759nf9u1KiRWrZsqbi4OC1btkyJiYlnXc8YI5vNdtblo0eP1ogRI5z3c3NzFRsbq86dOyskJMTtetPS0ixz2I1ePcOxK7tctnsx9m1ar5hmrb1dxiVR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gHbv3q34+PgS43FxcdqzZ89FFwUAAFCe3ApAERER2rp1a4nxLVu2qEaNGhddFAAAQHlyKwD169dPTz31lFatWqWCggIVFBRo5cqVGjZsmPr16+fpGgEAADzKravAxo8fr927d6tTp06qUuWvTRQWFuqhhx7iHCAAAFDhuRWAAgICtGjRIv3rX//Sli1bVK1aNTVu3FhxcXGerg8AAMDj3ApARerVq6d69ep5qhYAAIBLwq0AVFBQoNmzZ+urr75STk6OCgsLXZavXLnSI8UBAACUB7cC0LBhwzR79mz17NlTjRo1ks1m83RdAAAA5catALRw4UJ98MEH6tGjh6frAQAAKHduXQYfEBCga665xtO1AAAAXBJuBaCRI0fq9ddflzHG0/UAAACUO7cOga1du1arVq3S559/roYNG8rf399leWpqqkeKAwAAKA9uBaArrrhCvXv39nQtAAAAl4RbASglJcXTdQAAAFwybp0DJEmnT5/WihUrNHPmTOXl5UmS9u3bp2PHjl3wNr7++mv16tVLMTExstlsWrJkictyY4ySkpIUExOjatWqqUOHDtqxY4fLnPz8fD355JMKDw9XUFCQbr/9du3du9fdtgAAgAW4FYB2796txo0b64477tDQoUN14MABSdIrr7yiUaNGXfB2HA6HmjZtqmnTppW6/JVXXtHkyZM1bdo0ff/994qKilKXLl2cgUuShg8frsWLF2vhwoVau3atjh07pttuu00FBQXutAYAACzA7Q9CbNmypbZs2aIaNWo4x3v37q3Bgwdf8HYSEhKUkJBQ6jJjjKZMmaIxY8YoMTFRkjRnzhxFRkZqwYIFGjJkiI4ePapZs2bpvffeU+fOnSVJ8+bNU2xsrFasWKFu3bq50x4AAPBxbu0BWrt2rf7xj38oICDAZTwuLk6//fabRwrLzMzU/v371bVrV+eY3W5X+/bttW7dOknShg0bdOrUKZc5MTExatSokXNOafLz85Wbm+tyAwAA1uHWHqDCwsJSDzHt3btXwcHBF12UJO3fv1+SFBkZ6TIeGRmp3bt3O+cEBASoevXqJeYUrV+a5ORkjRs3rsT4ihUrFBQU5HbNWVlZSktLc3v9yoRePWPfYUe5bPdiOHL2ad+m9d4u45KgV89Ky3L//dOTyvI7WxF/B8+n+PNs5fdjh8P918+tANSlSxdNmTJFb731liTJZrPp2LFjGjt2rMe/HqP494wZY8773WPnmzN69GiNGDHCeT83N1exsbHq3LmzQkJC3K41LS3NMofd6NUzHLuyy2W7F2PfpvWKadba22VcEvTqWd3qR5fr9i9UWX5nK+Lv4PkUf56t/H58MUdw3ApAr732mjp27KjrrrtOJ06c0H333aeMjAyFh4fr/fffd7uYM0VFRUn6ay9PdPT/XuycnBznXqGoqCidPHlShw8fdtkLlJOTozZt2px123a7XXa73SN1AgCAysetc4BiYmK0efNmjRo1SkOGDFGzZs00YcIEbdq0SRERER4pLD4+XlFRUUpPT3eOnTx5UmvWrHGGmxYtWsjf399lTnZ2trZv337OAAQAAKzNrT1AklStWjUNHDhQAwcOdPvBjx07pp9++sl5PzMzU5s3b1ZYWJhq1aql4cOH66WXXlLdunVVt25dvfTSSwoMDNR9990nSQoNDdWgQYM0cuRI1ahRQ2FhYRo1apQaN27svCoMAACgOLcC0Ny5c8+5/KGHHrqg7fzwww/q2LGj837ReTn9+/fX7Nmz9cwzz+jPP//U448/rsOHD+umm27Sl19+6XKi9WuvvaYqVaronnvu0Z9//qlOnTpp9uzZ8vPzc6MzAABgBW5/DtCZTp06pePHjysgIECBgYEXHIA6dOhwzm+Ut9lsSkpKUlJS0lnnVK1aVVOnTtXUqVMv6DEBAADcOgfo8OHDLrdjx45p165dateuncdOggYAACgvbn8XWHF169bVhAkTSuwdAgAAqGg8FoAkyc/PT/v27fPkJgEAADzOrXOAli5d6nLfGKPs7GxNmzZNbdu29UhhAAAA5cWtAHTnnXe63LfZbLryyit16623atKkSZ6oCwAAoNy4/V1gAAAAlZVHzwECAACoDNzaA3TmF4mez+TJk915CAAAgHLjVgDatGmTNm7cqNOnT6t+/fqSpB9//FF+fn5q3ry5c975vrUdAADAG9wKQL169VJwcLDmzJnj/Bb2w4cP6+GHH9bNN9+skSNHerRIAAAAT3LrHKBJkyYpOTnZGX4kqXr16ho/fjxXgQEAgArPrQCUm5ur33//vcR4Tk6O8vLyLrooAACA8uRWAOrdu7cefvhhffTRR9q7d6/27t2rjz76SIMGDVJiYqKnawQAAPAot84BmjFjhkaNGqUHHnhAp06d+mtDVapo0KBBmjhxokcLBAAA8DS3AlBgYKDefPNNTZw4UT///LOMMbrmmmsUFBTk6foAAAA87qI+CDE7O1vZ2dmqV6+egoKCZIzxVF0AAADlxq0AdPDgQXXq1En16tVTjx49lJ2dLUkaPHgwl8ADAIAKz60A9PTTT8vf31979uxRYGCgc7xv37764osvPFYcAABAeXDrHKAvv/xSaWlpqlmzpst43bp1tXv3bo8UBgAAUF7c2gPkcDhc9vwU+eOPP2S32y+6KAAAgPLkVgC65ZZbNHfuXOd9m82mwsJCTZw4UR07dvRYcQAAAOXBrUNgEydOVIcOHfTDDz/o5MmTeuaZZ7Rjxw4dOnRI//nPfzxdIwAAgEe5tQfouuuu09atW3XjjTeqS5cucjgcSkxM1KZNm1SnTh1P1wgAAOBRZd4DdOrUKXXt2lUzZ87UuHHjyqMmAACAclXmPUD+/v7avn27bDZbedQDAABQ7tw6BPbQQw9p1qxZnq4FAADgknDrJOiTJ0/qnXfeUXp6ulq2bFniO8AmT57skeIAAADKQ5kC0C+//KLatWtr+/btat68uSTpxx9/dJnDoTEAAFDRlSkA1a1bV9nZ2Vq1apWkv7764o033lBkZGS5FAcAAFAeynQOUPFve//888/lcDg8WhAAAEB5c+sk6CLFAxEAAEBlUKYAZLPZSpzjwzk/AACgsinTOUDGGA0YMMD5hacnTpzQ3/72txJXgaWmpnquQgAAAA8rUwDq37+/y/0HHnjAo8UAAABcCmUKQCkpKeVVBwAAwCXj1gchAhVR6q7sctnuvsMOOcpp2wAA77ioq8Auhdq1aztPvj7zNnToUEnSgAEDSixr1aqVl6sGAAAVWYXfA/T999+roKDAeX/79u3q0qWL7r77budY9+7dXQ7PBQQEXNIaAQBA5VLhA9CVV17pcn/ChAmqU6eO2rdv7xyz2+2Kioq61KUBAIBKqsIfAjvTyZMnNW/ePA0cONDl84dWr16tiIgI1atXT4888ohycnK8WCUAAKjoKvweoDMtWbJER44c0YABA5xjCQkJuvvuuxUXF6fMzEw9//zzuvXWW7Vhwwbn5xUVl5+fr/z8fOf93Nzc8i4dAABUIDZTib7Polu3bgoICNCnn3561jnZ2dmKi4vTwoULlZiYWOqcpKQkjRs3rsT4xx9/XOJDHcsiKytLtWvXdnv9yqQi9ppxuHy+l86Rs09BETHlsu2KyEr90qtn1a3u/vunJ5Xl/am83jfKU/HnuSK+H5eX4r06HA716dNHR48eVUhISJm2VWn2AO3evVsrVqw476dMR0dHKy4uThkZGWedM3r0aI0YMcJ5Pzc3V7GxsercuXOZn8AzpaWlqVu3bm6vX5lUxF7L61L1fZvWK6ZZ63LZdkVkpX7p1bO61Y8u1+1fqLK8P1XGj7go/jxXxPfj8lK814s5glNpAlBKSooiIiLUs2fPc847ePCgfv31V0VHn/0X0W63n/XwGAAA8H2V4iTowsJCpaSkqH///qpS5X+Z7dixYxo1apTWr1+vrKwsrV69Wr169VJ4eLh69+7txYoBAEBFVin2AK1YsUJ79uzRwIEDXcb9/Py0bds2zZ07V0eOHFF0dLQ6duyoRYsWKTg42EvVAgCAiq5SBKCuXbuqtHO1q1WrprS0NC9UBAAAKrNKcQgMAADAkwhAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcqp4uwAAgG9I3ZXt7RIkSfsOO+SoILWg4mIPEAAAsBwCEAAAsBwCEAAAsBzOAQIAoBIpfq5VZTjnKbF+tLdLKIE9QAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIqdABKSkqSzWZzuUVFRTmXG2OUlJSkmJgYVatWTR06dNCOHTu8WDEAAKgMKnQAkqSGDRsqOzvbedu2bZtz2SuvvKLJkydr2rRp+v777xUVFaUuXbooLy/PixUDAICKrsIHoCpVqigqKsp5u/LKKyX9tfdnypQpGjNmjBITE9WoUSPNmTNHx48f14IFC7xcNQAAqMgqfADKyMhQTEyM4uPj1a9fP/3yyy+SpMzMTO3fv19du3Z1zrXb7Wrfvr3WrVvnrXIBAEAlUKE/CPGmm27S3LlzVa9ePf3+++8aP3682rRpox07dmj//v2SpMjISJd1IiMjtXv37nNuNz8/X/n5+c77ubm5ni8eAABUWBU6ACUkJDj/3bhxY7Vu3Vp16tTRnDlz1KpVK0mSzWZzWccYU2KsuOTkZI0bN67E+IoVKxQUFOR2vVlZWUpLS3N7/cqkIva677CjXLbryNmnfZvWl8u2KyIr9UuvvslKvUqVo9+0LPf/tp6p+N8eh8P99/0KHYCKCwoKUuPGjZWRkaE777xTkrR//35FR//vI7ZzcnJK7BUqbvTo0RoxYoTzfm5urmJjY9W5c2eFhIS4XV9aWpq6devm9vqVSUXstbw+Cn7fpvWKada6XLZdEVmpX3r1TVbqVaoc/Xbz0FdhFP/bczFHcCr8OUBnys/P13//+19FR0crPj5eUVFRSk9Pdy4/efKk1qxZozZt2pxzO3a7XSEhIS43AABgHRV6D9CoUaPUq1cv1apVSzk5ORo/frxyc3PVv39/2Ww2DR8+XC+99JLq1q2runXr6qWXXlJgYKDuu+8+b5cOAAAqsAodgPbu3at7771Xf/zxh6688kq1atVK3377reLi4iRJzzzzjP788089/vjjOnz4sG666SZ9+eWXCg4O9nLlAACgIqvQAWjhwoXnXG6z2ZSUlKSkpKRLUxAAAPAJleocIAAAAE8gAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMup4u0CUDGl7so+5/J9hx1ynGcOAAAVFXuAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5RCAAACA5VToAJScnKwbbrhBwcHBioiI0J133qldu3a5zBkwYIBsNpvLrVWrVl6qGAAAVAYVOgCtWbNGQ4cO1bfffqv09HSdPn1aXbt2lcPhcJnXvXt3ZWdnO2/Lly/3UsUAAKAyqNDfBfbFF1+43E9JSVFERIQ2bNigW265xTlut9sVFRV1qcsDAACVVIXeA1Tc0aNHJUlhYWEu46tXr1ZERITq1aunRx55RDk5Od4oDwAAVBIVeg/QmYwxGjFihNq1a6dGjRo5xxMSEnT33XcrLi5OmZmZev7553Xrrbdqw4YNstvtpW4rPz9f+fn5zvu5ubnlXj8AAKg4bMYY4+0iLsTQoUO1bNkyrV27VjVr1jzrvOzsbMXFxWnhwoVKTEwsdU5SUpLGjRtXYvzjjz9WUFCQ2zVmZWWpdu3abq9fkWQcdpxzuSNnn4IiYi5RNd5lpV4la/VLr77JSr1KlaPfutXd/9t6puJ/Zx0Oh/r06aOjR48qJCSkTNuqFAHoySef1JIlS/T1118rPj7+vPPr1q2rwYMH69lnny11eWl7gGJjY916As+Ulpambt26ub1+RZK6K/ucy/dtWq+YZq0vUTXeZaVeJWv1S6++yUq9SpWj38T60R7ZTvG/s7m5uQoNDXXr73eFPgRmjNGTTz6pxYsXa/Xq1RcUfg4ePKhff/1V0dFnf7LtdvtZD48BAADfV6FPgh46dKjmzZunBQsWKDg4WPv379f+/fv1559/SpKOHTumUaNGaf369crKytLq1avVq1cvhYeHq3fv3l6uHgAAVFQVeg/Q9OnTJUkdOnRwGU9JSdGAAQPk5+enbdu2ae7cuTpy5Iiio6PVsWNHLVq0SMHBwV6oGAAAVAYVOgCd7/SkatWqKS0t7RJVAwAAfEWFPgQGAABQHghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcqp4uwBfl7or29slAACAYtgDBAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALMdnAtCbb76p+Ph4Va1aVS1atNA333zj7ZIAAEAF5RMBaNGiRRo+fLjGjBmjTZs26eabb1ZCQoL27Nnj7dIAAEAF5BMBaPLkyRo0aJAGDx6sa6+9VlOmTFFsbKymT5/u7dIAAEAFVOkD0MmTJ7VhwwZ17drVZbxr165at26dl6oCAAAVWaX/Nvg//vhDBQUFioyMdBmPjIzU/v37S10nPz9f+fn5zvtHjx6VJOXm5l5ULQ6Ho8Q2jh/Lu6htVlR/Hj/us70VZ6VeJWv1S6++yUq9SpWj39zcII9sp/jf2aJ/G2PKvK1KH4CK2Gw2l/vGmBJjRZKTkzVu3LgS47GxseVSGwAAKD95eXkKDQ0t0zqVPgCFh4fLz8+vxN6enJycEnuFiowePVojRoxw3i8sLNShQ4dUo0aNs4am88nNzVVsbKx+/fVXhYSEuLWNyoJefZeV+qVX32SlXiVr9Vtar8YY5eXlKSYmpszbq/QBKCAgQC1atFB6erp69+7tHE9PT9cdd9xR6jp2u112u91l7IorrvBIPSEhIT7/Q1iEXn2XlfqlV99kpV4la/VbvNey7vkpUukDkCSNGDFCDz74oFq2bKnWrVvrrbfe0p49e/S3v/3N26UBAIAKyCcCUN++fXXw4EG98MILys7OVqNGjbR8+XLFxcV5uzQAAFAB+UQAkqTHH39cjz/+uNce3263a+zYsSUOrfkievVdVuqXXn2TlXqVrNWvp3u1GXeuHQMAAKjEKv0HIQIAAJQVAQgAAFgOAQgAAFgOAQgAAFgOAcgD3nzzTcXHx6tq1apq0aKFvvnmG2+X5BFff/21evXqpZiYGNlsNi1ZssRluTFGSUlJiomJUbVq1dShQwft2LHDO8VehOTkZN1www0KDg5WRESE7rzzTu3atctljq/0KknTp09XkyZNnB8m1rp1a33++efO5b7Ua3HJycmy2WwaPny4c8xX+k1KSpLNZnO5RUVFOZf7Sp9n+u233/TAAw+oRo0aCgwM1PXXX68NGzY4l/tKz7Vr1y7x2tpsNg0dOlSS7/QpSadPn9Y//vEPxcfHq1q1arr66qv1wgsvqLCw0DnHY/0aXJSFCxcaf39/8/bbb5udO3eaYcOGmaCgILN7925vl3bRli9fbsaMGWM+/vhjI8ksXrzYZfmECRNMcHCw+fjjj822bdtM3759TXR0tMnNzfVOwW7q1q2bSUlJMdu3bzebN282PXv2NLVq1TLHjh1zzvGVXo0xZunSpWbZsmVm165dZteuXea5554z/v7+Zvv27cYY3+r1TN99952pXbu2adKkiRk2bJhz3Ff6HTt2rGnYsKHJzs523nJycpzLfaXPIocOHTJxcXFmwIAB5v/+7/9MZmamWbFihfnpp5+cc3yl55ycHJfXNT093Ugyq1atMsb4Tp/GGDN+/HhTo0YN89lnn5nMzEzz4Ycfmssvv9xMmTLFOcdT/RKALtKNN95o/va3v7mMNWjQwPz973/3UkXlo3gAKiwsNFFRUWbChAnOsRMnTpjQ0FAzY8YML1ToOTk5OUaSWbNmjTHGt3stUr16dfPOO+/4bK95eXmmbt26Jj093bRv394ZgHyp37Fjx5qmTZuWusyX+izy7LPPmnbt2p11uS/2XGTYsGGmTp06prCw0Of67Nmzpxk4cKDLWGJionnggQeMMZ59XTkEdhFOnjypDRs2qGvXri7jXbt21bp167xU1aWRmZmp/fv3u/Rut9vVvn37St/70aNHJUlhYWGSfLvXgoICLVy4UA6HQ61bt/bZXocOHaqePXuqc+fOLuO+1m9GRoZiYmIUHx+vfv366ZdffpHke31K0tKlS9WyZUvdfffdioiIULNmzfT22287l/tiz9Jff3fmzZungQMHymaz+Vyf7dq101dffaUff/xRkrRlyxatXbtWPXr0kOTZ19VnPgnaG/744w8VFBSU+Nb5yMjIEt9O72uK+iut9927d3ujJI8wxmjEiBFq166dGjVqJMk3e922bZtat26tEydO6PLLL9fixYt13XXXOd9AfKnXhQsXauPGjfr+++9LLPOl1/amm27S3LlzVa9ePf3+++8aP3682rRpox07dvhUn0V++eUXTZ8+XSNGjNBzzz2n7777Tk899ZTsdrseeughn+xZkpYsWaIjR45owIABknzrZ1iSnn32WR09elQNGjSQn5+fCgoK9OKLL+ree++V5Nl+CUAeYLPZXO4bY0qM+Spf6/2JJ57Q1q1btXbt2hLLfKnX+vXra/PmzTpy5Ig+/vhj9e/fX2vWrHEu95Vef/31Vw0bNkxffvmlqlatetZ5vtBvQkKC89+NGzdW69atVadOHc2ZM0etWrWS5Bt9FiksLFTLli310ksvSZKaNWumHTt2aPr06XrooYec83ypZ0maNWuWEhISFBMT4zLuK30uWrRI8+bN04IFC9SwYUNt3rxZw4cPV0xMjPr37++c54l+OQR2EcLDw+Xn51dib09OTk6JdOpriq4u8aXen3zySS1dulSrVq1SzZo1neO+2GtAQICuueYatWzZUsnJyWratKlef/11n+t1w4YNysnJUYsWLVSlShVVqVJFa9as0RtvvKEqVao4e/KVfs8UFBSkxo0bKyMjw+deV0mKjo7Wdddd5zJ27bXXas+ePZJ88/d29+7dWrFihQYPHuwc87U+/9//+3/6+9//rn79+qlx48Z68MEH9fTTTys5OVmSZ/sl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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ages_population3= pd.read_csv('../data/ages_population3.csv')\n", + "# Freqyency distribution of the the observation of the ages\n", + "plt.hist(ages_population3, color = \"lightblue\")\n", + "plt.title('Frequency Distribution of Age')\n", + "plt.grid(color='grey', linewidth=0.4)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')" + ] + }, + { + "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": 51, + "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", + "
observation
count1000.000000
mean41.989000
std16.144706
min1.000000
25%30.000000
50%40.000000
75%53.000000
max77.000000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.000000\n", + "mean 41.989000\n", + "std 16.144706\n", + "min 1.000000\n", + "25% 30.000000\n", + "50% 40.000000\n", + "75% 53.000000\n", + "max 77.000000" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population3.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'The mean has increased by approximately 5.43, indicating that the average value in this new dataset is higher. This might suggest that responses or data points in this step represent an older or larger scale, possibly indicating a different demographic or set of conditions. The standard deviation has also increased, meaning that the responses are more spread out in this step compared to step 1. This indicates greater variability in the data, suggesting that there’s a wider range of responses or more diversity among the participants.'" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"The mean has increased by approximately 5.43, indicating that the average value in this new dataset is higher. This might suggest that responses or data points in this step represent an older or larger scale, possibly indicating a different demographic or set of conditions. The standard deviation has also increased, meaning that the responses are more spread out in this step compared to step 1. This indicates greater variability in the data, suggesting that there’s a wider range of responses or more diversity among the participants.\"\"\"" + ] + }, + { + "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": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['observation'], dtype='object')" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population3.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " observation\n", + "0 21.0\n", + "1 21.0\n", + "2 24.0\n", + "3 31.0\n", + "4 54.0\n", + ".. ...\n", + "995 16.0\n", + "996 55.0\n", + "997 30.0\n", + "998 35.0\n", + "999 43.0\n", + "\n", + "[1000 rows x 1 columns]\n" + ] + } + ], + "source": [ + "def calculate_quartiles(df):\n", + " # Ensure the column name is correctly referenced\n", + " column_name = 'observation'\n", + " \n", + " # Sort the results\n", + " sorted_results = sorted(df[column_name])\n", + " \n", + " # Number of data points\n", + " n = len(sorted_results)\n", + " \n", + " # Helper function to calculate quartile values\n", + " def get_percentile_value(sorted_data, percentile):\n", + " k = (percentile / 100) * (n + 1)\n", + " f = int(np.floor(k)) # Integer part of the index\n", + " c = k - f # Fractional part of the index\n", + " if f == 0:\n", + " return sorted_data[0]\n", + " elif f >= n:\n", + " return sorted_data[-1]\n", + " else:\n", + " return sorted_data[f - 1] + c * (sorted_data[f] - sorted_data[f - 1])\n", + " \n", + " # Calculate quartiles\n", + " Q1 = get_percentile_value(sorted_results, 25)\n", + " Q2 = get_percentile_value(sorted_results, 50) # Median\n", + " Q3 = get_percentile_value(sorted_results, 75)\n", + " Q4 = sorted_results[-1] # Maximum value\n", + " \n", + " # Return the quartiles\n", + " return {'Q1': Q1, 'Q2 (Median)': Q2, 'Q3': Q3, 'Q4 (Max)': Q4}\n", + "\n", + "# Assuming you already have the DataFrame `ages_population3`\n", + "quartiles = calculate_quartiles(ages_population3)\n", + "\n", + "print(ages_population3)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Calculated Quartiles: {'Q1': 30.0, 'Q2 (Median)': 40.0, 'Q3': 53.0, 'Q4 (Max)': 77.0}\n" + ] + } + ], + "source": [ + "print(\"\\nCalculated Quartiles:\", quartiles)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Difference between Mean and Median: 1.99\n" + ] + } + ], + "source": [ + "# Calculate the mean and difference from the median\n", + "mean_value = ages_population3['observation'].mean()\n", + "median_value = quartiles['Q2 (Median)']\n", + "\n", + "difference = round(mean_value - median_value,2)\n", + "print(f\"Difference between Mean and Median: {difference}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'The mean being slightly higher than the median suggests that there might be some higher values pulling the mean upwards. A small difference like 1.99 indicates that while there might be some skew, the data is relatively symmetric.'" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"The mean being slightly higher than the median suggests that there might be some higher values pulling the mean upwards. A small difference like 1.99 indicates that while there might be some skew, the data is relatively symmetric.\"\"\"" + ] + }, + { + "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": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 35, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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 +}