P1-28: Symbulate: A Python Package for Simulation

By Kevin Ross and Dennis Sun (Cal Poly, San Luis Obispo)


Simulation provides an effective tool for analyzing probability models as well as for facilitating understanding of concepts in probability and statistics. Unfortunately, implementing a simulation from scratch (e.g. in R) often requires users to think about programming issues that are not relevant to the simulation itself. The Python package Symbulate provides a user friendly framework for conducting simulations involving probability models. The syntax of Symbulate mirrors the “language of probability” and makes it intuitive to specify, run, analyze and visualize the results of a simulation.

We will demonstrate how Symbulate can be used in conjunction with a wide variety of concepts and problems involving probability and simulation, including: random variables; joint, conditional, and marginal distributions; sampling distributions; simulation-based inference; Markov chains; Poisson processes; and more. We will also present analysis of student evaluation and assessment data from courses in which we have used Symbulate as evidence of the effectiveness of Symbulate for facilitating student learning of concepts in probability.

While Python (which is one of the most widely used programming languages in the world) is the platform for Symbulate, no previous background in programming or Python is required to use Symbulate. However, we will provide some examples of how Symbulate can provide a framework for introducing Python, as facility with Python is becoming increasingly important for students and instructors interested in data science.