Rigorous introduction to health data science using current applications in biomedical research, epidemiology, and health policy. Use modern statistical software to conduct reproducible data exploration, visualization, and analysis. Interpret and translate results for interdisciplinary researchers. Critically evaluate data-based claims, decisions, and policies. Includes exploratory data analysis, visualization, basics of probability and inference, predictive modeling and classification. This course focuses on the R computing language. No statistical or computing background is necessary.
Check out our centralized resource page for intro data science courses for great tips and help throughout the course.
Code along labs on Mondays; classes on Wednesdays and Fridays; office hours Tuesdays, Wednesdays, and Thursdays; quizzes due Tuesdays; labs due Wednesdays; homework due Fridays.
Code along lab sessions
10:15-11:30am, Perkins Link 087
with Jackie and Chris
1:45-3:00pm, Perkins Link 079
with Phuc and Eli
or 5:15-6:30pm, Perkins Link 087
with Phuc and Eli
Prof. Herring hours - 1-2pm
Zoom (link on Sakai)
Eli hours - 4-5pm
Zoom (link on Sakai)
Jackie hours - 5-7pm
Edge Project Room 2
Chris hours - 8-9pm
Zoom (link on Sakai)
Class - 10:15-11:30am
Social Sciences 136
Prof. Herring hours - 11:30am-12:30pm
208 Old Chem
Phuc hours - 4-5pm
Zoom (link on Sakai)
Jackie hours - 5-7pm
Edge Project Room 2
Class - 10:15-11:30am
Social Sciences 136
Alexandra hours - 11:30am-12:30pm
Edge Project Room 6
Prof. Herring will each hold office hours on Tuesdays and Wednesdays, and TA office hours will be on Tuesdays and Thursdays. These will not be recorded, and zoom options will be available. It’s a great time to get real time answers to your questions or just say hi!
These will be held on Mondays, and they will not be recorded unless requested in advance. We expect that you show up to the workshop session you’ve been assigned to weekly. During these sessions you will work in teams on computing lab exercises, and you will finish the exercises after the workshop and turn in your lab reports by Wednesday at 4pm. Labs will be submitted as GitHub repositories, and labs with the lowest score for each student will be dropped.
A frequently asked question: “What happens if I can’t make it to class or a lab one week because I’m sick or have another obligation at that time?” Answer below:
Overall these policies are put in place to ensure communication between team members, respect for each others' time, and also to give you a safety net in the case of illness or other reasons that keep you away from attending class once or twice.
Beyond the in class activities, you will be assigned regular homework assignments throughout the semester. These assignments will be completed individually and submitted to Gradescope. Homework with the lowest score for each student will be dropped.
Regular quizzes on Sakai will be used to ensure students are keeping up with the reading assignments. These quizzes will generally be due Tuesday evenings by 11:59 pm and should be completed individually. They will be added together and count towards the semester grade as a single homework (the lowest 2 quiz grades will be dropped).
You will be responsible for the completion of an open ended final project for this course, the goal of which is to tackle an “interesting” problem using the tools and techniques covered in this class. Additional details on the project will be provided as the course progresses. You must complete the final project and be in class (or on video) to present it to earn a project grade.
For all of the team based assignments in this class you will be randomly assigned to teams of 3-4 students - these teams will change after each assignment. You will work in these teams during class and on the homework assignment. For team based assignments, all team members are expected to contribute equally to the completion of each assignment and you will be asked to evaluate your team members after each assignment is due. Failure adequately to contribute to an assignment will result in a penalty to your mark relative to the team’s overall mark.
Students are expected to make use of the provided GitHub repository as their central collaborative platform. Commits to this repository will be used as a metric (one of several) of each team member’s relative contribution for each homework.
Your overall course grade will be comprised of the following components, and their weights:
A letter grade will be assigned as follows.
93 | ≤ | A | ≤ | 100 |
90 | ≤ | A- | < | 93 |
87 | ≤ | B+ | < | 90 |
83 | ≤ | B | < | 87 |
80 | ≤ | B- | < | 83 |
77 | ≤ | C+ | < | 80 |
73 | ≤ | C | < | 77 |
70 | ≤ | C- | < | 73 |
67 | ≤ | D+ | < | 70 |
63 | ≤ | D | < | 67 |
60 | ≤ | D- | < | 63 |
0 | ≤ | F | < | 60 |
I never “curve down.” These posted cut points are guaranteed minimums. As well, this course is not graded to a pre-specified distribution; if every student earns a 95 in the course, then every student will receive an A. I reserve the right to “curve up” using more generous cut points depending on overall difficulty of assessments.
Regrade requests must be made within two days of when a report is returned. These will be honored if points were tallied incorrectly, or if you feel part of your report is correct, but it was marked wrong (these things do happen!). No regrade will be made to alter the number of points deducted for an issue. When a regrade request is evaluated, if new errors are identified, additional points may be deducted from the grade.
Students are expected to attend class and labs in person, health permitting. Students with respiratory symptoms (or symptoms of other diseases communicable in a classroom setting) should stay home and watch class recordings.
If you need to miss class due to a religious holiday, illness, or varsity athletics be sure to follow appropriate university policies (linked for convenience).
Some office hours will be on Zoom, and it may become necessary to hold some class or lab meetings on Zoom, depending on collective health and safety considerations.
When in a full group session you should,
In the small team sessions or office hours you should
Only work that is clearly assigned as team work should be completed collaboratively. Individual assignments must be completed individually, you may not directly share or discuss answers / code with anyone other than the instructors and tutors. You are welcome to discuss the problems in general and ask for advice.
I am well aware that a huge volume of code is available on the web to solve any number of problems. Unless I explicitly tell you not to use something the course’s policy is that you may make use of any online resources (e.g. StackOverflow) but you must explicitly cite where you obtained any code you directly use (or use as inspiration). Any recycled code that is discovered and is not explicitly cited will be treated as plagiarism. On individual assignments you may not directly share code with another student in this class, and on team assignments you may not directly share code with another team in this class. You are welcome to discuss the problems together and ask for advice, but you may not send or make use of code from another team.
Academic honesty is of paramount importance in this class, and all work must be done in accordance with the Duke Community Standard, reproduced as follows:
To uphold the Duke Community Standard:
By enrolling in this course, you have agreed to abide by and uphold the provisions of the Duke Community Standard as well as the policies specific to this course. Cheating or plagiarism on assignments, lying about an illness or absence and other forms of academic dishonesty are a breach of trust with classmates and faculty, violate this Standard, and will not be tolerated; any violations will automatically result in a grade of 0 on the assignment, be reported to the Office of Student Conduct for further action, and potentially a failing (F) course grade depending on the magnitude of the offense.
Occasionally, data sets we are privileged to use in class may be confidential and cannot be distributed more broadly or without express permission from the data-granting sponsor. If so, we will let you know; any unauthorized dissemination or further use of such data sets beyond this class is a violation of the Duke Community Standard.
Reusing code: You are welcome to use online resources (e.g. StackOverflow). If you use code from an outside source, either directly or as inspiration, you must explicitly cite where you obtained the code. Any recycled code that is discovered and is not explicitly cited will be treated as plagiarism and a violation of the Duke Community Standard.
On individual assignments, you may not directly share code or write up with other students. On team assignments, you may not directly share code or write up with another team. Unauthorized sharing of the code or write up will be considered a violation for all students involved.
All work is due on the stated due date. Due dates are there to help guide your pace through the course and they also allow us (the course staff) to return marks and feedback to you in a timely manner. However, sometimes life gets in the way and you might not be able to turn in your work on time. Note, first of all, that we drop the lowest score of lab and homework assignments. So if you miss one assignment, this can be your dropped score.
Duke University is committed to providing equal access to students with documented disabilities. Students with disabilities may contact the Student Disability Access Office (SDAO) to ensure your access to this course and to the program. There you can engage in a confidential conversation about the process for requesting reasonable accommodations both in the classroom and in clinical settings. Students are encouraged to register with the SDAO as soon as they matriculate. Please note that accommodations are not provided retroactively.
It is my intent that students from all diverse backgrounds and perspectives be well-served by this course, that students' learning needs be addressed both in and out of class, and that the diversity that the students bring to this class be viewed as a resource, strength, and benefit. It is my intent to present materials and activities that are respectful of diversity: gender identity, sexuality, disability, age, socioeconomic status, ethnicity, race, nationality, religion, and culture. Your suggestions are encouraged and appreciated. Please let me know ways to improve the effectiveness of the course for you personally, or for other students or student groups.
Furthermore, I would like to create a learning environment for my students that supports a diversity of thoughts, perspectives and experiences, and honors your identities (including gender identity, sexuality, disability, age, socioeconomic status, ethnicity, race, nationality, religion, and culture). To help accomplish this:
I want to make sure that you learn everything you were hoping to learn from this class. If this requires flexibility, please don’t hesitate to ask.
Out of respect for others sharing your physical space, the class expectation will be that if you are sick, you will stay home and participate remotely.
You never owe me personal information about your health (mental or physical), but you’re always welcome to talk to me. If I can’t help, I likely know someone who can.
I want you to learn lots of things from this class, but I primarily want you to stay healthy, balanced, and grounded during the semester. ]
Showcase your inner data scientist
Pick a global health data set …
…and do something informative with it. You will work in teams of 2-3 people of your own choosing. That is your final project in a nutshell. More details below.
The final project for this class will consist of analysis on a data set of your own choosing. The data set may already exist, or you may collect your own data using a survey or by conducting an experiment. You can choose the data based on your interests or based on work in other courses or research projects. The goal of this project is for you to demonstrate proficiency in the techniques we have covered in this class (and beyond, if you like) and apply them to a novel data set in a meaningful way.
The goal is not to do an exhaustive data analysis i.e., do not calculate every statistic and procedure you have learned for every variable, but rather let me know that you are proficient at asking meaningful questions and answering them with results of data analysis, that you are proficient in using R, and that you are proficient at interpreting and presenting the results. Focus on methods that help you begin to answer your research questions. You do not have to apply every statistical procedure we learned. Also, critique your own methods and provide suggestions for improving your analysis. Issues pertaining to the reliability and validity of your data, and appropriateness of the statistical analysis should be discussed here.
The project is very open ended. You should create some kind of compelling visualization(s) of these data in R. There is no limit on what tools or packages you may use, but sticking to packages we learned in class (tidyverse
) is recommended. You do not need to visualize all of the data at once. A single high quality visualization will receive a much higher grade than a large number of poor quality visualizations. Also pay attention to your presentation. Neatness, coherency, and clarity will count. All analyses must be done in RStudio, using R. References must be cited, including (known) prior analyses of the data.
In order for you to have the greatest chance of success with this project it is important that you choose a manageable data set. This means that the data should be readily accessible and large enough that multiple relationships can be explored. As such, your data set must have at least 50 observations and say 10-20 variables (exceptions can be made, but you must speak with me first). The variables in the data should include variables of multiple types (e.g., categorical and continuous).
If you are using a data set that comes in a format that we haven’t encountered in class, make sure that you are able to load it into R as this can be tricky depending on the source. If you are having trouble ask for help before it is too late.
Note on reusing data sets from class: Do not reuse data sets used in examples, homework assignments, or labs in the class.
The data you use must be able to be shared publicly. Students will be allowed to post their projects after the end of the course on their own GitHub repos in order to be competitive for summer internships and other opportunities. You will not be able to use data for the project that cannot be posted online for public viewing.
You cannot make substantial changes to the proposed data set or questions of interest after the proposal revision deadline.
Below are a list of data repositories or related events that might be of interest to browse. You’re not limited to these resources, and in fact you’re encouraged to venture beyond them. But you might find something interesting there:
The purposes of the proposal are (1) to help you get started early with thinking about the project, reading relevant literature, and formulating your scientific questions, and (2) to ensure the data you wish to analyze, methods you wish to use, and scope of your analysis are feasible and set you up for success with your project.
Section 1 - Introduction: The introduction should introduce your general research question and your data (where it came from, how it was collected, what are the cases, what are the variables, etc.). The motivation for your research question should be clear, with citations to relevant literature as appropriate.
Section 2 - Data: Place your data and codebook in the /data
folder. Then print out the output of
glimpse()
or skim()
of your data frame.
Section 3 - Data analysis plan:
The project proposal can be no more than 3 pages. You can check a print preview to confirm length.
5 minutes maximum, and each team member should say something substantial. You can either present live or pre-record and submit your video to be played during the presentation day.
Prepare a slide deck using the template in your repo. This template uses a package called xaringan
, and allows you to make presentation slides using R Markdown syntax. There isn’t a limit to how many slides you can use, just a time limit (5 minutes total). Each team member should get a chance to speak during the presentation. Your presentation should not just be an account of everything you tried (“then we did this, then we did this, etc."), instead it should convey what choices you made, and why, and what you found.
Before you finalize your presentation, make sure your chunks are turned off with echo = FALSE
.
Presentation schedule: Presentations will take place during the third week of November (we may have some the Monday of Thanksgiving week). You can choose to do your presentation live or pre-record it. During class you will watch presentations from other teams and provide feedback in the form of peer evaluations. The presentation line-up will be generated randomly.
Along with your presentation slides, we want you to provide a summary of your project in report form.
This write-up, which you can also think of as an summary of your project, should provide information on the dataset you’re using, your research question(s), your methodology, and your findings. Think of it as filling out your project proposal with all the interesting details. Additional information will be provided closer to the project deadline regarding formatting and other tips. The page limit of this write-up is 10 pages, including figures and references.
The following folders and files in your project repository:
presentation.Rmd
+ presentation.html
: Your presentation slidesreport.Rmd
+ report.html
: Your write-up/data/*
: Your dataset in csv or RDS format, in the /data
folder./proposal/
: Your proposal from earlier in the semesterStyle and format does count for this assignment, so please take the time to make sure everything looks good and your data and code are properly formated.
echo = FALSE
) so that your document is neat and easy to read. However your document should include all your code such that if I re-knit your R Markdown file I should be able to obtain the results you presented. Exception: If you want to highlight something specific about a piece of code, you’re welcomed to show that portion.Total | 100 pts |
---|---|
Proposal | 10 pts |
Presentation | 10 pts |
Write-up | 70 pts |
Reproducibility and organization | 10 pts |
You will be asked to fill out a survey where you will report a contribution percentage for each team member. Filling out the survey is a prerequisite for getting credit on the team member evaluation.If you are suggesting that an individual did less than their fair share of the work, please provide some explanation. When peer scores indicate a team member did not do their fair share of work, proportional grading may be used (e.g., half the fair share yields half the points expected).
There is no late submission / make up for the presentation. You must be in class on the day of the presentation to get credit for it or pre-record and submit your presentation by 9am in the morning of the presentations.
The late work policy for the write-up is 5% of the maximum obtainable mark per calendar day up to seven calendar days after the deadline. If you intend to submit work late for the project, you must notify the course organizer before the original deadline as well as as soon as the completed work is submitted on GitHub.