Grama --- A Grammar of Model Analysis

Graph representation of quantitative model

Project Features

  • Developing open-source Python software
  • Designing according to user-centered principles
  • Constructing a scientific modeling framework

Project Description

Grama is a grammar of model analysis—a Python package that supports building and analyzing models with quantified uncertainties. This language is heavily inspired by the Tidyverse. Grama provides convenient syntax for building a model (with functions and distributions), generating data, and visualizing results. The purpose of this language is to support scientists and engineers learning to handle uncertainty, and to improve documentation + reproducibility of results.

Uncertainty Quantification (UQ) is the science of analyzing uncertainty in scientific problems and using those results to inform decisions. UQ has important applications to building safety-critical engineering systems, and to making high-consequence choices based on scientific models. However, UQ is generally not taught at the undergraduate level: Many engineers leave their undergraduate training with a purely deterministic view of their discipline, which can lead to probabilistic design errors that negatively impact safety. To that end, Grama is designed to facilitate rapid model analysis, communication of results, and the teaching of concepts, all with quantified uncertainties. Intended users of Grama are scientists and engineers at the undergraduate level and upward, seeking to analyze computationally-lightweight models.

Students seeking to join this project will need prior experience coding in Python. Students on this project will design and implement advanced data science algorithms, and will learn professional-grade software development skills.

Related Publications

Zachary del Rosario
Zachary del Rosario
Assistant Professor of Engineering and Applied Statistics

Empowering scientists and engineers to reason under uncertainty