"""File for updating prior into posterior""" import pymc3 as pm class PosteriorGenerator: def __init__(self, prices, demands): self.price_observations = prices self.demand_observations = demands def calc_posterior(self, samples=1000): with pm.Model(): elas = pm.Normal("elas",mu=-0.5, sd=0.5) shape = pm.Normal("shape",mu=0, sd=2) stdev = pm.Exponential("stdev",lam=1) y_hat = pm.math.dot(elas, self.price_observations) + shape log_observations = pm.math.log(self.demand_observations) _ = pm.Normal("demand", mu=y_hat, observed=log_observations, sigma=stdev) trace = pm.sample(samples) return trace