LinearRegression.to_graphviz#

LinearRegression.to_graphviz(*, var_names=None, formatting='plain', save=None, figsize=None, dpi=300)#

Produce a graphviz Digraph from a PyMC model.

Requires graphviz, which may be installed most easily with

conda install -c conda-forge python-graphviz

Alternatively, you may install the graphviz binaries yourself, and then pip install graphviz to get the python bindings. See http://graphviz.readthedocs.io/en/stable/manual.html for more information.

Parameters:
  • var_names (iterable of variable names, optional) – Subset of variables to be plotted that identify a subgraph with respect to the entire model graph

  • formatting (str, optional) – one of { “plain” }

  • save (str, optional) – If provided, an image of the graph will be saved to this location. The format is inferred from the file extension.

  • figsize (tuple[int, int], optional) – Width and height of the figure in inches. If not provided, uses the default figure size. It only affect the size of the saved figure.

  • dpi (int, optional) – Dots per inch. It only affects the resolution of the saved figure. The default is 300.

Examples

How to plot the graph of the model.

import numpy as np
from pymc import HalfCauchy, Model, Normal

J = 8
y = np.array([28, 8, -3, 7, -1, 1, 18, 12])
sigma = np.array([15, 10, 16, 11, 9, 11, 10, 18])

with Model() as schools:

    eta = Normal("eta", 0, 1, shape=J)
    mu = Normal("mu", 0, sigma=1e6)
    tau = HalfCauchy("tau", 25)

    theta = mu + tau * eta

    obs = Normal("obs", theta, sigma=sigma, observed=y)

schools.to_graphviz()

Note that this code automatically plots the graph if executed in a Jupyter notebook. If executed non-interactively, such as in a script or python console, the graph needs to be rendered explicitly:

# creates the file `schools.pdf`
schools.to_graphviz().render("schools")