pymc-devs / pymc-devs/pymc-examples

Update example notebooks for better rendering

Open
#394 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue help wanted
Dominant language
Python
Stars
398
Forks
325
Avg merge
9d 15m
Merged PRs (30d)
1

Description

NOTE

This issue is reserved for the #DataUmbrellaPyMCSprint

References

List of PyMC Example Notebooks that Need to be Updated

examples/case_studies
KeyError: "Dimensions {'obs'} are unknown to the model and cannot be used to specify a `shape`."
examples/diagnostics_and_criticism
examples/generalized_linear_models
ImportError: This function requires the python library graphviz, along with binaries. The easiest way to install all of this is by running

	conda install -c conda-forge python-graphviz
TypeError: You are calling an Aesara function with PyTensor variables.
Starting with PyMC 5.0, Aesara was replaced by PyTensor (see https://www.pymc.io/blog/pytensor_announcement.html).
Replace your import of aesara.tensor with pytensor.tensor.

examples/howto
examples/survival_analysis
Set-up Instructions
  1. Fork and clone this repository; set upstream remote, etc.
  2. A virtual environment should be set up and the packages in requirements.txt should be installed.
  3. Use a feature branch git checkout -b nb_feature_branch
  4. Reminder: sync the repo

Notes for Updating Notebook

  1. Update First Cell.
  2. For tags, see options in current notebook tags
  3. Update Last Cell.
  4. Optional: Go through Jupyter style guide and make other updates.
  5. For authorship of notebooks, we can search in the "pymc" repo pymc closed pull requests.
  6. Check that all links work in the notebook
  7. Replace mentions of "PyMC3" to "PyMC"
  8. Watermark: Add a Markdown cell for ## Watermark
  9. References can be found in examples/references.bib
  10. REMINDER: Rerun full notebook before submitting a PR or creating the myst file.
  11. Run pre-commit (pre-commit run --all)
  12. Example of description text for PR: https://github.com/pymc-devs/pymc-examples/pull/402

References

Note: pymc-examples#8

* Moved from pymc to pymc-examples repo in December 2020 ([pymc-examples#8](https://github.com/pymc-devs/pymc-examples/pull/8))
Examples of references

Example 1: [ArviZ's naming convention](https://arviz-devs.github.io/arviz/schema/schema.html#sample-stats)

{ref}`ArviZ's naming convention <arviz:schema>`

Example 2: [check this page](https://docs.pymc.io/api/inference.html#module-pymc3.step_methods.hmc.nuts)

{class}`pymc.NUTS`

FAQs

Syncing Repo (via @symeneses)
# update you main branch
git checkout main
git fetch upstream
git rebase upstream/main

# update your branch
git checkout feature
git rebase origin/main
Running pre-commit

(Sandra notes)

  • Stage the notebook (git commit -m 'message')
  • Run pre-commit, this will create the .myst file (pre-commit run --all)
  • git status ==> you will now see a .myst file created
  • Stage the .myst file (git commit -am 'adding myst file')
  • Run pre-commit and tests should now pass (pre-commit run --all)
  • Push changes: git push origin branch_name
There already is a "I will work on this" comment on the issue

If the issue is more than 3 months old, you can ignore that message and comment yourself you plan to work on that issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Choose an unchecked notebook such as examples/case_studies/stochastic_volatility.ipynb, examples/generalized_linear_models/GLM-out-of-sample-predictions.ipynb, or examples/survival_analysis/weibull_aft.ipynb. Read the linked Jupyter style guide, update the first and last cells and watermark as applicable, then rerun the full notebook. Run pre-commit run --all; done means the notebook renders correctly, links work, and its generated .myst file passes checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, python
Domain
documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.