Idea for spectrogram error bars
In [1]:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pymc3 as pm
sns.set(font_scale=1.5)
In [2]:
with pm.Model() as model:
c_means = pm.Uniform('c_means', 0, 100, shape=5)
corrections = pm.Normal('corrs', c_means, sd=1, shape=5, observed=[3,4,5,4,3])
p_means = pm.Uniform('p_means', 0, 100, shape=5)
p = pm.Poisson('p', p_means, shape=5, observed=[30, 35, 20, 45, 16])
avg = pm.Deterministic('avg', pm.math.sum(c_means, axis=0) + pm.math.sum(p_means, axis=0)/5)
trace = pm.sample(10000)
In [3]:
pm.summary(trace)
Out[3]:
In [4]:
pm.traceplot(trace)
Out[4]:
In [5]:
pm.plot_posterior(trace)
Out[5]:
In [6]:
print(np.average([30, 35, 20, 45, 16]))
In [12]:
with pm.Model() as model:
p_means = pm.Uniform('p_means', 0, 100, shape=(5, 16)) # time, pixel, sector
p = pm.Poisson('p', p_means, shape=5, observed=np.random.poisson(30, size=(5, 16)))
avg = pm.Deterministic('avg', pm.math.sum(p_means)/(5*16))
trace = pm.sample(10000)
In [13]:
pm.summary(trace)
Out[13]:
In [14]:
pm.traceplot(trace)
Out[14]:
In [15]:
pm.plot_posterior(trace)
Out[15]:
In [ ]: