Giter Club home page Giter Club logo

nfidd's Introduction

Nowcasting and forecasting infectious disease dynamics

This repository contains the material to create the nfiidd course page.

All the raw material is in the folder sessions/ and is written in quarto. Any changes to the quarto files are automatically updated on the web site once committed to the main branch.

To add a lesson, add a .qmd file in the sessions folder with a YAML field order: corresponding to where it fits in, and edit sessions.qmd to add it to the schedule.

Local testing

The html pages can be generated locally using the function

quarto::quarto_render()

Contributors

All contributions to this project are gratefully acknowledged using the allcontributors package following the all-contributors specification. Contributions of any kind are welcome!

Code

sbfnk, seabbs, kathsherratt, jamesmbaazam, ManuelStapper

Issues

toshiakiasakura, zsusswein

nfidd's People

Contributors

dependabot[bot] avatar github-actions[bot] avatar jamesmbaazam avatar kathsherratt avatar manuelstapper avatar sbfnk avatar seabbs avatar zsusswein avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

nfidd's Issues

Develop and allocate lesson plan

At the moment we have clear learning objectives and a nice framework for an individual lesson (i.e the introduction) but no map of how these will be used to make the overall course (especially in the time available).

It feels like the next step is to agree a time allocation for each section and the time of material that should be in each (i.e lecture or practical etc.) and then allocate these to people to create the material.

Course skeleton

For each learning objective create a course skeleton w/ the proposed lecture and tutorial structures + subheadings etc.

Questions for testers

  • where should stan code live: in the notebooks, or in separate files? If in separate files, where should those be? In the session folders or a separate directory? (decision made)
  • does it make sense to enforce a notebook workflow, or would copy & paste be easier?

README

repo needs a readme with a broad outline of what this is about, topics covered, link to registration etc.

Improve biases practical performance

Currently, recovery of the underlying delay distributions is not great for the truncation model.

This could just be a feature of using a long delay with a lot of truncation but should be explored.

Things to explore.

  • Prior choice
  • Use of beta vs uniform censoring priors
  • Length of delay
  • Degree of truncation.

use cmdstanr instead of rstan

          Do we want to do this to ourselves and our course participants - i.e maybe we bite the small compilation bullet and use `cmdstanr`? The advantage of this potentially is that if they can't install `cmdstan` as a dependency they can still interact with all the material as installing deps won't fail for them?

Originally posted by @seabbs in #10 (comment)

Extension topics

  • Bottom-up forecasting.
  • Forecasting gotchas
    • Aggregating forecasts from daily to weekly.

How to obtain stan models

We probably want to use cmdstanr and thus need to read in models as files. The question is how we serve the models to course participants.

Options are:

  1. as character strings (could use write_stan_file) - downside is that it clutters the code and has to be written out first,
  2. as remote file, download with download.file - downside is will have to decide where to put etc.
  3. as remote file, user downloads themselves - somewhat cumbersome?
  4. in the nfidd package in inst (once installed), using e.g. system.file(package = "nfidd") - downside is that it won't be straightforward to edit

Of these I think (1) might still be best as people can operate from a single script file and don't have to go back and forth but there might be options that I have missed.

Existing resources

We should compile existing open-source resources for teaching the concepts in this course (especially ones using R), as we may be able to adapt and/or use them.

stan model handling

Opening this for observations / discussions on how we include stan models.

Current procedure:

stan models included in the session directories, no function includes

We load and print them in the R code included in the quarto sources

  • benefits: stan model files are self-contained; CmdStanModel::print() prints the functions (with line numbers)
  • drawbacks: duplication of function code, no syntax highlighting

Alternatives:

Single repository of function files

This could be e.g. in stan/

  • benefits: no duplication of function code
  • drawbacks: CmdStanModel::print() does not print the function code so people would have to find the files containing the function code to see what the functions do

Use the rmarkdown engine

https://mc-stan.org/cmdstanr/articles/r-markdown.html

  • benefits: syntax highlighting
  • drawbacks: not sure what happens with included functions, no line numbers (though could still print the model of course), doesn't correspond to the normal workflow of loading stan model, printing, sampling

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.