2017 Semester 1 Data Wrangling, ATMC
Theme: Child Mortality
Your task is to investigate mortality levels of children, infants and babies around the world. Which countries have a high rate of child deaths and which countries have low rates? Are there connections between child mortality rates and the income levels of the country, or the region where they are situated? Are the child mortality rates improving in recent years or getting worse?Reduction of child mortality was Goal 4 of the United Nations' Millennium Development Goals (2000-2015):
• http://www.un.org/millenniumgoals/
• http://www.un.org/millenniumgoals/childhealth.shtml
The data you will need is available from WHO:The World Health Organisation.
The two files you need to download are available from these web pages (or can be downloaded from the ICT702 Blackboard page):
• child mortality data from: http://apps.who.int/gho/data/view.main.182?lang=en. (Download COMPLETE Data as CSV Dataset).
• country metadata from: http://apps.who.int/gho/data/node.metadata.COUNTRY?lang=en. (To get all the data you need, you must download the JSON version of this file, or the CSV XMART version).
Learning Objectives
In this task you will learn how to:
• Apply relevant Python programming concepts to a data analysis challenge
• Read data from real sources and wrangle it into the form you need.
• Develop creative approaches to solving the wrangling/analysis problems.
• Adhere to the recommended Python programming styles
• Write programs that produce correct and useful output
• Organise and present adata analysis report
• Give an insightful analysis of the given problem.
Task 2 is broken into two parts (each worth 20% of the course):
1. Due Week 9. Use Python to read and analyse the child mortality data and generate various useful graphs that give insight into the trends.
2. Due Week 12. Use Python to combine the child mortality data and the country metadata, to give higher-level analyses of child mortality in relation to income grouping and regions of the world.
1 Child Mortality
In this first part of Task 2, you should write a Python script that reads and analyses the child mortality data file (WHOSIS_MDG_000003.csv) and produce at least FIVE useful graphs that give insight into the data trends.
For example, here are some suggestions:
• show the change in child/infant/neonatal mortality over the period 1990 to 2015 for several representative countries.
• compare the mortality rates of all countries in a given year.
• compare the improvement in mortality rates over the 1990/2015 period - that is, one divided by the other.
• compare child mortality against infant mortality and neonatal mortality to see what is the relationship between them.
Hints:
1. Some of the columns contain multiple values (a mortality rate, plus a confidence interval), so you will need to split these up into seperate columns.
2. You can either use standard Python data structures to store and manipulate the data, or use the Pandas library if you prefer.
3. Use markup and headings to break your Jupyter notebook into sections and give commentary about what you doing, and discussion of your results. This Jupyter notebook will be what you submit.
2 Child Mortality and Country Types
In this second part of Task 2, you should write another Python script that reads and analyses the country metadata (COUNTRY.json) and merges it with the child mortality data from Part 1, to allow you to do some higher-level analysis of child mortality trends.
Your report should include at least twographs that display or compare child/infant/neonatal mortality in different regions of the world (using the 'WHO_REGION' string to group the countries).
You report should include at least two graphs that compare child/infant/neonatal mortality across different income groupings (using the 'WORLD_BANK_INCOME_GROUP' string to classify the countries).
Hints:
1. You can use the 'json' library to read the .json file. The resulting object is quite deeply nested, so you will need to explore which substructures contain the data that you want, and then extract that substructure into a dictionary or list that is easier to use. Or write a function that extracts the data that you need.
2. You can either use standard Python data structures to store and manipulate the data, or use the Pandas library if you prefer.
3. Use markup and headings to break your Jupyter notebook into sections and give commentary about what you doing, and discussion of your results. This Jupyter notebook will be what you submit.
3 Marking Criteria
Your submission for each part of this task will be assessed according to the following criteria:
• Presentation and organisation of your report [25%]
• Program output [25%]
o Correctness of the program output
o Insightful analysis and discussion of the given problem
• Programming style [50%]
o Creative approaches to solving the problem
o Good use of relevant programming concepts, especially good use of functions
o Good use of appropriate Python data structures, such as lists and dictionaries
o Adherence to the recommended Python programming styles (indentation, documentation, naming conventions, etc.)
GET ANSWERS / LIVE CHAT