diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5f9e000 Binary files /dev/null and b/.DS_Store differ diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 5759add..bd3fd8d 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -1,522 +1,2662 @@ -{ - "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": { + "id": "mp4RamiSAZnu" + }, + "source": [ + "# Understanding Descriptive Statistics\n", + "\n", + "Import the necessary libraries here:" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "id": "N3Q9ty_rAZnv" + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GFqFGkOXAZnw" + }, + "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", + "source": [ + "import random\n", + "\n", + "dice_roll = np.random.randint(1,6,size = 10)\n", + "dice_roll_df = pd.DataFrame({\"Rolls\":dice_roll})\n", + "display(dice_roll_df)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 363 + }, + "id": "K43AMwyBFeB9", + "outputId": "eae4390b-24f2-43fc-86ea-6d34a5889deb" + }, + "execution_count": 87, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " Rolls\n", + "0 3\n", + "1 3\n", + "2 4\n", + "3 4\n", + "4 2\n", + "5 4\n", + "6 1\n", + "7 2\n", + "8 5\n", + "9 5" + ], + "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", + "
Rolls
03
13
24
34
42
54
61
72
85
95
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1xQ-4kRfAZnw" + }, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "w3ui1jB6AZnx", + "outputId": "ea76f1e2-3cce-455e-a9f9-7173ec6d6f56" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "1 1\n", + "2 2\n", + "3 2\n", + "4 3\n", + "5 2\n", + "Name: Rolls, dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 88 + } + ], + "source": [ + "sorted_dice_rolls_df = dice_roll_df['Rolls'].value_counts().sort_index()\n", + "sorted_dice_rolls_df" + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.plot(dice_roll_df,'b*')\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 430 + }, + "id": "YHwAbhZBEGr5", + "outputId": "a45433fc-bc9b-41e9-f8f4-01d5c23e1901" + }, + "execution_count": 89, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4l29xAMtAZnx" + }, + "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": 90, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 430 + }, + "id": "jEsCYzATAZnx", + "outputId": "6463faff-e13c-4b98-d853-efb2e11022ad" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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8DNxS2tYPB6PpOqhpC7vvfeexowZU+2OTH5+vqKiopSUlKQpU6bowoULtV7D5/PJ6/UGbAAAoOVyWJZlNaRjVVWVnn76aZWXl2vnzp316vPll18qOTlZRUVFGjBggP/49bsuiYmJOn78uGbPnq27775bhYWFCgkJqXadefPm6fXXX6923OPxKCIioiHlAACAJub1euVyuer1+t3gwDJlyhRt2rRJO3fuVHx8fL36/PrXv1ZhYaEOHDhQZ7tvvvlG999/vz7//HM9+eST1c77fD75fD7/vtfrVUJCAoEFAIAgYiewNOgtoalTp2rDhg3avn17vcNKZWWl1q5dq0mTJt20badOndSuXTsdO3asxvNOp1MREREBGwAAaLlsLbq1LEsvvviicnJylJ+fr8TExHr3XbdunXw+n/7t3/7tpm1Pnz6tCxcuKDY21s7wAABAC2XrDktGRoZWr16tNWvWKDw8XG63W263Wz/88IO/zfjx45WZmVmt73vvvaf09HT94he/CDheUVGhV155Rbt379a3336rrVu3atSoUercubPS0tIaWBYAAGhJbN1hWbp0qaRrXwb3UytXrtTEiRMlSSdPnlSrVoE56MiRI9q5c6c+++yzatcMCQnRgQMH9Je//EXl5eWKi4vTsGHD9Lvf/Y7vYgEAAJJuYdGtSews2gEAAGZo9EW3AAAATYnAAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACMR2ABAADGI7AAAADjEVgAAIDxCCwAAMB4BBYAAGA8AgsAADAegQUAABiPwAIAAIxHYAEAAMYjsAAAAOMRWAAAgPEILAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPFuBJSsrS/3791d4eLiioqKUnp6uI0eO1NknOztbDocjYAsLCwtoY1mW5syZo9jYWLVp00apqak6evSo/WoAAECLZCuwFBQUKCMjQ7t379aWLVt05coVDRs2TJWVlXX2i4iIUGlpqX87ceJEwPkFCxbo7bff1rJly1RUVKS77rpLaWlpunTpkv2KAABAi9PaTuO8vLyA/ezsbEVFRWnv3r16/PHHa+3ncDgUExNT4znLsrRo0SK9+uqrGjVqlCRp1apVio6OVm5u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TCO7PWJjY7Vs2TL169dPPp9P7777rgYPHqyioiI99NBDzT28OlVVVWn69Ol65JFH1KNHj1rb1TaHpq7Tua6+9SUlJWnFihXq2bOnPB6PFi5cqIEDB+rw4cON/iOhDXXw4EGlpKTo0qVLuvvuu5WTk6MHHnigxrbBOH926gvG+Vu7dq327dunr776ql7tg20O7dYXbHOYnJys7OxsJSUlqbS0VK+//roee+wxHTp0SOHh4dXaN9f8EVgQICkpSUlJSf79gQMH6vjx43rrrbf0/vvvN+PIbi4jI0OHDh2q873XYFbf+lJSUgL+9T5w4ED90z/9k5YvX67f/e53jT3MBklKSlJxcbE8Ho/+53/+RxMmTFBBQUGtL+rBxk59wTZ/p06d0rRp07RlyxajF5Y2VEPqC7Y5HD58uP+/e/bsqeTkZHXs2FEfffSRJk2a1IwjC0RgsSkmJkZlZWUBx8rKyhQRERH0d1dqM2DAAONDwNSpU7Vhwwbt2LHjpv+CqW0OY2JiGnOIt8ROfTe644471KdPHx07dqyRRnfrQkND1blzZ0lS37599dVXX2nx4sVavnx5tbbBOH926ruR6fO3d+9enTt3LuAO7NWrV7Vjxw6988478vl8CgkJCegTTHPYkPpuZPoc3uiee+5R165dax1vc80fa1hsSklJ0datWwOObdmypc73o4NdcXGxYmNjm3sYNbIsS1OnTlVOTo62bdumxMTEm/YJpjlsSH03unr1qg4ePGjsHNakqqpKPp+vxnPBNH+1qau+G5k+f08++aQOHjyo4uJi/9avXz+NGzdOxcXFNb6YB9McNqS+G5k+hzeqqKjQ8ePHax1vs81foy7pDQIXL1609u/fb+3fv9+SZL355pvW/v37rRMnTliWZVmzZs2ynn32WX/7b775xrrzzjutV155xfrrX/9qLVmyxAoJCbHy8vKaq4Q62a3vrbfesnJzc62jR49aBw8etKZNm2a1atXK+vzzz5urhDpNmTLFcrlcVn5+vlVaWurf/va3v/nbPPvss9asWbP8+1988YXVunVra+HChdZf//pXa+7cudYdd9xhHTx4sDlKqFND6nv99detzZs3W8ePH7f27t1rjRkzxgoLC7MOHz7cHCXc1KxZs6yCggKrpKTEOnDggDVr1izL4XBYn332mWVZwT1/lmW/vmCbv5rc+CmaYJ/DG92svmCbw5deesnKz8+3SkpKrC+++MJKTU212rVrZ507d86yLHPm72cfWK5/jPfGbcKECZZlWdaECROsQYMGVevTu3dvKzQ01OrUqZO1cuXKJh93fdmt74033rDuv/9+KywszIqMjLQGDx5sbdu2rXkGXw811SYpYE4GDRrkr/e6jz76yOratasVGhpqde/e3dq4cWPTDryeGlLf9OnTrQ4dOlihoaFWdHS09c///M/Wvn37mn7w9fSrX/3K6tixoxUaGmq1b9/eevLJJ/0v5pYV3PNnWfbrC7b5q8mNL+jBPoc3ull9wTaHo0ePtmJjY63Q0FDr3nvvtUaPHm0dO3bMf96U+XNYlmU17j0cAACAW8MaFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAYj8ACAACM9/+m2LFW7Y86LwAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ], + "source": [ + "plt.plot(sorted_dice_rolls_df,'b*')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 53 + }, + "id": "rCAmVllYAZnx", + "outputId": "0c31661b-82cb-42e3-ab7c-ad88adb1588a" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'\\nThe first plot gives the result of each roll. (Roll 1 was 1, Roll 2 was 3, etc...)\\nThe second plot gives the frequency of each number after the 10 rolls. (The dice gave a result of 1 twice, it gave a result of 2 only once, etc... ) \\n'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 91 + } + ], + "source": [ + "\"\"\"\n", + "The first plot gives the result of each roll. (Roll 1 was 1, Roll 2 was 3, etc...)\n", + "The second plot gives the frequency of each number after the 10 rolls. (The dice gave a result of 1 twice, it gave a result of 2 only once, etc... )\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iSTMkIPbAZnx" + }, + "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": 92, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "id": "TZ_NG11MAZnx", + "outputId": "230ca515-61cd-4d86-c9cd-773dbffdcd8b" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "3.3" + ] + }, + "metadata": {} + } + ], + "source": [ + "def calculate_mean(df):\n", + " mean = (np.sum(df))/len(df)\n", + " return mean\n", + "\n", + "result_mean = calculate_mean(dice_roll)\n", + "display(result_mean)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6Hpy1FBCAZnx" + }, + "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": 93, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "id": "Rk55Jl1DAZny", + "outputId": "8b6d5944-f3f8-49d2-a146-3e78003c06e9" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "{3: 2, 4: 3, 2: 2, 1: 1, 5: 2}" + ] + }, + "metadata": {} + } + ], + "source": [ + "def calculate_fd(df):\n", + " frequency_distribution = {}\n", + " for value in df:\n", + " if value in frequency_distribution:\n", + " frequency_distribution[value] += 1\n", + " else:\n", + " frequency_distribution[value] = 1\n", + " return frequency_distribution\n", + "\n", + "result_fd = calculate_fd(dice_roll)\n", + "display(result_fd)\n" + ] + }, + { + "cell_type": "code", + "source": [ + "def calculate_mean2(freq_dict):\n", + " sum_of_products = sum(k * v for k, v in freq_dict.items())\n", + " mean2 = sum_of_products / sum(freq_dict.values())\n", + " return mean2\n", + "\n", + "result_mean2 = calculate_mean2(result_fd)\n", + "display(result_mean2)\n", + "\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "id": "ZLnrCfYDRJ9m", + "outputId": "5dbcf803-cda4-4984-f33c-28ff38a68208" + }, + "execution_count": 94, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "3.3" + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "UPg9ErK_AZny" + }, + "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": 95, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "id": "Lwrl72eEAZny", + "outputId": "1fda3a84-84c2-44f9-bdcd-21c4f77f3cae" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "3.5" + ] + }, + "metadata": {} + } + ], + "source": [ + "def calculate_median(data):\n", + " data.sort()\n", + " num_observations = len(data)\n", + "\n", + " if num_observations % 2 == 0:\n", + " mid_idx = num_observations // 2\n", + " median = (data[mid_idx - 1] + data[mid_idx]) / 2\n", + " else:\n", + " mid_idx = num_observations // 2\n", + " median = data[mid_idx]\n", + " return median\n", + "\n", + "result_median = calculate_median(dice_roll)\n", + "display(result_median)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eufZOnCbAZny" + }, + "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": 96, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "id": "tVZ-VH19AZny", + "outputId": "4fc5d8c8-80ff-43d0-8d7e-ad9565ed77eb" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "(2, 3.5, 4.5)" + ] + }, + "metadata": {} + } + ], + "source": [ + "def calculate_quartiles(data):\n", + " data.sort()\n", + "\n", + " num_observations = len(data)\n", + " q2 = calculate_median(data)\n", + "\n", + " lower_half = data[:num_observations // 2] if num_observations % 2 == 0 else data[:num_observations // 2]\n", + " q1 = calculate_median(lower_half)\n", + "\n", + " upper_half = data[num_observations // 2 + 1:] if num_observations % 2 == 0 else data[num_observations // 2 + 1:]\n", + " q3 = calculate_median(upper_half)\n", + "\n", + " return q1, q2, q3\n", + "\n", + "result_quartiles = calculate_quartiles(dice_roll)\n", + "display(result_quartiles)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NeCXgT16AZny" + }, + "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": 97, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + }, + "id": "Lw4nsJZ3AZny", + "outputId": "7ff74ccf-4597-4c73-9880-43da5258067f" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 1\n", + "1 1 1 2\n", + "2 2 2 6\n", + "3 3 3 1\n", + "4 4 4 6\n", + ".. ... ... ...\n", + "95 95 95 4\n", + "96 96 96 6\n", + "97 97 97 1\n", + "98 98 98 3\n", + "99 99 99 6\n", + "\n", + "[100 rows x 3 columns]" + ], + "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", + " \n", + " \n", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
............
9595954
9696966
9797971
9898983
9999996
\n", + "

100 rows × 3 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ] + }, + "metadata": {}, + "execution_count": 97 + } + ], + "source": [ + "hundred_rolls = pd.read_csv(\"roll_the_dice_hundred.csv\")\n", + "hundred_rolls" + ] + }, + { + "cell_type": "code", + "source": [ + "hd_rolls = hundred_rolls.sort_values(by=['value'])" + ], + "metadata": { + "id": "2HKK8zpsVEka" + }, + "execution_count": 98, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "plt.bar(hd_rolls[\"roll\"],hd_rolls[\"value\"])" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 447 + }, + "id": "djvsXylDVsME", + "outputId": "764ceaff-d21a-49b3-f868-72f1f2709eba" + }, + "execution_count": 99, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 99 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAZX0lEQVR4nO3de5Dd8/348dfKyhGVTQi5VSJRKohoCBrRlkpLGop2TGuiTbXD0FUiU2UZNGPYdDpj0DFxmeKPIpgR1HXUJWpIJCEqtEHRbEOkpdlNXJZmP78/vtPz65KQs3md3Zzt4zHzmdlzzuecz+u892TznHPO7qkriqIIAIAEW/X0AABA7yEsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA09d19wI6OjnjjjTeif//+UVdX192HBwC6oCiKWLt2bQwfPjy22mrjz0t0e1i88cYbMWLEiO4+LACQoKWlJXbeeeeNXt7tYdG/f/+I+L/BGhoauvvwAEAXtLW1xYgRI8r/j29Mt4fFf17+aGhoEBYAUGM+620M3rwJAKQRFgBAGmEBAKQRFgBAGmEBAKQRFgBAGmEBAKQRFgBAGmEBAKQRFgBAmorDYuXKlXHiiSfGoEGDol+/frHPPvvE4sWLqzEbAFBjKvqskH/9618xadKkOOyww+L++++PnXbaKV5++eXYfvvtqzUfAFBDKgqLX/3qVzFixIi44YYbyueNHj06fSgAoDZV9FLI3XffHRMmTIjjjz8+Bg8eHOPHj4/rrrvuU6/T3t4ebW1tnTYAoHeq6BmLV199NebMmRMzZ86M8847LxYtWhRnnHFG9O3bN6ZPn77B6zQ3N8esWbNShs0w6tx7O51+ffbULu1TTf99/GofO+u+dnVde+q+Zh4r63515/r09GN8U9TCjJuiOx/jWbq69ptyX3tyPWrhfmX97OhJFT1j0dHREfvtt19ceumlMX78+DjllFPi5JNPjquvvnqj12lqaorW1tby1tLSstlDAwBbporCYtiwYbHXXnt1Om/PPfeMFStWbPQ6pVIpGhoaOm0AQO9UUVhMmjQpli9f3um8l156KXbZZZfUoQCA2lRRWJx11lmxYMGCuPTSS+OVV16Jm2++Oa699tpobGys1nwAQA2pKCwOOOCAmDdvXtxyyy0xduzYuPjii+Pyyy+PadOmVWs+AKCGVPRbIRERRx11VBx11FHVmAUAqHE+KwQASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0FYXFL3/5y6irq+u0jRkzplqzAQA1pr7SK+y9997xhz/84f/fQH3FNwEA9FIVV0F9fX0MHTq0GrMAADWu4vdYvPzyyzF8+PDYddddY9q0abFixYpP3b+9vT3a2to6bQBA71TRMxYHHXRQ3HjjjbHHHnvEm2++GbNmzYqvfOUrsWzZsujfv/8Gr9Pc3ByzZs1KGbYnjTr33vLXr8+eWpXb3dhtZ+1DZxtas2p9n6vJ956N6emfHT392NyUf8+1+G9+S1fRMxZTpkyJ448/PsaNGxdHHHFE3HfffbFmzZq47bbbNnqdpqamaG1tLW8tLS2bPTQAsGXarHdeDhw4ML74xS/GK6+8stF9SqVSlEqlzTkMAFAjNuvvWKxbty7++te/xrBhw7LmAQBqWEVh8fOf/zzmz58fr7/+ejz55JNx3HHHRZ8+feKEE06o1nwAQA2p6KWQv//973HCCSfE22+/HTvttFMccsghsWDBgthpp52qNR8AUEMqCou5c+dWaw4AoBfwWSEAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQBphAQCkERYAQJrNCovZs2dHXV1dzJgxI2kcAKCWdTksFi1aFNdcc02MGzcucx4AoIZ1KSzWrVsX06ZNi+uuuy6233777JkAgBrVpbBobGyMqVOnxuTJk7PnAQBqWH2lV5g7d24888wzsWjRok3av729Pdrb28un29raKj0kAFAjKgqLlpaWOPPMM+Ohhx6KbbbZZpOu09zcHLNmzerScLVu1Ln3djr9+uypVbntjd3ux4//cZs6z4bux6Ycvys2Zc26c57e4rMeC129ne5+TFfrWF193HXnPNU8fldkzbOl3a8sPf2Y6kkVvRSyZMmSWL16dey3335RX18f9fX1MX/+/Ljyyiujvr4+1q9f/4nrNDU1RWtra3lraWlJGx4A2LJU9IzF4YcfHs8//3yn80466aQYM2ZMnHPOOdGnT59PXKdUKkWpVNq8KQGAmlBRWPTv3z/Gjh3b6bzPfe5zMWjQoE+cDwD87/GXNwGANBX/VsjHPfbYYwljAAC9gWcsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASFNRWMyZMyfGjRsXDQ0N0dDQEBMnToz777+/WrMBADWmorDYeeedY/bs2bFkyZJYvHhxfP3rX49jjjkmXnjhhWrNBwDUkPpKdj766KM7nb7kkktizpw5sWDBgth7771TBwMAak9FYfHf1q9fH7fffnu8++67MXHixI3u197eHu3t7eXTbW1tXT0kALCFqzgsnn/++Zg4cWJ88MEHsd1228W8efNir7322uj+zc3NMWvWrM0akto06tx7y1+/PntqD06SK+t+VWt9/vt2s2+71o7f3d+fTbnvPb0+tWhDa/bx7093rmtPfw8/fvwtTcW/FbLHHnvE0qVLY+HChXHaaafF9OnT48UXX9zo/k1NTdHa2lreWlpaNmtgAGDLVfEzFn379o3ddtstIiL233//WLRoUVxxxRVxzTXXbHD/UqkUpVJp86YEAGrCZv8di46Ojk7voQAA/ndV9IxFU1NTTJkyJUaOHBlr166Nm2++OR577LF48MEHqzUfAFBDKgqL1atXxw9/+MN48803Y8CAATFu3Lh48MEH4xvf+Ea15gMAakhFYfHb3/62WnMAAL2AzwoBANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgTUVh0dzcHAcccED0798/Bg8eHMcee2wsX768WrMBADWmorCYP39+NDY2xoIFC+Khhx6Kjz76KL75zW/Gu+++W635AIAaUl/Jzg888ECn0zfeeGMMHjw4lixZEl/96ldTBwMAak9FYfFxra2tERGxww47bHSf9vb2aG9vL59ua2vbnEMCAFuwLodFR0dHzJgxIyZNmhRjx47d6H7Nzc0xa9asrh5ms406997y16/PnlqV2/3PbVfrWN1pQ/erFmXdj956O5m3vSmP+4/vU81jfdp1Krnelu6zfgZV83i9ZQ2pji7/VkhjY2MsW7Ys5s6d+6n7NTU1RWtra3lraWnp6iEBgC1cl56xOP300+Oee+6Jxx9/PHbeeedP3bdUKkWpVOrScABAbakoLIqiiJ/97Gcxb968eOyxx2L06NHVmgsAqEEVhUVjY2PcfPPNcdddd0X//v1j1apVERExYMCA6NevX1UGBABqR0XvsZgzZ060trbGoYceGsOGDStvt956a7XmAwBqSMUvhQAAbIzPCgEA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0lQcFo8//ngcffTRMXz48Kirq4s777yzCmMBALWo4rB49913Y999942rrrqqGvMAADWsvtIrTJkyJaZMmVKNWQCAGuc9FgBAmoqfsahUe3t7tLe3l0+3tbVV+5AAQA+pelg0NzfHrFmzqn2YiIgYde69nU6/Pntqxdfb1Ot0VXceq7ewZj2jq/+eulNPz1iLj82Pr9mWqCfXtZqPqa7cr55+jHdF1V8KaWpqitbW1vLW0tJS7UMCAD2k6s9YlEqlKJVK1T4MALAFqDgs1q1bF6+88kr59GuvvRZLly6NHXbYIUaOHJk6HABQWyoOi8WLF8dhhx1WPj1z5syIiJg+fXrceOONaYMBALWn4rA49NBDoyiKaswCANQ4f8cCAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANF0Ki6uuuipGjRoV22yzTRx00EHx9NNPZ88FANSgisPi1ltvjZkzZ8ZFF10UzzzzTOy7775xxBFHxOrVq6sxHwBQQyoOi8suuyxOPvnkOOmkk2KvvfaKq6++Orbddtu4/vrrqzEfAFBD6ivZ+cMPP4wlS5ZEU1NT+bytttoqJk+eHE899dQGr9Pe3h7t7e3l062trRER0dbW1pV5P1VH+3udTre1tXU67+On/5f22ZCu7rOl39f/5X02xGOh9+2zIb7P/5v7bEg1/n/979stiuLTdywqsHLlyiIiiieffLLT+WeffXZx4IEHbvA6F110URERNpvNZrPZesHW0tLyqa1Q0TMWXdHU1BQzZ84sn+7o6Ih33nknBg0aFHV1denHa2trixEjRkRLS0s0NDSk3z7/xzp3H2vdPaxz97DO3Sd7rYuiiLVr18bw4cM/db+KwmLHHXeMPn36xFtvvdXp/LfeeiuGDh26weuUSqUolUqdzhs4cGAlh+2ShoYGD9puYJ27j7XuHta5e1jn7pO51gMGDPjMfSp682bfvn1j//33j4cffrh8XkdHRzz88MMxceLEyicEAHqVil8KmTlzZkyfPj0mTJgQBx54YFx++eXx7rvvxkknnVSN+QCAGlJxWHzve9+Lf/zjH3HhhRfGqlWr4ktf+lI88MADMWTIkGrMV7FSqRQXXXTRJ15+IZd17j7WuntY5+5hnbtPT611XfGZvzcCALBpfFYIAJBGWAAAaYQFAJBGWAAAaXpVWPg493zNzc1xwAEHRP/+/WPw4MFx7LHHxvLlyzvt88EHH0RjY2MMGjQotttuu/jud7/7iT+iRmVmz54ddXV1MWPGjPJ51jnHypUr48QTT4xBgwZFv379Yp999onFixeXLy+KIi688MIYNmxY9OvXLyZPnhwvv/xyD05cm9avXx8XXHBBjB49Ovr16xdf+MIX4uKLL+70ORPWunKPP/54HH300TF8+PCoq6uLO++8s9Plm7Km77zzTkybNi0aGhpi4MCB8ZOf/CTWrVuXN2QlnxWyJZs7d27Rt2/f4vrrry9eeOGF4uSTTy4GDhxYvPXWWz09Wk074ogjihtuuKFYtmxZsXTp0uJb3/pWMXLkyGLdunXlfU499dRixIgRxcMPP1wsXry4+PKXv1wcfPDBPTh1bXv66aeLUaNGFePGjSvOPPPM8vnWefO98847xS677FL86Ec/KhYuXFi8+uqrxYMPPli88sor5X1mz55dDBgwoLjzzjuL5557rvj2t79djB49unj//fd7cPLac8kllxSDBg0q7rnnnuK1114rbr/99mK77bYrrrjiivI+1rpy9913X3H++ecXd9xxRxERxbx58zpdvilreuSRRxb77rtvsWDBguKPf/xjsdtuuxUnnHBC2oy9JiwOPPDAorGxsXx6/fr1xfDhw4vm5uYenKr3Wb16dRERxfz584uiKIo1a9YUW2+9dXH77beX9/nzn/9cRETx1FNP9dSYNWvt2rXF7rvvXjz00EPF1772tXJYWOcc55xzTnHIIYds9PKOjo5i6NChxa9//evyeWvWrClKpVJxyy23dMeIvcbUqVOLH//4x53O+853vlNMmzatKAprneHjYbEpa/riiy8WEVEsWrSovM/9999f1NXVFStXrkyZq1e8FPKfj3OfPHly+bzP+jh3uuY/H3u/ww47RETEkiVL4qOPPuq09mPGjImRI0da+y5obGyMqVOndlrPCOuc5e67744JEybE8ccfH4MHD47x48fHddddV778tddei1WrVnVa5wEDBsRBBx1knSt08MEHx8MPPxwvvfRSREQ899xz8cQTT8SUKVMiwlpXw6as6VNPPRUDBw6MCRMmlPeZPHlybLXVVrFw4cKUOar+6abd4Z///GesX7/+E3/9c8iQIfGXv/ylh6bqfTo6OmLGjBkxadKkGDt2bERErFq1Kvr27fuJD5YbMmRIrFq1qgemrF1z586NZ555JhYtWvSJy6xzjldffTXmzJkTM2fOjPPOOy8WLVoUZ5xxRvTt2zemT59eXssN/SyxzpU599xzo62tLcaMGRN9+vSJ9evXxyWXXBLTpk2LiLDWVbApa7pq1aoYPHhwp8vr6+tjhx12SFv3XhEWdI/GxsZYtmxZPPHEEz09Sq/T0tISZ555Zjz00EOxzTbb9PQ4vVZHR0dMmDAhLr300oiIGD9+fCxbtiyuvvrqmD59eg9P17vcdtttcdNNN8XNN98ce++9dyxdujRmzJgRw4cPt9a9XK94KaQrH+dOZU4//fS455574tFHH42dd965fP7QoUPjww8/jDVr1nTa39pXZsmSJbF69erYb7/9or6+Purr62P+/Plx5ZVXRn19fQwZMsQ6Jxg2bFjstddenc7bc889Y8WKFRER5bX0s2TznX322XHuuefG97///dhnn33iBz/4QZx11lnR3NwcEda6GjZlTYcOHRqrV6/udPm///3veOedd9LWvVeEhY9zr56iKOL000+PefPmxSOPPBKjR4/udPn+++8fW2+9dae1X758eaxYscLaV+Dwww+P559/PpYuXVreJkyYENOmTSt/bZ0336RJkz7x69IvvfRS7LLLLhERMXr06Bg6dGindW5ra4uFCxda5wq99957sdVWnf+L6dOnT3R0dESEta6GTVnTiRMnxpo1a2LJkiXlfR555JHo6OiIgw46KGeQlLeAbgHmzp1blEql4sYbbyxefPHF4pRTTikGDhxYrFq1qqdHq2mnnXZaMWDAgOKxxx4r3nzzzfL23nvvlfc59dRTi5EjRxaPPPJIsXjx4mLixInFxIkTe3Dq3uG/fyukKKxzhqeffrqor68vLrnkkuLll18ubrrppmLbbbctfve735X3mT17djFw4MDirrvuKv70pz8VxxxzjF+B7ILp06cXn//858u/bnrHHXcUO+64Y/GLX/yivI+1rtzatWuLZ599tnj22WeLiCguu+yy4tlnny3+9re/FUWxaWt65JFHFuPHjy8WLlxYPPHEE8Xuu+/u10035je/+U0xcuTIom/fvsWBBx5YLFiwoKdHqnkRscHthhtuKO/z/vvvFz/96U+L7bffvth2222L4447rnjzzTd7buhe4uNhYZ1z/P73vy/Gjh1blEqlYsyYMcW1117b6fKOjo7iggsuKIYMGVKUSqXi8MMPL5YvX95D09autra24swzzyxGjhxZbLPNNsWuu+5anH/++UV7e3t5H2tduUcffXSDP5OnT59eFMWmrenbb79dnHDCCcV2221XNDQ0FCeddFKxdu3atBl9bDoAkKZXvMcCANgyCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAIM3/AwFR4E4JNT+MAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "id": "sp6vrB1gAZny", + "outputId": "5437ceb4-f1e4-4da9-c155-da381ad5ad85" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "\"\\nThe rolls aren't following any logic, there values are very random. There are two many values for the chart to be readable. \\n\"" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 100 + } + ], + "source": [ + "\"\"\"\n", + "The rolls aren't following any logic, there values are very random. There are two many values for the chart to be readable.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GtaEFdFzAZny" + }, + "source": [ + "#### 2.- Using the functions you defined in *challenge 2*, calculate the mean value of the hundred dice rolls." + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "id": "rPX1TftXAZny", + "outputId": "7dd52ddd-9d23-45ba-f293-c3e60da1bb27" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "3.74" + ] + }, + "metadata": {} + } + ], + "source": [ + "result_mean = calculate_mean(hd_rolls[\"value\"])\n", + "display(result_mean)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uSfMuE9xAZny" + }, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "id": "zR0u7EYMAZny", + "outputId": "1505ae64-15ea-43fd-d344-b3d18538b5df" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "{1: 12, 2: 17, 3: 14, 4: 22, 5: 12, 6: 23}" + ] + }, + "metadata": {} + } + ], + "source": [ + "result_fd = calculate_fd(hd_rolls[\"value\"])\n", + "display(result_fd)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Q8WvZQezAZnz" + }, + "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": 103, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + }, + "id": "JWPvyLspAZnz", + "outputId": "130a44e9-5137-4a39-81ec-8054a81e2745" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1FklEQVR4nO3deViVZeLG8fsIsqiAoiDggqiJimKGZY7ikgtimpSlWRaaOU2j5VaNTo1omVjTZjOOS046NjZNmWmbW4aauVSapS2mhrnvCYKJAc/vjy7OzyOLgMjhYb6f6zrX5Xne7T4vR715l3McxhgjAAAAC1VxdwAAAIDSosgAAABrUWQAAIC1KDIAAMBaFBkAAGAtigwAALAWRQYAAFiLIgMAAKxFkQEAANaiyAAosd27d6tXr14KCAiQw+HQ0qVLr8p2GjVqpL59+16VdZfWggUL5HA4tG/fvqu+rX379snhcGjBggWlWr6grF27dlXXrl3LJF95atSokYYOHep8vnbtWjkcDq1du9ZtmVAxUGRQoeX9Q1zQY8KECe6O9z8rMTFRO3bs0NNPP63XXntN7dq1c3ckAP+jPN0dACiOJ598UhERES5jrVq1clOa/22//PKLNm3apMcff1yjRo1ydxyU0KpVq9wdAShTFBlYIT4+vti/9Z8/f15eXl6qUoUDjlfDiRMnJEk1a9Z0b5AKzBij8+fPy9fX191R8vHy8nJ3BElSZmamqlev7u4YqAT4lx5WyztP/sYbb+iJJ55QvXr1VK1aNaWnp0uStmzZot69eysgIEDVqlVTly5d9Omnn+Zbz4YNG3T99dfLx8dHTZo00Zw5czR58mQ5HA7nPEVdr+BwODR58mSXsUOHDum+++5T3bp15e3traioKL366qsF5n/zzTf19NNPq379+vLx8VH37t21Z8+efNvZsmWL+vTpo1q1aql69eqKjo7WjBkzJEnz58+Xw+HQl19+mW+5adOmycPDQ4cOHSpyf3755ZeKj4+Xv7+/atSooe7du2vz5s3O6ZMnT1Z4eLgk6dFHH5XD4VCjRo0KXd+FCxc0adIkxcTEKCAgQNWrV1dsbKxSUlKKzHGpDRs26IYbbpCPj48aN26shQsXuky/9GeVp6BrRPKuu7ncOiXpm2++0U033SRfX1/Vr19fU6dOVW5ubr758ta5cuVKtWvXTr6+vpozZ44k6cyZMxozZowaNGggb29vNW3aVM8880y+9Zw5c0ZDhw5VQECAatasqcTERJ05c6bY+6i4WQu6Rub8+fOaPHmymjVrJh8fH4WGhuq2227T3r17nfPk5ubqpZdeUlRUlHx8fFS3bl098MAD+vnnny+bbejQoapRo4b27t2rPn36yM/PT3fffbek3wrN+PHjnfsnMjJSzz33nIwxxX7teXbv3q0BAwYoJCREPj4+ql+/vu68806lpaWVeF2wB0dkYIW0tDSdPHnSZaxOnTrOPz/11FPy8vLSI488oqysLHl5eenjjz9WfHy8YmJilJSUpCpVqmj+/Pm66aab9Mknn+iGG26QJO3YsUO9evVSUFCQJk+erOzsbCUlJalu3bqlznvs2DHdeOONcjgcGjVqlIKCgrR8+XINHz5c6enpGjNmjMv806dPV5UqVfTII48oLS1Nzz77rO6++25t2bLFOc/q1avVt29fhYaGavTo0QoJCdF3332n999/X6NHj9btt9+ukSNHatGiRWrbtq3L+hctWqSuXbuqXr16hWb+5ptvFBsbK39/fz322GOqWrWq5syZo65du2rdunVq3769brvtNtWsWVNjx47V4MGD1adPH9WoUaPQdaanp2vevHkaPHiwRowYobNnz+qf//yn4uLi9Nlnn+naa6+97L7cs2ePbr/9dg0fPlyJiYl69dVXNXToUMXExCgqKuqyy5d2nUePHlW3bt2UnZ2tCRMmqHr16po7d26hR1l27dqlwYMH64EHHtCIESMUGRmpc+fOqUuXLjp06JAeeOABNWzYUBs3btTEiRN15MgRvfTSS5J+O4LTv39/bdiwQX/4wx/UokULvfPOO0pMTCzW6ylp1ovl5OSob9++WrNmje68806NHj1aZ8+e1erVq7Vz5041adJEkvTAAw9owYIFGjZsmB5++GGlpqbq73//u7788kt9+umnqlq1apHbyc7OVlxcnDp16qTnnntO1apVkzFGt9xyi1JSUjR8+HBde+21WrlypR599FEdOnRIL774YrFev/RbaY6Li1NWVpYeeughhYSE6NChQ3r//fd15swZBQQEFHtdsIwBKrD58+cbSQU+jDEmJSXFSDKNGzc2586dcy6Xm5trrrnmGhMXF2dyc3Od4+fOnTMRERGmZ8+ezrGEhATj4+NjfvrpJ+fYt99+azw8PMzF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Dh06FLqct7e3/P39XR4AAKByKtGpJWOMhg4dKm9vb0nS+fPn9Yc//EHVq1d3mW/JkiXFWl9GRobLB+ulpqZq+/btCgwMVMOGDTVmzBhNnTpV11xzjSIiIvSXv/xFYWFhSkhIKElsAABQSZWoyCQmJro8HzJkyBVt/IsvvlC3bt2cz8eNG+fczoIFC/TYY48pMzNTv//973XmzBl16tRJK1askI+PzxVtFwAAVA4lKjLz588v04137dpVxphCpzscDj355JN68skny3S7AACgcijVB+IBAABUBBQZAABgLYoMAACwFkUGAABYiyIDAACsRZEBAADWosgAAABrUWQAAIC1KDIAAMBaFBkAAGAtigwAALAWRQYAAFiLIgMAAKxFkQEAANaiyAAAAGtRZAAAgLUoMgAAwFoUGQAAYC2KDAAAsBZFBgAAWIsiAwAArEWRAQAA1qLIAAAAa1FkAACAtSgyAADAWhQZAABgLYoMAACwFkUGAABYiyIDAACsRZEBAADWosgAAABrUWQAAIC1KDIAAMBaFBkAAGAtigwAALAWRQYAAFiLIgMAAKxFkQEAANaiyAAAAGtRZAAAgLUoMgAAwFoUGQAAYC2KDAAAsBZFBgAAWIsiAwAArEWRAQAA1qLIAAAAa1FkAACAtSgyAADAWhQZAABgLYoMAACwFkUGAABYiyIDAACsRZEBAADWosgAAABrUWQAAIC1KDIAAMBaFBkAAGAtigwAALAWRQYAAFiLIgMAAKxFkQEAANaiyAAAAGtRZAAAgLUoMgAAwFoUGQAAYK0KXWQmT54sh8Ph8mjevLm7YwEAgArC090BLicqKkofffSR87mnZ4WPDAAAykmFbwWenp4KCQlxdwwAAFABVehTS5K0e/duhYWFqXHjxrr77ru1f//+IufPyspSenq6ywMAAFROFbrItG/fXgsWLNCKFSs0a9YspaamKjY2VmfPni10meTkZAUEBDgfDRo0KMfEAACgPFXoIhMfH6877rhD0dHRiouL04cffqgzZ87ozTffLHSZiRMnKi0tzfk4cOBAOSYGAADlqcJfI3OxmjVrqlmzZtqzZ0+h83h7e8vb27scUwEAAHep0EdkLpWRkaG9e/cqNDTU3VEAAEAFUKGLzCOPPKJ169Zp37592rhxo2699VZ5eHho8ODB7o4GAAAqgAp9aungwYMaPHiwTp06paCgIHXq1EmbN29WUFCQu6MBAIAKoEIXmTfeeMPdEQAAQAVWoU8tAQAAFIUiAwAArEWRAQAA1qLIAAAAa1FkAACAtSgyAADAWhQZAABgLYoMAACwFkUGAABYiyIDAACsRZEBAADWosgAAABrUWQAAIC1KDIAAMBaFBkAAGAtigwAALAWRQYAAFiLIgMAAKxFkQEAANaiyAAAAGtRZAAAgLUoMgAAwFoUGQAAYC2KDAAAsBZFBgAAWIsiAwAArEWRAQAA1qLIAAAAa1FkAACAtSgyAADAWhQZAABgLYoMAACwFkUGAABYiyIDAACsRZEBAADWosgAAABrUWQAAIC1KDIAAMBaFBkAAGAtigwAALAWRQYAAFiLIgMAAKxFkQEAANaiyAAAAGtRZAAAgLUoMgAAwFoUGQAAYC2KDAAAsBZFBgAAWIsiAwAArEWRAQAA1qLIAAAAa1FkAACAtSgyAADAWhQZAABgLYoMAACwFkUGAABYiyIDAACsRZEBAADWosgAAABrUWQAAIC1KDIAAMBaFBkAAGAtigwAALAWRQYAAFjLiiIzc+ZMNWrUSD4+Pmrfvr0+++wzd0cCAAAVQIUvMv/97381btw4JSUladu2bWrTpo3i4uJ0/Phxd0cDAABuVuGLzAsvvKARI0Zo2LBhatmypWbPnq1q1arp1VdfdXc0AADgZhW6yFy4cEFbt25Vjx49nGNVqlRRjx49tGnTJjcmAwAAFYGnuwMU5eTJk8rJyVHdunVdxuvWravvv/++wGWysrKUlZXlfJ6WliZJSk9PL/N8uVnnynyd5eFq7IurzcZ9zX4uH+zn8sF+RmGu1nsjb73GmCLnq9BFpjSSk5M1ZcqUfOMNGjRwQ5qKKeAldyf438B+Lh/s5/LBfkZhrvZ74+zZswoICCh0eoUuMnXq1JGHh4eOHTvmMn7s2DGFhIQUuMzEiRM1btw45/Pc3FydPn1atWvXlsPhKLNs6enpatCggQ4cOCB/f/8yWy/yY1+XD/Zz+WA/lw/2c/m4mvvZGKOzZ88qLCysyPkqdJHx8vJSTEyM1qxZo4SEBEm/FZM1a9Zo1KhRBS7j7e0tb29vl7GaNWtetYz+/v78JSkn7OvywX4uH+zn8sF+Lh9Xaz8XdSQmT4UuMpI0btw4JSYmql27drrhhhv00ksvKTMzU8OGDXN3NAAA4GYVvsgMGjRIJ06c0KRJk3T06FFde+21WrFiRb4LgAEAwP+eCl9kJGnUqFGFnkpyF29vbyUlJeU7jYWyx74uH+zn8sF+Lh/s5/JREfazw1zuviYAAIAKqkJ/IB4AAEBRKDIAAMBaFBkAAGAtigwAALAWRaYU1q9fr379+iksLEwOh0NLly51d6RKJzk5Wddff738/PwUHByshIQE7dq1y92xKp1Zs2YpOjra+WFWHTp00PLly90dq9KbPn26HA6HxowZ4+4olc7kyZPlcDhcHs2bN3d3rErp0KFDGjJkiGrXri1fX1+1bt1aX3zxRbnnoMiUQmZmptq0aaOZM2e6O0qltW7dOo0cOVKbN2/W6tWr9euvv6pXr17KzMx0d7RKpX79+po+fbq2bt2qL774QjfddJP69++vb775xt3RKq3PP/9cc+bMUXR0tLujVFpRUVE6cuSI87FhwwZ3R6p0fv75Z3Xs2FFVq1bV8uXL9e233+r5559XrVq1yj2LFZ8jU9HEx8crPj7e3TEqtRUrVrg8X7BggYKDg7V161Z17tzZTakqn379+rk8f/rppzVr1ixt3rxZUVFRbkpVeWVkZOjuu+/WK6+8oqlTp7o7TqXl6elZ6PfxoWw888wzatCggebPn+8ci4iIcEsWjsjACmlpaZKkwMBANyepvHJycvTGG28oMzNTHTp0cHecSmnkyJG6+eab1aNHD3dHqdR2796tsLAwNW7cWHfffbf279/v7kiVzrvvvqt27drpjjvuUHBwsNq2batXXnnFLVk4IoMKLzc3V2PGjFHHjh3VqlUrd8epdHbs2KEOHTro/PnzqlGjht555x21bNnS3bEqnTfeeEPbtm3T559/7u4olVr79u21YMECRUZG6siRI5oyZYpiY2O1c+dO+fn5uTtepfHjjz9q1qxZGjdunP785z/r888/18MPPywvLy8lJiaWaxaKDCq8kSNHaufOnZznvkoiIyO1fft2paWlafHixUpMTNS6desoM2XowIEDGj16tFavXi0fHx93x6nULj7tHx0drfbt2ys8PFxvvvmmhg8f7sZklUtubq7atWunadOmSZLatm2rnTt3avbs2eVeZDi1hApt1KhRev/995WSkqL69eu7O06l5OXlpaZNmyomJkbJyclq06aNZsyY4e5YlcrWrVt1/PhxXXfddfL09JSnp6fWrVun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\n" + }, + "metadata": {} + } + ], + "source": [ + "plt.hist(hd_rolls[\"value\"])\n", + "plt.ylabel(\"Repetition\")\n", + "plt.xlabel(\"Dice number\")\n", + "plt.title('Frequency of a hundred dice rolls')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "id": "zYkzBJS9AZnz", + "outputId": "fc3e6925-dbbd-4563-9354-0f9f96b08035" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'\\nValues are between 0 and 25 more or less. \\nA little tendency where the highest the number the more often it appears but nothing very clear. \\n'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 104 + } + ], + "source": [ + "\"\"\"\n", + "Values are between 0 and 25 more or less.\n", + "A little tendency where the highest the number the more often it appears but nothing very clear.\n", + "The standard deviation is quite large.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lDPHYzYlAZnz" + }, + "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": 125, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + }, + "id": "Hrgdhoi7AZnz", + "outputId": "8f6e0c87-d155-43c2-92cf-1cdd32e99c2f" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "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]" + ], + "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", + " \n", + " \n", + "
Unnamed: 0rollvalue
0005
1116
2221
3336
4445
............
9959959951
9969969964
9979979974
9989989983
9999999996
\n", + "

1000 rows × 3 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ] + }, + "metadata": {}, + "execution_count": 125 + } + ], + "source": [ + "thsd_rolls = pd.read_csv(\"roll_the_dice_thousand.csv\")\n", + "thsd_rolls" + ] + }, + { + "cell_type": "code", + "source": [ + "result_fd = calculate_fd(thsd_rolls[\"value\"])\n", + "display(result_fd)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "id": "cXnipAP5affs", + "outputId": "12973558-967c-48f3-db84-bd83287c087e" + }, + "execution_count": 126, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "{5: 149, 6: 166, 1: 175, 2: 167, 4: 168, 3: 175}" + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "plt.hist(thsd_rolls[\"value\"])\n", + "plt.ylabel(\"Repetition\")\n", + "plt.xlabel(\"Dice number\")\n", + "plt.title('Frequency of a thousand dice rolls')\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + }, + "id": "PgTOIrBfaqro", + "outputId": "0bfbbe7d-d2fb-4afe-cf66-f5cba5766196" + }, + "execution_count": 130, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+NElEQVR4nO3de1xUdf7H8fcAMopyVRBQvJcXDFIs1/UeJoJaluU90Uy3UlOptthtRVwVu7irlWJX3UrXyszKVssLaqayKlFpRupqal7TBMFEgfP7owfzcwRUxpGB0+v5eJzHg/P9nsvnnBn0zTnfM2MxDMMQAACASbm5ugAAAIAbibADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbAD4Lrt2bNHPXv2lK+vrywWi5YvX16h+1+4cKEsFou2b99eofutjBo1aqQRI0Y4tO6BAwdksVi0cOFCW9uUKVNksVicU1wFGjFihBo1amTXZrFYNGXKFJfUA9ci7KBKKf5PrbTp6aefdnV5v1vx8fH69ttvNX36dL399ttq167dDdnPvHnz7P4jBoBr4eHqAgBHTJ06VY0bN7Zra926tYuq+X379ddftWXLFv31r3/VuHHjbui+5s2bpzp16jh85QLl98wzz/CHBKo8wg6qpNjY2Gu+enD+/Hl5enrKzY0LmTfCyZMnJUl+fn6uLQQ3hIeHhzw8XP9fRV5enmrWrOnqMlBF8a8/TGX9+vWyWCxasmSJnnnmGdWrV09eXl7KycmRJKWnp6tXr17y9fWVl5eXunbtqi+//LLEdjZt2qTbbrtN1atXV9OmTfXKK6+UGLtQ2viGYqWNDfjpp5/04IMPqm7durJarQoPD9ebb75Zav3vvfeepk+frvr166t69eqKjo7W3r17S+wnPT1dcXFx8vf3V82aNRUREaE5c+ZIkhYsWCCLxaKvvvqqxHozZsyQu7u7fvrppyuez6+++kqxsbHy8fFRrVq1FB0dra1bt9r6p0yZooYNG0qSnnzySVkslhLjJC514cIFTZ48WVFRUfL19VXNmjXVuXNnpaWlXbEO6bexKLt27dKGDRtsty67detmt0x+fr4SEhIUGBiomjVr6p577rGFsUvNmzdP4eHhslqtCg0N1dixY3XmzJkS+yvtClK3bt1K7Pell15SeHi4vLy85O/vr3bt2mnx4sW2/h9//FGPPvqomjdvrho1aqh27dq6//77deDAAbvtFN+m/fLLL696HIZhaNq0aapfv768vLzUvXt37dq166rnsdiZM2c0YsQI+fr6ys/PT/Hx8SXOgVT2mJ133nlHt99+u+2Yu3Tpos8//9xumZUrV6pz586qWbOmvL291bt372uqsfg8bNiwQY8++qiCgoJUv359W/+1vH7X4uzZs5o4caIaNWokq9WqoKAg3XnnncrIyCj3tlC5uT6uAw7Izs7Wzz//bNdWp04d289///vf5enpqSeeeEL5+fny9PTUunXrFBsbq6ioKCUlJcnNzU0LFizQHXfcoS+++EK33367JOnbb79Vz549FRgYqClTpqigoEBJSUmqW7euw/UeP35cf/jDH2SxWDRu3DgFBgZq5cqVGjVqlHJycjRx4kS75WfOnCk3Nzc98cQTys7O1nPPPaehQ4cqPT3dtszq1avVp08fhYSEaMKECQoODtbu3bu1YsUKTZgwQffdd5/Gjh2rRYsWqU2bNnbbX7Rokbp166Z69eqVWfOuXbvUuXNn+fj46M9//rOqVaumV155Rd26ddOGDRvUvn173XvvvfLz89OkSZM0ePBgxcXFqVatWmVuMycnR6+//roGDx6s0aNH6+zZs3rjjTcUExOj//73v7r11lvLXHf27NkaP368atWqpb/+9a+SVOI1GT9+vPz9/ZWUlKQDBw5o9uzZGjdunN59913bMlOmTFFycrJ69OihRx55RFlZWUpNTdW2bdv05Zdfqlq1amXWUJrXXntNjz32mO677z5NmDBB58+f1zfffKP09HQNGTJEkrRt2zZt3rxZgwYNUv369XXgwAGlpqaqW7du+u677+Tl5VXu45g8ebKmTZumuLg4xcXFKSMjQz179tSFCxeuWrNhGLr77ru1adMmPfzww2rZsqU+/PBDxcfHX9MxJycna8qUKfrjH/+oqVOnytPTU+np6Vq3bp169uwpSXr77bcVHx+vmJgYPfvsszp37pxSU1PVqVMnffXVV1cMxcUeffRRBQYGavLkycrLy5Pk3Nfv4Ycf1tKlSzVu3Di1atVKp06d0qZNm7R79261bdv2mreDKsAAqpAFCxYYkkqdDMMw0tLSDElGkyZNjHPnztnWKyoqMm666SYjJibGKCoqsrWfO3fOaNy4sXHn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vsujbdu2aty4sWbPnl3iP8zL//qPiIhQRESEXn/9dX3wwQcaNGjQVf+ydnd3V8+ePfXRRx/ZPR59/PhxLV68WJ06dbrmWxGXb/fyGtPT07Vly5ZrWr9mzZoOBwRJ6tGjhzw9PfXiiy/a1fDGG28oOztbvXv3trU1bdpUW7dutXu6acWKFTp06JDdNk+dOmU37+npqVatWskwDNttOnd39xKvy0svvVTiKmB5jqNatWp66aWX7LY7e/bsa1o/Li5OBQUFSk1NtbUVFhbqpZdeuuq6/fr1k5ubm6ZOnVriqlRxLTExMfLx8dGMGTPsblUWc+Q9L5Xv9buawsLCErcQg4KCFBoaWq4rvKgauLKD3wU3Nze9/vrrio2NVXh4uEaOHKl69erpp59+Ulpamnx8fPTJJ59I+u2x2lWrVqlz58569NFHVVBQYPsclW+++cZuuw899JBmzpyphx56SO3atdPGjRv1ww8/lNj/zJkzlZaWpvbt22v06NFq1aqVTp8+rYyMDK1Zs0anT58u9/Gkpqaqb9++uvXWWzVy5EiFhITo+++/165du0oEs+HDh+uJJ56QpGu+hTVt2jStXr1anTp10qOPPioPDw+98sorys/P13PPPVeueov16dNHy5Yt0z333KPevXtr//79mj9/vlq1alVqCL1cVFSUUlNTNW3aNDVr1kxBQUFljgspTWBgoBITE5WcnKxevXrprrvuUlZWlubNm6fbbrvN7tw89NBDWrp0qXr16qUBAwZo3759euedd2xXLYr17NlTwcHB6tixo+rWravdu3fr5ZdfVu/evW3jovr06aO3335bvr6+atWqlbZs2aI1a9aodu3a11z75cfxxBNPKCUlRX369FFcXJy++uorrVy50u4jGMrSt29fdezYUU8//bQOHDigVq1aadmyZaWOH7pcs2bN9Ne//lV///vf1blzZ917772yWq3atm2bQkNDlZKSIh8fH6WmpuqBBx5Q27ZtNWjQIAUGBurgwYP69NNP1bFjR7388ssOHfe1vn5Xc/bsWdWvX1/33XefIiMjVatWLa1Zs0bbtm2zuwIHk3DFI2CAo4ofSd22bVup/cWPbr///vul9n/11VfGvffea9SuXduwWq1Gw4YNjQEDBhhr1661W27Dhg1GVFSU4enpaTRp0sSYP39+iUdwDeO3R4pHjRpl+Pr6Gt7e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YE4uvbJTHufPn9dTTz2lwYMHy8fHx9b+2GOPqW3btgoICNDmzZuVmJioo0eP6h//+EeZ20pJSVFycnJFlA0AAFysSoSdixcvasCAATIMQ6mpqXZ9CQkJtp8jIiLk6empP/3pT0pJSZHVai11e4mJiXbr5eTkKCws7MYUDwAAXKrSh53ioPPjjz9q3bp1dld1StO+fXsVFBTowIEDat68eanLWK3WMoMQAAAwl0oddoqDzp49e5SWlqbatWtfdZ3MzEy5ubkpKCioAioEAACVnUvDTm5urvbu3Wub379/vzIzMxUQEKCQkBDdd999ysjI0IoVK1RYWKhjx45JkgICAuTp6aktW7YoPT1d3bt3l7e3t7Zs2aJJkyZp2LBh8vf3d9VhAQCASsSlYWf79u3q3r27bb54HE18fLymTJmijz/+WJJ066232q2Xlpambt26yWq1asmSJZoyZYry8/PVuHFjTZo0yW48DgAA+H1zadjp1q2bDMMos/9KfZLUtm1bbd261dllAQAAE6lSn7MDAABQXoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgaoQdAABgah6OrFRYWKiFCxdq7dq1OnHihIqKiuz6161b55TiAAAArpdDYWfChAlauHChevfurdatW8tisTi7LgAAAKdwKOwsWbJE7733nuLi4pxdDwAAgFM5NGbH09NTzZo1c3YtAAAATudQ2Hn88cc1Z84cGYbh7HoAAACcyqHbWJs2bVJaWppWrlyp8PBwVatWza5/2bJlTikOAADgejkUdvz8/HTPPfc4uxYAAACncyjsLFiwwNl1AAAA3BAOhZ1iJ0+eVFZWliSpefPmCgwMdEpRAAAAzuLQAOW8vDw9+OCDCgkJUZcuXdSlSxeFhoZq1KhROnfunLNrBAAAcJhDYSchIUEbNmzQJ598ojNnzujMmTP66KOPtGHDBj3++OPXvJ2NGzeqb9++Cg0NlcVi0fLly+36DcPQ5MmTFRISoho1aqhHjx7as2eP3TKn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7NnKy8tTWFiY+vfvr2eeecZFlQIAgMqmSoSdnj17yjCMEu1hYWHasGGDCyoCAABVhUPfjQUAAFBVEHYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpEXYAAICpVeqwM2XKFFksFrupRYsWtv7z589r7Nixql27tmrVqqX+/fvr+PHjLqwYAABUNpU67EhSeHi4jh49aps2bdpk65s0aZI++eQTvf/++9qwYYOOHDmie++914XVAgCAysbD1QVcjYeHh4KDg0u0Z2dn64033tDixYt1xx13SJIWLFigli1bauvWrfrDH/5Q0aUCAIBKqNJf2dmzZ49CQ0PVpEkTDR06VAcPHpQk7dixQxcvXlSPHj1sy7Zo0UINGjTQli1brrjN/Px85eTk2E0AAMCcKnXYad++vRYuXKhVq1YpNTVV+/fvV+fOnXX27FkdO3ZMnp6e8vPzs1unbt26Onbs2BW3m5KSIl9fX9sUFhZ2A48CAAC4UqW+jRUbG2v7OSIiQu3bt1fDhg313nvvqUaNGg5vNzExUQkJCbb5nJwcAg8AACZVqa/sXM7Pz08333yz9u7dq+DgYF24cEFnzpyxW+b48eOljvG5lNVqlY+Pj90EAADMqUqFndzcXO3bt08hISGKiopStWrVtHbtWlt/VlaWDh48qA4dOriwSgAAUJlU6ttYTzzxhPr27auGDRvqyJEjSkpKkru7uwYPHixfX1+NGjVKCQkJCggIkI+Pj8aPH68OHTrwJBYAALCp1GHn8OHDGjx4sE6dOqXAwEB16tRJW7duVWBgoCTpn//8p9zc3NS/f3/l5+crJiZG8+bNc3HVAACgMqnUYWfJkiVX7K9evbrmzp2ruXPnVlBFAACgqqlSY3YAAADKi7ADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMjbADAABMrVKHnZSUFN12223y9vZWUFCQ+vXrp6ysLLtlunXrJovFYjc9/PDDLqoYAABUNpU67GzYsEFjx47V1q1btXr1al28eFE9e/ZUXl6e3XKjR4/W0aNHbdNzzz3noooBAEBl4+HqAq5k1apVdvMLFy5UUFCQduzYoS5dutjavby8FBwcXNHlAQCAKqBSX9m5XHZ2tiQpICDArn3RokWqU6eOWrdurcTERJ07d+6K28nPz1dOTo7dBAAAzKlSX9m5VFFRkSZOnKiOHTuqdevWtvYhQ4aoYcOGCg0N1TfffKOnnnpKWVlZWrZsWZnbSklJUXJyckWUDQAAXKzKhJ2xY8dq586d2rRpk137mDFjbD/fcsstCgkJUXR0tPbt26emTZuWuq3ExEQlJCTY5nNychQWFnZjCgcAAC5VJcLOuHHjtGLFCm3cuFH169e/4rLt27eXJO3du7fMsGO1WmW1Wp1eJwAAqHwqddgxDEPjx4/Xhx9+qPXr16tx48ZXXSczM1OSFBIScoOrAwAAVUGlDjtjx47V4sWL9dFHH8nb21vHjh2TJPn6+qpGjRrat2+fFi9erLi4ONWuXVvffPONJk2apC5duigiIsLF1QMAgMqgUoed1NRUSb99cOClFixYoBEjRsjT01Nr1qzR7NmzlZeXp7CwMPXv31/PPPOMC6oFAACVUaUOO4ZhXLE/LCxMGzZsqKBqAABAVVSlPmcHAACgvAg7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "id": "nyOUcUVkAZnz", + "outputId": "f55234f4-c9e5-480d-b7bc-57e5000e05fb" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 106 + } + ], + "source": [ + "\"\"\"\n", + "The frequency are a lot more similar than in the previous example.\n", + "The amount of repetition kind of equalize it.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lUowSTu9AZnz" + }, + "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": 133, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 424 + }, + "id": "2TWHihlkAZnz", + "outputId": "5de35d08-9ba5-4954-889c-9ccf376c65d1" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " observation\n", + "0 68.0\n", + "1 12.0\n", + "2 45.0\n", + "3 38.0\n", + "4 49.0\n", + ".. ...\n", + "995 27.0\n", + "996 47.0\n", + "997 53.0\n", + "998 33.0\n", + "999 31.0\n", + "\n", + "[1000 rows x 1 columns]" + ], + "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", + "
observation
068.0
112.0
245.0
338.0
449.0
......
99527.0
99647.0
99753.0
99833.0
99931.0
\n", + "

1000 rows × 1 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ] + }, + "metadata": {}, + "execution_count": 133 + } + ], + "source": [ + "age_pop = pd.read_csv(\"ages_population.csv\")\n", + "age_pop" + ] + }, + { + "cell_type": "code", + "source": [ + "result_fd = calculate_fd(age_pop[\"observation\"])\n", + "\n", + "plt.hist(age_pop[\"observation\"])\n", + "plt.ylabel(\"age\")\n", + "plt.xlabel(\"population\")\n", + "plt.title('Frequency of each age in the population')\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + }, + "id": "Kuonl9Libzlg", + "outputId": "393fd5ef-78b6-47e5-c6f8-1cad55ccba6f" + }, + "execution_count": 137, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA87klEQVR4nO3deVwW5f7/8fcNCIpsLqwKuGTiRnVQidTUIHFJMz2Vaall2gLlUrmcMrXyaNbJymOaddLqaIunMvWUZi6YRprmviCWpkdFUwPcQoXr94c/5ustuCF6c0+v5+NxPx7MzHXPfK57hps3M9fct8MYYwQAAGBTHq4uAAAA4Goi7AAAAFsj7AAAAFsj7AAAAFsj7AAAAFsj7AAAAFsj7AAAAFsj7AAAAFsj7AAAAFsj7AA2l5mZqTZt2igwMFAOh0OzZs1ydUlOWrVqpYYNG7q6jFLTqlUrtWrV6ppsy+FwKDU19Zpsq6xbsmSJHA6HlixZUqrrdTgcGjlyZKmuE9ceYQelZtq0aXI4HMU+hg4d6ury/rR69eqlDRs2aPTo0frwww/VuHFjV5eEy/D9999r5MiRys7OdnUptvXVV18RaGzOy9UFwH5eeOEF1axZ02menf5zdycnTpxQenq6nn32Wc4AXCPffPNNqa7v+++/16hRo9S7d28FBQWV6rpxxldffaWJEycWG3hOnDghLy/+VLo79iBKXbt27S757MEff/whb29veXhwkvFq+O233ySJP5LXkLe3t6tLQCkqX768q0tAKeAvDK6ZwmvqH3/8sZ577jlVq1ZNvr6+ys3NlSStWLFCbdu2VWBgoHx9fdWyZUstX768yHqWLVumJk2aqHz58qpdu7befvttjRw5Ug6Hw2qzc+dOORwOTZs2rcjzi7sGv2fPHj300EMKDQ2Vj4+PGjRooPfee6/Y+j/99FONHj1a1atXV/ny5ZWYmKjt27cX2c6KFSvUvn17VapUSRUrVlRsbKzeeOMNSdLUqVPlcDi0Zs2aIs/7+9//Lk9PT+3Zs+eCr+eaNWvUrl07BQQEyM/PT4mJifrhhx+s5SNHjlR0dLQk6ZlnnpHD4VCNGjUuuM68vDyNGDFC1113nXx8fBQZGanBgwcrLy/Pqd3UqVN12223KSQkRD4+Pqpfv74mTZpU7Dq//vprtWzZUv7+/goICFCTJk00Y8aMIu02b96s1q1by9fXV9WqVdO4ceMuWOvl1lJQUKCRI0cqIiJCvr6+at26tTZv3qwaNWqod+/eTm2zs7M1YMAARUZGysfHR9ddd51efvllFRQUXLSec8fsXO5xc7aRI0fqmWeekSTVrFnTuiy8c+dOp3azZs1Sw4YNrWN33rx5RdZ1Kcf4+RSODZo+fbrq1q2r8uXLKy4uTkuXLi3S9mLHpfR/l7yXLl2qRx55RFWqVFFAQIB69uyp33//vci2izvjUtx+O9d3332nu+++W1FRUdbxPHDgQJ04ccJq07t3b02cONHaVuHjQtu/nD4uX75cgwYNUnBwsCpWrKi77rrL+icE1w5ndlDqcnJydPDgQad5VatWtX5+8cUX5e3traefflp5eXny9vbWokWL1K5dO8XFxWnEiBHy8PCw/oh99913atq0qSRpw4YNatOmjYKDgzVy5EidPn1aI0aMUGhoaInr3b9/v26++WbrDT04OFhff/21+vTpo9zcXA0YMMCp/dixY+Xh4aGnn35aOTk5GjdunHr06KEVK1ZYbRYsWKA77rhD4eHh6t+/v8LCwrRlyxbNnTtX/fv311//+lelpKRo+vTpuummm5zWP336dLVq1UrVqlU7b82bNm1SixYtFBAQoMGDB6tcuXJ6++231apVK6WlpSk+Pl5dunRRUFCQBg4cqPvuu0/t27eXn5/feddZUFCgTp06admyZerXr5/q1aunDRs2aPz48dq2bZvTwOZJkyapQYMG6tSpk7y8vDRnzhw9/vjjKigoUEpKitVu2rRpeuihh9SgQQMNGzZMQUFBWrNmjebNm6fu3btb7X7//Xe1bdtWXbp00T333KP//Oc/GjJkiBo1aqR27dpdcP9dai3Dhg3TuHHj1LFjRyUnJ2vdunVKTk7WH3/84bS+48ePq2XLltqzZ48eeeQRRUVF6fvvv9ewYcO0b98+vf766xes53wu5bg5V5cuXbRt2zZ99NFHGj9+vPV7FBwcbLVZtmyZPv/8cz3++OPy9/fXm2++qa5du2rXrl2qUqWKpMs/xouTlpamTz75RE8++aR8fHz01ltvqW3btlq5cqV1mfpSjsuzpaamKigoSCNHjlRGRoYmTZqkX3/91QqIV2rmzJk6fvy4HnvsMVWpUkUrV67UhAkT9L///U8zZ86UJD3yyCPau3evFixYoA8//PCi67zcPj7xxBOqVKmSRowYoZ07d+r1119XamqqPvnkkyvuHy6DAUrJ1KlTjaRiH8YYs3jxYiPJ1KpVyxw/ftx6XkFBgalTp45JTk42BQUF1vzjx4+bmjVrmttvv92a17lzZ1O+fHnz66+/WvM2b95sPD09zdmH844dO4wkM3Xq1CJ1SjIjRoywpvv06WPCw8PNwYMHndp169bNBAYGWrUW1l+vXj2Tl5dntXvjjTeMJLNhwwZjjDGnT582NWvWNNHR0eb33393WufZ/bvvvvtMRESEyc/Pt+b99NNP5637bJ07dzbe3t7m559/tubt3bvX+Pv7m1tvvbXI6/DKK69ccH3GGPPhhx8aDw8P89133znNnzx5spFkli9fbs07e/8VSk5ONrVq1bKms7Ozjb+/v4mPjzcnTpxwanv269CyZUsjyXzwwQfWvLy8PBMWFma6du160bovpZasrCzj5eVlOnfu7NRu5MiRRpLp1auXNe/FF180FStWNNu2bXNqO3ToUOPp6Wl27dp1wXpatmxpWrZsaU1f6nFzPq+88oqRZHbs2FFkmSTj7e1ttm/fbs1bt26dkWQmTJhgzbvUY/x8Cn+PV61aZc379ddfTfny5c1dd91lzbvU47LwvSIuLs6cPHnSmj9u3DgjyXz55ZdO2z7797VQdHS0034rfJ0XL15szSuuX2PGjDEOh8PpPSQlJcWc78/hudu/3D4mJSU5He8DBw40np6eJjs7u9jt4ergMhZK3cSJE7VgwQKnx9l69eqlChUqWNNr165VZmamunfvrkOHDungwYM6ePCgjh07psTERC1dulQFBQXKz8/X/Pnz1blzZ0VFRVnPr1evnpKTk0tUqzFGn332mTp27ChjjLXtgwcPKjk5WTk5Ofrpp5+cnvPggw86jcto0aKFJOmXX36RdOYU944dOzRgwIAiY2XO/m+1Z8+e2rt3rxYvXmzNmz59uipUqKCuXbuet+b8/Hx988036ty5s2rVqmXNDw8PV/fu3bVs2TLr0uDlmDlzpurVq6eYmBin1+G2226TJKc6z95/hWfyWrZsqV9++UU5OTmSzpzdOnLkiIYOHVpk3MO5/7X7+fnp/vvvt6a9vb3VtGlT6zW9kEupZeHChTp9+rQef/xxp+c+8cQTxb4OLVq0UKVKlZxeh6SkJOXn5xd76eZSXOy4KamkpCTVrl3bmo6NjVVAQIC13pIc48VJSEhQXFycNR0VFaU777xT8+fPV35+fomOy379+qlcuXLW9GOPPSYvLy999dVXJX49znb2sXHs2DEdPHhQt9xyi4wxxV5CvpiS9vHs471FixbKz8/Xr7/+WoIeoaS4jIVS17Rp0wsOUD73Tq3MzExJZ0LQ+eTk5CgvL08nTpxQnTp1iiyvW7duid4gf/vtN2VnZ2vKlCmaMmVKsW0OHDjgNH120JKkSpUqSZI11uDnn3+WdPE70G6//XaFh4dr+vTpSkxMVEFBgT766CPdeeed8vf3v2DNx48fV926dYssq1evngoKCrR79241aNDggts/V2ZmprZs2eJ0ieRsZ78Oy5cv14gRI5Senq7jx487tcvJyVFgYOAlvw6SVL169SIBqFKlSlq/fv1Fn3sptRT+YbnuuuuclleuXNnaf4UyMzO1fv36S3odLsfFjpuSOne9hesuXG9JjvHiFPd7d/311+v48ePWGJTLPS7PXaefn5/Cw8OLjEkqqV27dun555/X7Nmzi7zOhUH4cpTkd+9q7XdcHsIOrrmz/9uSZA36fOWVV3TjjTcW+xw/P78ig2Qv5HzX+/Pz84vd9v3333/esBUbG+s07enpWWw7Y8wl11e4nu7du+udd97RW2+9peXLl2vv3r1OZziupYKCAjVq1EivvfZascsjIyMlnQlziYmJiomJ0WuvvabIyEh5e3vrq6++0vjx4y9pEO+5SvqaXo1aCgoKdPvtt2vw4MHFLr/++usve51S6R03l7vekhzj7uDc3+Xilt9+++06fPiwhgwZopiYGFWsWFF79uxR7969S3RslMTV2u+4PIQduFzhKfiAgAAlJSWdt11wcLAqVKhgnQk6W0ZGhtN04X9P534Q27mnjoODg+Xv76/8/PwLbvtyFPZn48aNF11nz5499Y9//ENz5szR119/reDg4ItekgsODpavr2+RPkvS1q1b5eHhYQWTy6173bp1SkxMvODg0Dlz5igvL0+zZ892+q/17MtcheuTzrwO555RKS2XWkvhXWnbt293OrN46NChIv9h165dW0ePHi214+FKXelA3dI6xov7vdu2bZt8fX2ts2CXe1xmZmaqdevW1vTRo0e1b98+tW/f3ppXqVKlIr/HJ0+e1L59+y5Y74YNG7Rt2za9//776tmzpzX/3Mvq0qW/xlfrdw9XH2N24HJxcXGqXbu2Xn31VR09erTI8sJT5J6enkpOTtasWbO0a9cua/mWLVs0f/58p+cEBASoatWqRcZXvPXWW07Tnp6e6tq1qz777DNt3LjxvNu+HH/5y19Us2ZNvf7660XepM/9by42NlaxsbF699139dlnn6lbt24X/QAzT09PtWnTRl9++aXT6f79+/drxowZat68uQICAi677nvuuUd79uzRO++8U2TZiRMndOzYMWv75/YlJydHU6dOdXpOmzZt5O/vrzFjxhS546m0/qu91FoSExPl5eVV5Jb0f/7zn0XWec899yg9Pb3IMSWdCc+nT58ujdIvWcWKFa1tl0RpHePp6elOY3t2796tL7/8Um3atJGnp2eJjsspU6bo1KlT1vSkSZN0+vRppzvwateuXeT3eMqUKRc9s1PcsWGMsT7+4WyX+hpfrd89XH2c2YHLeXh46N1331W7du3UoEEDPfjgg6pWrZr27NmjxYsXKyAgQHPmzJEkjRo1SvPmzVOLFi30+OOP6/Tp05owYYIaNGhQZHzHww8/rLFjx+rhhx9W48aNtXTpUm3btq3I9seOHavFixcrPj5effv2Vf369XX48GH99NNP+vbbb3X48OHL7s+kSZPUsWNH3XjjjXrwwQcVHh6urVu3atOmTUX+iPbs2VNPP/20JF3yJayXXnpJCxYsUPPmzfX444/Ly8tLb7/9tvLy8i7582nO9cADD+jTTz/Vo48+qsWLF6tZs2bKz8/X1q1b9emnn2r+/Plq3Lix2rRpI29vb3Xs2FGPPPKIjh49qnfeeUchISFO/20HBARo/Pjxevjhh9WkSRN1795dlSpV0rp163T8+HG9//77JarzbJdaS2hoqPr3769//OMf6tSpk9q2bat169bp66+/VtWqVZ3+s3/mmWc0e/Zs3XHHHerdu7fi4uJ07NgxbdiwQf/5z3+0c+dOp49SuNoKBwU/++yz6tatm8qVK6eOHTtaf6AvRWkc4w0bNlRycrLTrefSmd/JQpd7XJ48eVKJiYm65557lJGRobfeekvNmzdXp06drDYPP/ywHn30UXXt2lW333671q1bp/nz5190H8TExKh27dp6+umntWfPHgUEBOizzz4rdqxM4Wv85JNPKjk5WZ6enurWrVux670av3u4Bq79DWCwq8JbLX/88cdilxfeGjpz5sxil69Z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+fj4lHIvAABAWeTSMzvGGKWmpuqLL77QokWLVLNmTaflcXFxKleunBYuXGjNy8jI0K5du5SQkCBJSkhI0IYNG3TgwAGrzYIFCxQQEKD69etfm44AAIAyy6VndlJSUjRjxgx9+eWX8vf3t8bYBAYGqkKFCgoMDFSfPn00aNAgVa5cWQEBAXriiSeUkJCgm2++WZLUpk0b1a9fXw888IDGjRunrKwsPffcc0pJSeHsDQAAcG3YmTRpkiSpVatWTvOnTp2q3r17S5LGjx8vDw8Pde3aVXl5eUpOTtZbb71ltfX09NTcuXP12GOPKSEhQRUrVlSvXr30wgsvXKtuAACAMqxMfc6Oq/A5O3AFPmfn2uFzdgB7csvP2QEAAChtZeJuLAC4mtzxLBpno4DSw5kdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABgay4NO0uXLlXHjh0VEREhh8OhWbNmOS3v3bu3HA6H06Nt27ZObQ4fPqwePXooICBAQUFB6tOnj44ePXoNewEAAMoyl4adY8eO6YYbbtDEiRPP26Zt27bat2+f9fjoo4+clvfo0UObNm3SggULNHfuXC1dulT9+vW72qUDAAA34eXKjbdr107t2rW7YBsfHx+FhYUVu2zLli2aN2+efvzxRzVu3FiSNGHCBLVv316vvvqqIiIiSr1mAADgXsr8mJ0lS5YoJCREdevW1WOPPaZDhw5Zy9LT0xUUFGQFHUlKSkqSh4eHVqxYcd515uXlKTc31+kBAADsqUyHnbZt2+qDDz7QwoUL9fLLLystLU3t2rVTfn6+JCkrK0shISFOz/Hy8lLlypWVlZV13vWOGTNGgYGB1iMyMvKq9gMAALiOSy9jXUy3bt2snxs1aqTY2FjVrl1bS5YsUWJiYonXO2zYMA0aNMiazs3NJfAAAGBTZfrMzrlq1aqlqlWravv27ZKksLAwHThwwKnN6dOndfjw4fOO85HOjAMKCAhwegAAAHtyq7Dzv//9T4cOHVJ4eLgkKSEhQdnZ2Vq9erXVZtGiRSooKFB8fLyrygQAAGWISy9jHT161DpLI0k7duzQ2rVrVblyZVWuXFmjRo1S165dFRYWpp9//lmDBw/Wddddp+TkZElSvXr11LZtW/Xt21eTJ0/WqVOnlJqaqm7dunEnFgAAkOTiMzurVq3STTfdpJtuukmSNGjQIN100016/vnn5enpqfXr16tTp066/vrr1adPH8XFxem7776Tj4+PtY7p06crJiZGiYmJat++vZo3b64pU6a4qksAAKCMcemZnVatWskYc97l8+fPv+g6KleurBkzZpRmWQAAwEau6MzO9u3bNX/+fJ04cUKSLhhcAAAAXKFEYefQoUNKSkrS9ddfr/bt22vfvn2SpD59+uipp54q1QIBAACuRInCzsCBA+Xl5aVdu3bJ19fXmn/vvfdq3rx5pVYcAADAlSrRmJ1vvvlG8+fPV/Xq1Z3m16lTR7/++mupFAYAAFAaSnRm59ixY05ndAodPnzY6U4pAAAAVytR2GnRooU++OADa9rhcKigoEDjxo1T69atS604AACAK1Wiy1jjxo1TYmKiVq1apZMnT2rw4MHatGmTDh8+rOXLl5d2jQAAACVWojM7DRs21LZt29S8eXPdeeedOnbsmLp06aI1a9aodu3apV0jAABAiZX4QwUDAwP17LPPlmYtAAAApa5EYWf9+vXFznc4HCpfvryioqIYqAwAAMqEEoWdG2+8UQ6HQ9L/fWpy4bQklStXTvfee6/efvttlS9fvhTKBAAAKJkSjdn54osvVKdOHU2ZMkXr1q3TunXrNGXKFNWtW1czZszQv/71Ly1atEjPPfdcadcLAABwWUp0Zmf06NF64403lJycbM1r1KiRqlevruHDh2vlypWqWLGinnrqKb366qulViwAAMDlKtGZnQ0bNig6OrrI/OjoaG3YsEHSmUtdhd+ZBQAA4ColCjsxMTEaO3asTp48ac07deqUxo4dq5iY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f38TFRVlypcvb2rVqmWeffZZk5eXZ7Vxl33nMOasj0IEAACwGcbsAAAAWyPsAAAAWyPsAAAAWyPsAAAAWyPsAAAAWyPsAAAAWyPsAAAAWyPsALCtVq1aacCAAWVmPQBcg289B4D/b8mSJWrdurV+//13BQUFWfM///xzlStXznWFAbgihB0AuIjKlSu7ugQAV4DLWABKXatWrZSamqrU1FQFBgaqatWqGj58uAq/neb3339Xz549ValSJfn6+qpdu3bKzMy0nj9t2jQFBQVp1qxZqlOnjsqXL6/k5GTt3r3batO7d2917tzZabsDBgxQq1atzlvXhx9+qMaNG8vf319hYWHq3r27Dhw4IEnauXOnWrduLUmqVKmSHA6HevfubfXn7MtYl1r//PnzVa9ePfn5+alt27bat29fSV5OAFeIsAPgqnj//ffl5eWllStX6o033tBrr72md999V9KZoLJq1SrNnj1b6enpMsaoffv2OnXqlPX848ePa/To0frggw+0fPlyZWdnq1u3bldU06lTp/Tiiy9q3bp1mjVrlnbu3GkFmsjISH322WeSpIyMDO3bt09vvPFGseu51PpfffVVffjhh1q6dKl27dqlp59++orqB1AyXMYCcFVERkZq/Pjxcjgcqlu3rjZs2KDx48erVatWmj17tpYvX65bbrlFkjR9+nRFRkZq1qxZuvvuuyWdCSb//Oc/FR8fL+lMeKpXr55Wrlyppk2blqimhx56yPq5Vq1aevPNN9WkSRMdPXpUfn5+1uWqkJAQpzE7Z8vMzLzk+idPnqzatWtLklJTU/XCCy+UqG4AV4YzOwCuiptvvlkOh8OaTkhIUGZmpjZv3iwvLy8rxEhSlSpVVLduXW3ZssWa5+XlpSZNmljTMTExCgoKcmpzuVavXq2OHTsqKipK/v7+atmypSRp165dl7yOLVu2XFL9vr6+VtCRpPDwcOuSGYBri7ADwC15eHhYY4AKnX0Z6VzHjh1TcnKyAgICNH36dP3444/64osvJEknT54s9frOvXvL4XAUqRfAtUHYAXBVrFixwmn6hx9+UJ06dVS/fn2dPn3aafmhQ4eUkZGh+vXrW/NOnz6tVatWWdMZGRnKzs5WvXr1JEnBwcFFBvyuXbv2vPVs3bpVhw4d0tixY9WiRQvFxMQUOdPi7e0tScrPzz/veurVq3dJ9QMoOwg7AK6KXbt2adCgQcrIyNBHH32kCRMmqH///qpTp47uvPNO9e3bV8uWLdO6det0//33q1q1arrzzjut55crV05PPPGEVqxYodWrV6t37966+eabrfE6t912m1atWqUPPvhAmZmZGjFihDZu3HjeeqKiouTt7a0JEybol19+0ezZs/Xiiy86tYmOjpbD4dDcuXP122+/6ejRo0XWc6n1Ayg7CDsAroqePXvqxIkTatq0qVJSUtS/f3/169dPkjR16lTFxcXpjjvuUEJCgowx+uqrr5wu/fj6+mrIkCHq3r27mjVrJj8/P33yySfW8uTkZA0fPlyDBw9WkyZNdOTIEfXs2fO89QQHB2vatGmaOXOm6tevr7Fjx+rVV191alOtWjWNGjVKQ4cOVWhoqFJTU4td16XUD6DscBguIgMoZa1atdKNN96o119/vUTPnzZtmgYMGKDs7OxSrQvAnxNndgAAgK0RdgAAgK1xGQsAANgaZ3YAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICt/T9dVBQmgG5bMgAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "\"\"\"\n", + "By looking at the plot, I think that the mean will be between 30 and 40 years old.\n", + "I'm also guessing that the standard deviation will be around 10 years.\n", + "\"\"\"" + ], + "metadata": { + "id": "MMb_Rw1CcoOA" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "le9MEHg-AZnz" + }, + "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": 139, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "usmggQS0AZnz", + "outputId": "5c106f06-ac7a-43ef-d523-35597246c0b2" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "observation 36.56\n", + "dtype: float64\n", + "observation 12.81009\n", + "dtype: float64\n" + ] + } + ], + "source": [ + "print(age_pop.mean())\n", + "print(np.std(age_pop))" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "id": "6Oe16RVVAZnz", + "outputId": "811f2877-2e22-4dbd-c070-d9d9d209eec1" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 109 + } + ], + "source": [ + "\"\"\"\n", + "Indeed, the mean is 36.56 and the standard deviation is 12.81.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zns1SZ6TAZnz" + }, + "source": [ + "#### 3.- Now read the file `ages_population2.csv` . Calculate the frequency distribution and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + }, + "id": "mWimSwx-AZnz", + "outputId": "f3505110-60f4-4384-a61b-2f9f9cda35e9" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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vut43333KSgoSBMmTNCePXv0wgsvKDk5We+8884fXj+cBwNUktmzZxtJxT6MMWbFihVGkmnatKnJycmxnldQUGBatGhhEhMTTUFBgTU/JyfHREVFmeuuu86a179/f1O7dm3z888/W/O2bt1qPD09zdmb8+7du40kM3v27CJ1SjITJkywpocPH27Cw8PNoUOHXNoNGjTIBAQEWLUW1t+6dWuTm5trtXvxxReNJLN582ZjjDF5eXkmKirKREZGmt9//92lz7PX7+abbzYNGzY0+fn51rzvvvuuxLrP1r9/f+Pt7W127dplzdu3b5/x9/c311xzTZFxePbZZ0vtzxhj3nrrLePh4WG+/PJLl/kzZ840ksyaNWuseWf//golJiaapk2bWtOZmZnG39/fxMTEmBMnTri0PXscunXrZiSZN99805qXm5trwsLCzMCBA8usuzy1ZGRkGC8vL9O/f3+XdhMnTjSSzNChQ615Tz75pKlbt67Zvn27S9uxY8caT09Pk56eXmo93bp1M926dbOmy7vdlOTZZ581kszu3buLLJNkvL29zc6dO615GzduNJLM9OnTrXnl3cZLUvg+XrdunTXv559/NrVr1zY33nijNa+822XhviI6OtqcOnXKmj916lQjyXz00Ucur332+7VQZGSky++tcJxXrFhhzStuvSZPnmwcDofLPiQpKcmU9Ofw3Nc/33VMSEhw2d4ffPBB4+npaTIzM4t9PVQNTmOh0r388staunSpy+NsQ4cOVZ06dazpDRs2aMeOHRo8eLAOHz6sQ4cO6dChQzp+/Lji4+O1atUqFRQUKD8/X0uWLFH//v3VuHFj6/mtW7dWYmJihWo1xuj9999Xnz59ZIyxXvvQoUNKTExUVlaWvvvuO5fn3H777S7XZXTt2lWS9NNPP0k6c4h79+7dGjVqVJFrZc7+b3XIkCHat2+fVqxYYc2bO3eu6tSpo4EDB5ZYc35+vj7//HP1799fTZs2teaHh4dr8ODBWr16tXVq8HzMnz9frVu3VqtWrVzG4dprr5UklzrP/v0VHsnr1q2bfvrpJ2VlZUk6c3Tr6NGjGjt2bJHrHs79r93Pz0+33nqrNe3t7a0rrrjCGtPSlKeWZcuWKS8vT/fee6/Lc++7775ix6Fr164KCgpyGYeEhATl5+cXe+qmPMrabioqISFBzZo1s6Y7dOggp9Np9VuRbbw4sbGxio6OtqYbN26sfv36acmSJcrPz6/Qdjly5EjVqlXLmr7nnnvk5eWlTz/9tMLjcbazt43jx4/r0KFDuuqqq2SMKfYUclkquo5nb+9du3ZVfn6+fv755wqsESqK01iodFdccUWpFyife6fWjh07JJ0JQSXJyspSbm6uTpw4oRYtWhRZ3rJlywrtIH/77TdlZmZq1qxZmjVrVrFtDh486DJ9dtCSpKCgIEmyrjXYtWuXpLLvQLvuuusUHh6uuXPnKj4+XgUFBXr77bfVr18/+fv7l1pzTk6OWrZsWWRZ69atVVBQoF9++UVt27Yt9fXPtWPHDm3bts3lFMnZzh6HNWvWaMKECUpNTVVOTo5Lu6ysLAUEBJR7HCSpUaNGRQJQUFCQNm3aVOZzy1NL4R+W5s2buywPDg62fn+FduzYoU2bNpVrHM5HWdtNRZ3bb2Hfhf1WZBsvTnHvu0svvVQ5OTnWNSjnu12e26efn5/Cw8OLXJNUUenp6Xr88ce1cOHCIuNcGITPR0Xee1X1e8f5Iezggjv7vy1J1kWfzz77rDp27Fjsc/z8/IpcJFuaks735+fnF/vat956a4lhq0OHDi7Tnp6exbYzxpS7vsJ+Bg8erH//+9965ZVXtGbNGu3bt8/lCMeFVFBQoPbt2+v5558vdnlERISkM2EuPj5erVq10vPPP6+IiAh5e3vr008/1bRp08p1Ee+5KjqmVVFLQUGBrrvuOj3yyCPFLr/00kvPu0+p8rab8+23Itt4TXDue7m45dddd52OHDmiMWPGqFWrVqpbt6727t2rYcOGVWjbqIiq+r3j/BB24HaFh+CdTqcSEhJKbBcSEqI6depYR4LOlpaW5jJd+N/TuR/Edu6h45CQEPn7+ys/P7/U1z4fheuzZcuWMvscMmSI/vnPf+rjjz/WZ599ppCQkDJPyYWEhMjX17fIOkvSjz/+KA8PDyuYnG/dGzduVHx8fKkXh3788cfKzc3VwoULXf5rPfs0V2F/0plxOPeISmUpby2Fd6Xt3LnT5cji4cOHi/yH3axZMx07dqzStoc/6o9eqFtZ23hx77vt27fL19fXOgp2vtvljh071L17d2v62LFj2r9/v3r37m3NCwoKKvI+PnXqlPbv319qvZs3b9b27dv1xhtvaMiQIdb8c0+rS+Uf46p676Hqcc0O3C46OlrNmjXTc889p2PHjhVZXniI3NPTU4mJiVqwYIHS09Ot5du2bdOSJUtcnuN0OlW/fv0i11e88sorLtOenp4aOHCg3n//fW3ZsqXE1z4ff/rTnxQVFaUXXnihyE763P/mOnTooA4dOui1117T+++/r0GDBpX5AWaenp7q0aOHPvroI5fD/QcOHNC8efPUpUsXOZ3O8677pptu0t69e/Xvf/+7yLITJ07o+PHj1uufuy5ZWVmaPXu2y3N69Oghf39/TZ48ucgdT5X1X215a4mPj5eXl1eRW9L/9a9/FenzpptuUmpqapFtSjoTnvPy8iqj9HKrW7eu9doVUVnbeGpqqsu1Pb/88os++ugj9ejRQ56enhXaLmfNmqXTp09b0zNmzFBeXp7LHXjNmjUr8j6eNWtWmUd2its2jDHWxz+crbxjXFXvPVQ9juzA7Tw8PPTaa6+pV69eatu2rW6//XZdcskl2rt3r1asWCGn06mPP/5YkjRp0iQtXrxYXbt21b333qu8vDxNnz5dbdu2LXJ9x5133qkpU6bozjvvVKdOnbRq1Spt3769yOtPmTJFK1asUExMjEaMGKE2bdroyJEj+u677/TFF1/oyJEj570+M2bMUJ8+fdSxY0fdfvvtCg8P148//qgffvihyB/RIUOG6KGHHpKkcp/Ceuqpp7R06VJ16dJF9957r7y8vPTqq68qNze33J9Pc67bbrtN7777ru6++26tWLFCV199tfLz8/Xjjz/q3Xff1ZIlS9SpUyf16NFD3t7e6tOnj+666y4dO3ZM//73v9WgQQOX/7adTqemTZumO++8U507d9bgwYMVFBSkjRs3KicnR2+88UaF6jxbeWsJDQ3VAw88oH/+85/q27evevbsqY0bN+qzzz5T/fr1Xf6zf/jhh7Vw4ULdcMMNGjZsmKKjo3X8+HFt3rxZ7733nvbs2ePyUQpVrfCi4EcffVSDBg1SrVq11KdPH+sPdHlUxjberl07JSYmutx6Lp15TxY63+3y1KlTio+P10033aS0tDS98sor6tKli/r27Wu1ufPOO3X33Xdr4MCBuu6667Rx40YtWbKkzN9Bq1at1KxZMz300EPau3evnE6n3n///WKvlSkc4/vvv1+JiYny9PTUoEGDiu23Kt57uAAu/A1gsKvCWy2//fbbYpcX3ho6f/78Ypd///33ZsCAAaZe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cDg0bNgwa33OPo1V3vqXLFmi1q1by8/PTz179tT+/fsrMpwA/iDCDoAq8cYbb8jLy0vffPONXnzxRT3//PN67bXXJJ0JKuvWrdPChQuVmpoqY4x69+6t06dPW8/PycnR008/rTfffFNr1qxRZmamBg0a9IdqOn36tJ588klt3LhRCxYs0J49e6xAExERoffff1+SlJaWpv379+vFF18stp/y1v/cc8/prbfe0qpVq5Senq6HHnroD9UPoGI4jQWgSkRERGjatGlyOBxq2bKlNm/erGnTpikuLk4LFy7UmjVrdNVVV0mS5s6dq4iICC1YsEB/+ctfJJ0JJv/6178UExMj6Ux4at26tb755htdccUVFarpjjvusH5u2rSpXnrpJXXu3FnHjh2Tn5+fdbqqQYMGLtfsnG3Hjh3lrn/mzJlq1qyZJCk5OVlPPPFEheoG8MdwZAdAlbjyyivlcDis6djYWO3YsUNbt26Vl5eXFWIkqV69emrZsqW2bdtmzfPy8lLnzp2t6VatWikwMNClzflav369+vTpo8aNG8vf31/dunWTJKWnp5e7j23btpWrfl9fXyvoSFJ4eLh1ygzAhUXYAVAjeXh4WNcAFTr7NNK5jh8/rsTERDmdTs2dO1fffvutPvzwQ0nSqVOnKr2+c+/ecjgcReoFcGEQdgBUibVr17pMf/3112rRooXatGmjvLw8l+WHDx9WWlqa2rRpY83Ly8vTunXrrOm0tDRlZmaqdevWkqSQkJAiF/xu2LChxHp+/PFHHT58WFOmTFHXrl3VqlWrIkdavL29JUn5+fkl9tO6dety1Q+g+iDsAKgS6enpGj16tNLS0vT2229r+vTpeuCBB9SiRQv169dPI0aM0OrVq7Vx40bdeuutuuSSS9SvXz/r+bVq1dJ9992ntWvXav369Ro2bJiuvPJK63qda6+9VuvWrdObb76pHTt2aMKECdqyZUuJ9TRu3Fje3t6aPn26fvrpJy1cuFBPPvmkS5vIyEg5HA4tWrRIv/32m44dO1akn/LWD6D6IOwAqBJDhgzRiRMndMUVVygpKUkPPPCARo4cKUmaPXu2oqOjdcMNNyg2NlbGGH366acup358fX01ZswYDR48WFdffbX8/Pz0zjvvWMsTExM1fvx4PfLII+rcubOOHj2qIUOGlFhPSEiI5syZo/nz56tNmzaaMmWKnnvuOZc2l1xyiSZNmqSxY8cqNDRUycnJxfZVnvoBVB8Ow0lkAJUsLi5OHTt21AsvvFCh58+ZM0ejRo1SZmZmpdYF4OLEkR0AAGBrhB0AAGBrnMYCAAC2xpEdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga4QdAABga/8P76PD9g5x8FEAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ], + "source": [ + "age_pop2 = pd.read_csv(\"ages_population2.csv\")\n", + "result_fd = calculate_fd(age_pop2[\"observation\"])\n", + "\n", + "plt.hist(age_pop2[\"observation\"])\n", + "plt.ylabel(\"age\")\n", + "plt.xlabel(\"population\")\n", + "plt.title('Frequency of each age in the population')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xfa9popdAZnz" + }, + "source": [ + "#### 4.- What do you see? Is there any difference with the frequency distribution in step 1?" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 53 + }, + "id": "vAZzBwE2AZn0", + "outputId": "212106ee-6c9e-4c1a-ddb5-dd4115e7b2fd" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'\\nThe population in this survey were a lot younger as all values are between 20 and 35 years old. \\nThe mean seems to be around 27.5 years old. The standard deviation will also be a lower than in the previous example as values are closer to each other. \\n'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 141 + } + ], + "source": [ + "\"\"\"\n", + "The population in this survey were a lot younger as all values are between 20 and 35 years old.\n", + "The mean seems to be around 27.5 years old. The standard deviation will also be a lower than in the previous example as values are closer to each other.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tYE7gaP4AZn5" + }, + "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": 142, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "nFGqxrtrAZn5", + "outputId": "680b52c9-aaa0-4f82-b0b9-fe08017a1097" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "observation 27.155\n", + "dtype: float64\n", + "observation 2.968329\n", + "dtype: float64\n" + ] + } + ], + "source": [ + "print(age_pop2.mean())\n", + "print(np.std(age_pop2))" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "id": "cJ0yjyTdAZn6", + "outputId": "60d96e5b-cb5a-4242-ffe7-a83a916f2877" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 113 + } + ], + "source": [ + "\"\"\"\n", + "As expected, the mean is a bit more than 27 years old.\n", + "The standard deviation is now 2.97.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Mg0fxBIxAZn6" + }, + "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": 143, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + }, + "id": "MZdmS0R8AZn6", + "outputId": "88374ee1-662c-4105-c8cc-0e8c0503d1ca" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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QvgBAACWQvgBAACWQvgBAACWQvgBAACWQvgBAACWQvgBAACWQvgBAACWQvgBAACWQvgBAACWQvgBAACWclXhZ+fOnVq8eLFOnz4tSTLGlEhRAAAA10qxws+xY8cUExOjG2+8UZ07d1ZaWpokacCAAfr73/9eogUCAACUpGKFn+HDh8vNzU379u2Tp6envf2BBx7QokWLSqw4AACAklas8PPdd9/pxRdfVM2aNR3a69evr7179xZ5O6tWrVKXLl0UEhIim82m+fPnO6w3xui5555TcHCwKlWqpJiYGKWmpjr0OX78uHr37i1vb2/5+vpqwIABOnnyZHGGBQAALKBY4ScrK8vhiE++48ePy8PD44q207x5c02bNq3Q9ZMnT9brr7+uN998U2vXrlXlypUVGxurv/76y96nd+/e+uWXX7RkyRItXLhQq1at0qBBg658UAAAwBKKFX7atWunDz74wL5ss9mUl5enyZMnq0OHDkXeTlxcnF544QXde++9BdYZYzRlyhQ9++yzuueeexQeHq4PPvhABw8etB8h2r59uxYtWqR33nlHkZGRatu2raZOnaq5c+fq4MGDxRkaAAAo59yKc6fJkycrOjpa69ev15kzZzRy5Ej98ssvOn78uNasWVMihe3evVuHDh1STEyMvc3Hx0eRkZFKSkpSz549lZSUJF9fX7Vs2dLeJyYmRi4uLlq7dm2hoUqSsrOzlZ2dbV/OzMwskZoBAEDpV6wjP02bNtWOHTvUtm1b3XPPPcrKylL37t21adMm1atXr0QKO3TokCSpevXqDu3Vq1e3rzt06JCqVavmsN7NzU3+/v72PoVJSEiQj4+P/RYaGloiNQMAgNKvWEd+pHNHYZ555pmSrOW6GTNmjEaMGGFfzszMJAABAGARxQo/W7ZsKbTdZrOpYsWKqlWr1hVNfC5MUFCQJOnw4cMKDg62tx8+fFg33XSTvc+RI0cc7peTk6Pjx4/b718YDw+Pq64PAACUTcUKPzfddJNsNpuk//tU5/xlSapQoYIeeOABvfXWW6pYsWKxCqtTp46CgoK0dOlSe9jJzMzU2rVr9cQTT0iS2rRpo/T0dG3YsEERERGSpGXLlikvL0+RkZHFelwAAFC+FWvOzxdffKH69etrxowZ2rx5szZv3qwZM2aoQYMGmjNnjt59910tW7ZMzz777CW3c/LkSSUnJys5OVnSuUnOycnJ2rdvn2w2m4YNG6YXXnhBCxYs0NatW9WnTx+FhISoW7dukqRGjRqpU6dOGjhwoNatW6c1a9Zo8ODB6tmzp0JCQoozNAAAUM4V68jPpEmT9Nprryk2Ntbe1qxZM9WsWVNjx47VunXrVLlyZf3973/Xyy+/fNHtrF+/3uHS+Px5OH379tWsWbM0cuRIZWVladCgQUpPT1fbtm21aNEih6NJs2fP1uDBgxUdHS0XFxf16NFDr7/+enGGBQAALKBY4Wfr1q0KCwsr0B4WFqatW7dKOndqLP87vy4mKirqkl+GarPZNHHiRE2cOPGiffz9/TVnzpwiVg4AAKyuWKe9GjZsqMTERJ05c8bedvbsWSUmJqphw4aSpAMHDhS4TB0AAMDZinXkZ9q0aeratatq1qyp8PBwSeeOBuXm5mrhwoWSpN9//11PPvlkyVUKAABQAooVfm699Vbt3r1bs2fP1o4dOyRJ9913n3r16iUvLy9J0sMPP1xyVQIAAJSQYn/IoZeXl26//XbVrl3bfvpr+fLlkqSuXbuWTHUAAAAlrFjh5/fff9e9996rrVu3ymazyRjj8Dk/ubm5JVYgAABASSrWhOehQ4eqTp06OnLkiDw9PbVt2zatXLlSLVu21IoVK0q4RAAAgJJTrCM/SUlJWrZsmQIDA+Xi4iJXV1e1bdtWCQkJeuqpp7Rp06aSrhMAAKBEFOvIT25urn1ic2BgoA4ePCjp3Of8pKSklFx1AAAAJaxYR36aNm2qzZs3q06dOoqMjNTkyZPl7u6uGTNmqG7duiVdIwAAQIkpVvh59tlnlZWVJUmaOHGi7r77brVr104BAQH65JNPSrRAAACAklSs8HP+d3rdcMMN+u2333T8+HH5+fk5XPUFAABQ2hT7c34u5O/vX1KbAgAAuGaKNeEZAACgrCL8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAAS3FzdgFASag9+mtnlwAAKCNK/ZGf2rVry2azFbjFx8dLkqKiogqse/zxx51cNQAAKK1K/ZGfn3/+Wbm5ufblbdu26c4779R9991nbxs4cKAmTpxoX/b09LyuNQIAgLKj1IefqlWrOiwnJiaqXr16at++vb3N09NTQUFB17s0AABQBpX6017nO3PmjD766CP1799fNpvN3j579mwFBgaqadOmGjNmjE6dOuXEKgEAQGlW6o/8nG/+/PlKT09Xv3797G29evVSWFiYQkJCtGXLFo0aNUopKSn6/PPPL7qd7OxsZWdn25czMzOvZdkAAKAUKVPh591331VcXJxCQkLsbYMGDbL/3KxZMwUHBys6Olq7du1SvXr1Ct1OQkKCJkyYcM3rBQAApU+ZOe21d+9eff/993r00Ucv2S8yMlKStHPnzov2GTNmjDIyMuy3/fv3l2itAACg9CozR35mzpypatWq6a677rpkv+TkZElScHDwRft4eHjIw8OjJMsDAABlRJkIP3l5eZo5c6b69u0rN7f/K3nXrl2aM2eOOnfurICAAG3ZskXDhw/X7bffrvDwcCdWDAAASqsyEX6+//577du3T/3793dod3d31/fff68pU6YoKytLoaGh6tGjh5599lknVQoAAEq7MhF+OnbsKGNMgfbQ0FCtXLnSCRUBAICyqsxMeAYAACgJhB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGAphB8AAGApbs4uAABQPtQe/bWzSwCKhCM/AADAUgg/AADAUgg/AADAUpjzAwBAGVIW51btSbzL2SU44MgPAACwFMIPAACwFMIPAACwFMIPAACwlFIdfsaPHy+bzeZwa9iwoX39X3/9pfj4eAUEBKhKlSrq0aOHDh8+7MSKAQBAaVeqw48kNWnSRGlpafbb6tWr7euGDx+ur776SvPmzdPKlSt18OBBde/e3YnVAgCA0q7UX+ru5uamoKCgAu0ZGRl69913NWfOHN1xxx2SpJkzZ6pRo0b66aefdMstt1zvUgEAQBlQ6o/8pKamKiQkRHXr1lXv3r21b98+SdKGDRt09uxZxcTE2Ps2bNhQtWrVUlJSkrPKBQAApVypPvITGRmpWbNmqUGD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KytLjzzyiLNLAwAApUy5CD8PPPCA/vjjDz333HM6dOiQbrrpJi1atKjAJGgAAIByEX4kafDgwRc9zXWteXh4aNy4cQVOpZVXVhovYy2/rDRexlp+WWm8JTlWm7nS68MAAADKsDL/IYcAAABXgvADAAAshfADAAAshfADAAAshfBTAqZNm6batWurYsWKioyM1Lp165xd0lVbtWqVunTpopCQENlsNs2fP99hvTFGzz33nIKDg1WpUiXFxMQoNTXVOcVepYSEBLVq1UpeXl6qVq2aunXrppSUFIc+f/31l+Lj4xUQEKAqVaqoR48eBT5VvKyYPn26wsPD7R8U1qZNG3377bf29eVprBdKTEyUzWbTsGHD7G3lZbzjx4+XzWZzuDVs2NC+vryMM9+BAwf00EMPKSAgQJUqVVKzZs20fv16+/ry9B5Vu3btAq+tzWZTfHy8pPL12ubm5mrs2LGqU6eOKlWqpHr16un55593+O6uEnltDa7K3Llzjbu7u3nvvffML7/8YgYOHGh8fX3N4cOHnV3aVfnmm2/MM888Yz7//HMjyXzxxRcO6xMTE42Pj4+ZP3++2bx5s+nataupU6eOOX36tHMKvgqxsbFm5syZZtu2bSY5Odl07tzZ1KpVy5w8edLe5/HHHzehoaFm6dKlZv369eaWW24xt956qxOrLr4FCxaYr7/+2uzYscOkpKSYf/7zn6ZChQpm27ZtxpjyNdbzrVu3ztSuXduEh4eboUOH2tvLy3jHjRtnmjRpYtLS0uy3P/74w76+vIzTGGOOHz9uwsLCTL9+/czatWvN77//bhYvXmx27txp71Oe3qOOHDni8LouWbLESDLLly83xpSv13bSpEkmICDALFy40OzevdvMmzfPVKlSxbz22mv2PiXx2hJ+rlLr1q1NfHy8fTk3N9eEhISYhIQEJ1ZVsi4MP3l5eSYoKMi89NJL9rb09HTj4eFhPv74YydUWLKOHDliJJmVK1caY86NrUKFCmbevHn2Ptu3bzeSTFJSkrPKLFF+fn7mnXfeKbdjPXHihKlfv75ZsmSJad++vT38lKfxjhs3zjRv3rzQdeVpnMYYM2rUKNO2bduLri/v71FDhw419erVM3l5eeXutb3rrrtM//79Hdq6d+9uevfubYwpudeW015X4cyZM9qwYYNiYmLsbS4uLoqJiVFSUpITK7u2du/erUOHDjmM28fHR5GRkeVi3BkZGZIkf39/SdKGDRt09uxZh/E2bNhQtWrVKvPjzc3N1dy5c5WVlaU2bdqU27HGx8frrrvuchiXVP5e29TUVIWEhKhu3brq3bu39u3bJ6n8jXPBggVq2bKl7rvvPlWrVk0tWrTQ22+/bV9fnt+jzpw5o48++kj9+/eXzWYrd6/trbfeqqVLl2rHjh2SpM2bN2v16tWKi4uTVHKvbbn5hGdnOHr0qHJzcwt8jUb16tX122+/Oamqa+/QoUOSVOi489eVVXl5eRo2bJhuu+02NW3aVNK58bq7uxf48tuyPN6tW7eqTZs2+uuvv1SlShV98cUXaty4sZKTk8vdWOfOnauNGzfq559/LrCuPL22kZGRmjVrlho0aKC0tDRNmDBB7dq107Zt28rVOCXp999/1/Tp0zVixAj985//1M8//6ynnnpK7u7u6tu3b7l+j5o/f77S09PVr18/SeVrH5ak0aNHKzMzUw0bNpSrq6tyc3M1adIk9e7dW1LJ/f0h/ADniY+P17Zt27R69Wpnl3JNNWjQQMnJycrIyNB///tf9e3bVytXrnR2WSVu//79Gjp0qJYsWaKKFSs6u5xrKv8/Y0kKDw9XZGSkwsLC9Omnn6pSpUpOrKzk5eXlqWXLlvrXv/4lSWrRooW2bdumN998U3379nVyddfWu+++q7i4OIWEhDi7lGvi008/1ezZszVnzhw1adJEycnJGjZsmEJCQkr0teW011UIDAyUq6trgVn1hw8fVlBQkJOquvbyx1bexj148GAtXLhQy5cvV82aNe3tQUFBOnPmjNLT0x36l+Xxuru764YbblBERIQSEhLUvHlzvfbaa+VurBs2bNCRI0d08803y83NTW5ublq5cqVef/11ubm5qXr16uVqvOfz9fXVjTfeqJ07d5a71zU4OFiNGzd2aGvUqJH9NF95fY/au3evvv/+ez366KP2tvL22v7jH//Q6NGj1bNnTzVr1kwPP/ywhg8froSEBEkl99oSfq6Cu7u7IiIitHTpUntbXl6eli5dqjZt2jixsmurTp06CgoKchh3Zmam1q5dWybHbYzR4MGD9cUXX2jZsmWqU6eOw/qIiAhVqFDBYbwpKSnat29fmRxvYfLy8pSdnV3uxhodHa2tW7cqOTnZfmvZsqV69+5t/7k8jfd8J0+e1K5duxQcHFzuXtfbbrutwMdR7NixQ2FhYZLK33tUvpkzZ6patWq666677G3l7bU9deqUXFwco4mrq6vy8vIkleBrWyLTsy1s7ty5xsPDw8yaNcv8+uuvZtCgQcbX19ccOnTI2aVdlRMnTphNmzaZTZs2GUnmlVdeMZs2bTJ79+41xpy71NDX19d8+eWXZsuWLeaee+4ps5eRPvHEE8bHx8esWLHC4XLSU6dO2fs8/vjjplatWmbZsmVm/fr1pk2bNqZNmzZOrLr4Ro8ebVauXGl2795ttmzZYkaPHm1sNpv57rvvjDHla6yFOf9qL2PKz3j//ve/mxUrVpjdu3ebNWvWmJiYGBMYGGiOHDlijCk/4zTm3McWuLm5mUmTJpnU1FQze/Zs4+npaT766CN7n/L0HmXMuSuJa9WqZUaNGlVgXXl6bfv27Wtq1Khhv9T9888/N4GBgWbkyJH2PiXx2hJ+SsDUqVNNrVq1jLu7u2ndurX56aefnF3SVVu+fLmRVODWt29fY8y5yw3Hjh1rqlevbjw8PEx0dLRJSUlxbtHFVNg4JZmZM2fa+5w+fdo8+eSTxs/Pz3h6epp7773XpKWlOa/oq9C/f38TFhZm3N3dTdWqVU10dLQ9+BhTvsZamAvDT3kZ7wMPPGCCg4ONu7u7qVGjhnnggQccPvemvIwz31dffWWaNm1qPDw8TMOGDc2MGTMc1pen9yhjjFm8eLGRVOgYytNrm5mZaYYOHWpq1aplKlasaOrWrWueeeYZk52dbe9TEq+tzZjzPjYRAACgnGPODwAAsBTCDwAAsBTCDwAAsBTCDwAAsBTCDwAAsBTCDwAAsBTCDwAAsBTCD4ByKyoqSsOGDSs12wFQOvCt7gDw/61YsUIdOnTQn3/+KV9fX3v7559/rgoVKjivMAAlivADAJfh7+/v7BIAlCBOewEocVFRURo8eLAGDx4sHx8fBQYGauzYscr/Np0///xTffr0kZ+fnzw9PRUXF6fU1FT7/WfNmiVfX1/Nnz9f9evXV8WKFRUbG6v9+/fb+/Tr10/dunVzeNxhw4YpKirqonV9+OGHatmypby8vBQUFKRevXrpyJEjkqQ9e/aoQ4cOkiQ/Pz/ZbDb169fPPp7zT3sVtf7FixerUaNGqlKlijp16qS0tLTiPJ0AShjhB8A18f7778vNzU3r1q3Ta6+9pldeeUXvvPOOpHPBZf369VqwYIGSkpJkjFHnzp119uxZ+/1PnTqlSZMm6YMPPtCaNWuUnp6unj17XlVNZ8+e1fPPP6/Nmzdr/vz52rNnjz3ghIaG6rPPPpMkpaSkKC0tTa+99lqh2ylq/S+//LI+/PBDrVq1Svv27dPTTz99VfUDKBmc9gJwTYSGhurVV1+VzWZTgwYNtHXrVr366quKiorSggULtGbNGt16662SpNmzZys0NFTz58/XfffdJ+lcUPnPf/6jyMhISefCVKNGjbRu3Tq1bt26WDX179/f/nPdunX1+uuvq1WrVjp58qSqVKliP71VrVo1hzk/50tNTS1y/W+++abq1asnSRo8eLAmTpxYrLoBlCyO/AC4Jm655RbZbDb7cps2bZSamqpff/1Vbm5u9lAjSQEBAWrQoIG2b99ub3Nzc1OrVq3syw0bNpSvr69Dnyu1YcMGdenSRbVq1ZKXl5fat28vSdq3b1+Rt7F9+/Yi1e/p6WkPPpIUHBxsP8UGwLkIPwDKJBcXF/sconznn3a6UFZWlmJjY+Xt7a3Zs2fr559/1hdffCFJOnPmTInXd+HVYTabrUC9AJyD8APgmli7dq3D8k8//aT69eurcePGysnJcVh/7NgxpaSkqHHjxva2nJwcrV+/3r6ckpKi9PR0NWrUSJJUtWrVAhOIk5OTL1rPb7/9pmPHjikxMVHt2rVTw4YNCxyJcXd3lyTl5uZedDuNGjUqUv0ASi/CD4BrYt++fRoxYoRSUlL08ccfa+rUqRo6dKjq16+ve+65RwMHDtTq1au1efNmPfTQQ6pRo4buuece+/0rVKigIUOGaO3atdqwYYP69eunW265xT7f54477tD69ev1wQcfKDU1VePGjdO2bdsuWk+tWrXk7u6uqVOn6vfff9eCBQv0/PPPO/QJCwuTzWbTwoUL9ccff+jkyZMFtlPU+gGUXoQfANdEnz59dPr0abVu3Vrx8fEaOnSoBg0aJEmaOXOmIiIidPfdd6tNmzYyxuibb75xOFXk6empUaNGqVevXrrttttUpUoVffLJJ/b1sbGxGjt2rEaOHKlWrVrpxIkT6tOnz0XrqVq1qmbNmqV58+apcePGSkxM1Msvv+zQp0aNGpowYYJGjx6t6tWra/DgwYVuqyj1Ayi9bIaT0ABKWFRUlG666SZNmTKlWPefNWuWhg0bpvT09BKtCwAkjvwAAACLIfwAAABL4bQXAACwFI78AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAASyH8AAAAS/l/pCkdExduuxoAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ], + "source": [ + "age_pop3 = pd.read_csv(\"ages_population3.csv\")\n", + "result_fd = calculate_fd(age_pop3[\"observation\"])\n", + "\n", + "plt.hist(age_pop3[\"observation\"])\n", + "plt.ylabel(\"age\")\n", + "plt.xlabel(\"population\")\n", + "plt.title('Frequency of each age in the population')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "T-jve2nVAZn6" + }, + "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": 144, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "b0YXcryFAZn6", + "outputId": "e986dc48-62c3-435d-8fe0-9e7f343d4e9a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "observation 41.989\n", + "dtype: float64\n", + "observation 16.136632\n", + "dtype: float64\n" + ] + } + ], + "source": [ + "print(age_pop3.mean())\n", + "print(np.std(age_pop3))" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 71 + }, + "id": "EMYzD26UAZn6", + "outputId": "b68fbc4f-08e9-4f1c-db29-74005497331c" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "\"\\nAs in the step1, we have a very diverse population with people between 0 and 80 years old. \\nWe can see that the mean is a bit higher than in the step 1 as more people are aged between 40 and 55 years old. \\n\\nThe standard deviations is also higher because the grap isn't as symetric and values are higher on the right side of the mean. There is also a pic between 65 and 70 years old increasing the gap. \\n\\n\"" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 145 + } + ], + "source": [ + "\"\"\"\n", + "As in the step1, we have a very diverse population with people between 0 and 80 years old.\n", + "We can see that the mean is a bit higher than in the step 1 as more people are aged between 40 and 55 years old.\n", + "\n", + "The standard deviations is also higher because the grap isn't as symetric and values are higher on the right side of the mean. There is also a pic between 65 and 70 years old increasing the gap.\n", + "\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "96bMUz8FAZn6" + }, + "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": 150, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ESN7EjieAZn6", + "outputId": "c7be786d-a6d3-4d5f-db9a-6759d353d193" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Q1: 30.0\n", + "Q2 (Median): 40.0\n", + "Q3: 53.0\n" + ] + } + ], + "source": [ + "q1 = np.percentile(age_pop3, 25)\n", + "q2 = np.percentile(age_pop3, 50)\n", + "q3 = np.percentile(age_pop3, 75)\n", + "\n", + "print(\"Q1:\", q1)\n", + "print(\"Q2 (Median):\", q2)\n", + "print(\"Q3:\", q3)" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "id": "HBD-IxJqAZn6", + "outputId": "3649d5be-42cf-40bb-cd8c-ebc244e28781" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 118 + } + ], + "source": [ + "\"\"\"\n", + "The median and the mean are very similar.\n", + "q1 is also closer to the median than q3 because more people are older than the mean.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-wOwSiJsAZn6" + }, + "source": [ + "#### 4.- Calculate other percentiles that might be useful to give more arguments to your reasoning." + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "mDQBo1AsAZn6", + "outputId": "9b21c535-3b3c-4692-bb08-0ab2fb46962e" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "P1: 28.0\n", + "P2: 36.0\n", + "P3: 45.0\n", + "P4: 57.0\n" + ] + } + ], + "source": [ + "p1 = np.percentile(age_pop3, 20)\n", + "p2 = np.percentile(age_pop3, 40)\n", + "p3 = np.percentile(age_pop3, 60)\n", + "p4 = np.percentile(age_pop3, 80)\n", + "\n", + "print(\"P1:\", p1)\n", + "print(\"P2:\", p2)\n", + "print(\"P3:\", p3)\n", + "print(\"P4:\", p4)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "R2S3IPAVAZn6" + }, + "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": 121, + "metadata": { + "id": "BpdyWNxbAZn6" + }, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 36 + }, + "id": "xe66yq3sAZn7", + "outputId": "0ae412fc-41e9-40cb-f2df-c84aed778a7b" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 122 + } + ], + "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" + }, + "colab": { + "provenance": [] + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file