{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "HPbhfm8BemdN" }, "source": [ "# MyFitnessPal: Guide to data extraction and analysis" ] }, { "cell_type": "markdown", "metadata": { "id": "NXqYLOxNeoX_" }, "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "-0QR03kueqpK" }, "source": [ "A picture of the MyFitnessPal Mobile Application" ] }, { "cell_type": "markdown", "metadata": { "id": "2ZZHXApgesVP" }, "source": [ "Do you know that DIET stands for Did I Eat That?

\n", "Jokes aside, in this notebook we will be doing just that. We will connect to the Cronometer API to analyze the participants nutritional and exercise habits." ] }, { "cell_type": "markdown", "metadata": { "id": "tBNVIh27et3L" }, "source": [ "MyFitnessPal is regarded as a personal diary for logging nutrition and exercise. It lets you track your meals and workouts and provides you with required nutrition figures to attain your desired body measurements.\n", "\n", "MyFitnessPal follows a freemium model offering a digital service accessible through its mobile applications (iOS and Android). Users also have an option to upgrade and unlock more advanced features like Custom Calorie Goals, In-depth meal Analysis, Workout Routines, etc for a monthly fee of $9.99.\n", "\n", "We've been using the MyFitnessPlan application for the past few weeks and we will show you how to extract its data, visualize your meals and compute correlations between multiple metrics of the data. Wearipedia can easily extract from MyFitnessPal servers for our use case.\n", "\n", "\n", "For this notebook we will be focusing on metrics of the participant's activities like calories, micronutrients, macronutrients, workouts, etc." ] }, { "cell_type": "markdown", "metadata": { "id": "bnb9q2Qiev_f" }, "source": [ "We will be able to extract the following parameters:\n", "\n", "Parameter Name | Sampling Frequency \n", "-------------------|-----------------\n", "Calorie Intake | Per Food Item \n", "Carbohydrates | Per Food Item \n", "Fat | Per Food Item\n", "Protein | Per Food Item\n", "Sodium | Per Food Item\n", "Sugar | Per Food Item \n", "Vitamin A | Per Food Item \n", "Vitamin C | Per Food Item \n", "Iron | Per Food Item \n", "Calcium | Per Food Item \n", "Fibre | Per Food Item \n", "Calories Burned | Per Activity \n", "Sets/Reps | Per Exercise\n", "Weights | Per Exercise\n", "Weight | Depending upon User's inputs\n", "Height | Depending upon User's inputs\n", "Neck | Depending upon User's inputs\n", "Waist | Depending upon User's inputs\n", "Hips | Depending upon User's inputs" ] }, { "cell_type": "markdown", "metadata": { "id": "tAzDNzYjeyY4" }, "source": [ "In this guide, we sequentially cover the following **five** topics to extract data from Cronometer servers:\n", "\n", "1. **Set up**
\n", "2. **Authentication/Authorization**
\n", " - Requires cookies from your browser to login.
\n", "3. **Data extraction**
\n", " - We get data via wearipedia in a couple lines of code
\n", "4. **Data Exporting**\n", " - We export all of this data to file formats compatible by R, Excel, and MatLab.\n", "5. **Adherence**\n", " - We simulate non-adherence by dynamically removing datapoints from our simulated data.\n", "6. **Visualization**\n", " - We create a simple plot to visualize our data.\n", "7. **Advanced visualization**\n", " - 7.1 Visualizing participant's Weekly Calorie Intake!
\n", " - 7.2 Visualizing participant's Weekly Workout Repetitions!
\n", " - 7.3 Visualizing Participant's Weekly Carbohydrate Intake!
\n", "8. **Data Analysis**
\n", " - 8.1 Checking Protein Intake!
\n", "9. **Outlier Detection**
\n", " - 9.1 Highlighting Outliers!\n", "\n", "Disclaimer: this notebook is purely for educational purposes. All of the data currently stored in this notebook is purely *synthetic*, meaning randomly generated according to rules we created. Despite this, the end-to-end data extraction pipeline has been tested on our own data, meaning that if you enter your own cookies on your own Colab instance, you can visualize your own *real* data. That being said, we were unable to thoroughly test the timezone functionality, though, since we only have one account, so beware." ] }, { "cell_type": "markdown", "metadata": { "id": "NilGl0FGe0gr" }, "source": [ "# 1. Setup\n", "\n", "## Participant Setup\n", "\n", "Dear Participant,\n", "\n", "Once you download the MyFitnessPal app, please set it up by following these resources:\n", "- Written guide: https://blog.myfitnesspal.com/essential-guide-to-food-logging\n", "- Video guide: https://www.youtube.com/watch?v=fu9RKqlmD1Q&ab_channel=MyFitnessPalApp\n", "\n", "Make sure that your phone is logged to the MyFitnessPal app using the MyFitnessPal login credentials (email and password) given to you by the data receiver.\n", "\n", "Best,\n", "\n", "Wearipedia\n", "\n", "## Data Receiver Setup\n", "\n", "Please follow the below steps:\n", "\n", "1. Create an email address for the participant, for example `foo@email.com`.\n", "2. Create a MyFitnessPal account with the email `foo@email.com` and some random password.\n", "3. Keep `foo@email.com` and password stored somewhere safe.\n", "4. Distribute the device to the participant and instruct them to follow the participant setup letter above.\n", "5. Install the `wearipedia` Python package to easily extract data from this device via the Cronometer API.\n", "6. Make sure that your MyFitnessPal account is logged into your browser inorder to correctly extract the cookies.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "JTwt3g0SeiiN", "outputId": "45447683-3871-4b0c-c5ba-f616fcd6542c", "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting git+https://SaarthShah:****@github.com/SaarthShah/wearipedia.git\n", " Cloning https://SaarthShah:****@github.com/SaarthShah/wearipedia.git to /tmp/pip-req-build-l5jsr4ji\n", " Running command git clone --filter=blob:none --quiet 'https://SaarthShah:****@github.com/SaarthShah/wearipedia.git' /tmp/pip-req-build-l5jsr4ji\n", " Resolved https://SaarthShah:****@github.com/SaarthShah/wearipedia.git to commit b2f01ee96743f78da3cf6afff53e2e1a6b422567\n", " Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", "Collecting myfitnesspal<3.0.0,>=2.0.1\n", " Downloading myfitnesspal-2.0.1-py3-none-any.whl (29 kB)\n", "Requirement already satisfied: scipy<2.0,>=1.6 in /usr/local/lib/python3.8/dist-packages (from wearipedia==0.1.0) (1.7.3)\n", "Requirement already satisfied: tqdm<5.0.0,>=4.64.1 in /usr/local/lib/python3.8/dist-packages (from wearipedia==0.1.0) (4.64.1)\n", "Collecting polyline<2.0.0,>=1.4.0\n", " Downloading polyline-1.4.0-py2.py3-none-any.whl (4.4 kB)\n", "Requirement already satisfied: pandas<2.0,>=1.1 in /usr/local/lib/python3.8/dist-packages (from wearipedia==0.1.0) (1.3.5)\n", "Collecting rich<13.0.0,>=12.6.0\n", " Downloading rich-12.6.0-py3-none-any.whl (237 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m237.5/237.5 KB\u001b[0m \u001b[31m8.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting typer[all]<0.7.0,>=0.6.1\n", " Downloading typer-0.6.1-py3-none-any.whl (38 kB)\n", "Collecting beautifulsoup4<5.0.0,>=4.11.1\n", " Downloading beautifulsoup4-4.11.2-py3-none-any.whl (129 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m129.4/129.4 KB\u001b[0m \u001b[31m1.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting garminconnect<0.2.0,>=0.1.48\n", " Downloading garminconnect-0.1.53.tar.gz (17 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting wget<4.0,>=3.2\n", " Downloading wget-3.2.zip (10 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting soupsieve>1.2\n", " Downloading soupsieve-2.3.2.post1-py3-none-any.whl (37 kB)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from garminconnect<0.2.0,>=0.1.48->wearipedia==0.1.0) (2.25.1)\n", "Collecting cloudscraper\n", " Downloading cloudscraper-1.2.68-py2.py3-none-any.whl (98 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m98.6/98.6 KB\u001b[0m \u001b[31m4.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting browser-cookie3<1,>=0.16.1\n", " Downloading browser_cookie3-0.17.0-py3-none-any.whl (13 kB)\n", "Collecting blessed<2.0,>=1.8.5\n", " Downloading blessed-1.20.0-py2.py3-none-any.whl (58 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.4/58.4 KB\u001b[0m \u001b[31m2.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: lxml<5,>=4.2.5 in /usr/local/lib/python3.8/dist-packages (from myfitnesspal<3.0.0,>=2.0.1->wearipedia==0.1.0) (4.9.2)\n", "Requirement already satisfied: python-dateutil<3,>=2.4 in /usr/local/lib/python3.8/dist-packages (from myfitnesspal<3.0.0,>=2.0.1->wearipedia==0.1.0) (2.8.2)\n", "Collecting measurement<4.0,>=3.2.0\n", " Downloading measurement-3.2.2-py3-none-any.whl (17 kB)\n", "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.8/dist-packages (from pandas<2.0,>=1.1->wearipedia==0.1.0) (1.21.6)\n", "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas<2.0,>=1.1->wearipedia==0.1.0) (2022.7.1)\n", "Requirement already satisfied: six>=1.8.0 in /usr/local/lib/python3.8/dist-packages (from polyline<2.0.0,>=1.4.0->wearipedia==0.1.0) (1.15.0)\n", "Requirement already satisfied: typing-extensions<5.0,>=4.0.0 in /usr/local/lib/python3.8/dist-packages (from rich<13.0.0,>=12.6.0->wearipedia==0.1.0) (4.4.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.6.0 in /usr/local/lib/python3.8/dist-packages (from rich<13.0.0,>=12.6.0->wearipedia==0.1.0) (2.6.1)\n", "Collecting commonmark<0.10.0,>=0.9.0\n", " Downloading commonmark-0.9.1-py2.py3-none-any.whl (51 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m51.1/51.1 KB\u001b[0m \u001b[31m1.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.8/dist-packages (from typer[all]<0.7.0,>=0.6.1->wearipedia==0.1.0) (7.1.2)\n", "Collecting shellingham<2.0.0,>=1.3.0\n", " Downloading shellingham-1.5.1-py2.py3-none-any.whl (9.5 kB)\n", "Collecting colorama<0.5.0,>=0.4.3\n", " Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", "Requirement already satisfied: wcwidth>=0.1.4 in /usr/local/lib/python3.8/dist-packages (from blessed<2.0,>=1.8.5->myfitnesspal<3.0.0,>=2.0.1->wearipedia==0.1.0) (0.2.6)\n", "Collecting lz4\n", " Downloading lz4-4.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m20.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting pycryptodomex\n", " Downloading pycryptodomex-3.17-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.1/2.1 MB\u001b[0m \u001b[31m46.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: sympy in /usr/local/lib/python3.8/dist-packages (from measurement<4.0,>=3.2.0->myfitnesspal<3.0.0,>=2.0.1->wearipedia==0.1.0) (1.7.1)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->garminconnect<0.2.0,>=0.1.48->wearipedia==0.1.0) (2022.12.7)\n", "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->garminconnect<0.2.0,>=0.1.48->wearipedia==0.1.0) (2.10)\n", "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->garminconnect<0.2.0,>=0.1.48->wearipedia==0.1.0) (4.0.0)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->garminconnect<0.2.0,>=0.1.48->wearipedia==0.1.0) (1.24.3)\n", "Requirement already satisfied: pyparsing>=2.4.7 in /usr/local/lib/python3.8/dist-packages (from cloudscraper->garminconnect<0.2.0,>=0.1.48->wearipedia==0.1.0) (3.0.9)\n", "Collecting requests-toolbelt>=0.9.1\n", " Downloading requests_toolbelt-0.10.1-py2.py3-none-any.whl (54 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54.5/54.5 KB\u001b[0m \u001b[31m1.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.8/dist-packages (from sympy->measurement<4.0,>=3.2.0->myfitnesspal<3.0.0,>=2.0.1->wearipedia==0.1.0) (1.2.1)\n", "Building wheels for collected packages: wearipedia, garminconnect, wget\n", " Building wheel for wearipedia (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for wearipedia: filename=wearipedia-0.1.0-py3-none-any.whl size=86901 sha256=3b40e2188eda7cc704951bc7fa3944a9b92c879e7c13e8967b1c0bb239a0bdfa\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-m11obu1n/wheels/90/0c/6b/58c50ebec3c57b5a167fc60f6382f970412510e67ed0768a03\n", " Building wheel for garminconnect (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for garminconnect: filename=garminconnect-0.1.53-py3-none-any.whl size=13498 sha256=381d8af8092cc2016a56884df0dc01cc227479c834e87b3a897399d8f7c2956f\n", " Stored in directory: /root/.cache/pip/wheels/9e/0a/ed/06a245135409c4720383c237b7e98906880834704edb4fc3e7\n", " Building wheel for wget (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for wget: filename=wget-3.2-py3-none-any.whl size=9674 sha256=010df89e0c9ab7bd5749aecd1f4e25104519db174ec5578e409fb586a73538fa\n", " Stored in directory: /root/.cache/pip/wheels/bd/a8/c3/3cf2c14a1837a4e04bd98631724e81f33f462d86a1d895fae0\n", "Successfully built wearipedia garminconnect wget\n", "Installing collected packages: wget, commonmark, typer, soupsieve, shellingham, rich, pycryptodomex, polyline, lz4, colorama, blessed, requests-toolbelt, measurement, browser-cookie3, beautifulsoup4, myfitnesspal, cloudscraper, garminconnect, wearipedia\n", " Attempting uninstall: typer\n", " Found existing installation: typer 0.7.0\n", " Uninstalling typer-0.7.0:\n", " Successfully uninstalled typer-0.7.0\n", " Attempting uninstall: beautifulsoup4\n", " Found existing installation: beautifulsoup4 4.6.3\n", " Uninstalling beautifulsoup4-4.6.3:\n", " Successfully uninstalled beautifulsoup4-4.6.3\n", "Successfully installed beautifulsoup4-4.11.2 blessed-1.20.0 browser-cookie3-0.17.0 cloudscraper-1.2.68 colorama-0.4.6 commonmark-0.9.1 garminconnect-0.1.53 lz4-4.3.2 measurement-3.2.2 myfitnesspal-2.0.1 polyline-1.4.0 pycryptodomex-3.17 requests-toolbelt-0.10.1 rich-12.6.0 shellingham-1.5.1 soupsieve-2.3.2.post1 typer-0.6.1 wearipedia-0.1.0 wget-3.2\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Requirement already satisfied: openpyxl in /usr/local/lib/python3.8/dist-packages (3.0.10)\n", "Requirement already satisfied: et-xmlfile in /usr/local/lib/python3.8/dist-packages (from openpyxl) (1.1.0)\n", "Found existing installation: seaborn 0.11.2\n", "Uninstalling seaborn-0.11.2:\n", " Successfully uninstalled seaborn-0.11.2\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting seaborn==0.11.1\n", " Downloading seaborn-0.11.1-py3-none-any.whl (285 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m285.0/285.0 KB\u001b[0m \u001b[31m17.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: scipy>=1.0 in /usr/local/lib/python3.8/dist-packages (from seaborn==0.11.1) (1.7.3)\n", "Requirement already satisfied: matplotlib>=2.2 in /usr/local/lib/python3.8/dist-packages (from seaborn==0.11.1) (3.2.2)\n", "Requirement already satisfied: pandas>=0.23 in /usr/local/lib/python3.8/dist-packages (from seaborn==0.11.1) (1.3.5)\n", "Requirement already satisfied: numpy>=1.15 in /usr/local/lib/python3.8/dist-packages (from seaborn==0.11.1) (1.21.6)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.8/dist-packages (from matplotlib>=2.2->seaborn==0.11.1) (0.11.0)\n", "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.8/dist-packages (from matplotlib>=2.2->seaborn==0.11.1) (3.0.9)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.8/dist-packages (from matplotlib>=2.2->seaborn==0.11.1) (1.4.4)\n", "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.8/dist-packages (from matplotlib>=2.2->seaborn==0.11.1) (2.8.2)\n", "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas>=0.23->seaborn==0.11.1) (2022.7.1)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.1->matplotlib>=2.2->seaborn==0.11.1) (1.15.0)\n", "Installing collected packages: seaborn\n", "Successfully installed seaborn-0.11.1\n" ] } ], "source": [ "!pip install wearipedia\n", "!pip install openpyxl\n", "!pip uninstall -y seaborn\n", "!pip install seaborn==0.11.1" ] }, { "cell_type": "markdown", "metadata": { "id": "CCzIx1k1e6Qh" }, "source": [ "# 2. Authentication/Authorization\n", "\n", "To obtain access to data, authorization is required. Unfortunately, for MyFitnessPal, just using email and password is not sufficient to authorize data extraction from their API. We will have to extract the cookies stored on your local machine inorder to authenticate agaist the MyFitnessPal API. \n", "\n", "Note: If you are running this on your local machine (where MyFitnessPal is logged in), you most likely would not have to seperately extract cookies to do this. However to get MyFitnessPal working for Google colab we will have to go through this step." ] }, { "cell_type": "markdown", "metadata": { "id": "5j-0XomrDUSW" }, "source": [ "Step 1: Run the following python script on your local machine. \n", "\n", "\n", "```\n", "import browsercookie\n", "import json\n", "import http.cookiejar as cookiejar\n", "\n", "# Extracts all the user cookies from the browser and saves them in a file\n", "def download_cookies():\n", "\n", " cookies = browsercookie.load()\n", " cookiefiles = []\n", "\n", " # Add the cookies to the CookieJar object\n", " for cookie in cookies:\n", " cookie_dict = cookie.__dict__\n", " cookie_dict['rest'] = cookie_dict['_rest']\n", " del cookie_dict['_rest']\n", " cookiefiles.append(cookie_dict)\n", "\n", " # Save the cookies to the JSON file\n", " with open('cookies.json', 'w') as f:\n", " json.dump(cookiefiles, f)\n", "\n", "# Calling the function\n", "download_cookies()\n", "```\n", "\n", "This should create a file called cookies.json within the same directory.
\n", "\n", "\n", "\n", "Step 2: Upload the exctracted json file in the cell below." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 74 }, "id": "INRAosqYe2yZ", "outputId": "62c591a3-0a9b-4d3d-f19e-779c098909c7" }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " Upload widget is only available when the cell has been executed in the\n", " current browser session. Please rerun this cell to enable.\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Saving cookies.json to cookies.json\n" ] } ], "source": [ "from google.colab import files\n", "cookies = files.upload()\n" ] }, { "cell_type": "markdown", "metadata": { "id": "ZWVelqzHe-L2" }, "source": [ "# 3. Data Extraction\n", "\n", "Data can be extracted via [wearipedia](https://github.com/Stanford-Health/wearipedia/), our open-source Python package that unifies dozens of complex wearable device APIs into one simple, common interface.\n", "\n", "First, we'll set a date range and then extract all of the data within that date range. You can select whether you would like synthetic data or not with the checkbox." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "0AVHyTy2CCWp" }, "outputs": [], "source": [ "import http.cookiejar as cookiejar\n", "import json\n", "jar2 = cookiejar.CookieJar()\n", "with open(list(cookies.keys())[0], 'r') as f:\n", " data = json.load(f)\n", "for cookie in data:\n", " jar2.set_cookie(cookiejar.Cookie(**cookie))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "id": "imNqkTSpe8GP" }, "outputs": [], "source": [ "#@title Enter start and end dates (in the format yyyy-mm-dd)\n", "\n", "#set start and end dates - this will give you all the data from 2000-01-01 (January 1st, 2000) to 2100-02-03 (February 3rd, 2100), for example\n", "start_date='2022-03-01' #@param {type:\"string\"}\n", "end_date='2022-06-17' #@param {type:\"string\"}\n", "synthetic = True #@param {type:\"boolean\"}" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "id": "H-pWdzEzfAbN" }, "outputs": [], "source": [ "import wearipedia\n", "\n", "device = wearipedia.get_device(\"myfitnesspal/myfitnesspal\")\n", "\n", "if not synthetic:\n", " # Cookie jar will be passed as a parameter. If nothing is passed, our \n", " # authenticate function will try to use locally stored cookies.\n", " device.authenticate({'cookies':jar2})\n", "\n", "params = {\"start_date\": start_date, \"end_date\": end_date}\n" ] }, { "cell_type": "markdown", "metadata": { "id": "Nykg-QdQLia2" }, "source": [ "After authentication, we can finally load our data. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "id": "OLqAtaOALOfA" }, "outputs": [], "source": [ "goals = device.get_data(\"goals\", params=params)\n", "daily_summary = device.get_data('daily_summary',params=params)\n", "exercises_cardio = device.get_data('exercises_cardio',params=params)\n", "exercises_strength = device.get_data('exercises_strength',params=params)\n", "lunch = device.get_data('lunch',params=params)\n", "breakfast = device.get_data('breakfast',params=params)\n", "dinner = device.get_data('dinner',params=params)\n", "snacks = device.get_data('snacks',params=params)\n" ] }, { "cell_type": "markdown", "metadata": { "id": "kA0mnAEtfjGw" }, "source": [ "# 4. Data Exporting\n", "\n", "In this section, we export all of this data to formats compatible with popular scientific computing software (R, Excel, Google Sheets, Matlab). Specifically, we will first export to JSON, which can be read by R and Matlab. Then, we will export to CSV, which can be consumed by Excel, Google Sheets, and every other popular programming language.\n", "\n", "## Exporting to JSON (R, Matlab, etc.)\n", "\n", "Exporting to JSON is fairly simple. We export each datatype separately and also export a complete version that includes all simultaneously." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "id": "1vxorcs9OUcV" }, "outputs": [], "source": [ "# This function will cleanup the timestamp objects and convert them to text\n", "# as timestamp objects are not JSON Serializable\n", "def datacleanup(data):\n", " res = []\n", " for d in data:\n", " if 'date' in d:\n", " d['date'] = str(d['date'])\n", " if type(d)==list:\n", " if 'day' in d[0]:\n", " d[0]['day'] = str(d[0]['day'])\n", " if 'date' in d[0]:\n", " d[0]['date'] = str(d[0]['date'])\n", " res.append(d)\n", " return res" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "id": "xwl4BMTrfEdG", "scrolled": true }, "outputs": [], "source": [ "import json\n", "\n", "\n", "json.dump(datacleanup(goals), open(\"goals.json\", \"w\"))\n", "json.dump(datacleanup(daily_summary), open(\"daily_summary.json\", \"w\"))\n", "json.dump(datacleanup(exercises_cardio), open(\"exercises_cardio.json\", \"w\"))\n", "json.dump(datacleanup(exercises_strength), open(\"exercises_strength.json\", \"w\"))\n", "json.dump(datacleanup(lunch), open(\"lunch.json\", \"w\"))\n", "json.dump(datacleanup(breakfast), open(\"breakfast.json\", \"w\"))\n", "json.dump(datacleanup(dinner), open(\"dinner.json\", \"w\"))\n", "json.dump(datacleanup(snacks), open(\"snacks.json\", \"w\"))\n", "\n", "complete = {\n", " \"goals\": goals,\n", " \"daily_summary\": daily_summary,\n", " \"exercises_cardio\": exercises_cardio,\n", " \"exercises_strength\": exercises_strength,\n", " \"lunch\": lunch,\n", " \"breakfast\": breakfast,\n", " \"dinner\": dinner,\n", " \"snacks\": snacks,\n", "}\n", "\n", "json.dump(complete, open(\"complete.json\", \"w\"))" ] }, { "cell_type": "markdown", "metadata": { "id": "oHcdzBcMf6SU" }, "source": [ "Feel free to open the file viewer (see left pane) to look at the outputs!\n", "\n", "## Exporting to CSV and XLSX (Excel, Google Sheets, R, Matlab, etc.)\n", "\n", "Exporting to CSV/XLSX requires a bit more processing, since they enforce a pretty restrictive schema.\n", "\n", "We will thus export steps, heart rates, and breath rates all as separate files." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "id": "VWuVEFnT0Yub" }, "outputs": [], "source": [ "import pandas as pd\n", "\n", "dailySummary_df = pd.DataFrame.from_dict(daily_summary)\n", "dailySummary_df.to_csv('dailySummary.csv')\n", "dailySummary_df.to_excel('dailySummary.xlsx')\n", "\n", "goals_df = pd.DataFrame.from_dict(goals)\n", "\n", "goals_df.to_csv('goals.csv', index=False)\n", "goals_df.to_excel('goals.xlsx', index=False)\n", "\n", "exercises_cardio_df = pd.DataFrame()\n", "\n", "for e in exercises_cardio:\n", " for exercise in e[1:]:\n", " data_dict = {\n", " 'day':e[0]['day'],\n", " 'name':exercise['name'],\n", " 'nutrition_information':[exercise['nutrition_information']]\n", " }\n", " \n", " data_dict_df = pd.DataFrame.from_dict(data_dict)\n", " exercises_cardio_df = pd.concat([exercises_cardio_df,data_dict_df], ignore_index=True)\n", "\n", "\n", "exercises_cardio_df.to_csv('exercises_cardio.csv', index=False)\n", "exercises_cardio_df.to_excel('exercises_cardio.xlsx', index=False)\n", "\n", "exercises_strength_df = pd.DataFrame()\n", "\n", "for e in exercises_strength:\n", " for exercise in e[1:]:\n", " data_dict = {\n", " 'day':e[0]['date'],\n", " 'name':exercise['name'],\n", " 'nutrition_information':[exercise['nutrition_information']]\n", " }\n", " data_dict_df = pd.DataFrame.from_dict(data_dict)\n", " exercises_strength_df = pd.concat([exercises_strength_df,data_dict_df], ignore_index=True)\n", "\n", "exercises_strength_df.to_csv('exercises_strength.csv', index=False)\n", "exercises_strength_df.to_excel('exercises_strength.xlsx', index=False)\n", "\n", "lunch_df = pd.DataFrame()\n", "\n", "lunch_df = lunch_df.assign(day=[e[0]['day'] for e in \n", "lunch])\n", "lunch_df = lunch_df.assign(name=[e[1]['name'] for e in \n", "lunch])\n", "lunch_df = lunch_df.assign(nutrition_information=\n", "[l[1]['nutrition_information'] for l in lunch])\n", "lunch_df = lunch_df.assign(totals=\n", "[l[1]['totals'] for l in lunch])\n", "\n", "lunch_df.to_csv('lunch.csv', index=False)\n", "lunch_df.to_excel('lunch.xlsx', index=False)\n", "\n", "dinner_df = pd.DataFrame()\n", "\n", "dinner_df = dinner_df.assign(day=[e[0]['day'] for e in \n", "dinner])\n", "dinner_df = dinner_df.assign(name=[l[1]['name'] for l in \n", "dinner])\n", "dinner_df = dinner_df.assign(nutrition_information=\n", "[l[1]['nutrition_information'] for l in dinner])\n", "dinner_df = dinner_df.assign(totals=\n", "[l[1]['totals'] for l in dinner])\n", "\n", "dinner_df.to_csv('dinner.csv', index=False)\n", "dinner_df.to_excel('dinner.xlsx', index=False)\n", "\n", "breakfast_df = pd.DataFrame()\n", "\n", "breakfast_df = breakfast_df.assign(day=[e[0]['day'] for e in \n", "breakfast])\n", "breakfast_df = breakfast_df.assign(name=[l[1]['name'] for l in \n", "breakfast])\n", "breakfast_df = breakfast_df.assign(nutrition_information=\n", "[l[1]['nutrition_information'] for l in breakfast])\n", "breakfast_df = breakfast_df.assign(totals=\n", "[l[1]['totals'] for l in breakfast])\n", "\n", "breakfast_df.to_csv('breakfast.csv', index=False)\n", "breakfast_df.to_excel('breakfast.xlsx', index=False)\n", "\n", "\n", "snacks_df = pd.DataFrame()\n", "\n", "snacks_df = snacks_df.assign(day=[e[0]['day'] for e in \n", "snacks])\n", "snacks_df = snacks_df.assign(name=[l[1]['name'] for l in \n", "snacks])\n", "snacks_df = snacks_df.assign(nutrition_information=\n", "[l[1]['nutrition_information'] for l in snacks])\n", "snacks_df = snacks_df.assign(totals=\n", "[l[1]['totals'] for l in snacks])\n", "\n", "snacks_df.to_csv('snacks.csv', index=False)\n", "snacks_df.to_excel('snacks.xlsx', index=False)" ] }, { "cell_type": "markdown", "metadata": { "id": "ZNRvGqso8Njy" }, "source": [ "Again, feel free to look at the output files and download them." ] }, { "cell_type": "markdown", "metadata": { "id": "t1N2qX298Q52" }, "source": [ "# 5. Adherence\n", "\n", "The device simulator already automatically randomly deletes small chunks of the day. In this section, we will simulate non-adherence over longer periods of time from the participant (day-level and week-level).\n", "\n", "Then, we will detect this non-adherence and give a Pandas DataFrame that concisely describes when the participant has had their device on and off throughout the entirety of the time period, allowing you to calculate how long they've had it on/off etc.\n", "\n", "We will first delete a certain % of blocks either at the day level or week level, with user input." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "id": "M7ezn7YL5z60" }, "outputs": [], "source": [ "#@title Non-adherence simulation\n", "block_level = \"day\" #@param [\"day\", \"week\"]\n", "adherence_percent = 0.89 #@param {type:\"slider\", min:0, max:1, step:0.01}" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "id": "ZIuef9Rq8Zfr" }, "outputs": [], "source": [ "import numpy as np\n", "\n", "if block_level == \"day\":\n", " block_length = 1\n", "elif block_level == \"week\":\n", " block_length = 7\n", "\n", "\n", "\n", "# This function will randomly remove datapoints from the \n", "# data we have recieved from Cronometer based on the\n", "# adherence_percent\n", "\n", "def AdherenceSimulator(data):\n", "\n", " num_blocks = len(data) // block_length\n", " num_blocks_to_keep = int(adherence_percent * num_blocks)\n", " idxes = np.random.choice(np.arange(num_blocks), replace=False, \n", " size=num_blocks_to_keep)\n", "\n", " adhered_data = []\n", "\n", " for i in range(len(data)):\n", " if i in idxes:\n", " start = i * block_length\n", " end = (i + 1) * block_length\n", " for j in range(i,i+1):\n", " adhered_data.append(data[j])\n", " \n", " return adhered_data\n", "\n", "\n", "# Adding adherence for daily summary\n", "\n", "dailySummary = AdherenceSimulator(daily_summary)\n", "\n", "# Adding adherence for strength exercises\n", "\n", "exercises_strength = AdherenceSimulator(exercises_strength)\n", "\n", "# Adding adherence for cardio exercises\n", "\n", "exercises_cardio = AdherenceSimulator(exercises_cardio)\n", "\n", "# Adding adherence for goals\n", "\n", "goals = AdherenceSimulator(goals)\n", "\n", "# Adding adherence for lunch\n", "\n", "lunch = AdherenceSimulator(lunch)\n", "\n", "# Adding adherence for dinner\n", "\n", "dinner = AdherenceSimulator(dinner)\n", "\n", "# Adding adherence for breakfast\n", "\n", "breakfast = AdherenceSimulator(breakfast)\n", "\n", "# Adding adherence for snacks\n", "\n", "snacks = AdherenceSimulator(snacks)" ] }, { "cell_type": "markdown", "metadata": { "id": "gS7_OF1Zj53w" }, "source": [ "And now we have significantly fewer datapoints! This will give us a more realistic situation, where participants may take off their device for days or weeks at a time.\n", "\n", "Now let's detect non-adherence. We will return a Pandas DataFrame sampled at every day." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "id": "Gf5Jp8HXjm0e" }, "outputs": [], "source": [ "dailySummary_df = pd.DataFrame.from_dict(daily_summary)\n", "\n", "goals_df = pd.DataFrame.from_dict(goals)\n", "\n", "exercises_cardio_df = pd.DataFrame()\n", "exercises_cardio_df = exercises_cardio_df.assign(day=[e[0]['day'] for e in \n", "exercises_cardio])\n", "exercises_cardio_df = exercises_cardio_df.assign(name=[e[1]['name'] for e in \n", "exercises_cardio])\n", "exercises_cardio_df = exercises_cardio_df.assign(nutrition_information=\n", "[e[1]['nutrition_information'] for e in exercises_cardio])\n", "\n", "exercises_strength_df = pd.DataFrame()\n", "exercises_strength_df = exercises_strength_df.assign(day=[e[0]['date'] for e in \n", "exercises_strength])\n", "exercises_strength_df = exercises_strength_df.assign(name=[e[1]['name'] for e in \n", "exercises_strength])\n", "exercises_strength_df = exercises_strength_df.assign(nutrition_information=\n", "[e[1]['nutrition_information'] for e in exercises_strength])\n", "\n", "lunch_df = pd.DataFrame()\n", "lunch_df = lunch_df.assign(day=[e[0]['day'] for e in \n", "lunch])\n", "lunch_df = lunch_df.assign(name=[e[1]['name'] for e in \n", "lunch])\n", "lunch_df = lunch_df.assign(nutrition_information=\n", "[l[1]['nutrition_information'] for l in lunch])\n", "lunch_df = lunch_df.assign(totals=\n", "[l[1]['totals'] for l in lunch])\n", "\n", "dinner_df = pd.DataFrame()\n", "dinner_df = dinner_df.assign(day=[e[0]['day'] for e in \n", "dinner])\n", "dinner_df = dinner_df.assign(name=[l[1]['name'] for l in \n", "dinner])\n", "dinner_df = dinner_df.assign(nutrition_information=\n", "[l[1]['nutrition_information'] for l in dinner])\n", "dinner_df = dinner_df.assign(totals=\n", "[l[1]['totals'] for l in dinner])\n", "\n", "breakfast_df = pd.DataFrame()\n", "breakfast_df = breakfast_df.assign(day=[e[0]['day'] for e in \n", "breakfast])\n", "breakfast_df = breakfast_df.assign(name=[l[1]['name'] for l in \n", "breakfast])\n", "breakfast_df = breakfast_df.assign(nutrition_information=\n", "[l[1]['nutrition_information'] for l in breakfast])\n", "breakfast_df = breakfast_df.assign(totals=\n", "[l[1]['totals'] for l in breakfast])\n", "\n", "snacks_df = pd.DataFrame()\n", "snacks_df = snacks_df.assign(day=[e[0]['day'] for e in \n", "snacks])\n", "snacks_df = snacks_df.assign(name=[l[1]['name'] for l in \n", "snacks])\n", "snacks_df = snacks_df.assign(nutrition_information=\n", "[l[1]['nutrition_information'] for l in snacks])\n", "snacks_df = snacks_df.assign(totals=\n", "[l[1]['totals'] for l in snacks])" ] }, { "cell_type": "markdown", "metadata": { "id": "FvsDKGzxnTAN" }, "source": [ "We can plot this out, and we get adherence at one-day frequency throughout the entirety of the data collection period. For this chart we will plot Calories consumed during breakfast over the time period from the breakfast dataframe." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 374 }, "id": "awU2gtJXmcnP", "outputId": "df03d1e6-16fd-48c1-d305-ee8e5ebef78c" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import datetime\n", "\n", "dates = pd.date_range(start_date,end_date)\n", "\n", "calories = []\n", "\n", "for d in dates:\n", " res = lunch_df[lunch_df.day == datetime.datetime.strftime(d,\n", " '%Y-%m-%d')+' 00:00:00']['nutrition_information']\n", " if len(res) == 0:\n", " calories.append(None)\n", " else:\n", " calories.append(res.iloc[0]['calories'])\n", "\n", "plt.figure(figsize=(12, 6))\n", "plt.plot(dates, calories)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "yOsrr4s0re5Y" }, "source": [ "## 6. Visualization\n", "\n", "We've extracted lots of data, but what does it look like?\n", "\n", "In this section, we will be visualizing our three kinds of data in a simple, customizable plot! This plot is intended to provide a starter example for plotting, whereas later examples emphasize deep control and aesthetics." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 521 }, "id": "LSj2hBfOp9sG", "outputId": "5f54bf74-42e9-4a5a-f792-1e70a0d24a5d" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA34AAAH4CAYAAAAVXz/4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeVyU5fo/8M8z7DsCroMMAqKGCwruG5JLLtVJzaVOZmZmlmZ5Uk+dUutUltnRSrOysG/az0pN09IMcUuPibnmggsigSuCqKgIM9fvD5o5jjPsMA/MfN6vFy/h2e5r7ucB55p7U0REQERERERERHZLo3YAREREREREVL2Y+BEREREREdk5Jn5ERERERER2jokfERERERGRnWPiR0REREREZOeY+BEREREREdk5Jn5EDmDJkiVQFAVLliyp1WWUZObMmVAUBVu2bFGl/JqiZ8+eaNWqFQwGQ6Wu88ADDyA8PBy3b98u97nnz5/H448/juDgYDg5OUFRFFy5cqVS8RAREVHlMPEjsoFjx45h4sSJaNmyJfz8/ODq6opGjRph4MCB+Pzzz5Gfn692iFRGW7ZsgaIomDlzptqhWFixYgW2bduGWbNmQaOp3J/3119/HadPn8YHH3xQ7nNHjx6Nr776Cj179sS//vUvzJgxA+7u7pWKR02ZmZn48MMP0b9/f4SGhsLNzQ2BgYHo06cPVq1aVeK569atQ1xcHPz8/ODt7Y2OHTviyy+/tHrsjh07MHXqVLRv3x5169aFm5sbmjRpgrFjx+LkyZMWxxcUFOD777/Hk08+iZYtW8LX1xeenp5o1aoVXnvtNVy7dq1Cr/fmzZuYMWMGmjVrBnd3d9SrVw/Dhg3D0aNHrR4/Z84cDBgwAKGhofD29oavry9atWqFF198ERkZGRWKITs7G5MnTzbVd6NGjTBmzJgyX2/p0qVQFAWKomDx4sVlLjctLQ2KomD06NEVirs8ynu/jcpzf/Ly8rBs2TI88sgjaN68Oby8vODj44PY2FjMnTvX6gc7lXneS3LkyBEMGzYM9erVg7u7O5o1a4YZM2bg5s2bxZ6j1+uxePFi9OjRA3Xq1IGHhwfCwsIwfPhwHD9+vMxlFxQUYP78+XjiiScQHR0NV1fXUp+N0NBQ0zNU3Ncbb7xRrjogUp0QUbWaNWuWaDQaASCdO3eWiRMnyj//+U8ZM2aMhIWFCQCJiYmp1hgSEhIEgCQkJNTqMkoyY8YMASCbN2+u1nI2b94sAGTGjBnVWk55GQwGiYyMlMjISDEYDFVyzf79+4u/v7/k5eWV+Zz8/HzRaDTSp0+fKomhJpg2bZoAkCZNmsjo0aNl+vTpMnLkSHFzcxMA8sILL1g978MPPxQAEhgYKBMmTJDJkydLcHCwAJApU6ZYHF+/fn3RaDTSrVs3ef7552XKlCnSpUsXASBeXl6yc+dOs+OPHj1q2jdo0CCZOnWqTJgwQcLDwwWAREZGyqVLl8r1Wm/duiVdu3YVABIbGytTp06VkSNHirOzs3h6esquXbsszgkPD5c2bdrIqFGj5KWXXpLJkydLz549BYD4+vrK3r17yxVDVlaWREZGCgCJj4+XadOmyYMPPigApF69enLq1KkSz09PTxc/Pz/x9vYWAPLZZ5+VuezTp08LAHn88cfLFXNFlPd+i5T//qxfv14ASEBAgAwZMkSmTZsm48aNkwYNGggA6dKli9y8edPsnIo+7yXZtWuXeHp6iouLi4wcOVKmTp0qsbGxAkC6du0qt27dsjjn2rVrEh8fLwAkOjpann/+eZk2bZr8/e9/F51OJ2vXri1z+Tk5OQJAAEj9+vWlcePGpT4b//nPf2TGjBkWX6+99po4OzsLAElOTi53XRCpiYkfUTV68803BYA0btzY6hsmEZG1a9dKXFxctcbBxK/q1NTEb+PGjQJA3nzzzSq75vLly8v9xvnMmTM2e+NsKytXrpQtW7ZYbD9y5Ij4+voKANmzZ4/ZvtOnT4ubm5sEBATI6dOnTduzs7NNidndb+xnz54tmZmZFuUY/460bNnSbHtGRoYsWLBArl+/brY9Pz9fBg4cKADkueeeK9drfeuttwSADB06VPR6vWn76tWrBYDcc889ZttFxCJxMPr0008FgPTv379cMYwbN04AyIsvvmi2ff78+QJA+vXrV+y5BoNB7r33XgkLC5N//OMfNTrxK+/9Fin//dm3b58sXbpU8vPzza5z9epVadeunQCQ9957z2xfRZ73khQWFkqLFi0EgKxZs8a0Xa/Xy5AhQwSAvP322xbnPfLIIwJAFi1aZPW6t2/fLnMM+fn58tNPP8nZs2dF5H//X5Tn2TDasGGDAJC2bduW+1witTHxI6omp0+fFhcXF3FxcZFDhw6VeOzdn3YmJCTI4MGDpUmTJuLu7i4+Pj7SpUsX+eqrr6yeb/x0PT8/X2bNmiWRkZHi6upqevNyZ1K2bt066dy5s3h6eoq/v78MGTJEjh8/bvW6Z8+elQkTJohOpxMXFxcJCgqShx56yOp/+neWkZSUJD179hRvb2/x8fGRAQMGyJEjR8yOHzFihACw+gZDRGTFihUCQJ599lmz7Xv27JF+/fqZrn3vvffKzp07i038AEjPnj3l3Llz8uSTT0qjRo1Eo9GYEtSUlBSZNm2axMTESFBQkLi6ukpISIg89dRT8ueff5pd6/HHHzd9anz3193lfv311xIXFyd+fn7i5uYmzZs3lzfeeMPqJ9vbtm2TQYMGiVarFVdXV6lfv7507NhRZs6cabVurBk+fLgAkJMnT1rdf+XKFXn++edFq9WKm5ubNGvWTObOnSunTp0q9o3uzZs3xd3dXTp16lSmGHQ6ndW6sfYcrl+/Xnr27Gl6I3lnnNOnT5fIyEhxc3MTf39/6du3r/zyyy8W5d2ZhCcnJ0u/fv3E19dX/P39ZfDgwZKeni4iIqdOnZLhw4dLUFCQuLu7S1xcnOzfv79Mr6k0Tz31lNU3z6+++qoAkNdee83inM8//1wAyKhRo8pURmFhoXh4eAgAycrKKtM5O3bsKDZ5KI7BYJCQkBABIKmpqRb7u3fvLgAkKSmpTNe7cuWKAJCIiIgyx3Dt2jXx8PAQLy8vuXr1qtk+vV5vesaKa/WbN2+eKIoiW7duLfebe+Px1r7u/EBLr9fLxx9/LLGxseLl5SWenp4SGxsrCxcutEiKK6K4+13V92fZsmUCQAYNGlTm2Ip73kuyadMmASA9evSw2Gf8+6PT6cx6Kvz+++8CQIYPH17mcsqjMonf4MGDS0xIiWoyZ6v9P4mo0hISElBQUIARI0agZcuWJR7r5uZm9vMzzzyDqKgo9OjRAw0bNsTly5fx008/4bHHHkNKSkqx4wqGDBmC5ORk9O/fH3/7299Qr149s/2rVq3C+vXr8dBDDyEuLg779+/HypUrsXnzZuzcuRPNmjUzHXv69Gl069YNZ8+eRXx8PEaOHIk///wT3333HX788UesXLkSgwYNsohh3bp1WLNmDfr374/x48fjyJEj+Omnn5CcnIwjR44gKCjI9BqXL1+OTz/9FD179rS4zieffAIAGD9+vGnbzp070bt3b9y+fRuDBw9GREQE9u/fj7i4OMTHxxdbv9nZ2ejUqRO8vb0xePBgaDQa1K9f31QnixYtQq9evdClSxe4urri8OHDWLx4MdauXYs9e/ZAq9UCAP72t78BAL788kv07NkTcXFxpjJCQ0NN348ZMwYJCQkIDg7GkCFD4O/vj127duHVV1/Fpk2b8Msvv8DZuejP74YNGzBw4ED4+vrigQcegFarRXZ2No4ePYqFCxdixowZxb4uIxFBUlISGjRogPDwcIv9t27dQnx8PPbu3Yu2bdvi0UcfRW5uLt58801s37692Ou6u7sjJiYGu3btQm5uLvz8/EqMY/LkyUhLS8P8+fPRpk0bU31FR0ebHbdixQps2LDB9IycOXMGAHDlyhV07doVR44cQfv27TF58mRkZWXh22+/Rd++ffHxxx/j6aeftig3OTkZ77zzDnr27ImnnnoKhw4dwqpVq/DHH39gzZo16NatG5o3b45Ro0bhzJkzWLVqFfr06YPU1FR4e3uXWr8lcXFxAQDT/TRKSkoCANx3330W5/Tv39/smNIoimK6vpOTU6XiKsmpU6eQnp6OyMhINGnSxGJ///79sX37diQlJaFXr16lXm/t2rUAgNatW5c5hl27duHmzZvo27cvfHx8zPZpNBr069cPn376KTZv3oywsDCz/UePHsX06dPx/PPPo0ePHmWuX6O4uDhcuXLF4vkFzJ/hxx57DF9//TUaN26MsWPHQlEUfP/995gwYQJ+/fVXLFu2rFzl3q24+13V96ciz0hFzinpdyEsLAyRkZE4fvw4UlNTTX+/vv76awDAyJEjkZubi7Vr1+LPP/9EYGAg4uPjERERUebyq9KFCxewdu1aeHt745FHHlElBqJKUTvzJLJXxrEJFflE0VqrTX5+vsTHx4uzs7NkZGSY7TO2+LVq1crqmB5jSwsAi3ER8+bNM42luVPfvn0FgPz73/82275jxw5xcnKSgIAAuXbtmkUZTk5OkpiYaHbO9OnTBYC88847ZtujoqLEzc3NohXj1KlToiiKdOnSxbTNYDBIs2bNBICsXr3a6mtAMS1+AOSxxx6TgoICi7rJyMiw2gr3888/i0ajkfHjx5ttL62rp7EeHnroIblx44bZPuOnzPPmzTNtM356bK0Fqqzjs4xjvYr75P71118XADJixAizT9XT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LVoUeNYiL/vJi549ezJmzBgSExP56quv8rzd8ePHmTZtGnffffd5H9Nr4V77Uy1btowmTZoEruiEunCr/XPPPceYMWPIyspi7dq1Z3z/bJlDlde1T09PZ/ny5dx0000X/ib+z+LFi9myZUvIP2tzqnCrf05ODsOHD+emm27i0ksvBaBhw4aMHDmS1157jTp16jBy5Mg8H99LXtce4L777uPNN99kyJAhHD58mOnTp5/X9suWLaNVq1aMHj2agQMH8tZbb+G67nntwwvhWPuxY8dSq1YtatWqdV7HCTWhUPusrCyio6N55ZVXaNOmDe+88855v48OHTrw1ltv0a1bNz755JPz3t4LkVD7nJwctm7dyoABA3juuef45JNP2LVr13nt42wK5R2/7OxsXn/9dZo3b07jxo0B/y3U/fv3U7p0afbv33/aw5Xbt29nzJgxDBw4kOLFi+e6n7S0NIYOHQpAu3btqFat2mnDdPbt2xd4MP8kx3Fo2rQpM2bMoGXLlvTv3x+ARo0a0b59+7Nun5KSwt69e+nXr1/g6/3792fIkCGUKlUqP8uVr8Kp9nlpqr/66iseffTRC6xGcIVr7YsUKcI111xDcnIyderUyTVzqAqF2m/bto09e/bQt29fwD8pUZ8+fRg+fPh5nffff/8906ZNY9CgQbletQ8l4Vj/MWPGUL58eW6++ebAvk7N0qZNGyZNmpSvdSoIoVB7IHC1Pzo6mtatWzNz5kzgv5NIXX755TzxxBMcPXqUnJwcfD4f6enpge0XLlzIs88+C/iHQmdlZXHo0KF8G35VEMKp9n/84x8B+Oijjzh48CA9evQoqLIERajUPj4+PrDdtddey6hRo4C8n/enatq0o1bXwgAABpdJREFUKe+++25+lqlAhFPtT573ZxMfH0/x4sWJjY0lNjaWWrVqsX37dipWrHhxBcqXJwXDiOu69q233rLjxo077evvv//+WR/8TE1Ntb1797br16/P035+Kzs72/bq1cumpKQEHvzcsWOHdV3X7t69O7CvCRMm2AkTJpx1H7+d3GX16tVnvOa3D4WGonCs/Ulnm4jhl19+sT179rSu6+a6bSgIt9ofO3bMpqenB/Y1bNgw+8UXX+SaOVSFSu1/K7fJXc71mi1bttjevXvbXbt2/e62oSIc6//BBx/YV199NTApwEkn/5+w1tqVK1faZ599NtcsXgul2p+sneu6dty4cXbSpEln3cdvJ7mYM2eOtdbal19+2S5atMha65/cpUePHiH9sz8ca79gwQL73HPP2ePHj5/1+1OmTAmLyV1CqfaTJk2yX375pbXW2rVr19oBAwacdR/nOu9P/VmfnJxs+/fvn4cKeCcca3/Sbz/H79y50w4ePNhmZ2fbzMxM+/TTT9vt27f/bg1+T6FbwH39+vW88MILVKlSJXCr99577+WKK67gjTfeIC0t7bSpXkePHs3KlSsDz1H4fD5eeeWVc+7nbNM7r1mzhgkTJuC6Lq1bt6ZLly64rsuLL74YeFi8atWqPPbYY2e9lbx582ZGjRrFiRMnqFevHo888sgZt6l79erFkCFDQvruRzjWftKkSSxdujRwpeiGG26ga9euAEydOpWsrKwzhgaEonCrfUZGBkOHDiUrKwtrLVdffTUPPfQQPp+PQ4cOnTVzqAqV2v/WAw88cM7lHM513v/tb39jx44dgVEFZcuWDdytClXhVv99+/bx5JNPkpiYSFSUf1DOyWUbJk+ezNdff43P56NYsWI89thjJCYm5lut8lso1X7w4MEcPHgQ8P/c6dGjx1mXkUlJSeHNN9/k8OHDXHbZZfTp04fo6Gh++eUXxowZQ2ZmJgD3338/devWzf+i5ZNwrP0999xDQkJC4HuNGzfmzjvvJCMjgwEDBnDs2DGMMcTGxjJs2LALeswgGEKp9keOHGHEiBGkpaURGxvL448/ftZ5Ic513o8bN44ffvgh8DPnkUceoXLlygVUuYsXjrWfPXs2M2bMICMjg5IlS1K/fv3AncAZM2awaNEiHMfhhhtuOG0EyIUqdI2fiIiIiIhIYRMeM1KIiIiIiIjIBVPjJyIiIiIiEuHU+ImIiIiIiEQ4NX4iIiIiIiIRTo2fiIiIiIhIhFPjJyIiIiIiEuGivA4gIiISanr16kVGRgY+nw/HcahUqRItWrSgbdu2OE7u10z37t1L7969+eCDD/D5fEFKLCIikjs1fiIiImfRv39/6tSpw9GjR1m3bh3jxo1j06ZN9OzZ0+toIiIi502Nn4iISC7i4uJo1KgRpUqV4rnnnqNTp06kpaXx4YcfkpKSQlxcHK1bt6Zr164AvPjiiwB0794dgOeff54aNWqwcOFCZs6cSUZGBklJSfTo0YOEhASv3paIiBQyesZPREQkD5KSkihTpgzr168nJiaG3r17M27cOAYMGMD8+fNZtWoVAIMHDwZg/PjxTJw4kRo1apCcnMy0adP4y1/+wtixY6lZsybDhw/38u2IiEgho8ZPREQkj8qUKcPhw4e5+uqrqVKlCo7jULVqVa6//nrWrVt3zu3mz59P586dqVSpEj6fj86dO7Nt2zZSU1ODmF5ERAozDfUUERHJo/T0dIoVK8bGjRuZPHkyO3bsIDs7m+zsbJo0aXLO7VJTUxk3bhzvv/9+4GvWWtLT0zXcU0REgkKNn4iISB5s2rSJ9PR0atasyauvvsqNN97IwIEDKVKkCOPHj+fgwYMAGGPO2LZs2bJ06dKF5s2bBzu2iIgIoKGeIiIiuTp69CirV69m+PDhNG/enCpVqnDs2DGKFStGkSJF2LRpE0uXLg28vkSJEhhjSElJCXytXbt2fPbZZ+zcuTOwz+XLlwf9vYiISOFlrLXW6xAiIiKh5NR1/IwxVKpUiebNm9O+fXscx2HFihW8//77HD58mKuuuoqEhASOHDlC3759AZgyZQrz5s0jJyeHZ599lho1arB48WKmT59OWloacXFx/OEPf9DSECIiEjRq/ERERERERCKchnqKiIiIiIhEODV+IiIiIiIiEU6Nn4iIiIiISIRT4yciIiIiIhLh1PiJiIiIiIhEODV+IiIiIiIiEU6Nn4iIiIiISIRT4yciIiIiIhLh1PiJiIiIiIhEuP8Pu2M3hFC/jkIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#@title Basic Plot\n", "feature = \"carbohydrates\" #@param ['calories', 'carbohydrates', 'fat', 'protein', 'sodium', 'sugar']\n", "start_date = \"2022-03-04\" #@param {type:\"date\"}\n", "time_interval = \"full time\" #@param [\"one week\", \"full time\"]\n", "smoothness = 0.02 #@param {type:\"slider\", min:0, max:1, step:0.01}\n", "smooth_plot = True #@param {type:\"boolean\"}\n", "\n", "import matplotlib.dates as mdates\n", "import matplotlib.pyplot as plt\n", "from datetime import datetime, timedelta\n", "\n", "start_date = datetime.strptime(start_date, '%Y-%m-%d')\n", "\n", "if time_interval == \"one week\":\n", " day_idxes = [i for i,d in enumerate(dates) if d >= start_date and d <= start_date + timedelta(days=7)]\n", " end_date = start_date + timedelta(days=7)\n", "elif time_interval == \"full time\":\n", " day_idxes = [i for i,d in enumerate(dates) if d >= start_date]\n", " end_date = dates[-1]\n", "\n", "if feature == \"calories\":\n", " calories = dailySummary_df.get(['calories','date'])\n", " concat_cals = []\n", " for i,d in enumerate(dates):\n", " day = d.strftime('%Y-%m-%d')+' 00:00:00'\n", " if i in day_idxes:\n", " calorie = calories[calories['date']==day]\n", " if len(calorie) != 0:\n", " concat_cals += [(day[:10],calorie.iloc[0].calories)]\n", " else:\n", " concat_cals += [(day[:10],None)]\n", " ts = [x[0] for x in concat_cals]\n", "\n", " day_arr = [x[1] for x in concat_cals]\n", "\n", " sigma = 200 * smoothness\n", "\n", " title_fillin = \"Calorie\"\n", "\n", " \n", "if feature == \"carbohydrates\":\n", " carbohydrates = dailySummary_df.get(['carbohydrates','date'])\n", " concat_carbs = []\n", " for i,d in enumerate(dates):\n", " day = d.strftime('%Y-%m-%d')+' 00:00:00'\n", " if i in day_idxes:\n", " carb = carbohydrates[carbohydrates['date']==day]\n", " if len(carb) != 0:\n", " concat_carbs += [(day[:10],carb.iloc[0].carbohydrates)]\n", " else:\n", " concat_carbs += [(day[:10],None)]\n", " ts = [x[0] for x in concat_carbs]\n", "\n", " day_arr = [x[1] for x in concat_carbs]\n", "\n", " sigma = 200 * smoothness\n", "\n", " title_fillin = \"Carbohydrates (g)\"\n", " \n", "if feature == \"fat\":\n", " fats_df = dailySummary_df.get(['fat','date'])\n", " concat_fats = []\n", " for i,d in enumerate(dates):\n", " day = d.strftime('%Y-%m-%d')+' 00:00:00'\n", " if i in day_idxes:\n", " fats = fats_df[fats_df['date']==day]\n", " if len(fats) != 0:\n", " concat_fats += [(day[:10],fats.iloc[0].fat)]\n", " else:\n", " concat_fats += [(day[:10],None)]\n", " ts = [x[0] for x in concat_fats]\n", "\n", " day_arr = [x[1] for x in concat_fats]\n", "\n", " sigma = 200 * smoothness\n", "\n", " title_fillin = \"Fat (g)\"\n", " \n", "if feature == \"protein\":\n", " protein_df = dailySummary_df.get(['protein','date'])\n", " concat_proteins = []\n", " for i,d in enumerate(dates):\n", " day = d.strftime('%Y-%m-%d')+' 00:00:00'\n", " if i in day_idxes:\n", " protein = protein_df[protein_df['date']==day]\n", " if len(protein) != 0:\n", " concat_proteins += [(day[:10],protein.iloc[0].protein)]\n", " else:\n", " concat_proteins += [(day[:10],None)]\n", " ts = [x[0] for x in concat_proteins]\n", "\n", " day_arr = [x[1] for x in concat_proteins]\n", "\n", " sigma = 200 * smoothness\n", "\n", " title_fillin = \"Protein (g)\"\n", "\n", "if feature == \"sugar\":\n", " sugar_df = dailySummary_df.get(['sugar','date'])\n", " concat_sugar = []\n", " for i,d in enumerate(dates):\n", " day = d.strftime('%Y-%m-%d')+' 00:00:00'\n", " if i in day_idxes:\n", " sugar_item = sugar_df[sugar_df['date']==day]\n", " if len(sugar_item) != 0:\n", " concat_sugar += [(day[:10],sugar_item.iloc[0].sugar)]\n", " else:\n", " concat_sugar += [(day[:10],None)]\n", " ts = [x[0] for x in concat_sugar]\n", "\n", " day_arr = [x[1] for x in concat_sugar]\n", "\n", " sigma = 200 * smoothness\n", "\n", " title_fillin = \"Sugar (g)\"\n", "\n", "if feature == \"sodium\":\n", " sodium_df = dailySummary_df.get(['sodium','date'])\n", " concat_sodium = []\n", " for i,d in enumerate(dates):\n", " day = d.strftime('%Y-%m-%d')+' 00:00:00'\n", " if i in day_idxes:\n", " sodium = sodium_df[sodium_df['date']==day]\n", " if len(sodium) != 0:\n", " concat_sodium += [(day[:10],sodium.iloc[0].sodium)]\n", " else:\n", " concat_sodium += [(day[:10],None)]\n", " ts = [x[0] for x in concat_sodium]\n", "\n", " day_arr = [x[1] for x in concat_sodium]\n", "\n", " sigma = 200 * smoothness\n", "\n", " title_fillin = \"Sodium (g)\"\n", "\n", "with plt.style.context('ggplot'):\n", " fig, ax = plt.subplots(figsize=(15, 8))\n", "\n", " if smooth_plot:\n", " def to_numpy(day_arr):\n", " arr_nonone = [x for x in day_arr if x is not None]\n", " mean_val = int(np.mean(arr_nonone))\n", " for i,x in enumerate(day_arr):\n", " if x is None:\n", " day_arr[i] = mean_val\n", "\n", " return np.array(day_arr)\n", "\n", " none_idxes = [i for i,x in enumerate(day_arr) if x is None]\n", " day_arr = to_numpy(day_arr)\n", " from scipy.ndimage import gaussian_filter\n", " day_arr = list(gaussian_filter(day_arr, sigma=sigma))\n", " for i, x in enumerate(day_arr):\n", " if i in none_idxes:\n", " day_arr[i] = None\n", "\n", " plt.plot(ts, day_arr)\n", " start_date_str = start_date.strftime('%Y-%m-%d')\n", " end_date_str = end_date.strftime('%Y-%m-%d')\n", " plt.title(f\"{title_fillin} from {start_date_str} to {end_date_str}\",\n", " fontsize=20)\n", " plt.xlabel(\"Date\")\n", " plt.xticks(ts[::int(len(ts)/8)])\n", " plt.ylabel(title_fillin)" ] }, { "cell_type": "markdown", "metadata": { "id": "sTLxdx7QbIuR" }, "source": [ "This plot allows you to quickly scan your data at many different time scales (week and full) and for different kinds of measurements (calories, carbohydrates, fat, protein, sodium, and sugar), which enables easy and fast data exploration.\n", "\n", "Furthermore, the smoothness parameter makes it easy to look for patterns in long-term trends." ] }, { "cell_type": "markdown", "metadata": { "id": "4gr_LPn8b2tN" }, "source": [ "# 7. Advanced Visualization\n", "\n", "Now we'll do some more advanced plotting that at times features hardcore matplotlib hacking with the benefit of aesthetic quality." ] }, { "cell_type": "markdown", "metadata": { "id": "_KyItag2cSiF" }, "source": [ "## 4.1 Visualizing participant's Weekly Calorie intake!\n", "\n", "Whenever our participant is curious and logs into MyFitnessPal App to check their overall Calorie intake summary, the MyFitnessPal app would present their data in the form of a bar chart. It should look something similar to this:\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "id": "4A_EIgbFcnBf" }, "source": [ "*Above is a plot from the mobile app itself!*" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 736 }, "id": "Bdcn94ataXmt", "outputId": "5311c9a2-2791-4183-f422-62def4ad7df1" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from datetime import datetime, timedelta, date\n", "\n", "#@title Set date range for the chart above\n", "\n", "start = \"2022-05-15\" #@param {type:\"date\"}\n", "end = \"2022-05-22\" #@param {type:\"date\"}\n", "\n", "# Starting date of our chart\n", "start_date = date(int(start.split('-')[0]),int(start.split('-')[1]),\n", " int(start.split('-')[2]))\n", "\n", "# Ending date of our chart\n", "end_date = date(int(end.split('-')[0]),int(end.split('-')[1]),\n", " int(end.split('-')[2]))\n", "\n", "# A list of all dates between start and end date\n", "dates = list(pd.date_range(start_date,end_date,freq='d'))\n", "\n", "# Creating a dictionary of days with calories\n", "calories = {}\n", "\n", "# Creating a list to store all threshold values (Daily Goals)\n", "threshold = []\n", "\n", "# Saving a list of human readable dates for our reference\n", "Dates = []\n", "\n", "# Appending data for all days between x and y into the calories dictionary\n", "for i in dates:\n", " \n", " threshold_data = goals_df[goals_df['date'] == str(i)]\n", " \n", " if len(threshold_data) > 0:\n", " threshold.append(threshold_data.iloc[0].calories)\n", " else:\n", " threshold.append(0)\n", " \n", " Dates.append(str(i))\n", "\n", " # xtick values are formatted for matplot lib to recognize the bold and non-bold portions\n", " \n", " calorie_data = dailySummary_df[dailySummary_df['date'] == str(i)]\n", " if len(calorie_data)>0:\n", " calories[\"$\\\\bf{\"+i.strftime(\"%A\")[0]+\"}$\\n\"+\n", " str(i)[8:10]] = calorie_data.iloc[0].calories\n", "# Creating DataFrame for our Calorie values and calculating the required metrics\n", "calorie_df = pd.DataFrame(calories.items(), columns=['xtick', 'Calorie Value'])\n", "calorie_df = calorie_df.assign(Date = Dates)\n", "calorie_df = calorie_df.assign(threshold = [float(t) for t in threshold])\n", "calorie_df = calorie_df.assign(calorie_under_goal = \n", " calorie_df.get('threshold') - calorie_df.get('Calorie Value'))\n", "calorie_df = calorie_df.set_index('Date')\n", "# Creating a matplotlib plot of size 16,8\n", "plt1 = plt.figure(figsize=(16,8))\n", "ax = plt1.gca()\n", "\n", "\n", "# Setting the title for the plot\n", "date_range = (str(start_date.day)+' '+str(start_date.strftime(\"%B\"))+\n", " ' - '+str(end_date.day)+' '+str(end_date.strftime(\"%B\")))\n", "plt.title(date_range,fontsize=22)\n", "\n", "# Plotting the weekly values for calorie intake\n", "plt.bar(calorie_df.get('xtick'),calorie_df.get('Calorie Value'), \n", " width=0.65, color =\"#33C77F\")\n", "\n", "# Plotting the Average Calorie intake\n", "plt.bar([\"Avg\"],np.mean(list(calorie_df.get('Calorie Value'))),\n", " width=0.65, color=\"#D8D7DC\")\n", "\n", "\n", "\n", "# Adding veritcal grids\n", "plt.grid(axis=\"y\", color=\"#D8D7DC\")\n", "ax.set_axisbelow(True)\n", "\n", "# Setting custom yticks of gap 700 calories between each\n", "plt.yticks([0,700,1400,2100,2800])\n", "\n", "# Removing the spines on top, left and right\n", "ax.spines['top'].set_visible(False)\n", "ax.spines['right'].set_visible(False)\n", "ax.spines['left'].set_visible(False)\n", "\n", "# Plotting the threshold line\n", "plt.axhline(y=np.mean(threshold),linewidth=2.5, color='k')\n", "\n", "# Changing color of bottom axis and yticks\n", "ax.spines['bottom'].set_color('#D8D7DC')\n", "ax.tick_params(axis='y', colors='#525252')\n", "\n", "# Printing the Weekly Statistics\n", "plt.figtext(0.1,-0.05,\"─────\"*20,fontsize=16,color=\"#D8D7DC\")\n", "plt.figtext(0.1,-0.1,\"Net Calories Under Weekly Goal\", fontsize=16)\n", "plt.figtext(0.1,-0.15,\"─────\"*20,fontsize=16,color=\"#D8D7DC\")\n", "plt.figtext(0.9,-0.1,str(int(np.sum(calorie_df.get('calorie_under_goal')))),\n", " fontsize=16,color=\"#88878B\")\n", "plt.figtext(0.1,-0.2,\"Net Average\", fontsize=16)\n", "plt.figtext(0.9,-0.2,str(int(np.mean(calorie_df.get('Calorie Value')))),\n", " fontsize=16,color=\"#88878B\")\n", "plt.figtext(0.1,-0.25,\"─────\"*20,fontsize=16,color=\"#D8D7DC\")\n", "plt.figtext(0.1,-0.3,\"Goal\", fontsize=16)\n", "plt.figtext(0.9,-0.3,str(int(np.mean(calorie_df.get('threshold')))),\n", " fontsize=16,color=\"#2C5391\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "oigDYwG4hfzM" }, "source": [ "*^ Above is a plot we created ourselves!*" ] }, { "cell_type": "markdown", "metadata": { "id": "Hz3gqRAMhntc" }, "source": [ "## 4.2 Visualizing participant's Weekly Workout Reps!\n" ] }, { "cell_type": "markdown", "metadata": { "id": "zfdtJ5KaibQS" }, "source": [ "As the API allows us to access a participants fitness data. Next, let's try to find what exercises the participant does the most in a week, this would help them get a clear idea of what muscles are being trained more frequently with the most amount of repetitions.

\n", "Below is a sample chart which we would be modeling our chart on." ] }, { "cell_type": "markdown", "metadata": { "id": "ENYyEkDUid2t" }, "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "b5ek0Bd4t1uy" }, "source": [ "*Above is a plot from the mobile app itself!*" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 721 }, "id": "d6H5WhFUoMRC", "outputId": "d8e026ac-6569-48c1-fe9c-59eff390b50b" }, "outputs": [ { "data": { "image/png": "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7zkVuAVz2bht0REksYWjr4mOIInNZnZ0BEmsec6c6AiSWP2JG6MjSEILFy6MjiCJacx7TgVuwQzquzc6giTW2Udn+YumnvroCJLY7oEa86Kxfno/L5LOzs7oCJKYxrznVOCKiIiIiIhILqjALZiNnX2jI0hiQ3dviI4gibWh/TGLpn6Txrxo9nb0i44gCQ0dOjQ6giSmMe85FbgFM3/d4OgIkthZrXdER5DE7uGe6AiS2Pi7746OIIntbGmIjiAJnXXWWdERJDGNec+pwC2Ys0e0R0eQxFYOOy86giR2JmdGR5DE1k2bFh1BEus/Vk0ji2TlSm3/VjQa855TgVswJw3ZFR1BElszcFJ0BElsAhOiI0himye+JDqCJNavoSM6giS0Zs2a6AiSmMa851TgioiIiIiISC6owBUREREREZFcUIFbMHesHhIdQRKbsf6W6AiS2HzmR0eQxCbeOS86giTW/tTI6AiS0IwZM6IjSGIa855TgVswI+v2REeQxLb2Hx0dQRJrQN1Vi6ZjxIjoCJJYn/rd0REkoa1bt0ZHkMQ05j2nArdgzh+tLspFs7zhtdERJLFzOCc6giS2ZqbO9BfNgOO2REeQhJYvXx4dQRLTmPecClwRERERERHJBRW4IiIiIiIikgsqcAvmgY310REksVO23B8dQRJbytLoCJLYmCW/jo4giXWuVdPIIjnllFOiI0hiGvOeU4FbME9tr4uOIIk1tT8WHUESa6ElOoIkNry5OTqCJLanTSesi6SpqSk6giSmMe85FbgFc/XxakpRNAvGvDs6giR2GZdFR5DEnrjyiugIktjASRuiI0hCCxYsiI4giWnMe04FroiIiIiIiOSCClwRERERERHJBRW4BbO6vV90BEmsceez0REksbWsjY4giQ1+/vnoCJLYnm3qqVEkjY2N0REkMY15z6nALZh7NwyKjiCJTW37aXQESWwxi6MjSGJNCxdFR5DEOp8bFh1BEpo6dWp0BElMY95zKnAL5vxRO6IjSGLLGi6JjiCJncM50REksdUzZ0RHkMTqjlPTyCJZtmxZdARJTGPecypwC6Zp4O7oCJJY64Dx0REksbGMjY4giW0/9tjoCJJY3yGd0REkodbW1ugIkpjGvOdU4IqIiIiIiEguqMAVERERERGRXFCBWzC3rlJTiqKZte4b0REksbnMjY4giZ18+/ei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I98p5jr/5z5+f9hztx/fynN3xT3/cZ87N+y5XyxdwS2Y+WsHR0eQxKa33hEdQRK7h3uiI0hi4+/+eXQESayjRXsfF8m2FY9ER5DETlrbGB2hZqnAFRERERERkVxQgVsws8duj44giT3ceHl0BEnsAi6IjiCJPXvRhdERJLH6CW3RESShIZPPiI4giT05tjU6Qs1SgSsiIiIiIiK5oAJXREREREREckEFbsEs3zwgOoIkNmHbkugIkthKVkZHkMQaH10RHUES27VhUHQESWjnmmejI0hiYzYPiY5Qs1TgFsxvtqjALZqJ21XgFs1jPBYdQRJrXKECt2h2q8AtFBW4xTN2iwrcnlKBWzCXjdsWHUESWzj6mugIkthsZkdHkMSa58Ttzykx6k/cGB1BEho69ezoCJLYinHroyPULBW4BTOo797oCJJYZx+d5S+aeuqjI0hiuwdqzIvG+un9vEisf110BElsV9890RFqlgpcERERERERyQUVuAWzsbNvdARJbOjuDdERJLE2tD9m0dRv0pgXzd6OftERJKE9O7TErGgGdvaPjlCzVOAWzPx1g6MjSGJntd4RHUESu4d7oiNKXlVpAAAgAElEQVRIYuPvvjs6giS2s6UhOoIktH3FI9ERJLGT1zVGR6hZKnAL5uwR7dERJLGVw86LjiCJncmZ0REksXXTpkVHkMT6j9UVvSKpP+HE6AiS2HMjtkRHqFkqcAvmpCG7oiNIYmsGToqOIIlNYEJ0BEls88SXREeQxPo1dERHkITqRo+NjiCJtQ7ZER2hZqnAFRERERERkVxQgSsiIiIiIiK5oAK3YO5YPSQ6giQ2Y/0t0REksfnMj44giU28c150BEms/amR0REkoa3LHoyOIIlNXj06OkLNUoFbMCPrtGl00Wztrz+QRdOAuqsWTceIEdERJLE+9bujI0hCfQfpAkXRtNfpd7ynVOAWzPmj1UW5aJY3vDY6giR2DudER5DE1sycER1BEhtwnDqsFsmgkyZHR5DEnhm9KTpCzVKBKyIiIiIiIrmgAldERERERERyQQVuwTywsT46giR2ypb7oyNIYktZGh1BEhuz5NfRESSxzrVak1kk7b97KjqCJHbcxmHREWqWCtyCeWp7XXQESayp/bHoCJJYCy3RESSx4c3N0REksT1tOmFdJLvWr42OIIk1bh8UHaFmqcAtmKuP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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#@title Set date range for the chart below\n", "\n", "start = \"2022-05-12\" #@param {type:\"date\"}\n", "end = \"2022-05-19\" #@param {type:\"date\"}\n", "\n", "# Starting date of our chart\n", "start_date = date(int(start.split('-')[0]),int(start.split('-')[1]),\n", " int(start.split('-')[2]))\n", "\n", "# Ending date of our chart\n", "end_date = date(int(end.split('-')[0]),int(end.split('-')[1]),\n", " int(end.split('-')[2]))\n", "\n", "# A list of all dates between start and end date\n", "dates = list(pd.date_range(start_date,end_date,freq='d'))\n", "\n", "# Dictionary to save all the exercises\n", "exercises = {}\n", "\n", "# Going through all the days in the week to count all exercises\n", "for d in dates:\n", " day = exercises_strength_df[exercises_strength_df['day']==str(d)]\n", " for i in range(len(day)):\n", " exercise = day.iloc[i]\n", " if exercise['name'] not in exercises:\n", " exercises[exercise['name']] = (exercise['nutrition_information']['sets'] *\n", " exercise['nutrition_information']['reps/set'])\n", " else:\n", " exercises[exercise['name']] =+(exercise['nutrition_information']['sets'] *\n", " exercise['nutrition_information']['reps/set'])\n", " \n", "# Sorting Dictionary in Descending order and storing it in a list\n", "exercises = sorted(exercises.items(), key=lambda x: x[1], reverse=True)\n", "\n", "# Creating a DataFrame for our exercises and counts\n", "exercises_df = pd.DataFrame()\n", "exercises_df = exercises_df.assign(Name=[e[0] for e in exercises])\n", "exercises_df = exercises_df.assign(Count=[e[1] for e in exercises])\n", "\n", "# Creating a matplotlib plot of size 16,8\n", "plt1 = plt.figure(figsize=(16,8))\n", "ax = plt1.gca()\n", "\n", "\n", "# Creating the grids\n", "plt.grid(color=\"#a1a1a1\", linestyle='--', linewidth=1, alpha = 0.7)\n", "\n", "# Setting colors\n", "colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd',\n", " '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']\n", "\n", "# Plotting a Bar chart\n", "plt.bar(exercises_df.get('Name'),exercises_df.get('Count'), \n", " width=0.5, color=colors)\n", "\n", "# Rotating xticks\n", "plt.xticks(rotation = 90)\n", "\n", "# Incresing font size for y ticks\n", "ax.tick_params(axis='both', labelsize=12)\n", "\n", "# Setting x & y labels\n", "plt.ylabel(\"Number of Reps\", size=20)\n", "plt.xlabel(\"Workout Activity\", size=20)\n", "\n", "# Setting plot title\n", "plt.title('Number of total reps of each activity in Week', size=20)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "0V8OxkbUtxxI" }, "source": [ "*^ Above is a plot we created ourselves!*\n" ] }, { "cell_type": "markdown", "metadata": { "id": "LCiSRYkNtmJU" }, "source": [ "## 4.3 Participant's Weekly Carbohydrate Intake!" ] }, { "cell_type": "markdown", "metadata": { "id": "WvUWBY4NttDK" }, "source": [ "Similar to 4.1, whenever our participant is curious and logs into MyFitnessPal App to check their overall Carbohydrates intake summary, the MyFitnessPal app would present their data in the form of a bar chart. It should look something similar to this:" ] }, { "cell_type": "markdown", "metadata": { "id": "UGVFVuPJtvc0" }, "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "id": "Ksg25qDWxs5V" }, "source": [ "*Above is a plot from the mobile app itself!*" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/", "height": 762 }, "id": "5Ao0hzVKtOH_", "outputId": "dad73931-b06d-4508-f2ff-a3499b08f614" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7QAAALpCAYAAACDoGozAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdebytZV03/s9Xjopo4oADgQWhgmaG5piVOGSkpuYyU8sHTMUseZyazEqtHtO0HB/9iUNYzrgcqJxJ7MkJUXEGE0UFQUEEREAFr98f99q5ztrD2Wfaa12b9/v1Wq+973vdw3fva61z9mdd133d1VoLAAAA9OYq8y4AAAAAdoRACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFYCFU1ZFV1aYeZ8ypjhNn6nj6POrYlpkaW1UdNu+aAGCjbZl3AQBsjKr6lSQPTPJLSfZPcr0kP0xydpJPJXl3kje11i6YW5F0q6oOTfKAqVUXtNaeP696ALhyEGgBNrmqukWSVyW50wpPXzXJQZPHA5P8Y1XdtLV2zgaWyOZwaJKnTS1/NYlAC8BuJdACbGJVda8kb0lyzXXucs0ke+6+igAAdh2BFmCTmvTMHpflYfYDSY5J8pkMQ473T/IrSY5I8lMbWSMAwM4wKRTA5vWPSa49s+6vW2uHtdZe11r7TGvt1Nba+1prf5XkZ5IcneSyJKmqvavqqKp6eVWdXFVfq6rvVtUPquq8qvpQVT2zqn56pZNX1WGzExdN1v9yVb29qr5VVT/a1qRLk+3/tarOrapLquqUqjq6qvbYxn6/WlWvqarTq+riqrp08jOMq+q3qmrd/wdW1R5V9YdV9fHJsS6sqhOq6u4z2x0y8zNfWlXXWeWYn5jZ9siZ5/esqr+oqi9MjnNOVb2+qm61zpqXTW5VVXtNvn5+8rtsU9vfpaqeUVXvqKrTJu3zg0mbn15Vb66qB1VVzZznyMlx/mmmhJ9ez8RVVXWfqnpdVX25qr43efx3Vb1icl3uaj/f1avqD6rqfVV1dlV9f7LvGZPX5gur6mFV9RPr+X0B0KnWmoeHh4fHJnskuWWSNvN493Ye404rHGOlx8VJHrDC/oetsO2jk1wxs+7pk+2PnFl/RpLHrrD90uPfklxthfNeO8nb11H3h5L85Ar7nziz3XOS/Mcqx7g8yf1n9p/d9rErnOPAFX6H15p6fu8kH1vlnJcl+Y0V1h+2jZ/j+Uk+Pbvf1PbvWmd7vy/JNab2m223tR6HTe13g8mx1tr+R0n+NknN/Gx7rfH7WfP34uHh4eGxuR56aAE2p19fYd1zdtO5rpnktVX1k+vY9qVZ/+igGyd58Rrb3yfJX0+vmPTavjnJ/dZx/DsneWdVbev64scnudsqz+2R5CVVNX0Jz0tmtnnECvuNZpbf2lq7eGr5mCS3W+WcV0/yhlWeW8vjkvzcDuw36x5JnrkzB6iqPZO8Y3KsNTdN8tTJY9rjsvrvB4ArEYEWYHO69czy5Un+azuP8aMMvWBPTXLfJHdIcvMkt88wNPn8qW33SvKodRxzjwyTVP1Khl7kUZKTVtn26kl+kCFQ/vxk26/ObPOkqrrR1PLDkvzqzDZvydBbfKck/9/Mc7dO8sRt1HzVJJ9L8mtJbpvkNTPP/2SSu0wtvy3JN6aWb19VPzuzz2ygffXSN1V12yQPnnn+U0nuPTn/07JjE3ftkeTbSX4/yS2S3DHJX049f36Sf0nyuxkC/C2T3CrDhyNvmTnWUZNQmgwfIByY5I9ntjlrsn768ZHJc0/I1oH0vEldt578jH+ToXd1ydOq6sCp5V+eOdc/JPmFJDfL8Do9Iskrk3wrAGxqJoUC2JxuMLP87dbaZdtzgNbaSRnCwUpOrqqrZQgSS+6yyrbTTkzyoNbaUlj5wja2/6PW2v+dfP/pqvpihsmsllw1yYOSLG3z6Jn9PzFzvo9W1Y2z9f1SH51hWOtqrkhy39baGUlSVY/I0Dt83altfi7DZFtprV1eVS/P1rew+b0kT57sv1+GMLnkzAzDlJc8dOb8lya5Z2vtvMnyJyfXhf7RGjWv5rdaa++fWv6fDxNaaw9bZZ/PVdV7MoThpeuB90pymyQfnvQsX1xV583sd/nS72wFj5lZ/t3W2runlj9ZVQckefhkeUuG3+FfTi1Pe05r7ZtTyx9L8s+THvurrVIDAJuAHloAVlVVN66qv6qqD0wm3rlsaoKnf5jZfD1Djp8zFS7X41+mF1prn80QUqfdflLrliy/1+6rVzjf7ORFP1VVN1mjhvdOB7PW2uVJvjyzzezETy/P0Cu+5HenhiU/MMNQ2iWvaa39aGr59jPHeudUmF3yz2vUu5qPzYTZZarqvlX12smkURdV1RWTtr4iy3/G9bT3SufYP8kBM6vfNTuBVH4cZpf80tT3n5x57qSqellVPaGqDq+qfZOktXZFa+3SHakTgD7ooQXYnM6dWb5+Ve25Pb20VXW3DJMrrXeW2GutY5tPr/f8Sc5vrV20wvqvZhiWumRpyPH1MvTYTvvKCvufscK6fZN8fZU6/nuFdbMhaav/T1trZ1XV8RnCa5LcMMOw7bdljeHGEzeaWV6p3tmh1+ux6u9+EraPy9Y919uynvZeyQ4F4QzXVC95YYbAu/9k+aeSHDW9cVV9NskLkrxyOz9EAaAjemgBNqfZ8LIlW/dwrWkynPi1WX+YTbbudVzNN7a9yTZtdDg5f4V1V6xjv2WTQ1XVDbP19Z8ntdZOndluPb/HHfkdrPW7f2y2L8wm66tzV7rG0jettXMyfKjx7Kz8gUMyXP/78iR/vvtLA2BeBFqAzemdK6x78nbsf5cMvZbTXpxhSO9BGSb4+YvtLWpmaO22XK+qZu+jmywfrrp07eT5SX4489yBWW52/yQ5ezvqWpfW2glJTptade8M145O/9+70tDhb84s//QK2xywAyWt9bt/0MzyVzJMTHXL/HhCp9lhzzvqnBXWHZblE0jNPrb6QKa1dm5r7c9aazfP0Dt/pwyTQb1x5th/VNtxz2EA+uIfeIBNqLX2+Qz3FZ12eFX95UrbJ0lVXaWq/mAyadJsmL2gtXZ0a+2jrbUvT64pve3yo+xyW11HWVW3XOG8H0v+59rWj8w8d0RVzfYkzt5G52uttdWGG++sl059vyVbzyr8gySvX2Gfj80s/3pVXX9m3ez1pTtrtr1f2Fo7rrX2hUlbXzvJPts4xuyHCddYaaPW2teyfMj0vVtrZ6z2SPIzmZrcqapuNN2urbXvTF6b/9xae0iSC6aOfZ0MQ74B2IRcQwuweT0pyS9mCCNL/npybewxST6bIYTsl6H368gMPWHvyPLeuOtMwvA4yd4Zrld8YHa/505mqj0xQ6h53szzP5zUtOTl2XpI722TvLmqXpDksgxhdnZo7ct3ZcEzXp3hnq17TZanr/H999baSsOZX5+te9P3SvLeqvrzDL2b983QtrvSeRluebPk96rq0xl6rm+X9d13dva67RtW1aMyzP78wwyzHp85ee5lM8f8k8lw7NdmuJb56hna+04ZXmc3y3AroaXJuP44yQOq6m1JPpzk9CTfzfDa/O0sn8Dqe+uoH4AOCbQAm1Rr7QtV9VsZ7iF6zamn7jZ5rOWDSb6TrW9N89eTx5JvZvkERrvSFRnut/qCNbZ5/uR6yiWvS/K/ktxzat0Ds3r4/kyWh+RdprV2QVW9PskjV3h6djKopX0+XlVvztbDgG+TrYeRX55d61+T3Hlq+eeSnDC1fEmSi7P2RFAfn9Q1/bfF9IcFZ+XHkzg9P8PPN93bfuTksV4HZX3D6D/YWvvudhwXgI4YcgywibXW3pPhNjCzQ3FX870kl7XWvpfkD7L6dZcfSvKMna9wTWcmeeoaz78rWw/hTWvtigyzCP/rOo7/kSSHT37W3Wl2cqhk6BF9xxr7PDrLb0+05IqsHJB3xguSnLzKcz/McG3qt9c6QGvt20lesZ6TTW6lc3iS966zvouTXLjObaednZnZjwHYXARagE1uch3knTNMvPPCDEHp3AxB5dIMwzjfmmHCov2Xejxba2/I0JP7niQXTbb9fIbJoO6W5beu2R21PzPJvZK8O0OP8WUZZnB+QpL7tta+v8I+F7XW7pfk1zL02H5lUuv3M/QSvi3DsNS7tNZ2xazL2/oZPpHkozOrX99am73mdHqfCzIMA39ahomlvp8hBL89Q907ch/atWq8JMPr45kZhu/+MMNr5O1Jfqm19uZ1HupxGYYDn5KhV3etc57bWrtXhnb65wyzFV+coZf3Oxlep6/I0FY3bq1N33v2WRkmrXpxhiHHZ0zOt1T3fyZ5SpJbTq4nB2CTKrdmA4Ddq6pek+R3plbdrrX28XnVAwCbhUALALtRVf1ihutR95ys+kRr7RfmWBIAbBomhQKAXayq7phhxt5rJrnxzNP/Z+MrAoDNSaAFgF3vGhlm4Z312tbaWza6GADYrARaANi9Lk7ypQz3/j1mzrUAwKbiGloAAAC6tNE9tNIzAADA5lUbeTL3oQUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAl7bMu4BFUi+6cN4lLJx29N7zLgEAAGBFemgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC5tWc9Go9HoiUkelaQl+UySRyTZN8kbklw/yceTPHw8Hv9gN9UJAAAAW9lmD+1oNNovyf9OcrvxeHyrJHskeUiSZyd53ng8vmmS7yR55O4sFAAAAKatd8jxliTXGI1GW5LsleTsJHdP8ubJ869O8oBdXx4AAACsbJtDjsfj8Vmj0ei5Sb6W5NIk78kwxPiC8Xh8+WSzM5Pst61jnXbq6TtR6kbYZ94FLJzFbzMAAGBRHHzIQRt6vm0G2tFodN0k909yYJILkhyX5PD1nmA0Gh2V5KgkecD9H5g73OFOO1YpAAAATFnPpFD3TPKV8Xh8bpKMRqO3JLlLkuuMRqMtk17a/ZOctdLO4/H4mCTHTBbbzpe8G733wnlXsHA2+hMWAACA9VpPoP1akjuNRqO9Mgw5vkeSk5O8P8mDMsx0fESSt++uIgEAAGDWNieFGo/HH80w+dMnMtyy5yoZelz/NMmTRqPRlzLcuueVu7FOAAAA2Eq1tqGjgBd6yHG9yJDjWe3oveddAgAA0I/ayJOt97Y9AAAAsFAEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6NKWeRcAbF71ogvnXcLCaUfvPe8SAAA2DT20AAAAdEmgBQAAoEsCLQAAAF0SaAEAAOiSQAsAAECXBFoAAAC6JNACAADQJYEWAACALgm0AAAAdEmgBQAAoEsCLQAAAF0SaAEAAOiSQAsAAECXBFoAAAC6JNACAADQJYEWAACALgm0AAAAdGnLvAtYJHt89op5lwAAAMA66aEFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALq0ZT0bjUaj6yR5RZJbJWlJfi/JaUnemOSAJGckefB4PP7ObqkSAAAAZqy3h/YFSd41Ho8PSfLzSb6Q5M+SnDAej2+W5ITJMgAAAGyIbQba0Wi0d5JfSfLKJBmPxz8Yj8cXJLl/kldPNnt1kgfsriIBAABg1nqGHB+Y5Nwk/zQajX4+yceTPD7Jjcbj8dmTbc5JcqNtHei0U0/f0To3yHXnXcDCWfw2Y7HtM+8CFo73FACwmR18yEEber71DDnekuS2SV46Ho9vk+R7mRlePB6PW4Zra5cZjUZHjUajk0ej0cknnfSRna0XAAAAkqyvh/bMJGeOx+OPTpbfnCHQfnM0Gu07Ho/PHo1G+yb51ko7j8fjY5IcM1lcMfQujvPnXcDC2ehPWNhk3nvhvCtYON5TAAC7zjZ7aMfj8TlJvj4ajQ6erLpHks8nOT7JEZN1RyR5+26pEAAAAFawrtv2JDk6yWtHo9HVknw5ySMyhOE3jUajRyb5apIH754SAQAAYLl1BdrxeHxKktut8NQ9dm05AAAAsD7rvQ8tAAAALBSBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAurRl3gUAm9cen71i3iUAALCJ6aEFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgS1vmXQAAAMCs0049fd4lLJyDDzlo3iUsHD20AAAAdEmgBQAAoEsCLQAAAF0SaAEAAOiSQAsAAECXBFoAAAC6JNACAADQJYEWAACALgm0AAAAdEmgBQAAoEsCLQAAAF0SaAEAAOiSQAsAAECXBFoAAAC6JNACAADQJYEWAACALgm0AAAAdEmgBQAAoEsCLQAAAF0SaAEAAOjSlnkXAAAAG6ledOG8S1g47ei9510C7BA9tAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkmhAAB2EZMNLWeyIWB30kMLAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRpy7wLAAC2rV504bxLWDjt6L3nXQIAc6aHFgAAgC4JtAAAAHRpQ4ccH3bYYRt5uu12xRcvn3cJC+ew04xKZ8d5Ty3nPcUOO8v7adZh4wV8P2mnZbRTHxaxnS655NJ5l7Bw9trrGvMuYZtOPPHEDT1ftdY27mRVG3cyAAAANlRrrTbyfBv6Ucxd73rXjTzddvuA3qRl7nrzxfu0jn54Ty3nPcWO+oAepWXuut/ivZ+003LaqQ+L2E56aJfroYd2o21oD22She6h3fKY8+ddwsK5/GXXm3cJdMx7ajnvKXaUWY6XW8RZjrXTctqpD4vYTqedevq8S1g4Bx9y0LxLWI8N7aE1KRQAAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRp3XdQHo1GeyQ5OclZ4/H4vqPR6MAkb0hy/SQfT/Lw8Xj8g91TJgAAAGxte3poH5/kC1PLz07yvPF4fNMk30nyyF1ZGAAAAKxlXYF2NBrtn+Q+SV4xWa4kd0/y5skmr07ygN1RIAAAAKxkvUOOn5/kT5L8xGT5+kkuGI/Hl0+Wz0yy37YOctqpp293gRvruvMuYOEsfpux2LynZnlPseP2mXcBC2cx30/aaZZ26sNithOzemingw85aEPPt80e2tFodN8k3xqPxx/fkROMRqOjRqPRyaPR6OSTTvrIjhwCAAAAlllPD+1dktxvNBrdO8meSa6d5AVJrjMajbZMemn3T3LWSjuPx+NjkhwzWWw7X/LudP68C1g4G/0JC5uN99Qs7yl22HsvnHcFC2ch30/aaRnt1IdFbKceeiM32iK207xts4d2PB4/ZTwe7z8ejw9I8pAk/zEej38nyfuTPGiy2RFJ3r7bqgQAAIAZO3Mf2j9N8qTRaPSlDNfUvnLXlAQAAADbtu770CbJeDw+McmJk++/nOQOu74kAAAA2Lad6aEFAACAuRFoAQAA6JJACwAAQJcEWgAAALq0XZNCAWyPG5985LxLWEDHz7sAAIBNQw8tAAAAXRJoAQAA6JJACwAAQJdcQwtwJVcvunDeJSycdvTe8y4BAFgHPbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJe2zLsA2BH1ogvnXcJCaUfvPe8SAABgw+mhBQAAoEsCLQAAAF0SaAEAAOiSQAsAAECXBFoAAAC6JNACAADQJYEWAACALgm0AAAAdEmgBQAAoEsCLQAAAF0SaAEAAOiSQAsAAECXBFoAAAC6JNACAADQJYEWAACALgm0AAAAdGnLvAtYJDc++ch5l7CAjp93AQAAu9R+xz583iUsnqP9zUef9NACAADQJYEWAACALgm0AAAAdEmgBQAAoEsmhQIA2EVMNrQCkw0Bu5EeWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRYAAIAuCbQAAAB0SaAFAACgS1vmXQAAsG37HfvweZeweI4+ft4VADBnemgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABd2jLvAgAANosrrvuMeZcAcKWihxYAAIAuCbQAAAB0SaAFAACgSwItAAAAXdrmpFCj0egmSf45yY2StCTHjMfjF4xGo+sleWOSA5KckeTB4/H4O7uvVAAAAPix9fTQXp7kyePx+JZJ7pTkD0ej0S2T/FmSE8bj8c2SnDBZBgAAgA2xzUA7Ho/PHo/Hn5h8/90kX0iyX5L7J3n1ZLNXJ3nA7ioSAAAAZm3XfWhHo9EBSW6T5KNJbjQej8+ePHVOhiHJazrt1NO3tz7mbHHbbJ95F7BQFredmLWYbeX9NGsx24lZ2qkP2qkP2qkPPbTTwYcctKHnW/ekUKPR6FpJxkmeMB6PL5p+bjwetwzX166031Gj0ejk0Wh08kknfWSnigUAAIAl6+qhHY1GV80QZl87Ho/fMln9zdFotO94PD57NBrtm+RbK+07Ho+PSXLMZHHF0Mvi2uhPWNbtvRfOu4KFsrDtxDIL2VbeT8ssZDuxzGK20yfnXcDCWcx2YtYitlMPvZEbbRHbad622UM7Go0qySuTfGE8Hv/j1FPHJzli8v0RSd6+68sDAACAla2nh/YuSR6e5DOj0eiUybo/T/KsJG8ajUaPTPLVJA/ePSUCAADActsMtOPx+L+S1CpP32PXlgMAAADrs+5JoQAAAGCRCLQAAAB0SaAFAACgSwItAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANClLfMuAID52u/Yh8+7hMVz9PHzrmCZK677jHmXAAALRw8tAAAAXRJoAQAA6JJACwAAQJcEWgAAALpkUqgpJtwAAADohx5aAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAl7bMuwDYEfsd+/B5l7BYjj5+3hUAAMCG00MLAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAl7bszM6j0ejwJC9IskeSV4zH42ftkqoAAABgG3a4h3Y0Gu2R5P8m+fUkt0zy0NFodMtdVRgAAACsZWeGHN8hyZfG4/GXx+PxD5K8Icn9d01ZAAAAsLadGXK8X5KvTy2fmeSOa+1w2qmn78TpmAdt1gft1A9t1Qft1Aft1Aft1Aft1Ice2ungQw7a0PNVa22HdhyNRg9Kcvh4PH7UZPnhSe44Ho8fN7PdUUmOSpInP/lP97z+9a5/2c6VfOVw3nnn7rPPPjc4b951sDbt1Aft1Aft1Aft1Aft1Aft1A9ttV3OO/iQgw7fqJPtTA/tWUluMrW8/2TdVsbj8TFJjtmJ81wpHVI3Pbm1drt518HatEOPn9AAACAASURBVFMftFMftFMftFMftFMftFM/tNXi2plA+7EkNxuNRgdmCLIPSfKwXVIVAAAAbMMOTwo1Ho8vT/K4JO9O8oUkbxqPx5/bVYUBAADAWnbqPrTj8fgdSd6xi2pha4Zp90E79UE79UE79UE79UE79UE79UNbLagdnhQKAAAA5mln7kMLAAAAcyPQLpCqun5VnTJ5nFNVZ00tX23e9fFjVXXFVNucUlUHzLsmVlZVT62qz1XVpydtteb9spkP7bTYqqpV1WumlrdU1blV9W/zrIut+Tti8VXV86rqCVPL766qV0wt/0NVPWk+1V25VdUDJv/WHTLvWtg+O3UNLbtWa+3bSQ5Nkqp6epKLW2vPnWtRrObS1tqh8y6CtVXVnZPcN8ltW2vfr6p9kvijbsFopy58L8mtquoarbVLk/xqVrhVH/Pl74gufDDJg5M8v6qukmSfJNeeev4XkzxxHoWRhyb5r8nXp825FraDHlpgM9s3yXmtte8nSWvtvNbaN+ZcE8tppz68I8l9Jt8/NMnr51gL9OpDSe48+f5nk3w2yXer6rpVdfUkt0jyiXkVd2VVVddK8ktJHpnkIVV1eFUdN/X8YUsjUqrqkVX1xao6qapeXlUvnlPZTAi0sGOuMTWM663zLoZVvSfJTSb/8bykqu4674JYkXbqwxsy/KG3Z5JbJ/nonOuB7kw+rLu8qn4qQ2/shzO8l+6c5HZJPtNa+8EcS7yyun+Sd7XWvpjk20m+k+SOVXXNyfO/neQNVfWTSf4yyZ2S3CWJ4ckLQKCFHXNpa+3QyeM3510MK2utXZzkF5IcleTcJG+sqiPnWhTLaKc+tNY+neSADL2zbtkHO+5DGcLsUqD98NTyB+dY15XZQzN8aJfJ199K8q4kv1FVWzKMTnl7kjsk+UBr7fzW2g+THLfSwdhYrqEFNrXW2hVJTkxyYlV9JskRSY6dZ00sp526cXyS5yY5LMn151sKdOuDGcLrz2UYcvz1JE9OclGSf5pjXVdKVXW9JHdP8nNV1ZLskaQleUSSP0xyfpKTW2vfrar5Fcqq9NACm1ZVHVxVN5tadWiSr86rHlamnbryqiTPaK19Zt6FQMc+lGEivPNba1e01s5Pcp0Mw44/NNfKrpwelORfWms/3Vo7oLV2kyRfSXJ5ktsmeXR+3Hv7sSR3nVzzvCXJaC4VsxU9tMBmdq0kL6qq62T4j+lLGYa1sli0Uydaa2cmeeG864DOfSbD7Mavm1l3rdbaefMp6UrtoUmePbNunOQhSf4tyZEZRg2ltXZWVT0zyUkZem5PTXLhhlXKiqq1Nu8aAAAAFl5VXau1dvGkh/atSV7VWjNB6BwZcgwAALA+T6+qUzJc//yVJG+bcz1XenpoAQAA6JIeWgAAALok0C6AqnpVVX2rqj47te45VXVqVX26qt46mSyFOVqlnf5m0kanVNV7JjfcZo5Waqep555cVa2q9plHbfzYKu+np1fVWZP30ylVde951sjq76eqOnryf9Tnqurv51Ufg1XeT2+cei+dMRkiyRyt0k6HVtVHJu10clXdYZ41Qo8E2sVwbJLDZ9a9N8mtWmu3TvLFJE/Z6KJY5tgsb6fntNZu3Vo7NMNMeH+14VUx69gsb6dU1U2S3CvJ1za6IFZ0bFZopyTPa60dOnm8Y4NrYrljM9NOVXW3JPdP8vOttZ/NcF9a5uvYzLRTa+23l95LGWZsfcs8CmMrx2b5v3t/n+FWWIdm+BvCB0SwnQTaBdBa+88MU39Pr3tPa+3yyeJHkuy/4YWxlVXa6aKpxWtmuBE3c7RSO008L8mfRBsthDXaiQWySjs9NsmzWmvfn2zzrQ0vjK2s9X6qqkry4CSv39CiWGaVdmpJrj35fu8k39jQomATEGj78HtJ3jnvIlhZVf2fqvp6kt+JHtqFVFX3T3JWa+1T866FbXrcZBj/q6rquvMuhhXdPMkvV9VHq+oDVXX7eRfEmn45yTdba/8970JY0ROSPGfyd8RzY0QebDeBdsFV1VOTXJ7ktfOuhZW11p7aWrtJhjZ63LzrYWtVtVeSP48PG3rw0iQHJTk0ydlJ/mG+5bCKLUmul+ROSf44yZsmvYAspodG7+wie2ySJ07+jnhiklfOuR7ojkC7wKrqyCT3TfI7zf2VevDaJKN5F8EyByU5MMmnquqMDMP3P1FVN55rVSzTWvtma+2K1tqPkrw8iclRFtOZSd7SBicl+VESE60toKrakuSBSd4471pY1RH58fXNx8W/e7DdBNoFVVWHZ7je736ttUvmXQ8rq6qbTS3eP8mp86qFlbXWPtNau2Fr7YDW2gEZ/hi/bWvtnDmXxoyq2ndq8Tcz3LSexfO2JHdLkqq6eZKrJTlvrhWxmnsmObW1dua8C2FV30hy18n3d09iaDhspy3zLoCkql6f5LAk+1TVmUmeluEaiqsnee9kJNdHWmu/P7ciWa2d7l1VB2foofhqEm00Zyu1U2vNEK4Fs8r76bCqOjTDJClnJHnM3Aokyart9Kokr5rceuQHSY4wimi+1vh37yEx3HhhrPJ+enSSF0x60y9LctT8KoQ+lf+DAAAA6JEhxwAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRJoAUAAKBLAi0AAABdEmgBAADokkALAABAlwRaAAAAuiTQAgAA0CWBFgAAgC4JtAAAAHRpy7wLAFiy7z0/eU6SG827ju30zbPfd5sbz7sI+rblMed3+dq//GXX89oHYK700AKLpLc/6JM+a2bx9Pg66rFmADYZgRYAAIAuCbQAAAB0SaAFAACgSwItwG5UVUdWVZt6XFFVZ1XVm6rq4DnWc9NtbHfjqjq+qs6fbP+EXVjDoVX19Kq63q46Jotnhdf+96rqjKp6a1U9uKpqatsDJtscOceSAeiQWY4BNsZvJTkzyR5JDkryl0lOqKqfba1dONfKVvZXSe6a5MgkZyc5Yxce+9AkT0vymiTn78LjspiWXvtXT/JTSe6T5PVJjqqq32itXZrhNXbnJKfPrUoAuiTQAmyMU1prX5p8/8Gq+kaS9yb5xSTvXGmHqrp6a+37G1XgjFsk+VRr7a1zOj+bx/RrP0n+paqOS3Jckr9PcvTkdf6RuVS3DnN+LwKwBkOOAebjosnXqybJZAhuq6pbVdW7q+riJG+aPLdXVT27qr5SVT+YfH1qVf3Pv+FVtWdVPa+qPltVF1fVOVX1r1V1yLYKqarbVdU3q+otVXVIVbUkhyX55anhogdU1Q2q6mVV9cWquqSqvl5Vr6uq/WaOd/PJsNJvVdVlVfW1qjquqrZMhpT+02TT/54+/s79OulJa22c5O1JHj15fS8bclxVx1bVmVV1m6r6f5PX3H9X1e9PH2tqaPOdquq1VXVRVX2jql5YVXvObLue99Jhk+M9sKpeXlXnJvnm7v2NALCjBFqAjbHHJNBdvapukeSZSb6V5MSZ7d6e5ANJ7pfkeVW1Jcm7kzwqyQuS/HqSV2QYsvycqf2unuQnkvxthiGdj02yZ5IPV9WNVyuqqu6V5P1J3pphaOhXMgz9/HSST06+v3OGIaHXS3JZkqckOTzJHye5WYYe5+ng8O9J9pvU8GtJ/izJ9zP8n/PvkxozOd/08blyeUeG1+3t1tjm2klel2F4+v2TfCzJS6vqbits+y8Zhiw/MMlLk/xhhtdqkmQ73ktLXpSkkjw8w9B7ABaQIccAG+PUmeVvJLlva+2imfUvbK29YGmhqh6e5JeS3LW19p+T1SdM5tN5WlU9u7X2rcl1uI+a2m+PDH+8fzPJQ5M8b7agqvqdDL2lf9dae9pk9RVJPlJV301yeWttehjoaUkeP3OODyb5WoZw8Naq2ifJTZPcv7V2/NS+r5t8Pbeqlq6TnB2KypXL1yZf9536ftZPJPmD1tr7k6Sq/jPDhyQPzfBBzLTXTb2O31dVd5xst7TuoVnHe2nqeCe11h4VABaaHlqAjfGbSW6f5A5JHpDk80neMemtnTZ7zerhSb6a5EOTHt4tk56m92QYrnynpQ0nM8d+tKouSHJ5ku8luVaSlWZTfkKSY5M8fioEbFNVPbaqPjUZEn15fhxEls7x7SRfTvKsqnp0Vd1svcfmSmdpluO2xjaXLIXZJJlcx/rFDJNLzfr3meXPzGy37vfShOvHATog0AJsjM+21k5urX2stfb2DEOKK8nTZ7abHXp7wyQ/neSHM4+TJs9fP0mq6jeSvDHJF5I8LMkdMwToczMMPZ71kCRnJRmv9weoqqOTvCTJ+zIM67xDfhwC9kyS1lpL8qtJTk7yd0m+WFVfrqrHrvc8XGncZPJ1reHm31lh3fez8mt6dsbs72cY0rxkXe+lKYbBA3TAkGOAOWitXVpVX05y69mnZpa/neG61gevcqgzJl8fkuRLrbUjl56oqqtmuO51JaMkxyQ5saru3lo7Zx1lPyTJCa21J0+d48DZjVprX07yv2oYy/nzSR6X5CVVdUZrbcUZnblSuk+Ga7I/niFs7m7rfS8tWavnGIAFIdACzEFV7ZXhfrSf28am78oQPi9urc1ehzttrwxDgKc9PMN9b1dyVoaZjN+f5P2TULutHqm98uPZmZc8YrWNJ721p1TVk5I8MsmtMtyiaOn2J9fYxvnYpKpqlGGUwgtaa5dMrmPd3db7XgKgIwItwMY4dDJhUmWYBOdxGXpPX7SN/V6bITSeUFX/kORTSa6WIQzfL8kDWmuXZPhj/QFV9bwk/5Zh5tijk1yw2oFba2dX1WFJ/iM/DrXfWKOWdyX506r68wzDNO+e5EHTG1TVrTPMIPvGJF/KEKiPzBC2/2Oy2ecnX/+wql6dYdjnp1trP9jG74I+Lb32r5bhmtb7Zpjh+r2ZmoV4A6z3vQRARwRagI1x3NT35yb5bJLDW2vvXmun1toPq2rp1jdHJTkww2RPp2eYBGcpBL48wzWJv5fkMRlub/Ib2cbENq21cyah9oQMw4/v1lo7a5XN/zrJdZI8McM1jB/IMOPsl6e2OSfDRFFPSrJ/hiGln8kwo/PHJ+f8VFU9ffLzPDrDfA4HZvmQTzaHpdf+ZRluVfWJDMPX3zzpxd8Q2/FeAqAjtYH/lwCsad97frLLf5DOft9tNmS8JJvXlsec3+Vr//KXXc9rH4C5MssxAAAAXRJoAQAA6JJACwAAQJcEWgAAALok0AIAANAlgRZgN6mq/avqRVX14aq6pKpaVR2wjv3+bLLtf82s36Oqnl1V36qqr1fVE1bY98FV9Y2quvZ21HmVqjqlqv5oat1hkxpmHxfM7HvAKtu1qrrOOs/9lKo6o6ouq6pPVdVovbWv8+d7flW9Y1cek7Vt72u/qm5RVcdV1XlVdWlVnVZVj596fsNe+1PP3buq/rOqLq6qi6rq5Kq6+9Tz96iq11TV6ZOaT6+ql1bVDbfj3F77ADvJfWgBdp+bJnlwko8n+X9J7rWtHarqZ5L8RYb7dc46IsM9Zn8/w/1gX1xVp7TWTpzse60k/5jkya21i7ajzt9Nsm+Sl6zw3P/OcE/bJZevcoy/S3L8zLrvruPcf5Pkj5I8NcPv6SFJjquq+7bWdtUf4s9O8uXJPXbfv4uOydrW/dqvqtsl+Y8kJyZ5VJILk9wsybWmNtvQ135VPSbJiyePv8nQAXBokr2mNvv9SY1/m+FezDdL8owkv1ZVt26tXbyNc3vtA+wC7kMLLIzNdh/aqrpKa+1Hk+8fleTlSQ5srZ2x2rGq6t1JzkhycJItrbVfmnruuCTnttb+YLL8ziSfbq396WT5uUkOba3dc3vqr6pPJ3l3a+2Pp9YdluT9SX61tfa+NfY9IMlXkjy6tfaK7TzvDZN8PcmzWmtPm1p/QpIbtNZuvT3H28a53pTkWq21e++qY+5Km+0+tOt97VfVVZJ8NslprbXfXO08G/zaPyDJF5I8pbX2/DX2vUFr7dyZdb+S5ANJHtlae9Ua+3rtA+wihhwD7CZLf9CvV1U9LMltkzxllU2uluTSqeVLkuz5/7d33+FyVeXix78vCS2AdJEigvgTELHBFa7CpVyEiEgREQWk2LigWCMJSpGmCURQQAQboBRBFETAUAQElSJFlNCLYOgdpISS9/fH2mOGyZw5Mycn55wN38/zzDNn9l577TXrrJPMO6tV176d0mP0+R7vuRawOnByL9cNkk0o7+nEluMnAqtHxIqdLo6IMdUQz0erYaFnRMT7quGtO7ck/yWl5+yNg1Z69amHtr8+sCqld7WToWz7nwJmAMd0ur41mK00RjMs28/tbfuSNEgMaCVpBIiIRYHDgT0z87E+kl0JbB0Rb4mINSjDOK+ozh0NfC8zb+nx1mMpQ4Ov7+P8SRHxcvXB+eSIWL6PdN+JiJci4smIOCsiVu/i3qsB04HbW45PrZ7f1s/1P6IEH5OBrYBbgJP6SHsZ5f+8D3RRLg2dxgiE+SLiioh4sZone0REzN+Ubijb/jrAzcDHq3mxL0XE7RHRTcC8XvV8Uz/pbPuSNEicQytJI8OhwK3A8R3SHEn5IH9b9fqXwKkRsSOwHHDwAO67NvCPNj1qTwLfpQyffAp4N/AN4PKIeHdmNub4TgeOBc4HHgZWqdL9JSLem5mdPtgvBjyRs859eazpfFsRsTKwHTAhMw+pDl8QEWOAPVrTZ+bDETGter99DgXVkFumej6VMl91ArAmcADwRkqwBkPb9pepHodS2vIdwDaUebujM/P77TKLiIWA71GC2TP7ubdtX5IGiQGtJA2ziFgX2BF4T5sPuP+RmU8D60fEm4AXMvP+KCsJH0rprZkeEQdTFtAJSnC8Tz/DP5ehzIFtvdd1wHVNh/4YEZcCV1EWitq7Snc/Zbhnw2URMYXS0/RNyqI7c8JalPf4q5bjp9PmQ33lYWYGUBoZGiPFTszMfaufL4mIUcDEiFg1M28ayrZflWkhYOfM/E117KJqbu1eEXFE699pRIwGTqEMNX5/Zva1eNpgsO1LUhOHHEvS8DsW+CkwLSIWqT6ojwZGVa/nbU6cmXdXgSSUnqm/ZOY5wKcpAeS6lGGTnwR26efe81F6WfuVmddSepH/q590/wL+1F864HFgkYhoXVio0TvV19BrKCvTwqyrQT/Y4ZrngPk7nNfQe7R6vqDl+PnV87ubDw5R2+9UpqWY2faA/yxsdQKwEbBlZv69n/uCbV+SBo0BrSQNv1UpvZyPNz3eTxki+DiwW7uLqrmEnwQa+3WOBU7PzLsy8y5KD87Yfu79KLBoj+XtdkXe/tJNBeYFVmo53pg/eGOHaxtBTeuen0t1uGYx4JF+yqShNbWf8217WOdw2++1TMcA2wIfz8w/9HNt8z1s+5I0CAxoJWn4bdDmcT1lO5MNKEMJX6HqFToaOCgz72k6tUDTzwtShiZ2cjPw5m4KWe0XujJl2HGndMtTesk6pgOmAC8C27cc3wG4oQpM+nIVJWDepuV46+tGmUYBy1MWz9HI8XtKL+kmLccbwejVrRcMQds/o3puV6ZpmflAU1m+S9k7d5fM7G/ebDPbviQNEufQStIcFBEfrX5co3r+YEQ8TNlT848AmXlJm+ueoOxDO8u5ymcpH+APbzp2ITApIi6rXm8HfK2fIl4K7BIRi2dmY6glEXESZX7htcATlKGfewH3Akc0pfsu5cvRyynz9Fau0s2gZaGeiHgJOCEzP12974ci4jDKvMSnq3ttC2wIbN6p0Jl5c0ScDBxYBTjXVNd9uErS2ov2dmBM9X41BLps+49GxHeAfSLiKeAiyqJQ+1LaSusqwDCH2z5wLmUP5mMjYgngTkqwuDFNw5gjYjzwVcpCS7dFxNpNeTycmXc0pbXtS9IcYkArSXNW68ItR1fPf6Tswdmz6kP2t4GtMvPFplM/ogxhPIzSO3UMZW5uJ78Fngc2o8wDbLgB+ARlkZkxwAPAb4D9MrN56OJUypDonSm9Yo9SgpL922yjMqp6NPsm8G/K0NE3UHqRPpaZZ/dTboDPUbZd2ZOyp+dFlL1Iz6as0txss+o9XNJFvhoc3bb9Ayi/x92BcZQhtYcCB7ZmOBRtPzMzIrYEvgPsTxmWfDOwfWY271n7wer5U9Wj2QmUv4kG274kzSHRYUFNSRpSS290XS3/Qbr/wnf3N7RxRIuI44HlMnOj4S7L7IqIccAhwArNw1Ej4kbg15m5z7AVroPRuz5Wy7b/0rGL2fZHiLq2fUmaXfbQSpL2B26KiDUzc5Y5iyNVRGxGGU75N8owy3UpPXyntXyg34KyYM53h6OcGtFs+5JUcwa0kvQal5l3RcTOzLpq6kj3NLAlMIEyp7Ixv3e/lnTzAztk5hNDWzyNdLZ9Sao/hxxLGjEccqzXKoccS5I0MG7bI0mSJEmqJQNaSZIkSVItGdBKkiRJkmrJgFaSJEmSVEsGtJIkSZKkWjKglSRJkiTVkgGtpJHkweEuwADUscwaeerYjupYZknSq4z70EqSJEmSaskeWkmSJElSLRnQSpIkSZJqyYBWkiRJklRLBrSSJEmSpFoyoJUkSZIk1ZIBrSRJkiSplgxoJUmSJEm1ZEArSZIkSaolA1pJkiRJUi0Z0EqSJEmSasmAVpIkSZJUSwa0kiRJkqRaMqCVJEmSJNWSAa0kSZIkqZYMaCVJkiRJtWRAK0mSJEmqJQNaSZIkSVItGdBKkiRJkmrJgFaSJEmSVEsGtJIkSZKkWjKglSRJkiTVkgGtJEmSJKmWDGglSZIkSbVkQCtJkiRJqiUDWkmSJElSLRnQSpIkSZJqyYBWkiRJklRLBrSSJEmSpFoyoJUkSZIk1ZIBrSRJkiSplgxoJUmSJEm1ZEArSZIkSaolA1pJkiRJUi2NHu4CSFLDcmts/gCw1HCXo0cPTrvmrDcMdyFUb3Hkk7Vs+7nHwrZ9SdKwsodW0khStw/0UM8ya+SpYzuqY5klSa8yBrSSJEmSpFoyoJUkSZIk1ZIBrSRJkiSplgxoJUmSJEm1ZEArSXNQROwcERkRbxnusjRExPERMW24y6FXt4jYMiIujYiHIuK5iLg7Is6MiLHDXK5vVX+T7vQgSa8CBrSSJGlQRcQXgTOA24BPAx8CDqpObzhc5ZIkvfr47aQkSRps44AzM/PTTccuAn4cEX6ZLkkaNP6nIknDqBr6+K2WYytUx3duOnZ8REyLiHdHxGUR8WxE3BYR/9cmzxUj4hcR8UBETI+IOyPi+23S9ZuXNECLAQ+0O5GZMxo/Nw3JXzsiToqIpyLivog4IiLma74uIvaPiGurNI9ExEURsXZr/hGxZEQcHRH/qtr/v6q/h3n7KmxEjI2If0fEURExV0SMjogDI+KOiHi+ut+fImKd2agTSdIcYEArSfXxOuBk4ERgC+CvwA8jYoNGgohYEbgK+B9gX2AssD+wRK95SbPhKmCniPh6RLy1i/S/AO4APgL8EPg8sFdLmmWBwyntdWfgIeDSiFi9kSAiFgX+AmwLHAZsCuwJzA3M0+7GEbEjcBYwMTO/UAXc44GvAEcAmwC7AH+gBOqSpBHEIceSVB8LAbtn5sUAEXEp5cP2J4CLqzT7A/MD78zM+5quPWEAeUkD9X/A6cAhwCER8ShwAXBcZp7fJv3Jmblf9fOFEbEWpS02jpGZn2n8HBGjgCnAVOAzwJeqU18B3gysmZnXNeV/SrtCRsSewMHAbpn5k6ZT/w2cn5nNIxt+1/ktS5KGgz20klQfzzYCUIDMnA7cCizflGZj4OyWYHageUkDkpm3Au8G1qMEjH8DtgLOi4i921xyTsvrf9DSFiNio4i4uAqOXwJeBN4KrNyUbGPgry3BbF8Op3wB9NGWYBbKiIVNI+LgiFgnItr27kqShp8BrSTVx+Ntjk0HmucaLg50syVPN3lJA5aZL2fmpZm5d2ZuROk5/QewXzU0uNljLa+nA/+Z8xoR7wHOBf5NWTV5beC/gOsZWPuH0gN8A3Bhm3PfpvQObw5cBjwaEcdFROvQfUnSMDOglaThNZ1Z5/YtPhv5PUKZayiNKNWogZ9Qpjv9vx4v35rSK/uRzDwzM6/MzKuB1sC4l/b/v5Re4N9HxIItZX0xMydl5urA0pShzFsDP+ix3JKkOcyAVpKG193A21uOfWg28jsf2Cwilp6NPKTZ0qH9rVI9t10BuYMxwMtANt1jQ2YdIn8+8N6IeGcXeU4F1qcE17MEtQ2Z+UA1JPlCZv1blSQNMxeFkqShMTYiWj/EPwn8Etg7Ir4JXAGsSxkKOVD7UVZ2/UtEfBu4ndJjNTYzd5iNfKVe3BARF1KGCd9FWVV7U8piUadl5j095jcF+DJwfEQcR5k7uw9wb0u6w4HtKAtLHUQZ4rwEZWXk/8vMp5sTZ+ZNEbE+ZSG08yJibGY+HRG/pQxnvpYyPP/dlBXDj+2x3JKkOcyAVpKGxpFtjk0F1gQWAb4ATKAEAJ8ErhzITTLzn9XenAcB3wEWpHzo/+1A8pMG6JuUAPYAYClK7+qtlDb+vV4zy8zzIuKLwFcpQ39vAHYE9m5J90REvJ/S/idQhu8/CFwEvNBH3rdExHqUoPb8iNgEuBTYhrJ90BjgHsqKzQf3WnZJ0pwVmdl/KkkaAsutsXkt/0Gads1ZMdxlUL3FkU/Wsu3nHgvb9iVJw8o5tJIkSZKkWjKglSRJkiTVkgGtJEmSJKmWDGglSZIkSbVkQCtJc0hEbBIRF0XEAxExPSKmRcRpEfG28ukrFgAAGsFJREFUAaZbMSL+EBFPR8SV7fbajIhzIuIHPZZzjYh4NiKWbTr24Yg4OSJujYgZEXFJH9d+NiLOjYh7I+KZiLghIr4eEfO0pLskIrKPx5QuyjhfRBwaEfdHxHMRcXlE/E8v77OLe5wZEUcPZp6vVd226ab0m0bEpRHx74h4KiKurvaZbZxfIiJ+ExFPVm1swzZ5HB0R5/RYzmWrdrtm07F1IuL46j4vRcQ/u8xrStWeD2pzbtGI+ElEPFLd78KIWL3LfOeKiL0i4p8R8XxEXB8RW3f9Jru7x/ci4tzBzFOShooBrSTNOYsB11C25NkY2AtYDbgiIt40gHQnVM8fAe4GTo+I/2y/FhFbAWtQtkzpxaHAzzKzeU/PLYF3UfbGndbh2n2BB4AvAZsBpwIHAie1pNsd+O+Wx1erc2d1UcafAp+t7rcZcD9l39B3dXFtt/YHPhsRbx3EPF+rum3TRMSulG2lrgG2omyX8yvKdjkNhwErAR+jbK9zekQs2pTHGpRtfPbosZwHAhdn5tVNx/6Xsh/0VOCmbjKJiE8As3zBVJ0L4HeUfWz3oGw7NDdwcUQs12UZvwUcBXyQ8jf5q4jYtJuydWkSsEFEbDCIeUrSkHDbHkkjxmth256IWBm4GRiXmd/tNl1ELAD8G1grM6+KiKUogeTbMvOmiBhD+fC9d2b+oofyrAFcDbw9M6c2HZ8rM2dUP/8JeCkz129z/ZKZ+XDLsX0pweFKmXlnh3v/FNgBWDozH+uQ7p3A34BPZeZx1bHRlIDjlszcvNv325+IuAq4OjN3H6w8u7rva2DbnnZtPyJWoLTbvTKzz/1pI+Jh4POZeVr1u38c+Fhm/j4i5qIEeb/LzAN7KM9SwL+ArTLznKbjzW3/RGCdzFyhQz6LVu/hK8DJwMGZuXfT+S2AM4ENM/Pi6tjCwF3AiZn5xQ55v74q48TM3K/p+B+AJTPzHd2+3/5ExGnAgpk5mIGyJM1x9tBK0tB6tHp+qcd0jSG8z1XPz1bP81XP+wJ39hLMVj4D/L05mAVofKDvT2swW/lr9bxsm3MAVAH4NpQgpM9gtrI58CKl97dx35eAXwKbRMS8nS6OiCUj4pRqKOvjEXFcRGxeDQ9dvyX5L4HtI2L+fsqk3rVr+58CZgDH9HPtPFRtv/rdv8DMtv85YGHgkB7LszPwNHBe88Fu236TScANmXlKH+c3B+5rBLPVPZ6k9Npu0U/em1De+4ktx08EVo+IFTtdHBFjIuKHEfFoNZz7jIh4X9X2d25J3vh7emM/ZZKkEcWAVpLmsIgYFRHzRMT/A46l9KzO8uG3U7rMfBy4DfhC1SP0NUov1S0RsSplaOdAehXHApcN4LpO1qMEKbd2SLMVsBAzh1F3shpwV2Y+23J8KuXD/lv6uf43lKGaewEfpwTHR/aR9lLgdZQh0ZpNXbT9dSi9th+PiDuqOau3R8TnW7K6Etg1IhaPiE9T2s41EbEkcDCl93Z6j8UbC1xeBcgDEhHrUIY6t5a32WrADW2OTwWWj4gF+7l2OnB7m2sB2s5JbvIjypcGkyl/c7cw63SAhssonws/0E+ekjSijO4/iSRpNl1JmdsK5YPphpn50ADSfQ74dfX8LLBTZj4bEUcBR2VmV/P9GqohlysA1/dyXT95voMyn/Znmflgh6Q7Ag8Bv+8i28UowXurx5rO91WejSlB07aZeVp1+LyIOAtYvs0l11OC8bWBi7oomzrrr00vUz0OBb4B3EHpuT8qIkZn5verdF8FzgEeofTwfi0z74mInwEXZOaFvRSqmte6FnD4wN4WRFn47Fhgcmbe0iHpYsA/2xxvtN9FKdMJ+rr2iZx1flg3bX9lYDtgQmY2eq8vqEZHzDLXODMfjohplLb/s77ylaSRxh5aSZrzPkn5kLgd8BTlQ+UKvabLzEuApYFVgSUy8/SI2I6yWM4BEbFCtdLq4xHxtzbDaVstUz23Gzbcs4hYmrK4zx3MXPCpXbplgI2Ak2and6xLawMvA2e0HD+9XeLMfBF4kpl1o9nTX9ufi9Lbumtm/jgzL8rM3YApwF5V4Elm3kBp5ysDi2fmERHxfsoCaV+JsgryqdXQ2psjYpt+yrUIMD+z1/b3rPI4eDbymJPWAoKywFaztm2/8jC2fUk1Y0ArSXNYZt6UmVdWc+z+F1gQmDCQdJn5QmbenJnPRcTrKEMJv1QNxz0JuIcyd/X7wBkRsXiHojXmIPY6VHMW1X0uoHyA3iQzn+6QfAfK/z/dDDeG0ju7aJvjjd6pTnNwlwYerwLVZp16j5+jBCqaTV206ca82gtaLj0fWIry+2vk9VJm3pqZT0XEKOBoYL/MvJ/S3hcEVqT0Pv6i6qHsy2y1/YhYnrKa+D7AvBGxSEQsUp1uvB5Vve6v/bYbfUDTuUUagX2ba/tr+1BGQjSz7Ut6VTGglaQhlJlPUIZedpz32WW6A4BrMvO3EbEQ8D7gyMx8tloNuDF0ti+NYKLdh+2uVYH1ecDiwEYt2/+0sxNwfWZ2O9R5KrBiNVSy2dsoiwO1zi9sdj+waETM3XJ8qQ7XLEYZ2qpB1EebntpH8oa+Fmjaozp3VPV6LHBMZj6VmRdU+W7UId/ZbftvpgTFJ1KCzsYDYFz1c2Of2amUubCt3gbck5l9DTduXDsvpXe69VqAGztce3/1/PqW47Z9Sa8qBrSSNISqeaurUIblDjhdtZXNp5g5F67Rg7NAdX405YNwp21V/gk8T/lwPiBVkHkOpWds48zsFFwSEWtSPox32zsLZTXYuSlzKxv5jAa2Bc7vZzGgK4BRlAVxmrUdkhoRb6AEKp3mRGoA+mjTjaHgm7QkHwtMy8wH2uSzNGVf1t0y8+WmUws0/bwgHdp+Zr5A2TZnoG3/b8AGbR5QgtwNmPlFy1nAshGxXtN7eB3wYfrfg3kKZRGz7VuO70BZWfmuDtdeBSSztvW+2v4oyrxy276kWnFRKEmaQyLiDOBa4O+U+YNvpexV+RLw3V7TNaUPynDLiZn5T4BqGOZVwMSIOJgSwL1MCejayswXIuJK4L1t7vEm4L+ql4sDMyLio9Xrv2bm3dXPvwbeT1kIaoGIaO4RvqPNtj47Vu+r7Uqr1X3vAA7IzAOqcl4XEacC36t6Wu8CdqME0a0f9Fvf4/kR8WfgRxGxBCXI+CjwzipJaw/gWtXzpZ3yVWc9tOlzgYuBY6vfz52UgGtjYJc+sj8MOC0zm9v2hcDeEfEkpT2vRP+Lel1K+7a/JGWlbigB3pimtn9jZt5Y9TZf0uZagLur+e4NZwGXAydGxNcpvbd7UQLuQ1qufwk4ITM/DZCZD0XEYZT5xE9T6nRbYEPKdkB9ysybI+Jk4MAoe/VeU1334SpJa9t/OzAG276kmjGglaQ55wrgY5QtduYB/kX5EPydRiDaY7qGXShDAye3HN+esurqGcDdwDaZ2d/wwVOBQyNigcx8pun4BsBxLWkbi8vsAhxf/Ty2ej6ij3I20lEFo58ApvSxyjOUD/mjmHUE0S6UxXcOoizocz0wNjOv7SOfZltRtumZRAnyz6LMfTyesgBUs80ow7g79jSrX1216czMiNgS+A6wP2UI8M3A9pl5cmumEbEhZShx6/zYL1L2sv0lZTjxTpnZaTgulLa/Y0Ss0PJ3thqzLqTUeL0/pXe4a5k5IyI2o/y9Hk0ZAXA5sEFm/qsl+ajq0eyblFWQvwS8gdKD+rHMPLuL23+OstfunpTfw0WULYbOpn3bf4A2gbokjWQx60rwkjQ8lltj81r+gzTtmrM6Desd0aqhj9OA3TPzxOEuz1CptjraBVisMWQ5IuajzDscl5k/HdLyHPlkLdt+7rFwndv+XJS9nY/LzIOGuzxDJSLGUXqGV8jMe5qO3wj8OjP3GbbCSdIA2EMrSa9h1VDlScCeEXFSm/0uay8idgYWpiywMw+lV3k34NCW+be7UlaE7WV+r2qq6jndFzgsIg6rVgp/Val6ht9OmfM7A1iXsmjVaS3B7BaUxaJmmeIgSSOdAa0k6TDKMMelgfuGuSxzwjPAlynzKuelzMH9BnBoS7rpwM5DsDeuRo6TKdtcrUDnFYPr6mlgS8pWSQsA91KmB+zXkm5+YIdqbrAk1YpDjiWNGA451muVQ44lSRoYt+2RJEmSJNWSAa0kSZIkqZYMaCVJkiRJtWRAK0mSJEmqJQNaSZIkSVItGdBKkiRJkmrJgFbSSPLgcBdgAOpYZo08dWxHdSyzJOlVxn1oJUmSJEm1ZA+tJEmSJKmWDGglSZIkSbVkQCtJkiRJqiUDWkmSJElSLRnQSpIkSZJqyYBWkiRJklRLBrSSJEmSpFoyoJUkSZIk1ZIBrSRJkiSplgxoJUmSJEm1ZEArSZIkSaolA1pJkiRJUi0Z0EqSJEmSasmAVpIkSZJUSwa0kiRJkqRaMqCVJEmSJNWSAa0kSZIkqZYMaCVJkiRJtWRAK0mSJEmqpdFDebNbbr5jbmDlfpItBjzWRXYLAM/0k2ZU9fxyP+meBhbq4p5zATP6SbNQlV9/ukkXQHaR1xjg2S7SWWczWWczWWe9p7POek9nnfWezjrrPZ111ns666z3dNZZ7+mss97TWWev9OjKq6x0f7sTQxrQAssC/xikvJ6h/GIGwznAhwYpr27LNRVYbZDu2W1e1lnveVlnvedlnfWel3XWe17WWe95WWe952Wd9Z6XddZ7XtZZ73lZZ73nVfc6+wHwhXYnIrObwH9w2EPbczq/mek9nXXWezrrrPd01lnv6ayz3tNZZ72ns856T2ed9Z7OOus9nXXWezrr7JX67KEd0oBWkiRJkqTB4qJQkiRJkqRaMqCVJEmSJNWSAa0kSZIkqZYMaCVJkiRJtWRAK0mSJEmqJQNaSZIkSVItGdBKkiRJkmrJgFaSJEmSVEsGtJIkSZKkWjKglSRJkiTVkgGtJEmSJKmWDGglSZIkSbVkQCtJkiRJqiUDWkmSJElSLY0e6htGxM7AcU2HngUeBq4DTgF+lZk5gHzXBy4GNsjMS6pjlwBk5vqzUeR297oA2Aj4cmZ+fzDzrrOI+AjwQ2DFzHy2x2vPBO7LzN3nSOEkSZIkDcikiZM/CnwCWBN4PXAP8Bvg2+MnjHu6SrMGcDCwOrA48ARwLXDg+AnjLm/K63hgpz5udcv4CeNW6aVsw9lDuw3w38CmwD7AdEpAe0FEzD+A/K6t8rt20ErYRkQsB2xYvdxxTt6rTiJiNPAd4NBeg9nK/sBnI+Ktg1sySZIkSbNpHPAy8A1gLKUTazfggkkTJzdiykWA24GvAZsAe1TH/jhp4uT3NuV1ICVua358ojp3Vq8FG/Ie2iZ/y8zbm17/IiJ+BfwKOIRSAV3LzKeAKwaxfH35JOWLgHOBTSPi7Zl5wxDcF4CImBt4aSC92HPYFsAKwM8GcnFmXhcR1wFfBuyllSRJkkaOD4+fMO7hptd/nDRx8mPACcD6wEXjJ4z7A/CH5osmTZw8BXiEEkNdBTB+wrg7gDta0n2g+vGEXgs2oubQZuavgd9SeurGNI5HxP4RcW1EPBURj0TERRGxdvO1EbF+RGQ19HgWEfGGiHghIr7U5ty3IuLZiFi0i2LuBEylBF6N1418tqnK8I429zg3Iq5vej06IvaKiJsjYnpE3BcR342I+ZrSrFDlt3tEHBIR91F6sheJiCUj4tiIuLUq+78i4uSIWLbNvT9R3ef5iPhHRGweEZc0hmQ3pVsyIo6JiHurMt0cEZ/rok4APgNMyczH2uR5SvW7ezwijqvu3+539Utg+wH20EuSJEmaA1qC2Ya/Vs+zxB9NnqHELy/1c4sdgWvGTxg3tdeyDWcPbV/OBbakjM++tDq2LHA4MA1YANgBuDQi1sjMf3STaWY+UM3T/Bzwn3mvETEK+DRwWmY+3imPiFgLWBmYkJm3RcTllABsQma+DPwOeLIq355N1y0FbAyMb8ruRODDwCTgL8CqlO73FYCtW279TUqD+RwwCngeWL563osyB3kZSvf+nyNilcx8vrr3B4CTKN33XwWWBL4HzAfc2lTG1wF/AuYHvgXcRRkq8MOImDczj+xQL/NSvpnZp83p31DG0e9FGYKwNdBXXpcCr6MMO7ior/tJkiRJGnbrVc83NR+shiCPApYGJlSHf9xXJpMmTn4/8BbgiwMpxEgMaO+pnpduHMjMzzR+rgLQKZRe0s8As/S4dnA0cHFErJuZl1XHPgQsBxzTxfU7ATMowSiULvFjgA9Qeiefr4ZNb1cFuTOqdI0x4SdX72FdYFtgp8z8eXXuwoh4DDgxIt6VmX9ruu+DwFYtw4xvoem9V/XyZ0r9fRA4ozq1P3Bj8/URcQNwNU0BbZXXm4DVM/O2pjItAuwXET/MzL6+WXkXJUC+vvlgRGwMrANsm5mnVYfPi4izKAF5q+sp9bs2BrSSJEnSiDRp4uRlgQOAC8dPGHd1y+nTmNlB9xCw6fgJ427skN2OwIuU9ZR6NqKGHFeiev5P8BYRG0XExRHxKKW7+kXgrZTe0q5Vqx/fCOzadHhX4O+Z2XH+bdUL+XHgosy8tzp8KqULvXmVrp9TepQ3bDr2SeAPmXl/9Xos8AJwejX0eHS1qNL51fn/abn9me3mzEbEbhFxfUT8m1IvjS8DVq7Oj6L0dP+6+frMvIbSA9tsLHAlcFdLmc6jrFL2tr7qhtI7DKWnuNnalMnjZ7QcP71dJpn5IqWHe5l25yVJkiQNr0kTJy9ImSb6ErBLmyR7Au+lBLU3AGdPmjh5zT7ymg/4GHD2+AnjHhlIeUZiD+0bq+f7ASLiPZRhyOdRhgbfTwmSfkLpFezVD4HJ1VzaBSmB3Be6uO7DwKLAGVWvZcN5wBYR8bpqYao/Af+kBLEXRsSqwHsow5AbXg/MQxlT3s7iLa/vb00QEXsARwCHAV8HHqd8QXEFM+tlCWBuyjcjrR5sef16Slf/i12WqVnjftNbji8NPF4Fqp3u3ew5yrBnSZIkSSPIpImT56dMs3wzsN74CeOmtaYZP2HcncCdwF8nTZx8NiWoPYgSd7XanLIScs+LQTWMxID2Q5S5oddUr7emRP8faQ6MqgWcnhhA/j+nbC+zMyVAfZYyx7Q/jV7YH1SPVh8DfpKZGREnAl+OiN0oge2/eWUv5aOU97huH/e6r+V1uxWNP07p9f1a40BErNiS5hFKgPr6Ntcvxcwe3UaZHqLvIdy39HG8cS2U+mx2P7BoRMzdEtQu1SGvxSjlliRJkjRCTJo4eW7KSMs1gQ+MnzCu37WMxk8Y98KkiZP/Tpmi2M5OlM/+5w60XCNqyHFEbE2J0o9p2st0DKVHtnkI8oa0n4PZr6oX9STKUONPAadUxzqV6/WUbxR+C2zQ5vEArxx2/AtK7+9HgO2B37TszTqF0qu5cGZe3ebRGtC2M4ZZe1Nf0eVfLVR1NbB1RDSGchMRawCtwe8UYBXgnj7K9HSHstxcPb+55fgVlAnhW7Uc36ZdJhHxBkq9dAqeJUmSJA2haqGnkyjTKrccP2FcV9ulTpo4eQwlAL6jzbmlKIvQnjx+wri+Ron2azh7aN8VEUtQht4uD2xGCXQuoKyI2zCFskXO8RFxHGXu7D7AvQzc0cycR9vNYlDbU+rq8Mz8Y+vJiDgB2DMi3pyZd2bmrRFxJTCRMp/2583pM/OSiDiFMof2MMqeTDMoKxxvCozPzFvpbAowPiK+UV2/IfDRNun2o8zNPSMifkQZhvwtShA+oynd4ZSFqi6LiMMpQeUClCB33czcoq+CZOY9EXE3Zaz8iU3Hz4+IPwM/qn7Xt1dlfGeVZEZLVmtVz5ciSZIkaaT4ASVWOxh4ZtLEyc1bqE4bP2HctEkTJx8LPEbpUHuEsuDsFyjTED/ZJs/tKZ1fAx5uDMPbQ/sr4HLKHNSDgcaiS2MbW84AZOZ5lCWc3w+cTelV3ZESHA1IZv6dssLv1Zl5bReX7ET5VqGvQOtnlMWsdmw69gtKMHsvcHGba3agBJYfpfT8nk75hd9G5zmmDQcAxwJfoQxnfgflG45XyMwLKI1l1SrdeMr2Pg9QFmBqpHsSeB+lu3885ffyM2CLPsrf6lTKlxKttqIE35MoK57Nx8ztfZ5sSbsZcE1mDvh3K0mSJGnQfbB6/iYlhmt+NHakuZKylc+PKLHEfpSYbc3xE8Zdxqx2Am4YP2FcN/FYn6LN4rmvehGxMmW/pM9m5k+HuzxDLSKWozSugzPzwEHKcyVKr+76mfmnftIeRRkevVhmTq+OzUeZczvutfg7kSRJktS711RAWwVyb6HszfoW4C2Z+dzwlmrOioj5KSshX0jp+n8zZSntpYDVmrYSGox7/RhYOjM3azq2M7AwZd/geShzkT8PHJqZE5rSfQnYvSpTX/vdSpIkSdJ/jMRVjuekzwD7UoYbb/dqD2YrLwNvAI6ibL3zDHAZsM1gBrOVfYBdI2JM0yJYz1DmQK9EGVZ+F/AN4NCWa6cDOxvMSpIkSerWa6qHVpIkSZL06jGitu2RJEmSJKlbBrSSJEmSpFoyoJUkSZIk1ZIBrSRJkiSplgxoJUmSJEm1ZEArSZIkSaolA1pJkiRJUi0Z0EqSJEmSasmAVpIkSZJUSwa0kiRJkqRaMqCVJEmSJNWSAa0kSZIkqZZGD+XNbrn5jrmBlftJthjwWBfZLQA800+aUdXzy/2kexpYqIt7zgXM6CfNQlV+/ekmXQDZRV5jgGe7SGedzWSdzWSd9Z7OOus9nXXWezrrrPd01lnv6ayz3tNZZ72ns856T2edvdKjK6+y0v3tTgxpQAssC/xjkPJ6hvKLGQznAB8apLy6LddUYLVBume3eVlnvedlnfWel3XWe17WWe95WWe952Wd9Z6XddZ7XtZZ73lZZ73nZZ31nlfd6+wHwBfanYjMbgL/wWEPbc/p/Gam93TWWe/prLPe01lnvaezznpPZ531ns466z2dddZ7Ouus93TWWe/prLNX6rOHdkgDWkmSJEmSBouLQkmSJEmSasmAVpIkSZJUSwa0kiRJkqRaMqCVJEmSJNWSAa0kSZIkqZYMaCVJkiRJtWRAK0mSJEmqJQNaSZIkSVItGdBKkiRJkmrJgFaSJEmSVEsGtJIkSZKkWjKglSRJkiTVkgGtJEmSJKmW/j9nDYpggqsXzwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#@title Set date range for the chart below\n", "\n", "start = \"2022-05-12\" #@param {type:\"date\"}\n", "end = \"2022-05-18\" #@param {type:\"date\"}\n", "\n", "from matplotlib import lines as mlines\n", "\n", "# Starting date of our chart\n", "start_date = date(int(start.split('-')[0]),int(start.split('-')[1]),\n", " int(start.split('-')[2]))\n", "\n", "# Ending date of our chart\n", "end_date = date(int(end.split('-')[0]),int(end.split('-')[1]),\n", " int(end.split('-')[2]))\n", "\n", "# A list of all dates between start and end date\n", "dates = list(pd.date_range(start_date,end_date,freq='d'))\n", "\n", "# Creating a dictionary of days with overall carbohydrates for the day\n", "carbs = {}\n", "\n", "# Storing a list of dates\n", "date_list = []\n", "\n", "# Creating a list to store all carbohydrate threshold values (Daily Goals)\n", "carb_threshold = []\n", "\n", "# Creating a dictionary of days with breakfast carbohydrates for the day\n", "brcarbs = {}\n", "\n", "# Creating a dictionary of days with lunch carbohydrates for the day\n", "lunchcarbs = {}\n", "\n", "# Creating a dictionary of days with dinner carbohydrates for the day\n", "dinnercarbs = {}\n", "\n", "# Creating a dictionary of days with snack carbohydrates for the day\n", "sncarbs = {}\n", "\n", "# Appending data for all days between x and y into the required dictionaries\n", "for d in dates:\n", " goal = goals_df[goals_df['date']==str(d)]\n", " if len(goal)>0:\n", " carb_threshold.append(goal.iloc[0].carbohydrates)\n", " else:\n", " carb_threshold.append(0)\n", " \n", " date_list.append(str(d))\n", " \n", " carbs[d.strftime(\"%A\")[0]+\"\\n\"+str(d)[:10].split('-')[-1]] = (0 if\n", " len(dailySummary_df[dailySummary_df['date']==str(d)]) == 0 else dailySummary_df[dailySummary_df['date']==str(d)].iloc[0].carbohydrates)\n", " \n", " brcarbs[d.strftime(\"%A\")[0]+\"\\n\"+str(d)[:10].split('-')[-1]] = (0 if\n", " len(breakfast_df[breakfast_df['day']==str(d)]) == 0 else breakfast_df[breakfast_df['day']==str(d)].iloc[0]['nutrition_information']['carbohydrates'])\n", " \n", " lunchcarbs[d.strftime(\"%A\")[0]+\"\\n\"+str(d)[:10].split('-')[-1]] = (0 if\n", " len(lunch_df[lunch_df['day']==str(d)]) == 0 else lunch_df[lunch_df['day']==str(d)].iloc[0]['nutrition_information']['carbohydrates'])\n", " \n", " dinnercarbs[d.strftime(\"%A\")[0]+\"\\n\"+str(d)[:10].split('-')[-1]] = (0 if\n", " len(dinner_df[dinner_df['day']==str(d)]) == 0 else dinner_df[dinner_df['day']==str(d)].iloc[0]['nutrition_information']['carbohydrates'])\n", " \n", " sncarbs[d.strftime(\"%A\")[0]+\"\\n\"+str(d)[:10].split('-')[-1]] = (0 if\n", " len(snacks_df[snacks_df['day']==str(d)]) == 0 else snacks_df[snacks_df['day']==str(d)].iloc[0]['nutrition_information']['carbohydrates'])\n", " \n", " # Calculating the metadata for our legend\n", "breakfast_total = sum(brcarbs.values())\n", "lunch_total = sum(lunchcarbs.values())\n", "dinner_total = sum(dinnercarbs.values())\n", "snacks_total = sum(sncarbs.values())\n", "carbs_total = list(brcarbs.values())+ list(lunchcarbs.values())+ list(dinnercarbs.values()) + list(sncarbs.values())\n", "total_carbs = breakfast_total+lunch_total+dinner_total+snacks_total\n", "\n", "\n", "# Creating a matplotlib plot of size 16,8\n", "plt1 = plt.figure(figsize=(16,8))\n", "\n", "ax = plt1.gca()\n", "\n", "# Plotting the weekly values for carbohydrates consumed in breakfast\n", "plt.bar(brcarbs.keys(),brcarbs.values(), width=0.65, color =\"#1843CE\")\n", "\n", "# Plotting the weekly values for carbohydrates consumed in lunch\n", "plt.bar(lunchcarbs.keys(),lunchcarbs.values(), bottom=list(brcarbs.values()), \n", " width=0.65, color =\"#1B324D\")\n", "\n", "# Plotting the weekly values for carbohydrates consumed in dinner\n", "plt.bar(dinnercarbs.keys(),dinnercarbs.values(), bottom = [l+b for b, l in\n", " zip(brcarbs.values(), lunchcarbs.values())], width=0.65, color=\"#0366ED\")\n", "\n", "# Plotting the weekly values for carbohydrates consumed in snacks\n", "plt.bar(sncarbs.keys(),sncarbs.values(), bottom = [l+b+d for b, l, d in\n", " zip(brcarbs.values(), lunchcarbs.values(),dinnercarbs.values())],\n", " width=0.65, color=\"#0092F0\")\n", "\n", "# Plotting the Average Calorie intake\n", "plt.bar([\"Avg\"],total_carbs/len(carbs),width=0.65, color=\"#D8D7DC\")\n", "\n", "\n", "\n", "# Adding veritcal grids\n", "plt.grid(axis=\"y\", color=\"#D8D7DC\",lw=2)\n", "ax.set_axisbelow(True)\n", "\n", "# Removing the spines on top, left and right\n", "ax.spines['top'].set_visible(False)\n", "ax.spines['right'].set_visible(False)\n", "ax.spines['left'].set_visible(False)\n", "\n", "# Plotting the threshold line\n", "plt.axhline(y=np.max(carbs_total),linewidth=2.5, color='k')\n", "\n", "#Plotting the legend\n", "rect1 = mlines.Line2D([], [], marker=\"s\", markersize=30, linewidth=0,\n", " color=\"#1843CE\")\n", "rect2 = mlines.Line2D([], [], marker=\"s\", markersize=30, linewidth=0,\n", " color=\"#1B324D\")\n", "rect3 = mlines.Line2D([], [], marker=\"s\", markersize=30, linewidth=0,\n", " color=\"#0366ED\")\n", "rect4 = mlines.Line2D([], [], marker=\"s\", markersize=30, linewidth=0,\n", " color=\"#0092F0\")\n", "ax.legend((rect1, rect2,rect3,rect4), (\"Breakfast\"+\"\\n\"+\n", " str(int(breakfast_total / total_carbs *100))+\n", " \"% (\"+str(breakfast_total)+\" g)\", \"Lunch\"+\"\\n\"+\n", " str(int(lunch_total / total_carbs *100))+\"% (\"+str(lunch_total)+\" g)\",\n", " \"Dinner\"+\"\\n\"+str(int(dinner_total / total_carbs *100))+\n", " \"% (\"+str(dinner_total)+\" g)\", \"Snacks\"+\"\\n\"+\n", " str(int(snacks_total / total_carbs *100))+\"% (\"+str(snacks_total)+\" g)\"\n", " ),bbox_to_anchor=(0.5,-0.3), loc=\"center\", frameon=False, ncol=2,\n", " markerscale=1.5, fontsize=16 , labelspacing=3)\n", "\n", "# Changing color of bottom axis and yticks\n", "ax.spines['bottom'].set_color('#D8D7DC')\n", "ax.tick_params(axis='y', colors='#525252')\n", "\n", "# Displaying the Chart Summary\n", "plt.figtext(0.125,-0.26,\"─────\"*19,fontsize=16,color=\"#D8D7DC\")\n", "plt.figtext(0.125,-0.3,\"Daily Average (g)\", fontsize=16)\n", "plt.figtext(0.89,-0.3,str(int(np.mean(list(carbs.values())))),\n", " fontsize=16,color=\"#88878B\")\n", "plt.figtext(0.125,-0.34,\"─────\"*19,fontsize=16,color=\"#D8D7DC\")\n", "\n", "# Adding chart title\n", "plt.title('Carbohydrates',fontsize=24,fontweight='bold')\n", "\n", "\n", "# Showing the plot\n", "plt.show()\n", "\n", " " ] }, { "cell_type": "markdown", "metadata": { "id": "TmBGPvD4xd_T" }, "source": [ "*^ Above is a plot we created ourselves!*\n" ] }, { "cell_type": "markdown", "metadata": { "id": "A8zVw2ynx6Z5" }, "source": [ "# 8. Data Analysis" ] }, { "cell_type": "markdown", "metadata": { "id": "QxqLkxfVx9JJ" }, "source": [ "According to the United States Department of Agriculture (USDA), the recommended daily intake of protein for adult men is 0.8 grams per kilogram of body weight. This is based on a daily energy intake of 2,000 calories." ] }, { "cell_type": "markdown", "metadata": { "id": "YPc09PsYVlte" }, "source": [ "### Testing Protein Consumption" ] }, { "cell_type": "markdown", "metadata": { "id": "9uk_Y9rAVlte" }, "source": [ "For this experiment, let's assume that we are trying to be make sure that the user's consumption of protein should average out to the required protein requirement (population mean)." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "id": "aDiGGhVNVlte" }, "outputs": [], "source": [ "#@title Set weight (in pounds) for the analysis below\n", "weight = 155 #@param {type:\"integer\"}\n", "# 1 pound = 0.453592 kg\n", "protein_required = weight*0.8*0.453592" ] }, { "cell_type": "markdown", "metadata": { "id": "_P-2qrMqVlte" }, "source": [ "In this section, we will conduct a one-sample t-test to test our protein consumption. To test this hypothesis, we will utilize our data on the user's protein consumption and compare it to the required protein level for their weight. Then, we would then use a t-test to determine whether the difference between the two is statistically significant. If the p-value of the t-test is less than the predetermined alpha level (usually 0.05), we can reject the null hypothesis and conclude that the user's protein consumption is indeed lower than the required protein level. If the p-value is greater than the alpha level, we cannot reject the null hypothesis and must conclude that there is not enough evidence to support the alternative hypothesis.
\n", "\n", "\n", "Null hypothesis (H0): The user's protein consumption is equal to or greater than the required protein level.\n", "\n", "Alternative hypothesis (H1): The user's protein consumption is lower than the required protein level.
\n", "\n", "The one-sample t-test is a statistical test used to determine whether a sample mean is significantly different from a known population mean. The t-test formula for a one-sample t-test is as follows:\n", "\n", "t = (x̄ - μ) / (s / √n)\n", "\n", "where:\n", "\n", "\n", "
    \n", "
  • x̄ is the sample mean
  • \n", "
  • μ is the population mean
  • \n", "
  • s is the sample standard deviation
  • \n", "
  • n is the sample size
  • \n", "

\n", "The t-test statistic is then used to determine the p-value, which is the probability of obtaining a result as extreme as the one observed, given that the null hypothesis is true. If the p-value is less than the predetermined alpha level (usually 0.05), you can reject the null hypothesis and conclude that there is a statistically significant difference between the sample mean and the population mean. If the p-value is greater than the alpha level, you cannot reject the null hypothesis and must conclude that there is not enough evidence to support the alternative hypothesis.\n", "\n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "uZaZwB8qVltf", "outputId": "e3e00210-a9b1-4c7e-9c3e-8110c33c1777" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "p-value: 1.0\n" ] } ], "source": [ "import numpy as np\n", "from scipy import stats\n", "\n", "test_result = stats.ttest_1samp(dailySummary_df.get('protein'), popmean=protein_required,alternative='less')\n", "\n", "print('p-value:',test_result.pvalue)" ] }, { "cell_type": "markdown", "metadata": { "id": "QF553ZGXVltf" }, "source": [ "In this case, as the p-value of the t-test is 0.9999999999999999, this means that the observed difference between the user's protein consumption and the required protein level is extremely unlikely to have occurred by chance. Based on this result, you cannot reject the null hypothesis and must conclude that there is not enough evidence to support the alternative hypothesis, which is that the user's protein consumption is lower than the required protein level.\n" ] }, { "cell_type": "markdown", "metadata": { "id": "v7EPWmfi0hnO" }, "source": [ "## 9.0 Outlier Detection" ] }, { "cell_type": "markdown", "metadata": { "id": "kHkgd9Fz0rr4" }, "source": [ "However, even though our P value seems to provide enough statistical significance that our user's protein consumption is not below the USDA's recommendation. However, there might be outliers that are not following this correlation. In this section of our analysis, we will find if there are outliers like that and if they exist, we should find those exact days where protein consumption was lower than recommended." ] }, { "cell_type": "markdown", "metadata": { "id": "pTt7b69a0ttt" }, "source": [ "Before finding the individual outlier values, it would be interesting to see the summary of our Protein intake. It will give us a clear idea of what values are typical and which values can be considered atypical based on the data that we recieved from MyFitnessPal." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "DnyMiil-Vltf", "outputId": "333ffcfb-7c34-4a45-9d0a-033f2006ae8c" }, "outputs": [ { "data": { "text/plain": [ "count 108.000000\n", "mean 97.537037\n", "std 32.874700\n", "min 26.200000\n", "25% 80.975000\n", "50% 98.600000\n", "75% 119.075000\n", "max 187.600000\n", "Name: protein, dtype: float64" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dailySummary_df.get('protein').describe()" ] }, { "cell_type": "markdown", "metadata": { "id": "VwDYabiKVltf" }, "source": [ "Plotting this data would also make it easier to infer the distribution of our protein intake" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 265 }, "id": "g9NJJLbCVltf", "outputId": "815db04d-7f2c-436e-8d01-4b561bdee89b" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(dailySummary_df.get('protein'))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "0qfh3CmRVltf" }, "source": [ "To identify the outliers in a t-test, you will need to calculate the t-test statistic and compare it to the critical value. Outliers are observations that are significantly different from the rest of the data and can impact the results of the t-test.\n", "\n", "We will find the 95% confidence interval from our mean using our t-test and use it to find the outlying numbers\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "Mb8CsYVCVltj" }, "source": [ "" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "G_3Sj8pmVltj", "outputId": "156a352c-0e08-4b9e-ad14-8205d79feaa9", "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "50.996684251889974" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scipy.stats import t, sem\n", "\n", "# Finding ta,df\n", "t_a_df = t.ppf(q=.05,df=len(dailySummary_df)-1)\n", "\n", "# using ta,df to find the lower bound\n", "lower_bound = protein_required + (t_a_df*dailySummary_df.get('protein').std())/np.sqrt(len(dailySummary_df.get('protein')))\n", "lower_bound" ] }, { "cell_type": "markdown", "metadata": { "id": "btkhrG5XVltj" }, "source": [ "We can use this data to find the days on which our protein intake was less than 50.99" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "2M5fhJ9dVltj", "outputId": "66e6a2a3-2255-49cc-f352-3cf5b2f80ee5" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['2022-03-05 00:00:00', '2022-04-04 00:00:00', '2022-04-08 00:00:00', '2022-04-15 00:00:00', '2022-04-28 00:00:00', '2022-04-29 00:00:00', '2022-05-23 00:00:00', '2022-05-27 00:00:00', '2022-05-28 00:00:00', '2022-06-02 00:00:00', '2022-06-12 00:00:00', '2022-06-13 00:00:00']\n" ] } ], "source": [ "res = dailySummary_df.get(['protein','date'])\n", "low_protein_days = res[res.protein<=lower_bound].date\n", "print(list(low_protein_days))" ] }, { "cell_type": "markdown", "metadata": { "id": "vqqyKfqjVltj" }, "source": [ "This is the list of dates where our user's protein intake was lower than the USDA's recommendations" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 0 }