DS5030: Understanding Uncertainty

Probability and statistics for data science in the UVA MSDS program — distributions, simulation, the bootstrap, likelihood, and Bayesian inference.

DS 5030 is a graduate course in the UVA School of Data Science that picks up the threads of students’ math and probability education and builds a foundation for later work in machine learning and AI, grounded in data. Topics include linear algebra for data science, random variables and expectation, representing distributions (ECDFs, CDFs/PDFs, kernel density estimates), order statistics and extreme events, sampling distributions, the bootstrap and the CLT, joint and conditional distributions, conditional expectation, Markov chains, maximum likelihood models (failure times, counts, regression, and binary outcomes), and Bayesian inference.

The second half of the course builds standard modeling frameworks (Markov chains, maximum likelihood, Bayes), but every lab follows the same arc: explore the data non-parametrically first, then estimate the model, then do inference on its parameters, then predict. The bootstrap from Week 6 comes back in every assignment as the default way to measure how precisely a parameter or prediction is estimated.

Each week has a Tuesday math day (concept-driven lecture and quiz) and a Thursday lab day (a pre-lab bridge notebook, then a coding lab that starts in class). Students fork a template repository and pull new lecture notebooks, labs, and datasets each week; the datasets for every notebook below are in that repo.

Course roadmap

Getting set up

  • Pre-Class Video: Environments and VS Code [Video]
  • Setup checklist: Anaconda, VS Code, Git, and forking the course repo [PDF]
  • Day 1 Python test notebook [Notebook] [.ipynb]

Week 1: Introduction

Week 2: Linear algebra

Week 3: Probability

Week 4: Representing distributions

Week 5: Density estimation and order statistics

Week 6: Sampling, bootstrapping, and the CLT

Week 7: Midterm

Week 8: Standard errors, the CLT, and conditional distributions

Coming up (tentative)

Materials will be linked here as each week is posted. Lab topics marked TBA are still being finalized.

Week 9: Markov chains

Week 10: Forecasting with Markov chains

  • Tuesday: Forecasting a Markov chain · Lab: NYC taxicabs, expected fares and travel times
  • Thursday: Conditional expectation with numeric state spaces · Lab: a second Markov chain application (TBA)

Week 11: Maximum likelihood

  • Tuesday: Introduction to maximum likelihood estimation (Normal, Lognormal) · Problem set
  • Thursday: Failure models (Exponential, Erlang) · Lab: jet engine replacement

Week 12: Count data and parameterized models

  • Tuesday: Working with count data (Poisson, Negative Binomial) · Lab: soccer goals and basketball field goals
  • Thursday: Parameterized MLE models: replacing a distribution’s parameters with functions of the data (OLS as a Normal likelihood, Poisson regression) · Lab: imputation

Week 13: Binary outcomes and standard errors

  • Tuesday: Binary outcomes (logistic regression, multinomial logit) · Lab: consumer demand
  • Thursday: Standard errors from MLE models · Problem set

Week 14: Bayes’ theorem

  • Tuesday: Bayes’ theorem · Lab: naive Bayes classifier
  • Thursday: No class (Thanksgiving)

Week 15: Bayesian inference

  • Tuesday: Conjugate priors · Problem set
  • Thursday: Regression and posterior sampling with PyMC · Lab: comparing MLE and Bayesian estimates

Week 16: Wrap-up

  • Tuesday: Bayesian credible intervals and prediction intervals