diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..a860a3f
Binary files /dev/null and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5463896
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+Archive/
+.gitignore
+.DS_Store
\ No newline at end of file
diff --git a/Archive/.DS_Store b/Archive/.DS_Store
new file mode 100644
index 0000000..fc0cbd2
Binary files /dev/null and b/Archive/.DS_Store differ
diff --git a/Archive/Pictures/.DS_Store b/Archive/Pictures/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/Archive/Pictures/.DS_Store differ
diff --git a/Archive/Pictures/NoStopsEur_corr.png b/Archive/Pictures/NoStopsEur_corr.png
new file mode 100644
index 0000000..e0e76d5
Binary files /dev/null and b/Archive/Pictures/NoStopsEur_corr.png differ
diff --git a/Archive/Pictures/NoStopsEur_scatter.png b/Archive/Pictures/NoStopsEur_scatter.png
new file mode 100644
index 0000000..546061f
Binary files /dev/null and b/Archive/Pictures/NoStopsEur_scatter.png differ
diff --git a/Archive/Pictures/baixachiado1.jpeg b/Archive/Pictures/baixachiado1.jpeg
new file mode 100644
index 0000000..ee83c86
Binary files /dev/null and b/Archive/Pictures/baixachiado1.jpeg differ
diff --git a/Archive/Pictures/baixachiado2.jpeg b/Archive/Pictures/baixachiado2.jpeg
new file mode 100644
index 0000000..aa069df
Binary files /dev/null and b/Archive/Pictures/baixachiado2.jpeg differ
diff --git a/Archive/Pictures/conclusion.jpg b/Archive/Pictures/conclusion.jpg
new file mode 100644
index 0000000..5d6a785
Binary files /dev/null and b/Archive/Pictures/conclusion.jpg differ
diff --git a/Archive/Pictures/happy-old-man-holding-dollars-13536919.jpg b/Archive/Pictures/happy-old-man-holding-dollars-13536919.jpg
new file mode 100644
index 0000000..f8df8fd
Binary files /dev/null and b/Archive/Pictures/happy-old-man-holding-dollars-13536919.jpg differ
diff --git a/Archive/Pictures/map.png b/Archive/Pictures/map.png
new file mode 100644
index 0000000..79c2f07
Binary files /dev/null and b/Archive/Pictures/map.png differ
diff --git a/Archive/Pictures/oldman1.jpg b/Archive/Pictures/oldman1.jpg
new file mode 100644
index 0000000..4e54be8
Binary files /dev/null and b/Archive/Pictures/oldman1.jpg differ
diff --git a/Archive/Pictures/pracodocomercio1.jpeg b/Archive/Pictures/pracodocomercio1.jpeg
new file mode 100644
index 0000000..22784e5
Binary files /dev/null and b/Archive/Pictures/pracodocomercio1.jpeg differ
diff --git a/Archive/Pictures/pracodocomercio2.jpeg b/Archive/Pictures/pracodocomercio2.jpeg
new file mode 100644
index 0000000..46ac570
Binary files /dev/null and b/Archive/Pictures/pracodocomercio2.jpeg differ
diff --git a/Archive/Pictures/tldr.jpg b/Archive/Pictures/tldr.jpg
new file mode 100644
index 0000000..8ad9fca
Binary files /dev/null and b/Archive/Pictures/tldr.jpg differ
diff --git a/Archive/README.md b/Archive/README.md
new file mode 100644
index 0000000..00f88b1
--- /dev/null
+++ b/Archive/README.md
@@ -0,0 +1,117 @@
+
+
+# Welcome to Your Own Project!
+This project is completely up to you!*
+\*terms and conditions may apply. Consult your TA or lead teacher for full details of this limited offer
+
+## Content
+- [Project Description](#project-description)
+- [Project Goals](#project-goals)
+- [Requirements](#requirements)
+- [Deliverables](#deliverables)
+- [Mentoring](#mentoring)
+- [Schedule](#schedule)
+- [Presentation](#presentation)
+- [Tips & Tricks](#tips-&-tricks)
+- [Resources](#resources)
+
+
+
+## Project Description
+In this project, you will think of a topic and problem, collect experimental data, complete an end-to-end analysis and present the results, all by yourself.
+
+First, choose a topic of interest to you and understand what research has already been done in that area. What are some interesting questions that remain? Can you turn those questions into a product (i.e. can you extract value out of answering those questions)?
+
+You will then collect some data you think could help answer those questions. Choose your main source of data wisely, since in this project you have a restriction that tries to emulate a common corporate setting: you won't have access to a census of the universe of your choice. You must collect the data yourself in such a way that the universe of datapoints available to you is limted. For example, you may be limited by time (e.g. watching and categorizing Youtube videos or Instagram pictures), by cost (e.g. querying Google Maps for public transport routes via the gui, without paying for the API access) or by access (e.g. surveying people on their preferences). In the end, you should aim at collecting between 30 and 100 observations (rows) and between 5 and 10 features (columns) per observation.
+
+Once you have your data, complete an analysis that answers your original question and/or related ancilliary questions. Please make sure that the main observations you make hold to scientific scrutiny at some level of significance. You can and should supplement your analysis with visual intuition and highlights of hypothesis that the data seems to support, even if you are not necessarily able to hold those insights to the same level of scrutiny as your main question.
+
+You can enrich your limited dataset with information from richer sources that you can obtain trough any means you've learned before (e.g. you may web scrape the weights of car models if that is one of your observations).
+
+Like in the previous project, package your results with a product or service mindset. You will present your findings in a presentation (possibly supported by an interactive visualization) where you should evidence principles of dashboarding and storytelling.
+
+
+
+## Project Goals
+* Research, collect and analyse data on a topic of interest to you.
+* Feel free to use additional data to enrich your dataset, maybe using an API or web scraping.
+* Apply the statistical techniques we have learned, along with techniques from EDA.
+* Create useful and easily-interpretable plots.
+* Prepare a presentation keeping in mind the finer points of storytelling.
+* Communicate the results of your analysis clearly, accurately and engagingly.
+
+
+
+## Requirements
+* You must plan your project. That is why creating a Kanban or Trello Board is mandatory. You have a template for Trello [here](https://trello.com/b/YX8EsB2P/project-4-your-own-project).
+* You **CAN'T CODE** until you project is planned.
+* Create a *.gitignore* file and include it in your repository.
+
+
+
+## Deliverables
+* All the scripts you used for your analysis.
+* Slides and a 5 minute presentation in the classroom.
+* Repository with your workflow + documentation + code. Even if you are working alone, you need to maintain good practices!
+* A short report including your motivation, methodology and results.
+
+
+
+## Mentoring
+One of the TAs will be your mentor!
+Your mentor will:
+* Follow your project in general.
+* Check if you are following the tasks, your blockers, etc
+* Help/support you in specific questions.
+
+
+
+## Schedule
+*Monday*
+* Think about a topic and propose some core questions.
+* Choose data that is relevant to your questions and devise ways of collecting such data.
+* Choose ancilliary data that would allow you to acheive your strech goals.
+* Look for documentation to give context to your project.
+* Write the README file in your repository.
+* Get approval for your project
+* **DO NOT START CODING**
+* Start collecting the data for your core questions
+
+**NO CODE UNTIL HERE**
+
+* Tuesday - Thursday morning*
+* Data entry, cleaning and transformation.
+* Start the analysis. Remember all the techniques you have learned!
+* Prepare a draft of your first slides presentation (no analysis or conclusions yet): title, motivation, context, ...
+
+*Thursday afternoon*
+* Rehearsal. Take the feedback and use it!
+* Finish the analysis. Finish the slides.
+* Final improvements!
+
+*Friday*
+* Presentation!
+
+
+
+## Presentation
+Presentations for this project will be in the classroom! Presentations will be **EXACTLY** 5 minutes long, with 2 additional minutes for questions. We will stop you!
+
+
+
+## Tips & Tricks
+* Organize yourself (don't get lost!).
+* Ask for help vs Google is your friend.
+* Define a simple approach first. You never know how the data can betray you ;)
+* Learn about your subject and understand what other research has been done before you.
+* You *can* use data from the projects your partners did in the last weeks.
+* Before making a graph, think about what you want to represent.
+
+
+
+## Resources
+Here are some data sources that could be interesting to you:
+* [Explore the Google Trends](http://pages.today/trends4)
+* [Hans Roslings's vizs](http://b.link/ted52)
+* [See an analysis about heart diseases](http://b.link/kaggle10)
+* [Your body's data](http://body.media/ted6)
diff --git a/Presentation.key b/Presentation.key
new file mode 100755
index 0000000..5127042
Binary files /dev/null and b/Presentation.key differ
diff --git a/Presentation.pdf b/Presentation.pdf
new file mode 100644
index 0000000..711219e
Binary files /dev/null and b/Presentation.pdf differ
diff --git a/README.md b/README.md
index 00f88b1..b41a146 100644
--- a/README.md
+++ b/README.md
@@ -1,117 +1,58 @@
-# Welcome to Your Own Project!
-This project is completely up to you!*
-\*terms and conditions may apply. Consult your TA or lead teacher for full details of this limited offer
+# Return on Street Performance in Lisbon
+*by Uli @ Ironhack Lisbon Nov 20th 2020*
## Content
- [Project Description](#project-description)
-- [Project Goals](#project-goals)
-- [Requirements](#requirements)
-- [Deliverables](#deliverables)
-- [Mentoring](#mentoring)
-- [Schedule](#schedule)
-- [Presentation](#presentation)
-- [Tips & Tricks](#tips-&-tricks)
-- [Resources](#resources)
+- [Hypotheses / Questions](#hypotheses-/-questions)
+- [Dataset](#dataset)
+- [Workflow](#workflow)
+- [Organization](#organization)
+- [Links](#links)
## Project Description
-In this project, you will think of a topic and problem, collect experimental data, complete an end-to-end analysis and present the results, all by yourself.
-
-First, choose a topic of interest to you and understand what research has already been done in that area. What are some interesting questions that remain? Can you turn those questions into a product (i.e. can you extract value out of answering those questions)?
+My neighbor in Lisbon performed Flamenco dances in the streets of Lisbon. The project was about testing some hypotheses regarding what drives the return of a street performaner.
-You will then collect some data you think could help answer those questions. Choose your main source of data wisely, since in this project you have a restriction that tries to emulate a common corporate setting: you won't have access to a census of the universe of your choice. You must collect the data yourself in such a way that the universe of datapoints available to you is limted. For example, you may be limited by time (e.g. watching and categorizing Youtube videos or Instagram pictures), by cost (e.g. querying Google Maps for public transport routes via the gui, without paying for the API access) or by access (e.g. surveying people on their preferences). In the end, you should aim at collecting between 30 and 100 observations (rows) and between 5 and 10 features (columns) per observation.
+
-Once you have your data, complete an analysis that answers your original question and/or related ancilliary questions. Please make sure that the main observations you make hold to scientific scrutiny at some level of significance. You can and should supplement your analysis with visual intuition and highlights of hypothesis that the data seems to support, even if you are not necessarily able to hold those insights to the same level of scrutiny as your main question.
+## Hypotheses / Questions
+- Old individual men donate more?
+- Gender 'study' (male vs. female vs. couples).
+- Number of stops has a positive effect on return?
+- Location matters?
+- Songs matter?
-You can enrich your limited dataset with information from richer sources that you can obtain trough any means you've learned before (e.g. you may web scrape the weights of car models if that is one of your observations).
+
-Like in the previous project, package your results with a product or service mindset. You will present your findings in a presentation (possibly supported by an interactive visualization) where you should evidence principles of dashboarding and storytelling.
+## Dataset
+The dataset contains 50 observations including two outliers of:
+- 6 groups (time slots of 20 min each)
+- 2 locations [Baixa-Chiado, Praça do Comércio]
+- Genders [Male, Female, Couples]
+- Individuals [True/False]
+- Age Group [25-49, 50+]
+- Songs (4 out of 5 songs)
+- Return in EUR
+[Dataset]()
-
+
-## Project Goals
-* Research, collect and analyse data on a topic of interest to you.
-* Feel free to use additional data to enrich your dataset, maybe using an API or web scraping.
-* Apply the statistical techniques we have learned, along with techniques from EDA.
-* Create useful and easily-interpretable plots.
-* Prepare a presentation keeping in mind the finer points of storytelling.
-* Communicate the results of your analysis clearly, accurately and engagingly.
+## Workflow
+Outline the workflow you used in your project. What were the steps you went through?
-
+
-## Requirements
-* You must plan your project. That is why creating a Kanban or Trello Board is mandatory. You have a template for Trello [here](https://trello.com/b/YX8EsB2P/project-4-your-own-project).
-* You **CAN'T CODE** until you project is planned.
-* Create a *.gitignore* file and include it in your repository.
+## Organization
+How did you organize yourself? Did you use any tools?
-
+
-## Deliverables
-* All the scripts you used for your analysis.
-* Slides and a 5 minute presentation in the classroom.
-* Repository with your workflow + documentation + code. Even if you are working alone, you need to maintain good practices!
-* A short report including your motivation, methodology and results.
+## Links
+Include the links to your repository, slides and trello. Feel free to include any other links associated to your project.
-
-
-## Mentoring
-One of the TAs will be your mentor!
-Your mentor will:
-* Follow your project in general.
-* Check if you are following the tasks, your blockers, etc
-* Help/support you in specific questions.
-
-
-
-## Schedule
-*Monday*
-* Think about a topic and propose some core questions.
-* Choose data that is relevant to your questions and devise ways of collecting such data.
-* Choose ancilliary data that would allow you to acheive your strech goals.
-* Look for documentation to give context to your project.
-* Write the README file in your repository.
-* Get approval for your project
-* **DO NOT START CODING**
-* Start collecting the data for your core questions
-
-**NO CODE UNTIL HERE**
-
-* Tuesday - Thursday morning*
-* Data entry, cleaning and transformation.
-* Start the analysis. Remember all the techniques you have learned!
-* Prepare a draft of your first slides presentation (no analysis or conclusions yet): title, motivation, context, ...
-
-*Thursday afternoon*
-* Rehearsal. Take the feedback and use it!
-* Finish the analysis. Finish the slides.
-* Final improvements!
-
-*Friday*
-* Presentation!
-
-
-
-## Presentation
-Presentations for this project will be in the classroom! Presentations will be **EXACTLY** 5 minutes long, with 2 additional minutes for questions. We will stop you!
-
-
-
-## Tips & Tricks
-* Organize yourself (don't get lost!).
-* Ask for help vs Google is your friend.
-* Define a simple approach first. You never know how the data can betray you ;)
-* Learn about your subject and understand what other research has been done before you.
-* You *can* use data from the projects your partners did in the last weeks.
-* Before making a graph, think about what you want to represent.
-
-
-
-## Resources
-Here are some data sources that could be interesting to you:
-* [Explore the Google Trends](http://pages.today/trends4)
-* [Hans Roslings's vizs](http://b.link/ted52)
-* [See an analysis about heart diseases](http://b.link/kaggle10)
-* [Your body's data](http://body.media/ted6)
+[Repository](https://github.com/)
+[Slides](https://slides.com/)
+[Trello](https://trello.com/en)
diff --git a/data.csv b/data.csv
new file mode 100644
index 0000000..273093b
--- /dev/null
+++ b/data.csv
@@ -0,0 +1,51 @@
+#,group,date,h_from,h_to,place,gender,individual,age_group,eur,song_order,comment
+1,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,25-49,0.00,3 - 4 - 5 - 1,
+2,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,25-49,0.00,3 - 4 - 5 - 1,
+3,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,25-49,0.00,3 - 4 - 5 - 1,
+4,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,25-49,0.00,3 - 4 - 5 - 1,
+5,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,25-49,0.00,3 - 4 - 5 - 1,
+6,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,25-49,0.00,3 - 4 - 5 - 1,
+7,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,25-49,0.00,3 - 4 - 5 - 1,
+8,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,25-49,0.00,3 - 4 - 5 - 1,
+9,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,50+,0.00,3 - 4 - 5 - 1,
+10,1,13.11.2020,12:10,12:30,Baixa-Chiado,Male,TRUE,50+,0.00,3 - 4 - 5 - 1,
+11,1,13.11.2020,12:10,12:30,Baixa-Chiado,Couple,FALSE,25-49,0.00,3 - 4 - 5 - 1,
+12,1,13.11.2020,12:10,12:30,Baixa-Chiado,Couple,FALSE,25-49,0.00,3 - 4 - 5 - 1,
+13,1,13.11.2020,12:10,12:30,Baixa-Chiado,Couple,FALSE,50+,0.00,3 - 4 - 5 - 1,
+14,1,13.11.2020,12:10,12:30,Baixa-Chiado,Couple,FALSE,50+,0.00,3 - 4 - 5 - 1,
+15,1,13.11.2020,12:10,12:30,Baixa-Chiado,Couple,FALSE,50+,0.00,3 - 4 - 5 - 1,
+16,2,13.11.2020,12:40,13:00,Baixa-Chiado,Male,TRUE,25-49,0.00,2 - 3 - 1 - 4,
+17,2,13.11.2020,12:40,13:00,Baixa-Chiado,Male,TRUE,25-49,0.00,2 - 3 - 1 - 4,
+18,2,13.11.2020,12:40,13:00,Baixa-Chiado,Male,TRUE,50+,1.00,2 - 3 - 1 - 4,
+19,2,13.11.2020,12:40,13:00,Baixa-Chiado,Male,TRUE,50+,0.00,2 - 3 - 1 - 4,
+20,2,13.11.2020,12:40,13:00,Baixa-Chiado,Couple,FALSE,50+,0.00,2 - 3 - 1 - 4,
+21,3,13.11.2020,13:10,13:30,Baixa-Chiado,Male,TRUE,25-49,0.00,5 - 4 - 1 - 2,
+22,3,13.11.2020,13:10,13:30,Baixa-Chiado,Male,TRUE,25-49,0.00,5 - 4 - 1 - 2,
+23,3,13.11.2020,13:10,13:30,Baixa-Chiado,Male,TRUE,25-49,0.00,5 - 4 - 1 - 2,
+24,3,13.11.2020,13:10,13:30,Baixa-Chiado,Male,TRUE,25-49,0.00,5 - 4 - 1 - 2,
+25,3,13.11.2020,13:10,13:30,Baixa-Chiado,Male,TRUE,25-49,0.00,5 - 4 - 1 - 2,
+26,3,13.11.2020,13:10,13:30,Baixa-Chiado,Male,TRUE,25-49,0.00,5 - 4 - 1 - 2,
+27,3,13.11.2020,13:10,13:30,Baixa-Chiado,Male,TRUE,25-49,0.00,5 - 4 - 1 - 2,
+28,3,13.11.2020,13:10,13:30,Baixa-Chiado,Male,TRUE,25-49,0.00,5 - 4 - 1 - 2,
+29,3,13.11.2020,13:10,13:30,Baixa-Chiado,Male,TRUE,50+,0.00,5 - 4 - 1 - 2,
+30,3,13.11.2020,13:10,13:30,Baixa-Chiado,Female,TRUE,25-49,1.00,5 - 4 - 1 - 2,
+31,4,13.11.2020,14:30,14:50,Praça do Comércio,Male,TRUE,25-49,2.00,3 - 4 - 2 - 1,
+32,4,13.11.2020,14:30,14:50,Praça do Comércio,Male,TRUE,25-49,2.00,3 - 4 - 2 - 1,
+33,4,13.11.2020,14:30,14:50,Praça do Comércio,Male,TRUE,25-49,0.00,3 - 4 - 2 - 1,
+34,4,13.11.2020,14:30,14:50,Praça do Comércio,Male,TRUE,50+,0.00,3 - 4 - 2 - 1,
+35,4,13.11.2020,14:30,14:50,Praça do Comércio,Female,TRUE,25-49,2.00,3 - 4 - 2 - 1,
+36,4,13.11.2020,14:30,14:50,Praça do Comércio,Female,TRUE,25-49,0.00,3 - 4 - 2 - 1,
+37,4,13.11.2020,14:30,14:50,Praça do Comércio,Female,TRUE,25-49,0.00,3 - 4 - 2 - 1,
+38,4,13.11.2020,14:30,14:50,Praça do Comércio,Female,TRUE,25-49,0.00,3 - 4 - 2 - 1,
+39,5,13.11.2020,15:00,15:20,Praça do Comércio,Female,TRUE,25-49,1.00,1 - 4 - 5 - 3,
+40,5,13.11.2020,15:00,15:20,Praça do Comércio,Female,FALSE,25-49,2.00,1 - 4 - 5 - 3,interviewer
+41,5,13.11.2020,15:00,15:20,Praça do Comércio,Female,FALSE,25-49,5.00,1 - 4 - 5 - 3,interviewer
+42,5,13.11.2020,15:00,15:20,Praça do Comércio,Female,TRUE,25-49,0.00,1 - 4 - 5 - 3,
+43,5,13.11.2020,15:00,15:20,Praça do Comércio,Female,TRUE,25-49,0.00,1 - 4 - 5 - 3,
+44,5,13.11.2020,15:00,15:20,Praça do Comércio,Female,TRUE,25-49,0.00,1 - 4 - 5 - 3,
+45,5,13.11.2020,15:00,15:20,Praça do Comércio,Female,TRUE,25-49,0.00,1 - 4 - 5 - 3,
+46,6,13.11.2020,15:30,15:50,Praça do Comércio,Male,TRUE,25-49,2.00,2 - 3 - 1 - 4,
+47,6,13.11.2020,15:30,15:50,Praça do Comércio,Male,TRUE,50+,0.00,2 - 3 - 1 - 4,
+48,6,13.11.2020,15:30,15:50,Praça do Comércio,Female,FALSE,25-49,2.00,2 - 3 - 1 - 4,
+49,6,13.11.2020,15:30,15:50,Praça do Comércio,Female,FALSE,25-49,0.00,2 - 3 - 1 - 4,
+50,6,13.11.2020,15:30,15:50,Praça do Comércio,Female,TRUE,25-49,0.00,2 - 3 - 1 - 4,
\ No newline at end of file
diff --git a/main.ipynb b/main.ipynb
new file mode 100644
index 0000000..04c5575
--- /dev/null
+++ b/main.ipynb
@@ -0,0 +1,2625 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# importing packages/libraries\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import scipy.stats as st\n",
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = pd.read_csv('data.csv')\n",
+ "songs = pd.read_csv('songs.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "# int64\n",
+ "group int64\n",
+ "date datetime64[ns]\n",
+ "h_from datetime64[ns]\n",
+ "h_to datetime64[ns]\n",
+ "place object\n",
+ "gender object\n",
+ "individual bool\n",
+ "age_group object\n",
+ "eur float64\n",
+ "song_order object\n",
+ "comment object\n",
+ "dtype: object"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# change data types\n",
+ "data['eur'] = data['eur'].astype('float64')\n",
+ "data['date'] = pd.to_datetime(data['date'])\n",
+ "data['h_from'] = pd.to_datetime(data['h_from'], format='%H:%M')\n",
+ "data['h_to'] = pd.to_datetime(data['h_to'], format='%H:%M')\n",
+ "data.dtypes"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " # \n",
+ " group \n",
+ " date \n",
+ " h_from \n",
+ " h_to \n",
+ " place \n",
+ " gender \n",
+ " individual \n",
+ " age_group \n",
+ " eur \n",
+ " song_order \n",
+ " comment \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 1 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 12:10:00 \n",
+ " 1900-01-01 12:30:00 \n",
+ " Baixa-Chiado \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 0.0 \n",
+ " 3 - 4 - 5 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " 1 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 12:10:00 \n",
+ " 1900-01-01 12:30:00 \n",
+ " Baixa-Chiado \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 0.0 \n",
+ " 3 - 4 - 5 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " 1 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 12:10:00 \n",
+ " 1900-01-01 12:30:00 \n",
+ " Baixa-Chiado \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 0.0 \n",
+ " 3 - 4 - 5 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " 1 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 12:10:00 \n",
+ " 1900-01-01 12:30:00 \n",
+ " Baixa-Chiado \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 0.0 \n",
+ " 3 - 4 - 5 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " 1 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 12:10:00 \n",
+ " 1900-01-01 12:30:00 \n",
+ " Baixa-Chiado \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 0.0 \n",
+ " 3 - 4 - 5 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " # group date h_from h_to place \\\n",
+ "0 1 1 2020-11-13 1900-01-01 12:10:00 1900-01-01 12:30:00 Baixa-Chiado \n",
+ "1 2 1 2020-11-13 1900-01-01 12:10:00 1900-01-01 12:30:00 Baixa-Chiado \n",
+ "2 3 1 2020-11-13 1900-01-01 12:10:00 1900-01-01 12:30:00 Baixa-Chiado \n",
+ "3 4 1 2020-11-13 1900-01-01 12:10:00 1900-01-01 12:30:00 Baixa-Chiado \n",
+ "4 5 1 2020-11-13 1900-01-01 12:10:00 1900-01-01 12:30:00 Baixa-Chiado \n",
+ "\n",
+ " gender individual age_group eur song_order comment \n",
+ "0 Male True 25-49 0.0 3 - 4 - 5 - 1 NaN \n",
+ "1 Male True 25-49 0.0 3 - 4 - 5 - 1 NaN \n",
+ "2 Male True 25-49 0.0 3 - 4 - 5 - 1 NaN \n",
+ "3 Male True 25-49 0.0 3 - 4 - 5 - 1 NaN \n",
+ "4 Male True 25-49 0.0 3 - 4 - 5 - 1 NaN "
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " # \n",
+ " group \n",
+ " date \n",
+ " h_from \n",
+ " h_to \n",
+ " place \n",
+ " gender \n",
+ " individual \n",
+ " age_group \n",
+ " eur \n",
+ " song_order \n",
+ " comment \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 17 \n",
+ " 18 \n",
+ " 2 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 12:40:00 \n",
+ " 1900-01-01 13:00:00 \n",
+ " Baixa-Chiado \n",
+ " Male \n",
+ " True \n",
+ " 50+ \n",
+ " 1.0 \n",
+ " 2 - 3 - 1 - 4 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 29 \n",
+ " 30 \n",
+ " 3 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 13:10:00 \n",
+ " 1900-01-01 13:30:00 \n",
+ " Baixa-Chiado \n",
+ " Female \n",
+ " True \n",
+ " 25-49 \n",
+ " 1.0 \n",
+ " 5 - 4 - 1 - 2 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 30 \n",
+ " 31 \n",
+ " 4 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 14:30:00 \n",
+ " 1900-01-01 14:50:00 \n",
+ " Praça do Comércio \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 3 - 4 - 2 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 31 \n",
+ " 32 \n",
+ " 4 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 14:30:00 \n",
+ " 1900-01-01 14:50:00 \n",
+ " Praça do Comércio \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 3 - 4 - 2 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 34 \n",
+ " 35 \n",
+ " 4 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 14:30:00 \n",
+ " 1900-01-01 14:50:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " True \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 3 - 4 - 2 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 38 \n",
+ " 39 \n",
+ " 5 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:00:00 \n",
+ " 1900-01-01 15:20:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " True \n",
+ " 25-49 \n",
+ " 1.0 \n",
+ " 1 - 4 - 5 - 3 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 39 \n",
+ " 40 \n",
+ " 5 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:00:00 \n",
+ " 1900-01-01 15:20:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " False \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 1 - 4 - 5 - 3 \n",
+ " interviewer \n",
+ " \n",
+ " \n",
+ " 40 \n",
+ " 41 \n",
+ " 5 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:00:00 \n",
+ " 1900-01-01 15:20:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " False \n",
+ " 25-49 \n",
+ " 5.0 \n",
+ " 1 - 4 - 5 - 3 \n",
+ " interviewer \n",
+ " \n",
+ " \n",
+ " 45 \n",
+ " 46 \n",
+ " 6 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:30:00 \n",
+ " 1900-01-01 15:50:00 \n",
+ " Praça do Comércio \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 2 - 3 - 1 - 4 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 47 \n",
+ " 48 \n",
+ " 6 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:30:00 \n",
+ " 1900-01-01 15:50:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " False \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 2 - 3 - 1 - 4 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " # group date h_from h_to \\\n",
+ "17 18 2 2020-11-13 1900-01-01 12:40:00 1900-01-01 13:00:00 \n",
+ "29 30 3 2020-11-13 1900-01-01 13:10:00 1900-01-01 13:30:00 \n",
+ "30 31 4 2020-11-13 1900-01-01 14:30:00 1900-01-01 14:50:00 \n",
+ "31 32 4 2020-11-13 1900-01-01 14:30:00 1900-01-01 14:50:00 \n",
+ "34 35 4 2020-11-13 1900-01-01 14:30:00 1900-01-01 14:50:00 \n",
+ "38 39 5 2020-11-13 1900-01-01 15:00:00 1900-01-01 15:20:00 \n",
+ "39 40 5 2020-11-13 1900-01-01 15:00:00 1900-01-01 15:20:00 \n",
+ "40 41 5 2020-11-13 1900-01-01 15:00:00 1900-01-01 15:20:00 \n",
+ "45 46 6 2020-11-13 1900-01-01 15:30:00 1900-01-01 15:50:00 \n",
+ "47 48 6 2020-11-13 1900-01-01 15:30:00 1900-01-01 15:50:00 \n",
+ "\n",
+ " place gender individual age_group eur song_order \\\n",
+ "17 Baixa-Chiado Male True 50+ 1.0 2 - 3 - 1 - 4 \n",
+ "29 Baixa-Chiado Female True 25-49 1.0 5 - 4 - 1 - 2 \n",
+ "30 Praça do Comércio Male True 25-49 2.0 3 - 4 - 2 - 1 \n",
+ "31 Praça do Comércio Male True 25-49 2.0 3 - 4 - 2 - 1 \n",
+ "34 Praça do Comércio Female True 25-49 2.0 3 - 4 - 2 - 1 \n",
+ "38 Praça do Comércio Female True 25-49 1.0 1 - 4 - 5 - 3 \n",
+ "39 Praça do Comércio Female False 25-49 2.0 1 - 4 - 5 - 3 \n",
+ "40 Praça do Comércio Female False 25-49 5.0 1 - 4 - 5 - 3 \n",
+ "45 Praça do Comércio Male True 25-49 2.0 2 - 3 - 1 - 4 \n",
+ "47 Praça do Comércio Female False 25-49 2.0 2 - 3 - 1 - 4 \n",
+ "\n",
+ " comment \n",
+ "17 NaN \n",
+ "29 NaN \n",
+ "30 NaN \n",
+ "31 NaN \n",
+ "34 NaN \n",
+ "38 NaN \n",
+ "39 interviewer \n",
+ "40 interviewer \n",
+ "45 NaN \n",
+ "47 NaN "
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data[data['eur']>0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " song_id \n",
+ " song \n",
+ " genre \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " Mariza & Miguel Poveda - Meu Fado Meu \n",
+ " Fado Flemenco \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " Esperanza Fernandez - Al Titi \n",
+ " Flamenco \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " Camarón de la Isla - No Naqueres Mas de Mi (Ta... \n",
+ " Flamenco \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " Gisela João - Vieste do Fim do Mundo \n",
+ " Fado \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " Vicente Amigo - Gitana si me quisieras \n",
+ " Flamenco \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " song_id song genre\n",
+ "0 1 Mariza & Miguel Poveda - Meu Fado Meu Fado Flemenco\n",
+ "1 2 Esperanza Fernandez - Al Titi Flamenco\n",
+ "2 3 Camarón de la Isla - No Naqueres Mas de Mi (Ta... Flamenco\n",
+ "3 4 Gisela João - Vieste do Fim do Mundo Fado\n",
+ "4 5 Vicente Amigo - Gitana si me quisieras Flamenco"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "songs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " group \n",
+ " place \n",
+ " song_order \n",
+ " # \n",
+ " eur \n",
+ " mean \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " Baixa-Chiado \n",
+ " 3 - 4 - 5 - 1 \n",
+ " 15 \n",
+ " 0.0 \n",
+ " 0.000000 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " Baixa-Chiado \n",
+ " 2 - 3 - 1 - 4 \n",
+ " 5 \n",
+ " 1.0 \n",
+ " 0.200000 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " Baixa-Chiado \n",
+ " 5 - 4 - 1 - 2 \n",
+ " 10 \n",
+ " 1.0 \n",
+ " 0.100000 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " Praça do Comércio \n",
+ " 3 - 4 - 2 - 1 \n",
+ " 8 \n",
+ " 6.0 \n",
+ " 0.750000 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " Praça do Comércio \n",
+ " 1 - 4 - 5 - 3 \n",
+ " 7 \n",
+ " 8.0 \n",
+ " 1.142857 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " 6 \n",
+ " Praça do Comércio \n",
+ " 2 - 3 - 1 - 4 \n",
+ " 5 \n",
+ " 4.0 \n",
+ " 0.800000 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " group place song_order # eur mean\n",
+ "0 1 Baixa-Chiado 3 - 4 - 5 - 1 15 0.0 0.000000\n",
+ "1 2 Baixa-Chiado 2 - 3 - 1 - 4 5 1.0 0.200000\n",
+ "2 3 Baixa-Chiado 5 - 4 - 1 - 2 10 1.0 0.100000\n",
+ "3 4 Praça do Comércio 3 - 4 - 2 - 1 8 6.0 0.750000\n",
+ "4 5 Praça do Comércio 1 - 4 - 5 - 3 7 8.0 1.142857\n",
+ "5 6 Praça do Comércio 2 - 3 - 1 - 4 5 4.0 0.800000"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data_by_group = data[['group','place','song_order','#', 'eur']].groupby(['group','place','song_order']).agg({'#':'count','eur':'sum'}).reset_index()\n",
+ "data_by_group['mean'] = data_by_group['eur']/data_by_group['#']\n",
+ "data_by_group"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " group \n",
+ " place \n",
+ " song_order \n",
+ " # \n",
+ " eur \n",
+ " mean \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " Baixa-Chiado \n",
+ " 3 - 4 - 5 - 1 \n",
+ " 15 \n",
+ " 0.0 \n",
+ " 0.00 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " Baixa-Chiado \n",
+ " 2 - 3 - 1 - 4 \n",
+ " 5 \n",
+ " 1.0 \n",
+ " 0.20 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " Baixa-Chiado \n",
+ " 5 - 4 - 1 - 2 \n",
+ " 10 \n",
+ " 1.0 \n",
+ " 0.10 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " Praça do Comércio \n",
+ " 3 - 4 - 2 - 1 \n",
+ " 8 \n",
+ " 6.0 \n",
+ " 0.75 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " Praça do Comércio \n",
+ " 1 - 4 - 5 - 3 \n",
+ " 5 \n",
+ " 1.0 \n",
+ " 0.20 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " 6 \n",
+ " Praça do Comércio \n",
+ " 2 - 3 - 1 - 4 \n",
+ " 5 \n",
+ " 4.0 \n",
+ " 0.80 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " group place song_order # eur mean\n",
+ "0 1 Baixa-Chiado 3 - 4 - 5 - 1 15 0.0 0.00\n",
+ "1 2 Baixa-Chiado 2 - 3 - 1 - 4 5 1.0 0.20\n",
+ "2 3 Baixa-Chiado 5 - 4 - 1 - 2 10 1.0 0.10\n",
+ "3 4 Praça do Comércio 3 - 4 - 2 - 1 8 6.0 0.75\n",
+ "4 5 Praça do Comércio 1 - 4 - 5 - 3 5 1.0 0.20\n",
+ "5 6 Praça do Comércio 2 - 3 - 1 - 4 5 4.0 0.80"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data_no_out = data[data['comment']!='interviewer']\n",
+ "data_by_group_no_out = data_no_out[['group','place','song_order','#', 'eur']].groupby(['group','place','song_order']).agg({'#':'count','eur':'sum'}).reset_index()\n",
+ "data_by_group_no_out['mean'] = data_by_group_no_out['eur']/data_by_group_no_out['#']\n",
+ "data_by_group_no_out"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "songs_no_out = songs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " song_id \n",
+ " song \n",
+ " genre \n",
+ " song_id \n",
+ " tot_observations \n",
+ " tot_eur \n",
+ " playcount \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " Mariza & Miguel Poveda - Meu Fado Meu \n",
+ " Fado Flemenco \n",
+ " 1.0 \n",
+ " 50.0 \n",
+ " 20.0 \n",
+ " 6.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " Esperanza Fernandez - Al Titi \n",
+ " Flamenco \n",
+ " 2.0 \n",
+ " 28.0 \n",
+ " 12.0 \n",
+ " 4.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " Camarón de la Isla - No Naqueres Mas de Mi (Ta... \n",
+ " Flamenco \n",
+ " 3.0 \n",
+ " 40.0 \n",
+ " 19.0 \n",
+ " 5.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " Gisela João - Vieste do Fim do Mundo \n",
+ " Fado \n",
+ " 4.0 \n",
+ " 50.0 \n",
+ " 20.0 \n",
+ " 6.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " Vicente Amigo - Gitana si me quisieras \n",
+ " Flamenco \n",
+ " 5.0 \n",
+ " 32.0 \n",
+ " 9.0 \n",
+ " 3.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " song_id song genre \\\n",
+ "0 1 Mariza & Miguel Poveda - Meu Fado Meu Fado Flemenco \n",
+ "1 2 Esperanza Fernandez - Al Titi Flamenco \n",
+ "2 3 Camarón de la Isla - No Naqueres Mas de Mi (Ta... Flamenco \n",
+ "3 4 Gisela João - Vieste do Fim do Mundo Fado \n",
+ "4 5 Vicente Amigo - Gitana si me quisieras Flamenco \n",
+ "\n",
+ " song_id tot_observations tot_eur playcount \n",
+ "0 1.0 50.0 20.0 6.0 \n",
+ "1 2.0 28.0 12.0 4.0 \n",
+ "2 3.0 40.0 19.0 5.0 \n",
+ "3 4.0 50.0 20.0 6.0 \n",
+ "4 5.0 32.0 9.0 3.0 "
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "song_sum = pd.DataFrame(columns=['song_id', 'tot_observations', 'tot_eur', 'playcount'])\n",
+ "for song in range(1,6):\n",
+ " observations = len(data[data['song_order'].str.contains(str(song))])\n",
+ " eur = data['eur'][data['song_order'].str.contains(str(song))].sum()\n",
+ " playcount = len(data['group'][data['song_order'].str.contains(str(song))].unique())\n",
+ " song_sum = song_sum.append({'song_id':song, 'tot_observations':observations, 'tot_eur':eur, 'playcount':playcount}, ignore_index=True)\n",
+ "songs = pd.concat([songs,song_sum], axis=1, sort=False)\n",
+ "songs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " song_id \n",
+ " song \n",
+ " genre \n",
+ " song_id \n",
+ " tot_observations \n",
+ " tot_eur \n",
+ " playcount \n",
+ " eur/obs \n",
+ " eur/playcount \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " Camarón de la Isla - No Naqueres Mas de Mi (Ta... \n",
+ " Flamenco \n",
+ " 3.0 \n",
+ " 40.0 \n",
+ " 19.0 \n",
+ " 5.0 \n",
+ " 0.475000 \n",
+ " 3.800000 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " Esperanza Fernandez - Al Titi \n",
+ " Flamenco \n",
+ " 2.0 \n",
+ " 28.0 \n",
+ " 12.0 \n",
+ " 4.0 \n",
+ " 0.428571 \n",
+ " 3.000000 \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " Mariza & Miguel Poveda - Meu Fado Meu \n",
+ " Fado Flemenco \n",
+ " 1.0 \n",
+ " 50.0 \n",
+ " 20.0 \n",
+ " 6.0 \n",
+ " 0.400000 \n",
+ " 3.333333 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " Gisela João - Vieste do Fim do Mundo \n",
+ " Fado \n",
+ " 4.0 \n",
+ " 50.0 \n",
+ " 20.0 \n",
+ " 6.0 \n",
+ " 0.400000 \n",
+ " 3.333333 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " Vicente Amigo - Gitana si me quisieras \n",
+ " Flamenco \n",
+ " 5.0 \n",
+ " 32.0 \n",
+ " 9.0 \n",
+ " 3.0 \n",
+ " 0.281250 \n",
+ " 3.000000 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " song_id song genre \\\n",
+ "2 3 Camarón de la Isla - No Naqueres Mas de Mi (Ta... Flamenco \n",
+ "1 2 Esperanza Fernandez - Al Titi Flamenco \n",
+ "0 1 Mariza & Miguel Poveda - Meu Fado Meu Fado Flemenco \n",
+ "3 4 Gisela João - Vieste do Fim do Mundo Fado \n",
+ "4 5 Vicente Amigo - Gitana si me quisieras Flamenco \n",
+ "\n",
+ " song_id tot_observations tot_eur playcount eur/obs eur/playcount \n",
+ "2 3.0 40.0 19.0 5.0 0.475000 3.800000 \n",
+ "1 2.0 28.0 12.0 4.0 0.428571 3.000000 \n",
+ "0 1.0 50.0 20.0 6.0 0.400000 3.333333 \n",
+ "3 4.0 50.0 20.0 6.0 0.400000 3.333333 \n",
+ "4 5.0 32.0 9.0 3.0 0.281250 3.000000 "
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "songs['eur/obs'] = songs['tot_eur']/songs['tot_observations']\n",
+ "songs['eur/playcount'] = songs['tot_eur']/songs['playcount']\n",
+ "songs = songs.sort_values(['eur/obs'], ascending=False)\n",
+ "#songs.to_csv('songs_out.csv',index=False)\n",
+ "songs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " song_id \n",
+ " song \n",
+ " genre \n",
+ " song_id \n",
+ " tot_observations \n",
+ " tot_eur \n",
+ " playcount \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " Mariza & Miguel Poveda - Meu Fado Meu \n",
+ " Fado Flemenco \n",
+ " 1.0 \n",
+ " 48.0 \n",
+ " 13.0 \n",
+ " 6.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " Esperanza Fernandez - Al Titi \n",
+ " Flamenco \n",
+ " 2.0 \n",
+ " 28.0 \n",
+ " 12.0 \n",
+ " 4.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " Camarón de la Isla - No Naqueres Mas de Mi (Ta... \n",
+ " Flamenco \n",
+ " 3.0 \n",
+ " 38.0 \n",
+ " 12.0 \n",
+ " 5.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " Gisela João - Vieste do Fim do Mundo \n",
+ " Fado \n",
+ " 4.0 \n",
+ " 48.0 \n",
+ " 13.0 \n",
+ " 6.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " Vicente Amigo - Gitana si me quisieras \n",
+ " Flamenco \n",
+ " 5.0 \n",
+ " 30.0 \n",
+ " 2.0 \n",
+ " 3.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " song_id song genre \\\n",
+ "0 1 Mariza & Miguel Poveda - Meu Fado Meu Fado Flemenco \n",
+ "1 2 Esperanza Fernandez - Al Titi Flamenco \n",
+ "2 3 Camarón de la Isla - No Naqueres Mas de Mi (Ta... Flamenco \n",
+ "3 4 Gisela João - Vieste do Fim do Mundo Fado \n",
+ "4 5 Vicente Amigo - Gitana si me quisieras Flamenco \n",
+ "\n",
+ " song_id tot_observations tot_eur playcount \n",
+ "0 1.0 48.0 13.0 6.0 \n",
+ "1 2.0 28.0 12.0 4.0 \n",
+ "2 3.0 38.0 12.0 5.0 \n",
+ "3 4.0 48.0 13.0 6.0 \n",
+ "4 5.0 30.0 2.0 3.0 "
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "song_sum_no_out = pd.DataFrame(columns=['song_id', 'tot_observations', 'tot_eur', 'playcount'])\n",
+ "for song in range(1,6):\n",
+ " observations = len(data_no_out[data_no_out['song_order'].str.contains(str(song))])\n",
+ " eur = data_no_out['eur'][data_no_out['song_order'].str.contains(str(song))].sum()\n",
+ " playcount = len(data_no_out['group'][data_no_out['song_order'].str.contains(str(song))].unique())\n",
+ " song_sum_no_out = song_sum_no_out.append({'song_id':song, 'tot_observations':observations, 'tot_eur':eur, 'playcount':playcount}, ignore_index=True)\n",
+ "songs_no_out = pd.concat([songs_no_out,song_sum_no_out], axis=1, sort=False)\n",
+ "songs_no_out"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " song_id \n",
+ " song \n",
+ " genre \n",
+ " song_id \n",
+ " tot_observations \n",
+ " tot_eur \n",
+ " playcount \n",
+ " eur/obs \n",
+ " eur/playcount \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " Esperanza Fernandez - Al Titi \n",
+ " Flamenco \n",
+ " 2.0 \n",
+ " 28.0 \n",
+ " 12.0 \n",
+ " 4.0 \n",
+ " 0.428571 \n",
+ " 3.000000 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " Camarón de la Isla - No Naqueres Mas de Mi (Ta... \n",
+ " Flamenco \n",
+ " 3.0 \n",
+ " 38.0 \n",
+ " 12.0 \n",
+ " 5.0 \n",
+ " 0.315789 \n",
+ " 2.400000 \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " Mariza & Miguel Poveda - Meu Fado Meu \n",
+ " Fado Flemenco \n",
+ " 1.0 \n",
+ " 48.0 \n",
+ " 13.0 \n",
+ " 6.0 \n",
+ " 0.270833 \n",
+ " 2.166667 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " Gisela João - Vieste do Fim do Mundo \n",
+ " Fado \n",
+ " 4.0 \n",
+ " 48.0 \n",
+ " 13.0 \n",
+ " 6.0 \n",
+ " 0.270833 \n",
+ " 2.166667 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " Vicente Amigo - Gitana si me quisieras \n",
+ " Flamenco \n",
+ " 5.0 \n",
+ " 30.0 \n",
+ " 2.0 \n",
+ " 3.0 \n",
+ " 0.066667 \n",
+ " 0.666667 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " song_id song genre \\\n",
+ "1 2 Esperanza Fernandez - Al Titi Flamenco \n",
+ "2 3 Camarón de la Isla - No Naqueres Mas de Mi (Ta... Flamenco \n",
+ "0 1 Mariza & Miguel Poveda - Meu Fado Meu Fado Flemenco \n",
+ "3 4 Gisela João - Vieste do Fim do Mundo Fado \n",
+ "4 5 Vicente Amigo - Gitana si me quisieras Flamenco \n",
+ "\n",
+ " song_id tot_observations tot_eur playcount eur/obs eur/playcount \n",
+ "1 2.0 28.0 12.0 4.0 0.428571 3.000000 \n",
+ "2 3.0 38.0 12.0 5.0 0.315789 2.400000 \n",
+ "0 1.0 48.0 13.0 6.0 0.270833 2.166667 \n",
+ "3 4.0 48.0 13.0 6.0 0.270833 2.166667 \n",
+ "4 5.0 30.0 2.0 3.0 0.066667 0.666667 "
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "songs_no_out['eur/obs'] = songs_no_out['tot_eur']/songs_no_out['tot_observations']\n",
+ "songs_no_out['eur/playcount'] = songs_no_out['tot_eur']/songs_no_out['playcount']\n",
+ "songs_no_out = songs_no_out.sort_values(['eur/obs'], ascending=False)\n",
+ "#songs_no_out.to_csv('songs_no_out.csv',index=False)\n",
+ "songs_no_out"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Hypothesis Testing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Hyptothesis: Old individual men donate more (overall)\n",
+ "H1: EUR return for men, individual and 50+ > EUR return for not(men, individual and 50+) \n",
+ "H0: EUR return for men, individual and 50+ <= EUR return for not(men, individual and 50+) \n",
+ "uni sided -> half p-value \n",
+ "-> p-value = 0.084 \n",
+ "-> H0 cannot be rejected \n",
+ "-> Conclusion: return for men, individual and 50+ is not higher than for others "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Test value: -1.4254621952567512\n",
+ "p-value: 0.08360860491445032\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "Ttest_indResult(statistic=-1.4254621952567512, pvalue=0.16721720982890065)"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "old_ind_men = data['eur'][(data['gender']=='Male')&(data['individual']==True)&(data['age_group']=='50+')]\n",
+ "not_old_ind_men = data['eur'][~((data['gender']=='Male')&(data['individual']==True)&(data['age_group']=='50+'))]\n",
+ "stat, p = st.ttest_ind(old_ind_men, not_old_ind_men, equal_var=False)\n",
+ "print('Test value:',stat)\n",
+ "print('p-value:',p/2)\n",
+ "st.ttest_ind(old_ind_men, not_old_ind_men, equal_var=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.14285714285714285"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# actual mean in sample of old_ind_men\n",
+ "old_ind_men.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Hyptothesis: Old individual men donate more (when they give)\n",
+ "H1: EUR return for men, individual and 50+ > EUR return for not(men, individual and 50+) \n",
+ "H0: EUR return for men, individual and 50+ <= EUR return for not(men, individual and 50+) \n",
+ "-> old_ind_men_giv has only length 1 -> no testing possible! "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Test value: nan\n",
+ "p-value: nan\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/Users/uli/anaconda3/envs/ironhack/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3621: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
+ " return _methods._var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
+ "/Users/uli/anaconda3/envs/ironhack/lib/python3.8/site-packages/numpy/core/_methods.py:226: RuntimeWarning: invalid value encountered in double_scalars\n",
+ " ret = ret.dtype.type(ret / rcount)\n"
+ ]
+ }
+ ],
+ "source": [
+ "old_ind_men_giv = data['eur'][(data['gender']=='Male')&(data['individual']==True)&(data['age_group']=='50+')&(data['eur']>0)]\n",
+ "not_old_ind_men_giv = data['eur'][set(data.index).difference(set(old_ind_men_giv.index))][data['eur']>0]\n",
+ "stat, p = st.ttest_ind(old_ind_men_giv, not_old_ind_men_giv, equal_var=False)\n",
+ "print('Test value:',stat)\n",
+ "print('p-value:',p/2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Hyptothesis: Old individual men donate more (overall, excluding outlier)\n",
+ "H1: EUR return for men, individual and 50+ > EUR return for not(men, individual and 50+) \n",
+ "H0: EUR return for men, individual and 50+ <= EUR return for not(men, individual and 50+) \n",
+ "-> p-value = 0.207 \n",
+ "-> H0 cannot be rejected \n",
+ "-> Conclusion: return for men, individual and 50+, even excluding the outliers \n",
+ "p-value increases because outliers young women"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Test value: -0.8417548828419233\n",
+ "p-value: 0.2071238786521189\n"
+ ]
+ }
+ ],
+ "source": [
+ "old_ind_men_no_out = data['eur'][(data['gender']=='Male')&(data['individual']==True)&(data['age_group']=='50+')&(data['comment']!='interviewer')]\n",
+ "not_old_ind_men_no_out = data['eur'][~((data['gender']=='Male')&(data['individual']==True)&(data['age_group']=='50+'))&(data['comment']!='interviewer')]\n",
+ "stat, p = st.ttest_ind(old_ind_men_no_out, not_old_ind_men_no_out, equal_var=False)\n",
+ "print('Test value:',stat)\n",
+ "print('p-value:',p/2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAt7ElEQVR4nO3deXRV5b3/8fc3M5kIkEAgM2MIM4QwKYojooJTFRxQiqVYrfX2Z1tvJ9vbejv3tr1VFBxRK2KtLV5UUCsIMoREZsOQkQyEhISQiYzn+f2R0KZpQk6Gk32G72stlpyz904+e0k+a2efZz+PGGNQSinlvrysDqCUUsqxtOiVUsrNadErpZSb06JXSik3p0WvlFJuzsfqAB0JDw838fHxVsdQSimXkZ6eftYYE9HRNqcs+vj4eNLS0qyOoZRSLkNE8jrbprdulFLKzWnRK6WUm9OiV0opN6dFr5RSbs6uoheRhSJyXEQyReSJS+w3U0SaReSO7h6rlFLKMbosehHxBp4GbgCSgGUiktTJfr8AtnT3WKWUUo5jzxV9CpBpjMk2xjQAG4AlHez3deBtoKQHxyqllHIQe8bRRwH5bV4XALPa7iAiUcCtwFXAzO4cq5QzO1fTQFreOb4oqqTZZgPAx9uLiVGhzIgdzMBAX4sTKtU1e4peOniv/ST2vwO+Y4xpFvmX3e05tmVHkVXAKoDY2Fg7YinlGDX1TbyReoqNafmcOFP9j/cv/tO+uISDCIwbFsKylFjumhlDgK+3BWmV6po9RV8AxLR5HQ0UtdsnGdjQWvLhwCIRabLzWACMMWuBtQDJycm6Gorqd5V1jby4M4eXd+VSUdvIzPhBfOv6ccyMH8zk6IH/KPK6xmb2n6pgX245fz9WwpObjvK/fz/JinkJrJgXT6CfUz5wrjyYdLXClIj4ACeAq4FCYB9wtzHmaCf7vwz8nzHmz9099qLk5GSjUyCo/rQ3u4xvbjxIYcUFrk0axteuHMW02EF2HZuaU87Tn2Sy/UQpCeFB/M9dU5kaE+bYwEq1IyLpxpjkjrZ1eelhjGkSkUdoGU3jDbxojDkqIqtbtz/b3WN7chJKOUJDk43ffXSCNduziB0cyNsPzWVGnH0Ff1FKwmBSElLYlXWWxzce5PY1u3js6jE8dOUofLz1URVlvS6v6K2gV/SqP1TXN7FqfRq7ssq4KzmGH9ycRLB/7267nL/QyA/+eoRNB4u4OnEoT98zXe/dq35xqSt6vdxQHulcTQP3rNvD3pxyfv2lKfzijsm9LnmAgQN8+cOyafxkyQT+fryE5S+mUlnX2AeJleo5LXrlcYrP1/Gl53aTUVzFc/fO4I4Z0X3+Pe6bE8/vl07j87xzLFu7h7PV9X3+PZSylxa98ijnaxu594W9FJ+v45UVKVyTNMxh32vxlBGsW55MVmk197+YSk19k8O+l1KXokWvPEZ9UzNfeTWNU2W1PH9/MnNGDXH491yQOJQ198wg43QlD//pc5qabQ7/nkq1p0WvPILNZnj8rUOk5pTzqy9NZvZIx5f8RQsSh/LTWyax7Xgp3//rEZxxAIRyb/pkh/IIv/3wBO8eLOI7CxNZMjWq37//3bNiKayo5elPsogPD2L1FaP6PYPyXHpFr9zeJ8dL+OMnmdyVHMPqK0ZaluPx68Zx4+Th/PKDY6TmlFuWQ3keLXrl1orP1/H/Nh4kMTKEHy+ZQLu5mPqViPDz2yYROziQR9/YT3lNg2VZlGfRolduq6nZxqNv7KeusdlpHlwKCfDlj3dPp7ymgW9uPIDNpvfrleNp0Su39YePT5KaW85Tt05kVESw1XH+YWLUQH5w03i2HS9l3Y5sq+MoD6BFr9zS4YLzPL0ti9unR3PrtL5/IKq37p0dx8IJkfxm6wkyS6qsjqPcnBa9cjsNTTa+9eeDDAny44c3O+fKlSLCT26ZSKC/N9/+8yGa9RaOciAteuV21mzL4lhxFU/dOomBA5x3BaiIEH+evDmJz09V8PKuXKvjKDemRa/cyvHiKv74yUkWTxnBtQ6c3qCv3DI1iqsSh/KrLcfIK6uxOo5yU1r0ym3YbIbvvH2IkABfnnTSWzbtiQhP3ToRXy8vvvvOYX1qVjmEFr1yG3/+vIAD+RV8b9F4hgT7Wx3HbsMHDuBbC8fxWWYZ7x8ptjqOckNa9MotVNY18ssPjjE9Nozbpvf/FAe9dXdKLImRITy1OYMLDc1Wx1Fuxq6iF5GFInJcRDJF5IkOti8RkUMickBE0kTksjbbckXk8MVtfRleqYt+9+FJymoa+K8lEy19+rWnfLy9+NHiCRRWXGDN9iyr4yg302XRi4g38DRwA5AELBOR9jdAPwamGGOmAl8Gnm+3fYExZmpny1wp1RsnzlTxyu5cls6MZWLUQKvj9NjskUO4ecoInt2eRX55rdVxlBux54o+Bcg0xmQbYxqADcCStjsYY6rNPz9FCgL0EyXVL4wx/PjdowT7+/Ct68dZHafXvrsoEW8Rfrr5C6ujKDdiT9FHAfltXhe0vvcvRORWETkGbKblqv4iA2wVkXQRWdXZNxGRVa23fdJKS0vtS6883vYTpXyWWcZj14xhcJCf1XF6bfjAAXztylFsOXqGtFyd4VL1DXuKvqMbnv92xW6MeccYkwjcAvykzaZ5xpjptNz6eVhE5nf0TYwxa40xycaY5IiICDtiKU/XbDP8/P1jxA4O5J5ZcVbH6TMrL09gaIg/P3v/mA63VH3CnqIvAGLavI4Gijrb2RjzKTBKRMJbXxe1/rcEeIeWW0FK9drfDhRyrLiKx68fh5+P+wwgC/Tz4bFrxpKed44PvzhjdRzlBuz56dgHjBGRBBHxA5YCm9ruICKjpXWog4hMB/yAMhEJEpGQ1veDgOuAI315Asoz1TU285utJ5gYFcpNk4ZbHafP3ZkczcjwIH655biuM6t6rcuiN8Y0AY8AW4AMYKMx5qiIrBaR1a273Q4cEZEDtIzQuav1w9lhwE4ROQikApuNMR844DyUh3ltTx6FFRd4YuF4vLxcbzhlV3y8vfj2wnFkllTz9ucFVsdRLk6c8R5gcnKySUvTIfeqY1V1jcz/5SdMjBrIqytnWR3HYYwx3LZmF6cr6tj2rSudYuEU5bxEJL2zIezuc2NTeYxXduVyrraRx69z/eGUlyIifOu6cRRX1rEh9ZTVcZQL06JXLqWqrpF1O3K4OnEoU2LCrI7jcHNGDSElYTDPbMuirlGnRlA9o0WvXMrLn+Vy/kIjj10z1uoo/UJE+I9rxlJSVc8belWvekiLXrmMyrpG1u3I5prxQ5kU7bpTHXTXnFFDmKVX9aoXtOiVy3hpZy6VdU0eczXf1n9cO5bSqnpe36tX9ar7tOiVS6isa+SFndlcmzTMpScu66nZI4cwZ+QQ1uhVveoBLXrlEl7bk0dlXROPXjXG6iiWefTqMZytruettPyud1aqDS165fTqGpt5cWcO88dGeNS9+fZmjxzM9Ngwnt2eTaM+Lau6QYteOb2NafmcrW7g4StHWR3FUiLCwwtGU1hxgXcPdjrdlFL/RoteObXGZhvPbc9mRtwgUhIGWx3HclclDiUxMoRntmVhsznfU+3KOWnRK6e26UARhRUXeHjBKJdcIrCviQgPXTmKzJJqturMlspOWvTKadlshjXbs0iMDGHBuKFWx3EaN04aTuzgQJ7Zlqnz1Su7aNErp/VRxhkyS6p56Eq9mm/Lx9uLr14xkkMF59mdXWZ1HOUCtOiV01q3I5uosAHc6IbzzffW7dOjCQ/2Y+2n2VZHUS5Ai145pc9PnWNf7jlWXpaAj7f+M20vwNeb5XPi2Xa8lOPFVVbHUU5Of4KUU1r3aTahAT7cNTOm65091H2z4wjw9eL5HXpVry7NrqIXkYUiclxEMkXkiQ62LxGRQyJyQETSROQye49Vqr28sho+OFrMvbPjCPL3sTqO0xoU5MedyTH89UAhZyrrrI6jnFiXRS8i3rQsD3gDkAQsE5Gkdrt9DEwxxkwFvgw8341jlfoXz+/IwdfLiwfmxlsdxemtvCyBZpvh5V25VkdRTsyeK/oUINMYk22MaQA2AEva7mCMqTb/HOcVBBh7j1WqrfKaBt5Kz+eWaSMYGhpgdRynFzckiIUTI3ltTx7V9U1Wx1FOyp6ijwLazqJU0PrevxCRW0XkGLCZlqt6u49tPX5V622ftNLSUnuyKzf0p7151DXaePDykVZHcRkPXj6Sqrom/qyTnalO2FP0HQ1g/renNIwx7xhjEoFbgJ9059jW49caY5KNMckRERF2xFLupqHJxvrdeVw+Jpyxw0KsjuMypscOYlpsGC/tytVpEVSH7Cn6AqDt0IdooNMZlYwxnwKjRCS8u8cqz7b5cBElVfV8+bIEq6O4nJWXJZBXVsvHx0qsjqKckD1Fvw8YIyIJIuIHLAU2td1BREZL66OLIjId8APK7DlWKQBjDC/szGFURBBXjNHf6Lpr4YRIRgwM4MWdOVZHUU6oy6I3xjQBjwBbgAxgozHmqIisFpHVrbvdDhwRkQO0jLK5y7To8FgHnIdycftyz3GksJIV8xLw8tLpDrrLx9uL++fGszu7jKNF562Oo5yMOOOkSMnJySYtLc3qGKofrX41nd3ZZez5z6sZ4OdtdRyXdL62kdk/+5gbJw/n11+aYnUc1c9EJN0Yk9zRNn0yVlkuv7yWrV8Uc/esWC35XhgY6MuXkqPZdKCI0qp6q+MoJ6JFryy3fncuIsLyOXFWR3F5D8yNp6HZxp/2nrI6inIiWvTKUrUNTby5L5+FEyMZPnCA1XFc3siIYK4cF8Hre/NoaNJ1ZVULLXplqXf2F1JZ18QKne6gzzwwN56SqnreP3La6ijKSWjRK8sYY3hlVy4To0KZETfI6jhuY/6YCBLCg3T+G/UPWvTKMruzyjhxppoH5iboClJ9yMtLuH9OHPtPVXAwv8LqOMoJaNEry7y0K5fBQX7cNFlXkOprt8+IJtjfh1f0ql6hRa8skl9ey0cZZ7g7JZYAXx1S2ddCAny5Y0Y07x7SoZZKi15Z5LU9eXiJcM/sWKujuK3lc+JobDZsSNWhlp5Oi171uwsNzWzYl8/CCTqk0pFGRgQzf2wEr+3No7FZh1p6Mi161e82HSzk/IVGfUCqH9w/J44zlfVsPXrG6ijKQlr0ql+1DKnMIzEyhJSEwVbHcXtXjhtKzOABvLI71+ooykJa9Kpfpeed44vTlSyfE69DKvuBt5dw3+w4UnPKyThdaXUcZREtetWvXtmdR0iAD7dMG2F1FI9xZ3IM/j5erN+dZ3UUZREtetVvSirreP/wae5MjiHQz8fqOB4jLNCPW6ZG8df9hZyvbbQ6jrKAFr3qN39KPUWTzXDfbP0Qtr8tnxvHhcZm3krXBcQ9kV1FLyILReS4iGSKyBMdbL9HRA61/tklIlPabMsVkcMickBEdDURD9XYOnXuFWMjiA8PsjqOx5kwYiAz4gbx2p48XUDcA3VZ9CLiTcvygDcAScAyEUlqt1sOcIUxZjLwE2Btu+0LjDFTO1v9RLm/LUeLKamq1yGVFlo+J47cslo+PVlqdRTVz+y5ok8BMo0x2caYBmADsKTtDsaYXcaYc60v9wDRfRtTubr1u/OIHjSAK8cNtTqKx7ph4nDCg/15VT+U9Tj2FH0U0PbGXkHre51ZCbzf5rUBtopIuois6uwgEVklImkiklZaqlcc7uRYcSWpOeXcOzsOb1342zJ+Pl4sS4nh78dLyC+vtTqO6kf2FH1HP5kd3uQTkQW0FP132rw9zxgznZZbPw+LyPyOjjXGrDXGJBtjkiMiIuyIpVzFq7vz8Pfx4q7kGKujeLy7Z8XiJcJre/Wq3pPYU/QFQNuf0GigqP1OIjIZeB5YYowpu/i+Maao9b8lwDu03ApSHqKyrpF39hdy85QRDAryszqOxxs+cADXjh/Gxn351DU2Wx1H9RN7in4fMEZEEkTED1gKbGq7g4jEAn8B7jPGnGjzfpCIhFz8O3AdcKSvwivn95f0AmobmvVDWCeyfG4c52obeffgv12vKTfVZdEbY5qAR4AtQAaw0RhzVERWi8jq1t1+CAwBnmk3jHIYsFNEDgKpwGZjzAd9fhbKKRljWL8njykxYUyODrM6jmo1Z+QQxgwN5tU9evvGU9j1eKIx5j3gvXbvPdvm7w8CD3ZwXDYwpf37yjN8lllGdmkNv/mS/hNwJiLCfXPi+OHfjnIgv4KpMWFWR1IOpk/GKodZv7tlqcAbdalAp3PrtCiC/LxZr7NaegQteuUQhRUX+CjjDHfNjNGlAp1QSIAvt02P5v8OnaasWpcadHda9MohXm+9/3vPLF0q0FktnxNHQ5ONN9N0/ht3p0Wv+lx9UzNv7svnqsRhRA8KtDqO6sSYYSHMGTmE1/ecolnnv3FrWvSqz713+DRlNQ3cP1eHVDq75XPiKKy4wN+PlVgdRTmQFr3qc+t35zEyPIh5o8KtjqK6cG3SMCJDA/RDWTenRa/61KGCCvafquC+OXF46bw2Ts/H24t7ZsWy4+RZskqrrY6jHESLXvWp9bvzCPTz5vYZOoGpq1iaEouvt+islm5Mi171mfKaBjYdLOK26VGEBvhaHUfZKSLEnxsnDeft9AKq65usjqMcQIte9Zk39+XT0GRj+Zx4q6Ooblo+N56q+ibe2V9odRTlAFr0qk802wyv7cljzsghjB0WYnUc1U3TYsKYFDWQ9btyMUaHWrobLXrVJ/5+rITCigs6pNJFiQjL58RxsqSa3dllXR+gXIoWveoTr+zKZfjAAK4ZP8zqKKqHbp4ygkGBvryyK9fqKKqPadGrXjt5poqdmWe5d3YcPt76T8pVBfh6szQllg+/OEPBOV1q0J3oT6XqtVd257auR6rz2ri6e2e33HrTuerdixa96pXzFxr5y+eFLJ4ygsG6VKDLiwobwPUTInlTlxp0K3YVvYgsFJHjIpIpIk90sP0eETnU+meXiEyx91jl2t5Ky6e2oZkH5sZbHUX1kfvnxlNR28jfDuhQS3fRZdGLiDfwNHADkAQsE5GkdrvlAFcYYyYDPwHWduNY5aKabYb1u/NIjhvExKiBVsdRfWRWwmASI0N46TMdauku7LmiTwEyjTHZxpgGYAOwpO0OxphdxphzrS/3ANH2Hqtc17bjJZwqr+V+vZp3KyLCA3PjOVZcRWpOudVxVB+wp+ijgLYrExS0vteZlcD73T1WRFaJSJqIpJWWltoRS1nt5V25DAv1Z+HESKujqD62ZGoUYYG+vKxDLd2CPUXf0RSEHf4+JyILaCn673T3WGPMWmNMsjEmOSIiwo5YykonzlSx4+RZls+Jx1eHVLqdAX7eLJ0Zy5ajxTrU0g3Y8xNaAMS0eR0NFLXfSUQmA88DS4wxZd05Vrmelz7LxV+HVLq15XPiEBHW66yWLs+eot8HjBGRBBHxA5YCm9ruICKxwF+A+4wxJ7pzrHI952oaeGd/AbdOi9IhlW5sRNgAbpgYyRupp6jRWS1dWpdFb4xpAh4BtgAZwEZjzFERWS0iq1t3+yEwBHhGRA6ISNqljnXAeah+9Ma+U9Q12lgxL8HqKMrBVsxLoKquibc/L7A6iuoFccbhU8nJySYtLc3qGKoDjc02Lv/FJ4weGsxrD86yOo5yMGMMtzyzi6oLjXz0zSt01TAnJiLpxpjkjrbpp2iqWz44UkxxZR0r5sVbHUX1AxHhy/PiyT5bw/YTOhrOVWnRK7sZY3hhZw7xQwJZMG6o1XFUP1k0aTjDQv15YWeO1VFUD2nRK7ul553jQH4FX74sQX+F9yC+3l4snxPPzsyzZJyutDqO6gEtemW353fkMHCAL3fowt8e555ZsQzw9eb5HXpV74q06JVd8spq2PJFMffOjiXQz8fqOKqfhQX6cWdyNJsOFnKmss7qOKqbtOiVXV7cmYOPl+jC3x5sxbwEmmyG9btzrY6iukmLXnWporaBjWkFLJ4SxbDQAKvjKIvEhwdxXdIwXttzitoGfYDKlWjRqy69vvcUFxqbefByfUDK033l8pGcv9DIn9P1ASpXokWvLqm+qZlXduVy2ehwxg8PtTqOstiMuEFMiQnjhZ05NNuc72FL1TEtenVJf91fSElVPavmj7Q6inICIsJX548kr6yWD44UWx1H2UmLXnXKZjM892k2ScNDuXxMuNVxlJO4fkIk8UMCeXZ7lq5A5SK06FWnPso4Q3ZpDV+9YiQi+oCUauHtJXxl/kgOF55nd1ZZ1wcoy2nRq04992k20YMGcOOk4VZHUU7m9unRhAf78eyn2VZHUXbQolcd2pdbTnreOb5y+Uh8dAUp1U6Arzcr5iXw6YlSjhadtzqO6oL+BKsOPbc9i8FBftyZHNP1zsoj3TsrjiA/b57brlf1zk6LXv2bY8WVfJRRwv1z4hng5211HOWkBgb6cvesWDYfPs2pMl1X1pnZVfQislBEjotIpog80cH2RBHZLSL1IvJ4u225InK47cpTyrk9/UkWQX7e3D83zuooysk9ePlIvEVYsz3L6ijqErosehHxBp4GbgCSgGUiktRut3LgUeDXnXyZBcaYqZ2tfqKcR87ZGjYfKuK+OfGEBep6sOrShoUGcOfMaN5OL6D4vE525qzsuaJPATKNMdnGmAZgA7Ck7Q7GmBJjzD6g0QEZVT9asy0TX28vVl6m0x0o+3x1/iiajWGtjsBxWvYUfRSQ3+Z1Qet79jLAVhFJF5FVne0kIqtEJE1E0kpLdckyKxRWXOAvnxeyLCWWiBB/q+MoFxEzOJBbpkbxp9Q8yqrrrY6jOmBP0Xf0pEx3HoebZ4yZTsutn4dFZH5HOxlj1hpjko0xyREREd348qqvrN2ehQg63YHqtq8tGEV9k40XP9OFSZyRPUVfALQdYxcNFNn7DYwxRa3/LQHeoeVWkHIyJZV1bNiXz23TohkRNsDqOMrFjIoIZtHE4azflUdFbYPVcVQ79hT9PmCMiCSIiB+wFNhkzxcXkSARCbn4d+A64EhPwyrHWbM9iyab4eEFo62OolzU168eTVV9Ey/qIuJOp8uiN8Y0AY8AW4AMYKMx5qiIrBaR1QAiEikiBcA3ge+LSIGIhALDgJ0ichBIBTYbYz5w1MmonjlTWcfre09x+/QoYocEWh1HuajEyFAWTYrkxc9y9areydi1+Kcx5j3gvXbvPdvm78W03NJprxKY0puAyvHWbMvCZjM8smCM1VGUi/vG1WN573Axz+/I4fHrx1kdR7XSJ2M9XPH5Ov6Ueorbp0fr1bzqtXGRIdw4aTgv78rlXI1e1TsLLXoPt2ZbZsvV/FV6b171jUevHkNNQxPP79Rx9c5Ci96DFVVc4I3UfO6YEU3MYL2aV31jXGQIiyYN5+XPcnVcvZPQovdgv//oJIBezas+9x/XjOFCYzPPbNM5cJyBFr2Hyiqt5q30fO6eFUv0IL2aV31r9NAQbpsezat78iiquGB1HI+nRe+hfrv1BAG+3no1rxzmsWvGgPnnb47KOlr0HuhI4Xk2Hz7NyssSCA/WOW2UY0QPCuTuWbG8lZ5PVmm11XE8mha9B/rlluOEBfryFZ3TRjnYI1eNJsDXm99uPWF1FI+mRe9hdmWd5dMTpXztylGEBvhaHUe5ufBgfx68LIHNh09zML/C6jgeS4veg9hshqc2ZxAVNoDlc+KtjqM8xFfmjyQ82I+nNmdgTHcmvlV9RYveg/xlfyFHiyr59sJxBPjqWrCqf4QE+PLYNWNJzS1ny9EzVsfxSFr0HuJCQzO/3nKcydEDuXnyCKvjKA+zdGYMo4cG8/P3M2hoslkdx+No0XuI53dkU1xZx/cWjcfLq6O1ZJRyHB9vL767KJHcslpe35tndRyPo0XvAUqq6nh2exbXJQ1j1sghVsdRHmrBuKHMGz2E3398kvO1urx0f9Ki9wC/eP84Dc02/nPReKujKA8mInxvURKVFxr5n490uGV/0qJ3c+l553j78wJWXjaShPAgq+MoD5c0IpR7ZsWxfncuGacrrY7jMewqehFZKCLHRSRTRJ7oYHuiiOwWkXoRebw7xyrHabYZntx0hGGh/nxdpzpQTuL/XTeWgQN8eXLTUR1u2U+6LHoR8QaeBm4AkoBlIpLUbrdy4FHg1z04VjnIm/vyOVJYyXcXjSfI367FxJRyuLBAPx6/fhypOeW8e+i01XE8gj1X9ClApjEm2xjTAGwAlrTdwRhTYozZB7T/hKXLY5VjVNQ28Kstx0hJGMziKTqcUjmXpTNjmRgVyn9vzqCmvsnqOG7PnqKPAvLbvC5ofc8edh8rIqtEJE1E0kpLS+388qozP3//GJV1Tfx48QREdDilci7eXsKPF0+kuLKO//lQP5h1NHuKvqOWsPfGmt3HGmPWGmOSjTHJERERdn551ZG92WVs2JfPg5clMH54qNVxlOrQjLhB3D0rlhc/y+FwwXmr47g1e4q+AIhp8zoaKLLz6/fmWNUD9U3N/Oc7h4keNIBvXDPG6jhKXdJ3FiYyJNif/3znEE3N+sSso9hT9PuAMSKSICJ+wFJgk51fvzfHqh5Ysy2L7NIafnrLRAL99ANY5dwGDvDlRzdP4EhhJS/vyrU6jtvqsuiNMU3AI8AWIAPYaIw5KiKrRWQ1gIhEikgB8E3g+yJSICKhnR3rqJPxdJklVTzzSRaLp4zgynFDrY6jlF0WTYrk6sSh/GbrCfLLa62O45bEGcexJicnm7S0NKtjuJSmZht3PLub3LIaPvyPK4gI0ZWjlOsorLjAdb/dztTYMF798iydj6kHRCTdGJPc0TZ9MtZNrN2RzYH8Cv5ryUQteeVyosIG8P2bkvgss0wnPXMALXo3cLy4it99eJJFkyK5efJwq+Mo1SNLZ8ZwxdgI/vu9Y+SV1Vgdx61o0bu4xmYb39x4gJAAH36yZKKOmVcuS0T4+e2T8PEWvvXWIWw257ut7Kq06F3cHz4+ydGiSv77tkkMCdZbNsq1DR84gB/dPIHU3HLW7ci2Oo7b0KJ3YbuzyvjjJ5ncMSOa6ydEWh1HqT5x2/QobpgYya+2HNcFxfuIFr2LKq9p4LE395MQHsSPF0+wOo5SfUZE+PltkxkWGsDX39hPVZ0uUtJbWvQuyBjDt/98kHM1jfxh6TSdmVK5nYGBvvx+6VQKztXy/b8e0emMe0mL3gW99FkuH2WU8MQNiUyMGmh1HKUcIjl+MI9dM5a/HSjirfQCq+O4NC16F5OaU85/v5fBNeOHsWJevNVxlHKohxeMZu6oIXz/r0c4UqgTn/WUFr0LOVNZx9de/5yYwYH89q4pOpRSuT1vL+F/l00jPMiPr76aTnlNg9WRXJIWvYtoaLLx0Gvp1DY08dx9MwgN8LU6klL9YkiwP8/eN4PS6noefWM/zTq+vtu06F2AMYYnNx3l81MV/OqOKYwdFmJ1JKX61eToMH66ZCI7M8/y8/czrI7jcnS4hgtYtyObN1JP8dCVo7hRpzhQHurOmTEcKTrPuh05JIQHc/esWKsjuQwteif3wZFifvb+MW6cNJxvXTfO6jhKWeqHNyVxqryWH/ztCNGDBjB/rK5GZw+9dePEDuZX8Nib+5kaE8Zv7pyiU7cqj+fj7cUf757OmKHBPPz65xwvrrI6kkvQondSmSXVrHh5H+HB/qxbnkyAr7fVkZRyCsH+Prz4wEwG+Hmz/MW9uliJHewqehFZKCLHRSRTRJ7oYLuIyB9atx8SkelttuWKyGEROSAiupqIHQrO1XLfC3vxEuHVlbMI18nKlPoXI8IGsH5lCnWNNu59YS8llXVWR3JqXRa9iHgDTwM3AEnAMhFJarfbDcCY1j+rgDXtti8wxkztbPUT9U+lVfXc+/xeauqbeHVlCgnhQVZHUsopJUaG8tKKmZRW1XPfC6lU1OoY+87Yc0WfAmQaY7KNMQ3ABmBJu32WAOtNiz1AmIjo8JBuuljyZyrreWlFCuOHh1odSSmnNj12EOuWJ5NztkbL/hLsKfooIL/N64LW9+zdxwBbRSRdRFZ19k1EZJWIpIlIWmlpqR2x3Evx+TruWrubU+W1vHB/MjPiBlkdSSmXMG90OM/eN53jxVUsW7eXsup6qyM5HXuKvqOhHu0fTbvUPvOMMdNpub3zsIjM7+ibGGPWGmOSjTHJERGeNWSqsOICd63dzZnzdbzy5RTmjg63OpJSLuWqxGE8f38y2aXVLFu3h5IqvWfflj1FXwDEtHkdDRTZu48x5uJ/S4B3aLkVpFqdOFPFl9bsorymgVcfnEVKwmCrIynlkuaPjeClFTPJL7/Anc/u1nVn27Cn6PcBY0QkQUT8gKXApnb7bAKWt46+mQ2cN8acFpEgEQkBEJEg4DrgSB/md2l7ssu4Y80uGm2GN74ym+mxertGqd6YOyqc1x6cRcWFRm57ZhcHdIUqwI6iN8Y0AY8AW4AMYKMx5qiIrBaR1a27vQdkA5nAOuBrre8PA3aKyEEgFdhsjPmgj8/BJW06WMTyF1KJCPHnLw/N1XnlleojM+IG8fZDcwn092bp2t18+MUZqyNZTpxx5Zbk5GSTluaeQ+6bbYbfbD3OM9uymBnfMmIgLNDP6lhKuZ3SqnpWvrKPw4Xn+X/XjuVrV45266fLRSS9syHs+mRsP6qobWDFy/t4ZlsWy1Jiee3BWVrySjlIRIg/b66aw5IpI/j11hM89Ho61fVNVseyhBZ9P9l/6hw3/3Ene7LK+Nltk/jZbZPw99FpDZRypAF+3vzPXVP5wU1JfJRRwuI/7uRokeetVKVF72DNNsP/fnySO57djc0GG746m2UpOr2qUv1FRFh5WQKvrZxFTX0Ttz69i+d3ZGPzoAVMtOgdKOdsDcvW7uE3H57gpsnDef+xy3VkjVIWmTNqCB98Yz5Xjovgp5szWP5iKgXnPGNCNP0w1gEam22s25HN7z46ib+PFz9ePIHbpkdbHUspRcuKbW+k5vPU5i8wwOPXjeP+ufF4u/gHtZf6MFaLvo/tzS7jR+9+QcbpSm6YGMmPF09gaGiA1bGUUu0UVlzge+8cZtvxUqZED+RHiycwzYV/49ai7wenymr52fsZvH+kmOEDA3jy5gksnBhpdSyl1CUYY9h0sIifbs6gtKqeW6aO4NsLExkRNsDqaN12qaLXpQR76UxlHc98kskbqfl4ewnfvHYsX7l8JAP8dESNUs5ORFgyNYqrxw9jzbZM1u3I4YOjxdw3O46vXjHKbdaC0Cv6Hjp9/gLrPs3htb15NNsMd0yP5rFrxzB8oOtdCSilWuSX1/LbD0/wtwOF+Pt4s3xuHCvnJbjE7Ve9ddOHjhSeZ92ObDYfOo0BbpsWxdevGkPskECroyml+khWaTV/+Pgkmw4W4evlxeKpI3jw8gQSI513jQgt+l6qqW/i/w4V8UZqPgfyKwj29+GumTE8MDeemMFa8Eq5q5yzNbz0WQ5vpRVwobGZlPjB3DUzhkWThjvd7Vkt+h5obLaxM/Ms7x4sYsuRYmoamhk9NJilM2O4c2YMoQG+luZTSvWfitoGNuzLZ0PqKXLLagkJ8GHRxOHcPGUEs0cOxsfb+keStOjtVFPfxI6TZ/k44wwfZZzhXG0jIQE+LJwQyV0zY5gRNwgR1x5rq5TqOWMMe7LL2ZiWz9ajLReA4cH+XJs0lKsThzFvdLhlV/o66qYTTc02jhRV8lnmWXZlnWVfzjkamm2EBPhwVeJQbpo8gvljw3VOGqUU0DJKZ86oIcwZNYS6xmY+OVbC/x06zbsHT/NGaj7+Pl6kJAxm3uhw5o0KJ2lEqFM8iOUxV/TGGM5U1nOk8DwHCypIzzvHgfwKahuaAUiMDOGy0eFcPX4YyfGD8HWCX8WUUq6hocnG3pwyPs4o4bPMs5wsqQYg2N+HabFhTI8dxNSYMCZEhTI0xDEjeDzq1o0xhrKaBnLP1pBZUs2JM9WcLKki43QlZ6tbVoj39hLGDw9hRuwgZsQPZu6oIW4zXlYpZb2Syjp2ZZWRlldOel4Fx4sruTiH2tAQfxKHhzJ2aDBjh4UwamgwCeFBDAr07dWt4V4XvYgsBH4PeAPPG2N+3m67tG5fBNQCDxhjPrfn2I70pOibbYZbn/mMnNIaqtrMOR3g68WYoSGMiwxh4ohQJkYNJGlEKIF+Hn3XSinVj6rrm/iiqJIjhec5UnieY8VVZJVWU99k+8c+oQE+JEaG8uZXZ/eo8Ht1j15EvIGngWtpWQR8n4hsMsZ80Wa3G4AxrX9mAWuAWXYe2ye8vYSR4UFMiwkjPjyI+CFBjIoIJnrQALdeVUYp5fyC/X1ISRhMSsLgf7zXbDPkl9eSfbaanLO15JXV0Nhsc8iAD3sua1OATGNMNoCIbACWAG3Legmw3rT8erBHRMJEZDgQb8exfeZ3S6c54ssqpVSf8/aSlovS8CCHfy97PnGMAvLbvC5ofc+efew5FgARWSUiaSKSVlpaakcspZRS9rCn6Dv6PaL9jf3O9rHn2JY3jVlrjEk2xiRHRETYEUsppZQ97Ll1UwDEtHkdDRTZuY+fHccqpZRyIHuu6PcBY0QkQUT8gKXApnb7bAKWS4vZwHljzGk7j1VKKeVAXV7RG2OaROQRYAstQyRfNMYcFZHVrdufBd6jZWhlJi3DK1dc6liHnIlSSqkOud0DU0op5YkuNY5en/NXSik3p0WvlFJuzilv3YhIKZDXw8PDgbN9GMdK7nIu7nIeoOfijNzlPKB35xJnjOlwbLpTFn1viEhaZ/epXI27nIu7nAfouTgjdzkPcNy56K0bpZRyc1r0Sinl5tyx6NdaHaAPucu5uMt5gJ6LM3KX8wAHnYvb3aNXSin1r9zxil4ppVQbWvRKKeXm3LLoReQnInJIRA6IyFYRGWF1pp4QkV+JyLHWc3lHRMKsztRTIvIlETkqIjYRcbmhcCKyUESOi0imiDxhdZ7eEJEXRaRERI5YnaU3RCRGRD4RkYzWf1vfsDpTT4lIgIikisjB1nP5cZ9+fXe8Ry8iocaYyta/PwokGWNWWxyr20TkOuDvrZPD/QLAGPMdi2P1iIiMB2zAc8DjxhiXmcyodUnME7RZEhNY5oglMfuDiMwHqmlZFW6i1Xl6qnUVu+HGmM9FJARIB25xxf8vretuBxljqkXEF9gJfMMYs6cvvr5bXtFfLPlWQXSy2ImzM8ZsNcZcXOl8Dy3z+bskY0yGMea41Tl66B/LaRpjGoCLS2K6JGPMp0C51Tl6yxhz2hjzeevfq4AMOlnBztmZFtWtL31b//RZb7ll0QOIyFMikg/cA/zQ6jx94MvA+1aH8FB2L4mprCEi8cA0YK/FUXpMRLxF5ABQAnxojOmzc3HZoheRj0TkSAd/lgAYY75njIkBXgcesTZt57o6j9Z9vgc00XIuTsuec3FRdi+JqfqfiAQDbwOPtftt3qUYY5qNMVNp+c09RUT67LaaPUsJOiVjzDV27vonYDPwpAPj9FhX5yEi9wM3AVcbJ/9ApRv/T1yNPctpKgu03s9+G3jdGPMXq/P0BWNMhYhsAxYCffKBucte0V+KiIxp83IxcMyqLL0hIguB7wCLjTG1VufxYLokphNq/QDzBSDDGPNbq/P0hohEXBxVJyIDgGvow95y11E3bwPjaBnlkQesNsYUWpuq+0QkE/AHylrf2uOKo4cARORW4H+BCKACOGCMud7SUN0gIouA3/HPJTGfsjZRz4nIG8CVtEyJewZ40hjzgqWhekBELgN2AIdp+VkH+K4x5j3rUvWMiEwGXqHl35cXsNEY81999vXdseiVUkr9k1veulFKKfVPWvRKKeXmtOiVUsrNadErpZSb06JXSik3p0WvlFJuToteKaXc3P8H5U1S4GJeGygAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# plotting? maybe later ...\n",
+ "mu = 0\n",
+ "variance = 1\n",
+ "sigma = np.sqrt(variance)\n",
+ "x = np.linspace(mu - 3*sigma, mu + 3*sigma, 100)\n",
+ "plt.plot(x, st.norm.pdf(x, mu, sigma))\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Goodness to Fit & Association testing Gender Study\n",
+ "H1: Gender influences if donating \n",
+ "H0: Gender does not influence if donating \n",
+ "including outliers: p-value: 0.051 -> close enough to reject -> gender does matter \n",
+ "excluding outliers: p-value: 0.198 -> cannot reject H0 -> gender does not matter "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " # \n",
+ " group \n",
+ " date \n",
+ " h_from \n",
+ " h_to \n",
+ " place \n",
+ " gender \n",
+ " individual \n",
+ " age_group \n",
+ " eur \n",
+ " song_order \n",
+ " comment \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 17 \n",
+ " 18 \n",
+ " 2 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 12:40:00 \n",
+ " 1900-01-01 13:00:00 \n",
+ " Baixa-Chiado \n",
+ " Male \n",
+ " True \n",
+ " 50+ \n",
+ " 1.0 \n",
+ " 2 - 3 - 1 - 4 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 29 \n",
+ " 30 \n",
+ " 3 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 13:10:00 \n",
+ " 1900-01-01 13:30:00 \n",
+ " Baixa-Chiado \n",
+ " Female \n",
+ " True \n",
+ " 25-49 \n",
+ " 1.0 \n",
+ " 5 - 4 - 1 - 2 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 30 \n",
+ " 31 \n",
+ " 4 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 14:30:00 \n",
+ " 1900-01-01 14:50:00 \n",
+ " Praça do Comércio \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 3 - 4 - 2 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 31 \n",
+ " 32 \n",
+ " 4 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 14:30:00 \n",
+ " 1900-01-01 14:50:00 \n",
+ " Praça do Comércio \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 3 - 4 - 2 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 34 \n",
+ " 35 \n",
+ " 4 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 14:30:00 \n",
+ " 1900-01-01 14:50:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " True \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 3 - 4 - 2 - 1 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 38 \n",
+ " 39 \n",
+ " 5 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:00:00 \n",
+ " 1900-01-01 15:20:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " True \n",
+ " 25-49 \n",
+ " 1.0 \n",
+ " 1 - 4 - 5 - 3 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 39 \n",
+ " 40 \n",
+ " 5 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:00:00 \n",
+ " 1900-01-01 15:20:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " False \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 1 - 4 - 5 - 3 \n",
+ " interviewer \n",
+ " \n",
+ " \n",
+ " 40 \n",
+ " 41 \n",
+ " 5 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:00:00 \n",
+ " 1900-01-01 15:20:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " False \n",
+ " 25-49 \n",
+ " 5.0 \n",
+ " 1 - 4 - 5 - 3 \n",
+ " interviewer \n",
+ " \n",
+ " \n",
+ " 45 \n",
+ " 46 \n",
+ " 6 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:30:00 \n",
+ " 1900-01-01 15:50:00 \n",
+ " Praça do Comércio \n",
+ " Male \n",
+ " True \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 2 - 3 - 1 - 4 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 47 \n",
+ " 48 \n",
+ " 6 \n",
+ " 2020-11-13 \n",
+ " 1900-01-01 15:30:00 \n",
+ " 1900-01-01 15:50:00 \n",
+ " Praça do Comércio \n",
+ " Female \n",
+ " False \n",
+ " 25-49 \n",
+ " 2.0 \n",
+ " 2 - 3 - 1 - 4 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " # group date h_from h_to \\\n",
+ "17 18 2 2020-11-13 1900-01-01 12:40:00 1900-01-01 13:00:00 \n",
+ "29 30 3 2020-11-13 1900-01-01 13:10:00 1900-01-01 13:30:00 \n",
+ "30 31 4 2020-11-13 1900-01-01 14:30:00 1900-01-01 14:50:00 \n",
+ "31 32 4 2020-11-13 1900-01-01 14:30:00 1900-01-01 14:50:00 \n",
+ "34 35 4 2020-11-13 1900-01-01 14:30:00 1900-01-01 14:50:00 \n",
+ "38 39 5 2020-11-13 1900-01-01 15:00:00 1900-01-01 15:20:00 \n",
+ "39 40 5 2020-11-13 1900-01-01 15:00:00 1900-01-01 15:20:00 \n",
+ "40 41 5 2020-11-13 1900-01-01 15:00:00 1900-01-01 15:20:00 \n",
+ "45 46 6 2020-11-13 1900-01-01 15:30:00 1900-01-01 15:50:00 \n",
+ "47 48 6 2020-11-13 1900-01-01 15:30:00 1900-01-01 15:50:00 \n",
+ "\n",
+ " place gender individual age_group eur song_order \\\n",
+ "17 Baixa-Chiado Male True 50+ 1.0 2 - 3 - 1 - 4 \n",
+ "29 Baixa-Chiado Female True 25-49 1.0 5 - 4 - 1 - 2 \n",
+ "30 Praça do Comércio Male True 25-49 2.0 3 - 4 - 2 - 1 \n",
+ "31 Praça do Comércio Male True 25-49 2.0 3 - 4 - 2 - 1 \n",
+ "34 Praça do Comércio Female True 25-49 2.0 3 - 4 - 2 - 1 \n",
+ "38 Praça do Comércio Female True 25-49 1.0 1 - 4 - 5 - 3 \n",
+ "39 Praça do Comércio Female False 25-49 2.0 1 - 4 - 5 - 3 \n",
+ "40 Praça do Comércio Female False 25-49 5.0 1 - 4 - 5 - 3 \n",
+ "45 Praça do Comércio Male True 25-49 2.0 2 - 3 - 1 - 4 \n",
+ "47 Praça do Comércio Female False 25-49 2.0 2 - 3 - 1 - 4 \n",
+ "\n",
+ " comment \n",
+ "17 NaN \n",
+ "29 NaN \n",
+ "30 NaN \n",
+ "31 NaN \n",
+ "34 NaN \n",
+ "38 NaN \n",
+ "39 interviewer \n",
+ "40 interviewer \n",
+ "45 NaN \n",
+ "47 NaN "
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data[data['eur']>0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[4, 25], [6, 9], [0, 6]]\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "(5.948275862068965,\n",
+ " 0.05109145938651008,\n",
+ " 2,\n",
+ " array([[ 5.8, 23.2],\n",
+ " [ 3. , 12. ],\n",
+ " [ 1.2, 4.8]]))"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# including outliers\n",
+ "male_true = len(data[(data['gender']=='Male')&(data['eur']>0)])\n",
+ "female_true = len(data[(data['gender']=='Female')&(data['eur']>0)])\n",
+ "male_false = len(data[(data['gender']=='Male')&(data['eur']==0)])\n",
+ "female_false = len(data[(data['gender']=='Female')&(data['eur']==0)])\n",
+ "couple_true = len(data[(data['gender']=='Couple')&(data['eur']>0)])\n",
+ "couple_false = len(data[(data['gender']=='Couple')&(data['eur']==0)])\n",
+ "\n",
+ "contingency_table = [[male_true,male_false],\n",
+ " [female_true,female_false],\n",
+ " [couple_true,couple_false]]\n",
+ "print(contingency_table)\n",
+ "st.chi2_contingency(np.array(contingency_table))\n",
+ "#return: statistic, p-value, degrees of freedom, expected probs if H0 holds"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[4, 25], [4, 9], [0, 6]]\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "(3.23395225464191,\n",
+ " 0.19849802523930937,\n",
+ " 2,\n",
+ " array([[ 4.83333333, 24.16666667],\n",
+ " [ 2.16666667, 10.83333333],\n",
+ " [ 1. , 5. ]]))"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# excluding outliers\n",
+ "male_true = len(data_no_out[(data_no_out['gender']=='Male')&(data_no_out['eur']>0)])\n",
+ "female_true = len(data_no_out[(data_no_out['gender']=='Female')&(data_no_out['eur']>0)])\n",
+ "male_false = len(data_no_out[(data_no_out['gender']=='Male')&(data_no_out['eur']==0)])\n",
+ "female_false = len(data_no_out[(data_no_out['gender']=='Female')&(data_no_out['eur']==0)])\n",
+ "couple_true = len(data_no_out[(data_no_out['gender']=='Couple')&(data_no_out['eur']>0)])\n",
+ "couple_false = len(data_no_out[(data_no_out['gender']=='Couple')&(data_no_out['eur']==0)])\n",
+ "\n",
+ "contingency_table = [[male_true,male_false],\n",
+ " [female_true,female_false],\n",
+ " [couple_true,couple_false]]\n",
+ "print(contingency_table)\n",
+ "st.chi2_contingency(np.array(contingency_table))\n",
+ "#return: statistic, p-value, degrees of freedom, expected probs if H0 holds"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Hypothesis: Number of stops has positive effect on return\n",
+ "-> Correlation between stops and return even negative @ 0.46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "-0.45720486744127264"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# number of stops and return per group\n",
+ "number_of_stops = data_by_group[['group','#','eur']]\n",
+ "number_of_stops['#'].corr(number_of_stops['eur'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEWCAYAAABsY4yMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAntUlEQVR4nO3de3xdVZn/8c+3ISUplNZCUFsubYDCYKzoL9J6oVRABxy0Co6K4ogXCjrjZRTFqTOAoFNndBwdb9iiooBoxdY6jtcRSkFpIUWkQeioKVhasIWaFmhi0/T5/bFX4DTkcnJyTk6y+32/Xnlln31bz76c56yz9j5rKyIwM7P8GVftAMzMrDKc4M3McsoJ3swsp5zgzcxyygnezCynnODNzHLKCb6KJF0t6eNVKluSvi7pz5Jur0YMBpLul3RateMop2qe16WQ9LikxmrHUQlO8AXSm+1Pkg4oGPdOSSurGFalvBR4OXBYRJzYe6Kk8yR1p5N/h6S7JJ058mEOn6SVkt5Z7TiqTdKV6Xg+LmmXpK6C1z8eYLmyfQj1Oq8el7QhVTRmlmP9RZT/tHMhIg6MiLaRKH+kOcE/3X7A+6odxFBJqhniIkcC90fEEwPMc1tEHAhMBr4KLJU0ZYhx7TfEuKxCIuLClMwOBP4V+E7P64g4YwRD6TmvJgGnAR3AWklNIxjDPsEJ/uk+BVwkaXLvCZKmS4rCpFVYI0i1k19K+k9J7ZLaJL04jd8oaYukt/Za7SGSfi7pMUk3SzqyYN3HpWnbJK2X9PqCaVdL+rKkH0l6AnhZH/FOlfSDtPzvJZ2fxr8DuAp4UapFfWygHRIRe4CvAfVAo6T9JX1a0h/TN54rJdWndc+T9KCkiyU9DHxd0iGSfpj2yTZJt0gal+b/q7QP2yXdI+nVvbbxi5L+J+2fNZKO6itGSXWSrpX0aFrXHZKeKekTwEnAF9K2fiHN/+I0z/b0/8W9jukiSben6St6PtgKzoEFkjZLekjSBwuWHSfpI5L+kGLZ60NR0lskPZCmfbS/fS5pjqSHCz+4Jb1W0t1p+ERJLcq+Xf1J0mcGOoaDkfTqtP/b0/b/VRp/DXAE8N9p/304jf9uim+7pFWSnjPUMiOiOyL+EBHvBm4GLhssnjTtfkkXSbo7lf8dSXVp2jPSubZVWfPjDyUdlqb1dy6EpKPT8CRJ30zLPyDpnwvO1fMk3ZrO/T8r+/Yxkh+MQxcR/kt/wP1kNYplwMfTuHcCK9PwdCCA/QqWWQm8Mw2fB+wG3gbUAB8H/gh8EdgfeAXwGHBgmv/q9Hpumv454NY07QBgY1rXfsALgEeA5xQsux14CdkHdV0f23Mz8CWgDjgB2AqcWhDrrQPsi/MKYun5VvMYWa3rs8APgCnAROC/gUVp3nlpH/xb2qZ6YBFwJVCb/k4ClIZ/DywExgOnpDKOLdjGbcCJKYbrgG/3E+8FKY4Jad//P+Cg3scovZ4C/Bl4S1rvOen1wQXzbwKa0nH4HnBtr3Pg+jTtuWm/npamvx9YDRyWtv8rwPVp2vHA4wXH+zNpX53Wzzb9AXh5wevvAh9Jw7cBb0nDBwJzhniuX1awTTOBJ8ia7GqBD6fjMr7wfdFr+benY79/Oh/uKph2Nen9M9B51cf6/jSEeG4HpqZjeS9wYZp2MHB2Og8mpn32/b7erwXjAjg6DX8TWJGWnQ78H/COgti7gPPJzrF3AZsBVTt39Xucqx3AaPrjqQTfRJY8Gxh6gv9dwbTnpvmfWTDuUeCENHw1BQkrvVG7gcOBNwC39IrvK8ClBct+c4BtOTyta2LBuEXA1QWxDpbgdwPtZB8sq9O+UXrzHVUw74uADWl4HrCLgg8c4PL0pjm6VxknAQ8D4wrGXQ9cVrCNVxVMeyVwXz/xvh34FTCrj2l7vanJEvvtvea5DTivYP5PFkw7Pm1TTcE5cFzB9H8HvpqG7yV9iKbXzyZLCvsBl/Q63gek9faX4D8OfC0NT0z7/cj0ehXwMeCQEs/1y3gqwf8LsLRg2jiyD7h5he+LAdY1Oe2TSQXHbagJ/nSgawjxnNtr/1/ZT3knAH/u71xI4wI4Oh3fvwDHF0y7gKfe/+cBvy+YNiEt+6xSjsFI/LmJpg8R0Qr8EPhICYv/qWC4I62v97gDC15vLCj3cbIa61SyNvLZ6Stqu6R24M3As/patg9TgW0R8VjBuAeAacVvCqsjYnJEHBIRcyLif8k+9CaQtZn2xPWTNL7H1ojoLHj9KbIa2M+UNVv17NepwMbImoD6i/HhguGd7L3vCl0D/BT4dmo6+XdJtf3MOzWVU6h3uRt7TasFDhlg+tQ0fCSwvGDf3Ev2QfvMNE/h8X6C7AO/P98CzpK0P3AWcGdE9MT9DrKa7n2piWk4F8D32h/peGykn3NFUo2kT6ZmqB1kCRf23j9DNY3s3C82nj7PC0kTJH0lNa/sIPsgnKzirlEdQvZNsvDc6Pd8jIidabC/c7LqnOD7dynZV7HCg9tzQXJCwbjChFuKw3sGJB1I9pVzM9kJfXNKsD1/B0bEuwqWHagr0M3AFEkTC8YdQVYTGo5HyD6knlMQ16TILpr1GVdEPBYRH4yIRuBVwAcknZpiPLynjXM4MUZEV0R8LCKOB14MnAn8XV/xpHKP7DWud7mH95rWRbbt/U3fnIY3Amf0Om51EbEJeIi9j/cEsiaF/rbpt2QJ5gzgTWQJv2fa7yLiHOBQsuawG1Rw99cQ7bU/JCnF2bM/eu+/NwHzyb7RTSL7VgPZt7tSvRa4pch4BvJB4FhgdkQcRNYcVhjbQO+ZR8iOc+G5UY73TNU4wfcjIn4PfAd4b8G4rWQH+9xUi3k70OdFvyF4paSXShoPXAGsiYiNZN8gZqaLcrXp74WFF5sGiX8jWZPFImUXIGeR1fquG06wqTa1BPhPSYcCSJom6a/7W0bSmZKOTm/UHWQ12m5gDdmH5ofT9s0j+wD49lDjkvQySc9NNbUdZG/U7jT5T0Dhfc4/Itu3b5K0n6Q3kDXD/LBgnnMlHZ+S8OXADRHRXTD9X1Jt8Tlk10m+k8ZfCXxC6WK5pAZJ89O0G4AzC4735Qz+HvwW2Tk4l6w9uWd7z5XUkI5Hexrd/fTFi7IU+BtJp6ZvPR8ka6r4VZree/9NTNMfJavs/Gsphab30AxJnydr2uu52D9YPAOZSFYBaVd2cfvSXtN7b8uT0vFdSnb8JqZj+AHg2qFt2ejhBD+wy8naSQudD3yI7OR+DsWddAP5FtlJuI3swuCbIav1kl2UfSNZjeZhnrpwWaxzyGpXm4HlZO33Px9mvAAXkzW5rE5fg/+XrNbUn2PSPI+TtXV/KSJWRsQu4NVkNdRHyC4I/11E3FdCTM8iS6A7yJpFbuapN+bngNelOx/+KyIeJavhf5DsOH4YODMiCmvo15C1JT9MdpH6veztZrJ98Avg0xHxs4KyfkDWHPUY2bWL2QARcQ/w92TH/CGyC7sPDrJd15Mlvxt7xXc6cI+kx1OZb+xpFkt3iJw0yHqfFBHrgXOBz5Mdh1cBr0rHB7JrN/+cmp0uIrsQ+QBZZee3aRuH4kUp7h1kbeIHAS+MiHVFxjOQz5Jd2O+5bvSTXtP3Ohf6WP49ZJWONuBWsmP1taFs3GiidLHAzBJlP2y7NiKu6mPadGADUBsRu0c4NLMhcQ3ezCynnODNzHLKTTRmZjnlGryZWU6Nqo6gDjnkkJg+fXq1wzAzGzPWrl37SEQ09DVtVCX46dOn09LSUu0wzMzGDEm9f5X9pFGV4G1gEcHqtm0suaWN1k3b6ezqpq62hqZpk1gwt5HZM6aQ/ZbIzMwJfsxYuX4LC5eto72ji45d3U/+3npH525uum8Lq9seZfKEWhadNYuTZ/b5bc3M9jG+yDoGLG3ZyIXXrmXz9k52FiT3HgHs3NXN5vZOLrimhaUtA/VBZmb7Cif4UW7l+i1csqKVzq49g88MdHbt4ZIVraxcv6XCkZnZaOcEP4pFBAuXrSs6uffo7NrDwuXr8G8czPZtFU3wkv5R2WO3WiVdr/RYLSvO6rZttHd0lbRs+84u1mzYNviMZpZbFUvwkqaR9cDXHBFNZE9LeWOlysujJbe00bGrtB5gO3Z1s2RVLh8Ub2ZFqnQTzX5AvbKHVE/gqYciWBFaN20f8OkEAwmgdfP2coZjZmNMxRJ8eoLNp8keOv0QsL2gz+wnKXs6fYuklq1bt1YqnDGps6vU5zdkOoa5vJmNbZVsonkG2WO9ZpA9Y/EASef2ni8iFkdEc0Q0NzT4/u1CdbXFPEayf/XDXN7MxrZKNtGcBmyIiK0R0QUsI3tWphWpadqkkh9yKaBp6qRyhmNmY0wlE/wfgTnpuZUCTiV7lJoV6fyTGqkfX1otvH58DefP7fPRk2a2j6hkG/wasmdk3gmsS2UtrlR5eTSncQqT62tLWnbyhFpmz5hS5ojMbCyp6F00EXFpRBwXEU0R8ZaI+Esly8sbSSw6exZ1tUM7THW141h01ix3PGa2j/MvWUe5k2c2cPn8pqKTfF3tOK6Y3+QOx8zMvUmOBa9vPpxDJ+7PwuXraN+5d2+SkF1QrR9f494kzWwvTvBjxLxjD+WXF5/Cmg3bWLyqjXs2b6ejq5v62hqapmb9wZ/o/uDNrIAT/BgiiTmNBzOn8eBqh2JmY4Db4M3McsoJ3swsp5zgzcxyygnezCynnODNzHLKCd7MLKec4M3McsoJ3swsp5zgzcxyygnezCynnODNzHLKCd7MLKcq+dDtYyXdVfC3Q9L7K1WemZntrWK9SUbEeuAEAEk1wCZgeaXKMzOzvY1UE82pwB8i4oERKs/MbJ83Ugn+jcD1fU2QtEBSi6SWrVu3jlA4Zmb5V/EEL2k88Grgu31Nj4jFEdEcEc0NDX7UnJlZuYxEDf4M4M6I+NMIlGVmZslIJPhz6Kd5xszMKqeiCV7SBODlwLJKlmNmZk9X0YduR8ROwE+INjOrAv+S1cwsp5zgzcxyygnezCynnODNzHLKCd7MLKec4M3McsoJ3swsp5zgzcxyygnezCynnODNzHLKCd7MLKcq2heN5UNEsLptG0tuaaN103Y6u7qpq62hadokFsxtZPaMKUiqdphm1osTvA1o5fotLFy2jvaOLjp2dRNp/I7O3dx03xZWtz3K5Am1LDprFifP9ANbzEYTN9FYv5a2bOTCa9eyeXsnOwuSe48Adu7qZnN7Jxdc08LSlo3VCNPM+uEEb31auX4Ll6xopbNrT1Hzd3bt4ZIVraxcv6XCkZlZsZzg7WkigoXL1hWd3Ht0du1h4fJ1RPSu65tZNVT6iU6TJd0g6T5J90p6USXLs/JY3baN9o6ukpZt39nFmg3byhyRmZWi0jX4zwE/iYjjgOcB91a4PCuDJbe00bGru6RlO3Z1s2RVW5kjMrNSVOwuGkkHAXOB8wAiYhewq1LlWfm0btr+tAuqxQqgdfP2coZjZiWqZA2+EdgKfF3SryVdJemA3jNJWiCpRVLL1q1bKxiOFauzq7Tae4+OYS5vZuVRyQS/H/AC4MsR8XzgCeAjvWeKiMUR0RwRzQ0Nvo96NKirrRnW8vXDXN7MyqOSCf5B4MGIWJNe30CW8G2Ua5o2iVJ/lyqgaeqkcoZjZiWqWIKPiIeBjZKOTaNOBX5bqfKsfM4/qZH68aXVwuvH13D+3MYyR2Rmpah0VwXvAa6TNB5oA95W4fKsDOY0TmFyfS07S7iTZvKEWmbPmFKBqMxsqCp6m2RE3JXa12dFxGsi4s+VLM/KQxKLzp5FXe3QTo+62nEsOmuWOx4zGyX8S1br08kzG7h8flPRSb6udhxXzG9yh2Nmo4h7k7R+vb75cA6duD8Ll6+jfefevUlCdkG1fnyNe5M0G6Wc4G1A8449lF9efAprNmxj8ao27tm8nY6ubupra2iamvUHf6L7gzcblZzgbVCSmNN4MHMaD652KGY2BG6DNzPLKSd4M7OccoI3M8spJ3gzs5xygjczyykneDOznBr0NklJM4EPAUcWzh8Rp1QwLjMzG6Zi7oP/LnAlsATwkxzMzMaIYhL87oj4csUjMTOzsiqmDf6/Jb1b0rMlTen5q3hkZmY2LMXU4N+a/n+oYFyQPXPVzMxGqUETfETMKHXlku4HHiNru98dEc2lrsvMzIammLtoaoF3AXPTqJXAVyKiq8gyXhYRj5QWnpmZlaqYJpovA7XAl9Lrt6Rx76xUUGZmNnzFJPgXRsTzCl7fKOk3Ra4/gJ9JCrJa/+LeM0haACwAOOKII4pcrZmZDaaYu2i6JR3V80JSI8XfD/+SiHgBcAbw95Lm9p4hIhan57Y2NzT4iUBmZuVSTA3+Q8BNktrIntJ2JPC2YlYeEZvT/y2SlgMnAqtKjNXMzIagmLtofiHpGOBYsgR/X0T8ZbDlJB0AjIuIx9LwK4DLhxuwmZkVp98EL+mUiLhR0lm9Jh0liYhYNsi6nwksT8/q3A/4VkT8ZHjhmplZsQaqwZ8M3Ai8qo9pAQyY4COiDXjeQPOYmVnl9JvgI+LSNHh5RGwonCap5B8/mZnZyCjmLprv9THuhnIHYmZm5TVQG/xxwHOASb3a4Q8C6iodmJmZDc9AbfDHAmcCk9m7Hf4x4PwKxmRmZmUwUBv8CmCFpBdFxG0jGJOZmZVBMT90+rWkvydrrnmyaSYi3l6xqMzMbNiKuch6DfAs4K+Bm4HDyJppzMxsFCsmwR8dEf8CPBER3wD+BnhuZcMyM7PhKibB9/T73i6pCZgETK9YRGZmVhbFtMEvlvQM4F+AHwAHApdUNCozMxu2YjobuyoN3oyfw2pmNmYU88i+/YGzyZplnpw/IqraM2REsLptG0tuaaN103Y6u7qpq62hadokFsxtZPaMKaSOzszM9knFNNGsALYDa4FBuwkeCSvXb2HhsnW0d3TRsaubSON3dO7mpvu2sLrtUSZPqGXRWbM4eaYfImJm+6ZiEvxhEXF6xSMp0tKWjVyyopXOrj19Tg9g565udu7q5oJrWrh8fhOvbz58ZIM0MxsFirmL5leSRsVtkSvXbxkwuffW2bWHS1a0snL9lgpHZmY2+hST4F8KrJW0XtLdktZJurvSgfUWESxctq7o5N6js2sPC5evIyIGn9nMLEeKaaI5YzgFSKoBWoBNEXFmqetZ3baN9o6uwWfsQ/vOLtZs2MacxoNLLd7MbMwZtAYfEQ/wVI+SrwImp3HFeh9wb0nRFVhySxsdu7pLWrZjVzdLVrUNNwQzszFl0AQv6X3AdcCh6e9aSe8pZuWSDiPr2uCqweYdTOum7ZTayBJA6+btww3BzGxMKaaJ5h3A7Ih4AkDSvwG3AZ8vYtnPAh8GJvY3g6QFwAKAI444ot8VdXaVVnvv0THM5c3MxppiLrIKKMyO3WncwAtJZwJbImLtQPNFxOKIaI6I5oaG/u9Zr6utKSLU/tUPc3kzs7GmmBr814E1kpan168BvlrEci8BXi3plWT9yB8k6dqIOLeUQJumTeKm+7aU1EwjoGnqpFKKNTMbs4q5yPoZ4G3ANuDPwNsi4rNFLPdPEXFYREwH3gjcWGpyBzj/pEbqx5dWC68fX8P5c92NjpntW4rpi+a5wFHAQ8C9EdFa8aj6MKdxCpPra9lZwp00kyfUMnvGlApEZWY2evVbg5c0SdJK4PvAm4A3kz2j9SZJBw2lkIhYOZx74FM8LDp7FnW1xVw2eEpd7TgWnTXLHY+Z2T5noGx5BdkPlI6JiNdGxGuAmcAdwCdGILanOXlmA5fPbyo6ydfVjuOK+U3ucMzM9kkDNdGcBsyKiCf7BoiIbkkLgXUVj6wfr28+nEMn7s/C5eto37l3b5KQXVCtH1/j3iTNbJ83UILfFRG7e4+MiN2Sqtpt8LxjD+WXF5/Cmg3bWLyqjXs2b6ejq5v62hqapmb9wZ/o/uDNbB83UIKvk/R8nn7Pu4D9KxdScSQxp/Fg9y9jZtaPgRL8Q8Bn+pn2cAViMTOzMuo3wUfEy0YyEDMzK6+h3XNoZmZjhhO8mVlOOcGbmeVUv23wkl4w0IIRcWf5wzEzs3IZ6C6a/xhgWgCnlDkWMzMrI99FY2aWU8X0B4+kJuB4sn7dAYiIb1YqKDMzG75iugu+FJhHluB/BJwB3Ao4wZuZjWLF3EXzOuBU4OGIeBvwPEZBVwVmZjawYhJ8R+pRcnfqB34L4McjmZmNcsW0wbdImgwsAdYCjwO3D7aQpDpgFVltfz/ghoi4tPRQzcxsKAZN8BHx7jR4paSfAAdFxN1FrPsvwCkR8bikWuBWST+OiNXDiNfMzIo0aBONpF/0DEfE/RFxd+G4/kTm8fSyNv3FAIuYmVkZDfRL1jpgAnCIpGfwVL/wBwFTi1m5pBqyZp2jgS9GxJo+5lkALAA44ogjhhS8mZn1b6Aa/AVkyfk44M40vBZYAXyxmJVHRHdEnAAcBpyY7qfvPc/iiGiOiOaGBj9ez8ysXAb6JevngM9Jek9EfH44hUREu6SVwOlA63DWZWZmxSnmNsmvSHqvpBvS3z+ki6YDktSQ7r5BUj3ZQ7zvG164ZmZWrGJuk/wS2QXSL6XXbwG+DLxzkOWeDXwjtcOPA5ZGxA9LDdTMzIZmoIus+0XEbuCFEfG8gkk3SvrNYCtOt1I+vwwxmplZCQZqoun5MVO3pKN6RkpqBLorGpWZmQ3bQE00PbdFXgTcJKktvZ4OvK2SQZmZ2fANlOAbJH0gDX8FqAGeIOsy+PnATRWOzczMhmGgBF8DHMhTNXnSa4CJFYvIzMzKYqAE/1BEXD5ikZiZWVkNdJFVA0wzM7NRbqAEf+qIRWFmZmXXb4KPiG0jGYiZmZVXMV0VmJnZGOQEb2aWU07wZmY55QRvZpZTTvBmZjnlBG9mllNO8GZmOVWxBC/pcEk3SbpX0j2S3lepsszM7OmKeaJTqXYDH4yIOyVNBNZK+nlE/LaCZZqZWVKxGnxEPBQRd6bhx4B7gWmVKs/MzPY2Im3wkqaT9SG/po9pCyS1SGrZunXrSIRjZrZPqHiCl3Qg8D3g/RGxo/f0iFgcEc0R0dzQ0FDpcMzM9hkVTfCSasmS+3URsaySZZmZ2d4qeReNgK8C90bEZypVjpmZ9a2SNfiXAG8BTpF0V/p7ZQXLMzOzAhW7TTIibsVPhTIzqxr/ktXMLKec4M3McsoJ3swsp5zgzcxyygnezCynnODNzHLKCd7MLKec4M3McsoJ3swsp5zgzcxyygnezCynKvnIvoqKCFa3bWPJLW20btpOZ1c3dbU1NE2bxIK5jcyeMYWsQ0uzofP5ZXmgiKh2DE9qbm6OlpaWQedbuX4LC5eto72ji45d3RRugYD68TVMnlDLorNmcfJMP0TEhsbnl40lktZGRHNf08ZcE83Slo1ceO1aNm/vZGevNx9AADt3dbO5vZMLrmlhacvGaoRpY5TPL8uTMZXgV67fwiUrWuns2lPU/J1de7hkRSsr12+pcGSWBz6/LG/GTIKPCBYuW1f0m69HZ9ceFi5fx2hqirLRx+eX5VElH9n3NUlbJLWWY32r27bR3tFV0rLtO7tYs2FbOcKwnPL5ZXlUyRr81cDp5VrZklva6NjVXdKyHbu6WbKqrVyhWA75/LI8qliCj4hVQNmqNa2btj/tglfRsQCtm7eXKxTLIZ9flkdVb4OXtEBSi6SWrVu39jtfZ1dptaseHcNc3vLN55flUdUTfEQsjojmiGhuaOj/nuK62pphlVM/zOUt33x+WR5VPcEXq2naJEr93aCApqmTyhmO5YzPL8ujMZPgzz+pkfrxpdWS6sfXcP7cxjJHZHni88vyqJK3SV4P3AYcK+lBSe8YzvrmNE5hcn1tSctOnlDL7BlThlO85ZzPL8ujSt5Fc05EPDsiaiPisIj46nDWJ4lFZ8+irnZoIdfVjmPRWbPcMZQNyOeX5dGYaaIBOHlmA5fPbyr6TVhXO44r5je5Qygris8vy5sx113w65sP59CJ+7Nw+Trad7q3Pysvn1+WJ2Oyu2DI+g5Zs2Ebi1e1cc/m7XR0dVNfW0PT1Ky/7hPdX7cNg88vGysG6i54zCZ4MzPLWX/wZmZWHCd4M7OccoI3M8spJ3gzs5xygjczyykneDOznHKCNzPLqTH3S1Yzs7EuIljdto0lt7TRumk7nV3d1NXW0DQt+yHd7DL9kM4J3sxsBK1cv4WFy9bR3rF3Vxg7Ondz031bWN32aNm6wnATjZnZCFnaspELr13L5u2d7OzVzxFkz/fduaubze2dXHBNC0tbNg6rPCd4M7MRsHL9Fi5Z0Upn156i5u/s2sMlK1pZuX5LyWU6wZuZVVhEsHDZuqKTe4/Orj0sXL6OUvsMq2iCl3S6pPWSfi/pI5Usy8xstFrdto32jq6Slm3f2cWaDdtKWraSj+yrAb4InAEcD5wj6fhKlWdmNlotuaWNjl3dJS3bsaubJavaSlq2kjX4E4HfR0RbROwCvg3Mr2B5ZmajUuum7U+7oFqsAFo3by9p2Uom+GlA4SXgB9O4vUhaIKlFUsvWrVsrGI6ZWXV0dpVWe+/RUeLylUzwfd2l/7QPsYhYHBHNEdHc0ODHn5lZ/tTV1gxr+foSl69kgn8QOLzg9WHA5gqWZ2Y2KjVNm9RnjbcYApqmTipp2Uom+DuAYyTNkDQeeCPwgwqWZ2Y2Kp1/UiP140urhdePr+H8uY0lLVuxrgoiYrekfwB+CtQAX4uIeypVnpnZaDWncQqT62vZWcKdNJMn1DJ7xpSSyq3offAR8aOImBkRR0XEJypZlpnZaCWJRWfPoq52aCm3rnYci86aVXLHY/4lq5nZCDh5ZgOXz28qOsnX1Y7jivlNw+pwzL1JmpmNkNc3H86hE/dn4fJ1tO/cuzdJyC6o1o+vKVtvkk7wZmYjaN6xh/LLi09hzYZtLF7Vxj2bt9PR1U19bQ1NU7P+4E90f/BmZmOTJOY0HsycxoMrW06pvZRVgqStwAPVjmOIDgEeqXYQI8zbvG/wNo8NR0ZEn205oyrBj0WSWiKiudpxjCRv877B2zz2+S4aM7OccoI3M8spJ/jhW1ztAKrA27xv8DaPcW6DNzPLKdfgzcxyygnezCynnOCHQdJkSTdIuk/SvZJeVO2YKk3SP0q6R1KrpOsl1VU7pnKT9DVJWyS1FoybIunnkn6X/j+jmjGWWz/b/Kl0bt8tabmkyVUMsaz62t6CaRdJCkmHVCO2cnKCH57PAT+JiOOA5wH3VjmeipI0DXgv0BwRTWTdQL+xulFVxNXA6b3GfQT4RUQcA/wivc6Tq3n6Nv8caIqIWcD/Af800kFV0NU8fXuRdDjwcuCPIx1QJTjBl0jSQcBc4KsAEbErItqrGtTI2A+ol7QfMIEcPqUrIlYB23qNng98Iw1/A3jNSMZUaX1tc0T8LCJ2p5eryZ7Klgv9HGOA/wQ+TB+PFx2LnOBL1whsBb4u6deSrpJ0QLWDqqSI2AR8mqx28xCwPSJ+Vt2oRswzI+IhgPT/0CrHM9LeDvy42kFUkqRXA5si4jfVjqVcnOBLtx/wAuDLEfF84Any97V9L6ndeT4wA5gKHCDp3OpGZZUm6aPAbuC6asdSKZImAB8FLql2LOXkBF+6B4EHI2JNen0DWcLPs9OADRGxNSK6gGXAi6sc00j5k6RnA6T/W6ocz4iQ9FbgTODNke8fzRxFVnH5jaT7yZqj7pT0rKpGNUxO8CWKiIeBjZKOTaNOBX5bxZBGwh+BOZImKOus+lRyfmG5wA+At6bhtwIrqhjLiJB0OnAx8OqI2FnteCopItZFxKERMT0ippNV4F6Q3udjlhP88LwHuE7S3cAJwL9WN5zKSt9WbgDuBNaRnT+5+mk3gKTrgduAYyU9KOkdwCeBl0v6HdldFp+sZozl1s82fwGYCPxc0l2SrqxqkGXUz/bmjrsqMDPLKdfgzcxyygnezCynnODNzHLKCd7MLKec4M3McsoJ3gaVetb7j4LXF0m6rEzrvlrS68qxrkHK+dvU4+dNvcZPl9SRbgP8raQrJY2694WkEyS9sorlz5P0w2qVb6UZdSeyjUp/Ac4abd2nSqoZwuzvAN4dES/rY9ofIuIEYBZwPEV2JJY6XBspJwBVS/A2NjnBWzF2k/2g6R97T+hdA5f0ePo/T9LNkpZK+j9Jn5T0Zkm3S1on6aiC1Zwm6ZY035lp+ZrUH/kdqT/yCwrWe5Okb5H92Kp3POek9bdK+rc07hLgpcCVkj7V30amnhN/BRwtqUHS91L5d0h6SVrXZZIWS/oZ8E1Jz0nbdFeK85g03wdSDK2S3p/GTU/fIpYo61P/Z5Lq+9iGv03L/UbSKknjgcuBN6Ry3qCsf/rvpzJXS5pVEN81km5U1nf9+QX7bZWyft33+qYi6RWSbpN0p6TvSjowjT9dWX/wtwJn9bffbBSLCP/5b8A/4HHgIOB+YBJwEXBZmnY18LrCedP/eUA78Gxgf2AT8LE07X3AZwuW/wlZZeMYsp+I1wELgH9O8+wPtJD1FTKPrGO3GX3EOZWsO4UGss7gbgRek6atJOvHvvcy04HWNDwBuAM4A/gW8NI0/gjg3jR8GbAWqE+vP0/WTwvAeKAe+H9kHz4HAAcC9wDPT2XtBk5I8y8Fzu0jpnXAtDQ8Of0/D/hCwTyfBy5Nw6cAdxXE95sUxyHAxrRf5gGdZL2g1pD19f66NM8q4IC0/MVkHW7VpWWPAZRi/WG1z0X/De1vJL9i2hgWETskfZPsgR8dRS52R6QudiX9AejpWngdUNhUsjQi9gC/k9QGHAe8AphV8O1gElmy2QXcHhEb+ijvhcDKiNiayryOrM/+7w8S51GS7iLrA3xFRPxY0jeA4yX1zHOQpIlp+AcR0bMPbgM+KukwYFlE/E7SS4HlEfFEimMZcBJZfzYbIuKutOxasqTf2y+BqyUtJevQrS8vBc4GiIgbJR0saVKatiLF15GuOZxI9mF7e0S0pZiuT+voJGuW+mXa1vFpm45Lsf4uzX8t2YeujSFO8DYUnyXrh+brBeN2k5r6lGWI8QXT/lIwvKfg9R72Pvd695cRZLXG90TETwsnSJpHVoPvi/oZP5ieNvhC44AXFSTynvIpLD8iviVpDfA3wE8lvXOQOAr3STdZTXsvEXGhpNlpnXdJ6h0b/ZQRvf4XM17AzyPinL1WnpXpfkzGOLfBW9EiYhvZV/XCjpnuJ2uSgKyv+NoSVv23ksaldvlGYD3wU+BdkmoBJM3U4A9UWQOcLOmQdAH2HODmEuKB7NvGP/S86CfJIqkRaIuI/yKroc8ia/J4jbJeNw8AXgvcUmzBko6KiDURcQnwCHA48BhZx189VgFvTvPPAx6JiB1p2nxJdZIOJmuauSONP1HSjNT2/gbgVrInNb1E0tFpXRMkzQTuA2YUXCvZ6wPAxgYneBuq/yBrt+2xhCyp3g7Mpv/a9UDWkyXiHwMXRkQncBVZ98t3Knsw8lcY5Btnag76J+AmsnboOyOi1G593ws0p4uYvwUu7Ge+NwCtqYnnOOCbEXEn2bWF28k+dK6KiF8PoexP9VwoJkvkvyHbpuN7LrKStbU3K+vJ9JM81ZUxqdz/IUveV0REz2MVb0vztgIbyJqRtpK171+f1rUaOC4dgwXA/6SLrA8MIX4bJdybpFmOKPt9wuMR8ele4+cBF0XEmVUIy6rENXgzs5xyDd7MLKdcgzczyykneDOznHKCNzPLKSd4M7OccoI3M8up/w82q99st10YvgAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(number_of_stops['#'],number_of_stops['eur'], s=250)\n",
+ "plt.title('Number of Person stopped vs. Total Donation')\n",
+ "plt.xlabel('Number of Person stopped')\n",
+ "plt.ylabel('Total Donation')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.heatmap(number_of_stops[['#','eur']].corr(),annot=True, xticklabels = number_of_stops[['#','eur']].corr().columns,yticklabels = number_of_stops[['#','eur']].corr().columns)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Hypothesis: Number of stops has positive effect on return (no outliers)\n",
+ "-> Correlation between stops and return remains negative @ 0.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "-0.3453326778413725"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "number_of_stops_no_out = data_by_group_no_out[['group','#','eur']]\n",
+ "number_of_stops_no_out['#'].corr(number_of_stops_no_out['eur'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(number_of_stops_no_out['#'],number_of_stops_no_out['eur'], s=250)\n",
+ "plt.title('Number of Person stopped vs. Total Donation')\n",
+ "plt.xlabel('Number of Person stopped')\n",
+ "plt.ylabel('Total Donation')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.heatmap(number_of_stops_no_out[['#','eur']].corr(),annot=True, xticklabels = number_of_stops_no_out[['#','eur']].corr().columns,yticklabels = number_of_stops_no_out[['#','eur']].corr().columns)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Hypothesis: Praça do Comércio is better for the return than Baixa-Chiado\n",
+ "H1: Return(Praca do Comercio) > Return(Baixa-Chiado) \n",
+ "H0: Return(Praca do Comercio) <= Return(Baixa-Chiado) \n",
+ "uni sided -> half p-value \n",
+ "-> p-value = 0.006 \n",
+ "-> H0 can be rejected \n",
+ "-> Conclusion: Return(Praca do Comercio) > Return(Baixa-Chiado) "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Test value: 2.761063159684385\n",
+ "p-value: 0.006039178642651995\n"
+ ]
+ }
+ ],
+ "source": [
+ "return_pdc = data['eur'][data['place'] == 'Praça do Comércio'] \n",
+ "return_bc = data['eur'][data['place'] == 'Baixa-Chiado']\n",
+ "stat, p = st.ttest_ind(return_pdc, return_bc, equal_var=False)\n",
+ "print('Test value:',stat)\n",
+ "print('p-value:',p/2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "0.06666666666666667"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "display(return_pdc.mean())\n",
+ "display(return_bc.mean())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Hypothesis: Praça do Comércio is better for the return than Baixa-Chiado (exluding outliers)\n",
+ "H1: Return(Praca do Comercio) > Return(Baixa-Chiado) \n",
+ "H0: Return(Praca do Comercio) <= Return(Baixa-Chiado) \n",
+ "uni sided -> half p-value \n",
+ "-> p-value = 0.012 \n",
+ "-> H0 can be rejected \n",
+ "-> Conclusion: Return(Praca do Comercio) > Return(Baixa-Chiado), even without outliers "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Test value: 2.4644579891860863\n",
+ "p-value: 0.011834099843232792\n"
+ ]
+ }
+ ],
+ "source": [
+ "return_pdc = data['eur'][(data['place'] == 'Praça do Comércio')&(data['comment']!='interviewer')] \n",
+ "return_bc = data['eur'][(data['place'] == 'Baixa-Chiado')&(data['comment']!='interviewer')]\n",
+ "stat, p = st.ttest_ind(return_pdc, return_bc, equal_var=False)\n",
+ "print('Test value:',stat)\n",
+ "print('p-value:',p/2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Song statistics\n",
+ "H1: return(song1) > return(song2) \n",
+ "H0: return(song1) <= return(song2) \n",
+ "if p < alpha -> reject H0 -> Conclusion H1 is true!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 2 \n",
+ " 3 \n",
+ " 4 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.00000 \n",
+ " -0.142400 \n",
+ " -0.354080 \n",
+ " 0.00000 \n",
+ " 0.549760 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.14240 \n",
+ " 0.000000 \n",
+ " -0.209306 \n",
+ " 0.14240 \n",
+ " 0.652375 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.35408 \n",
+ " 0.209306 \n",
+ " 0.000000 \n",
+ " 0.35408 \n",
+ " 0.821643 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.00000 \n",
+ " -0.142400 \n",
+ " -0.354080 \n",
+ " 0.00000 \n",
+ " 0.549760 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " -0.54976 \n",
+ " -0.652375 \n",
+ " -0.821643 \n",
+ " -0.54976 \n",
+ " 0.000000 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4\n",
+ "0 0.00000 -0.142400 -0.354080 0.00000 0.549760\n",
+ "1 0.14240 0.000000 -0.209306 0.14240 0.652375\n",
+ "2 0.35408 0.209306 0.000000 0.35408 0.821643\n",
+ "3 0.00000 -0.142400 -0.354080 0.00000 0.549760\n",
+ "4 -0.54976 -0.652375 -0.821643 -0.54976 0.000000"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 2 \n",
+ " 3 \n",
+ " 4 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.500000 \n",
+ " 0.443603 \n",
+ " 0.362105 \n",
+ " 0.500000 \n",
+ " 0.292175 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.443603 \n",
+ " 0.500000 \n",
+ " 0.417430 \n",
+ " 0.443603 \n",
+ " 0.258372 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.362105 \n",
+ " 0.417430 \n",
+ " 0.500000 \n",
+ " 0.362105 \n",
+ " 0.207065 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.500000 \n",
+ " 0.443603 \n",
+ " 0.362105 \n",
+ " 0.500000 \n",
+ " 0.292175 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0.292175 \n",
+ " 0.258372 \n",
+ " 0.207065 \n",
+ " 0.292175 \n",
+ " 0.500000 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4\n",
+ "0 0.500000 0.443603 0.362105 0.500000 0.292175\n",
+ "1 0.443603 0.500000 0.417430 0.443603 0.258372\n",
+ "2 0.362105 0.417430 0.500000 0.362105 0.207065\n",
+ "3 0.500000 0.443603 0.362105 0.500000 0.292175\n",
+ "4 0.292175 0.258372 0.207065 0.292175 0.500000"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# including outliers\n",
+ "song_matrix_stat = []\n",
+ "song_matrix_pval = []\n",
+ "for song1 in range(1,6):\n",
+ " song_list_stat = []\n",
+ " song_list_pval = []\n",
+ " for song2 in range(1,6):\n",
+ " return_song1 = data['eur'][data['song_order'].str.contains(str(song1))]\n",
+ " return_song2 = data['eur'][data['song_order'].str.contains(str(song2))]\n",
+ " stat, p = st.ttest_ind(return_song1, return_song2, equal_var=False)\n",
+ " song_list_stat.append(stat)\n",
+ " song_list_pval.append(p/2)\n",
+ " song_matrix_stat.append(song_list_stat)\n",
+ " song_matrix_pval.append(song_list_pval)\n",
+ "display(pd.DataFrame(song_matrix_stat))\n",
+ "display(pd.DataFrame(song_matrix_pval))\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 2 \n",
+ " 3 \n",
+ " 4 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.000000 \n",
+ " -0.896874 \n",
+ " -0.305984 \n",
+ " 0.000000 \n",
+ " 1.966418 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.896874 \n",
+ " 0.000000 \n",
+ " 0.600705 \n",
+ " 0.896874 \n",
+ " 2.314800 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.305984 \n",
+ " -0.600705 \n",
+ " 0.000000 \n",
+ " 0.305984 \n",
+ " 2.027494 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.000000 \n",
+ " -0.896874 \n",
+ " -0.305984 \n",
+ " 0.000000 \n",
+ " 1.966418 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " -1.966418 \n",
+ " -2.314800 \n",
+ " -2.027494 \n",
+ " -1.966418 \n",
+ " 0.000000 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4\n",
+ "0 0.000000 -0.896874 -0.305984 0.000000 1.966418\n",
+ "1 0.896874 0.000000 0.600705 0.896874 2.314800\n",
+ "2 0.305984 -0.600705 0.000000 0.305984 2.027494\n",
+ "3 0.000000 -0.896874 -0.305984 0.000000 1.966418\n",
+ "4 -1.966418 -2.314800 -2.027494 -1.966418 0.000000"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 2 \n",
+ " 3 \n",
+ " 4 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.500000 \n",
+ " 0.187139 \n",
+ " 0.380226 \n",
+ " 0.500000 \n",
+ " 0.026710 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.187139 \n",
+ " 0.500000 \n",
+ " 0.275271 \n",
+ " 0.187139 \n",
+ " 0.013579 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.380226 \n",
+ " 0.275271 \n",
+ " 0.500000 \n",
+ " 0.380226 \n",
+ " 0.024059 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.500000 \n",
+ " 0.187139 \n",
+ " 0.380226 \n",
+ " 0.500000 \n",
+ " 0.026710 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0.026710 \n",
+ " 0.013579 \n",
+ " 0.024059 \n",
+ " 0.026710 \n",
+ " 0.500000 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " 0 1 2 3 4\n",
+ "0 0.500000 0.187139 0.380226 0.500000 0.026710\n",
+ "1 0.187139 0.500000 0.275271 0.187139 0.013579\n",
+ "2 0.380226 0.275271 0.500000 0.380226 0.024059\n",
+ "3 0.500000 0.187139 0.380226 0.500000 0.026710\n",
+ "4 0.026710 0.013579 0.024059 0.026710 0.500000"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# including outliers\n",
+ "song_matrix_stat = []\n",
+ "song_matrix_pval = []\n",
+ "for song1 in range(1,6):\n",
+ " song_list_stat = []\n",
+ " song_list_pval = []\n",
+ " for song2 in range(1,6):\n",
+ " return_song1 = data_no_out['eur'][data_no_out['song_order'].str.contains(str(song1))]\n",
+ " return_song2 = data_no_out['eur'][data_no_out['song_order'].str.contains(str(song2))]\n",
+ " stat, p = st.ttest_ind(return_song1, return_song2, equal_var=False)\n",
+ " song_list_stat.append(stat)\n",
+ " song_list_pval.append(p/2)\n",
+ " song_matrix_stat.append(song_list_stat)\n",
+ " song_matrix_pval.append(song_list_pval)\n",
+ "display(pd.DataFrame(song_matrix_stat))\n",
+ "display(pd.DataFrame(song_matrix_pval))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Obsolete"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# buckets\n",
+ "groups = [1,2,3,4,5,6]\n",
+ "places = ['Baixa-Chiado', 'Praça do Comércio']\n",
+ "genders = ['Male', 'Female', 'Couple']\n",
+ "individuals = [True, False]\n",
+ "age_groups = ['25-49', '50+']\n",
+ "song_orders = ['3 - 4 - 5 - 1', '2 - 3 - 1 - 4', '5 - 4 - 1 - 2', '3 - 4 - 2 - 1', '1 - 4 - 5 - 3']\n",
+ "songs = [1,2,3,4,5]\n",
+ "genres = ['Flamenco', 'Fado Flemenco', 'Fado']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Averages EUR (m), Averages if EUR>0 (mp) & stops (n)\n",
+ "\n",
+ "# by group\n",
+ "group_m = {}\n",
+ "group_mp = {}\n",
+ "group_n = {}\n",
+ "for group in groups:\n",
+ " m = data['eur'][data['group']==group].mean()\n",
+ " mp = data['eur'][(data['group']==group)&(data['eur']>0)].mean()\n",
+ " n = data['eur'][data['group']==group].count()\n",
+ " group_m.update({group: m})\n",
+ " group_mp.update({group: mp})\n",
+ " group_n.update({group: n})\n",
+ "\n",
+ "# by place\n",
+ "place_m = {}\n",
+ "place_mp = {}\n",
+ "place_n = {}\n",
+ "for place in places:\n",
+ " m = data['eur'][data['place']==place].mean()\n",
+ " mp = data['eur'][(data['place']==place)&(data['eur']>0)].mean()\n",
+ " n = data['eur'][data['place']==place].count()\n",
+ " place_m.update({place: m})\n",
+ " place_mp.update({place: mp})\n",
+ " place_n.update({place: n}) \n",
+ "\n",
+ "# by gender\n",
+ "gender_m = {}\n",
+ "gender_mp = {}\n",
+ "gender_n = {}\n",
+ "for gender in genders:\n",
+ " m = data['eur'][data['gender']==gender].mean()\n",
+ " mp = data['eur'][(data['gender']==gender)&(data['eur']>0)].mean()\n",
+ " n = data['eur'][data['gender']==gender].count()\n",
+ " gender_m.update({place: m})\n",
+ " gender_mp.update({place: mp})\n",
+ " gender_n.update({place: n}) \n",
+ " \n",
+ "# by individual\n",
+ "individual_m = {}\n",
+ "individual_mp = {}\n",
+ "individual_n = {}\n",
+ "for individual in individuals:\n",
+ " m = data['eur'][data['individual']==individual].mean()\n",
+ " mp = data['eur'][(data['individual']==individual)&(data['eur']>0)].mean()\n",
+ " n = data['eur'][data['individual']==individual].count()\n",
+ " individual_m.update({individual: m})\n",
+ " individual_mp.update({individual: mp})\n",
+ " individual_n.update({individual: n}) \n",
+ "\n",
+ "# by age groups\n",
+ "age_group_m = {}\n",
+ "age_group_mp = {}\n",
+ "age_group_n = {}\n",
+ "for age_group in age_groups:\n",
+ " m = data['eur'][data['age_group']==age_group].mean()\n",
+ " mp = data['eur'][(data['age_group']==age_group)&(data['eur']>0)].mean()\n",
+ " n = data['eur'][data['age_group']==age_group].count()\n",
+ " age_group_m.update({place: m})\n",
+ " age_group_mp.update({place: mp})\n",
+ " age_group_n.update({place: n}) \n",
+ "\n",
+ "# by song order\n",
+ "song_order_m = {}\n",
+ "song_order_mp = {}\n",
+ "song_order_n = {}\n",
+ "for song_order in song_orders:\n",
+ " m = data['eur'][data['song_order']==song_order].mean()\n",
+ " mp = data['eur'][(data['song_order']==song_order)&(data['eur']>0)].mean()\n",
+ " n = data['eur'][data['song_order']==song_order].count()\n",
+ " song_order_m.update({song_order: m})\n",
+ " song_order_mp.update({song_order: mp})\n",
+ " song_order_n.update({song_order: n}) \n",
+ "\n",
+ "# by songs (if song was in song_order)\n",
+ "# song_m = {}\n",
+ "# song_mp = {}\n",
+ "# song_n = {}\n",
+ "# for song in songs:\n",
+ "# if song in song_order: \n",
+ "# m = data['eur'][data['song_order']==song].mean()\n",
+ "# mp = data['eur'][(data['song_order']==song_order)&(data['eur']>0)].mean()\n",
+ "# n = data['eur'][data['song_order']==song_order].count()\n",
+ "# song_order_m.update({song_order: m})\n",
+ "# song_order_mp.update({song_order: mp})\n",
+ "# song_order_n.update({song_order: n}) "
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/songs.csv b/songs.csv
new file mode 100644
index 0000000..dc13284
--- /dev/null
+++ b/songs.csv
@@ -0,0 +1,6 @@
+song_id,song,genre
+1,Mariza & Miguel Poveda - Meu Fado Meu,Fado Flemenco
+2,Esperanza Fernandez - Al Titi,Flamenco
+3,Camarón de la Isla - No Naqueres Mas de Mi (Tangos del Titi),Flamenco
+4,Gisela João - Vieste do Fim do Mundo ,Fado
+5,Vicente Amigo - Gitana si me quisieras,Flamenco
\ No newline at end of file
diff --git a/your-project/README.md b/your-project/README.md
deleted file mode 100644
index 0c5c97c..0000000
--- a/your-project/README.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-# Title of My Project
-*[Your Name]*
-
-*[Your Cohort, Campus & Date]*
-
-## Content
-- [Project Description](#project-description)
-- [Hypotheses / Questions](#hypotheses-/-questions)
-- [Dataset](#dataset)
-- [Workflow](#workflow)
-- [Organization](#organization)
-- [Links](#links)
-
-
-
-## Project Description
-Write a short description of your project: 3-5 sentences about what your project is about, why you chose this topic (if relevant), and what you are trying to show.
-
-
-
-## Hypotheses / Questions
-What are the questions you would like to answer with your project? Write your hypotheses here.
-
-
-
-## Dataset
-Where did you get your data? What dataset did you use or did you build your own datset? If so, did you use an API? Did you scrape a web? Provide links to the data if available.
-
-[Dataset]()
-
-
-
-## Workflow
-Outline the workflow you used in your project. What were the steps you went through?
-
-
-
-## Organization
-How did you organize yourself? Did you use any tools?
-
-
-
-## Links
-Include the links to your repository, slides and trello. Feel free to include any other links associated to your project.
-
-[Repository](https://github.com/)
-[Slides](https://slides.com/)
-[Trello](https://trello.com/en)
\ No newline at end of file