The GLM module

As we discussed at the beginning of this chapter, linear models are very useful statistical tools. Extensions such the ones we we saw in this chapter make them even more general tools. For that reason, PyMC3 includes a module to simplify the creation of linear models: the Generalized Liner Model (GLM) module. For example, a simple linear regression will be as follows:

with pm.Model() as model: 
    glm.glm('y ~ x', data) 
    trace = sample(2000) 

The second line of the preceding code takes care of adding priors for the intercept and for the slope. By default, the intercept is assigned a flat prior, and the slopes an  prior. Note that the maximum a posteriori (MAP) of the default model will be essentially equivalent to the one obtained using the ordinary least squared method. These is totally fine as a default linear regression; you can change it using the priors argument. The GLM module also adds a Gaussian likelihood by default. You can change it using the family argument; you can choose from the following options: Normal (default), StudentT, Binomial, Poisson, or NegativeBinomial.

To describe a statistical model, the GLM module uses Patsy (https://patsy.readthedocs.io/en/latest/index.html), which is a Python library that provides a formula mini-language syntax inspired by the one used in R and S. In the previous code block, y ~ x specifies we have an output variable, y, that we want to estimate as a linear function of x.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.8.27