Giter Club home page Giter Club logo

probabilistic-programming-tutorial's Introduction

Practical Probabilistic Programming Made Simple

Description

This tutorial will provide an example-driven introduction on how to use probabilistic programming. Through the use of real-world examples, you will see how to perform parameter estimation, case/control analysis, hierarchical modelling, and regression analysis. Theory will be introduced where appropriate, but is not the focus of the tutorial. Multiple structured examples will motivate learning.

Audience

If you feel limited by your current toolkit or analytic workflow, in terms of being able to express and solve modeling problems and account for statistical uncertainty, then this tutorial is for you. We assume intermediate Python proficiency, including the use of context managers, Python objects and their methods, and the ability to read code documentation. We also assume some knowledge of introductory statistica (e.g. definitions of central tendency and variance measures). If you've ever performed a t-test and know what a Gaussian distribution looks like, you have all the background you need. By the end of the tutorial, you will be able to describe a problem as a probabilistic model, and and fit that model using PyMC3.

Outline

  1. Introduction (10 min)
    1. Bayes Theorem
    2. Why uncertainty?
    3. Features of a PP language (intro to PyMC3)
      1. Distribution library
      2. Syntax
      3. Sampling algorithms <-- fancy math for lazy programmers (and the algebra-blind)!
    4. Where Bayesian models are (and are not useful?
  2. Comparing two groups with binary outcomes (30 min)
    1. Worked example: Coin flip (10 min)
    2. Hands-on coding: Sepsis deaths (15 min)
    3. Discussion/questions (5 min)
  3. Break (5 min)
  4. Comparing two groups with continuous outcomes (40 min)
    1. Worked example: IQ drug (10 min)
    2. Hands-on coding: Radon contamination (20 min)
    3. Discussion/questions (5 min)
      1. NTS: someone might ask about comparison to t-test.
  5. Break (10 min)
  6. Regression Analysis (40 min)
    1. Problem class description (given Xs, predict Y, but now with uncertainty) (5 min)
    2. Worked example: Low birthweight infants (10 min)
    3. Hands-on coding: Sepsis deaths (20 min)
    4. Discussion/questions (5 min)
  7. Break (5 min)
  8. Hierarchical Modelling (40 min)
    1. Rationale (5 min)
    2. Worked example: School test performance (10 min)
    3. Hands-on coding: Radon contamination (20 min)
    4. Discussion/questions (5 min)
  9. End

Tutorial Instructors

Eric J. Ma

Eric finished his doctoral degree in the Department of Biological Engineering at MIT, where he studied influenza evolution and ecology. He currently works at the Novartis Institutes for Biomedical Research, where he is an Investigator on the Scientific Data Analysis team. He has given talks & tutorials on practical aspects of Network Analysis and Bayesian Statistics at a variety of Python conferences, including PyCon, SciPy, and PyData (recordings available online). His website is www.ericmjl.com.

Chris Fonnesbeck (creator of PyMC3)

Chris is a professor of Statistics at Vanderbilt University, and is the creator and one of the lead maintainers of PyMC3. His research interests span computational and Bayesian statistics, epidemiology, and meta-analysis.

Getting Prepared

Simplest Way

  1. Make sure you have Python installed. Anaconda distribution recommended.
  2. Run environment script: $ bash conda_environment.sh to get setup.

Manual Way

  1. Install all packages specified in environment.yml using your favourite package manager (e.g. pip, conda).

probabilistic-programming-tutorial's People

Contributors

ericmjl avatar fonnesbeck avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.