Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

📚 The CoCalc Library - books, templates and other resources

132928 views
License: OTHER
1
import pymc as pm
2
import numpy as np
3
4
count_data = np.loadtxt("../../Chapter1_Introduction/data/txtdata.csv")
5
n_count_data = len(count_data)
6
7
alpha = 1.0 / count_data.mean() # recall count_data is
8
# the variable that holds our txt counts
9
10
lambda_1 = pm.Exponential("lambda_1", alpha)
11
lambda_2 = pm.Exponential("lambda_2", alpha)
12
13
tau = pm.DiscreteUniform("tau", lower=0, upper=n_count_data)
14
15
16
@pm.deterministic
17
def lambda_(tau=tau, lambda_1=lambda_1, lambda_2=lambda_2):
18
out = np.zeros(n_count_data)
19
out[:tau] = lambda_1 # lambda before tau is lambda1
20
out[tau:] = lambda_2 # lambda after tau is lambda2
21
return out
22
23
observation = pm.Poisson("obs", lambda_, value=count_data, observed=True)
24
model = pm.Model([observation, lambda_1, lambda_2, tau])
25
26
27
mcmc = pm.MCMC(model)
28
mcmc.sample(100000, 50000, 1)
29
30