e@0
|
1 # -*- coding: utf-8 -*-
|
e@0
|
2 """
|
e@0
|
3 Created on Thu May 28 13:02:25 2015
|
e@0
|
4
|
e@0
|
5 @author: mmxgn
|
e@0
|
6 """
|
e@0
|
7
|
e@0
|
8 from pymc import DiscreteUniform, Exponential, deterministic, Poisson, Uniform
|
e@0
|
9
|
e@0
|
10 import numpy as np
|
e@0
|
11
|
e@0
|
12 disasters_array = \
|
e@0
|
13 np.array([ 4, 5, 4, 0, 1, 4, 3, 4, 0, 6, 3, 3, 4, 0, 2, 6,
|
e@0
|
14 3, 3, 5, 4, 5, 3, 1, 4, 4, 1, 5, 5, 3, 4, 2, 5,
|
e@0
|
15 2, 2, 3, 4, 2, 1, 3, 2, 2, 1, 1, 1, 1, 3, 0, 0,
|
e@0
|
16 1, 0, 1, 1, 0, 0, 3, 1, 0, 3, 2, 2, 0, 1, 1, 1,
|
e@0
|
17 0, 1, 0, 1, 0, 0, 0, 2, 1, 0, 0, 0, 1, 1, 0, 2,
|
e@0
|
18 3, 3, 1, 1, 2, 1, 1, 1, 1, 2, 4, 2, 0, 0, 1, 4,
|
e@0
|
19 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1])
|
e@0
|
20
|
e@0
|
21 switchpoint = DiscreteUniform('switchpoint', lower=0, upper=110, doc='Switchpoint[year]')
|
e@0
|
22
|
e@0
|
23 early_mean = Exponential('early_mean', beta=1.)
|
e@0
|
24 late_mean = Exponential('late_mean', beta=1.)
|
e@0
|
25
|
e@0
|
26
|
e@0
|
27 @deterministic(plot=False)
|
e@0
|
28 def rate(s=switchpoint, e=early_mean, l=late_mean):
|
e@0
|
29 ''' Concatenate Poisson means '''
|
e@0
|
30 out = np.empty(len(disasters_array))
|
e@0
|
31 out[:s] = e
|
e@0
|
32 out[s:] = l
|
e@0
|
33 return out
|
e@0
|
34
|
e@0
|
35
|
e@0
|
36 disasters = Poisson('disasters', mu=rate, value=disasters_array, observed=True) |