Created
July 14, 2014 21:15
-
-
Save binarybana/4fbb4e6dfc5d30da234e to your computer and use it in GitHub Desktop.
Mamba Distribution
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Mamba | |
data = (Symbol=>Any)[:x1 => [10, 12, 14, 9], | |
:x2 => [10,11,12,8]] | |
N = length(data[:x2]) | |
data[:N] = N | |
d=10.0 | |
model = Model( | |
x1 = Stochastic(1, | |
@modelexpr(N, lam, | |
Distribution[ | |
begin | |
rate = d*exp(lam[i][1]) | |
Poisson(rate) | |
end | |
for i=1:N]), | |
false), | |
x2 = Stochastic(1, | |
@modelexpr(N, lam, | |
Distribution[ | |
begin | |
rate = d*exp(lam[i][2]) | |
Poisson(rate) | |
end | |
for i=1:N]), | |
false), | |
lam = Stochastic(1, | |
@modelexpr(N,mu,sig, | |
Distribution[MultivariateNormal(mu,sig) for i=1:N]), true), | |
mu = Stochastic(1,:(IsoNormal(2,10)), true), | |
sig = Stochastic(2,:(InverseWishart(10, eye(2))), true) | |
) | |
temp = (Symbol=>Any)[:x1=>data[:x1], :x2=>data[:x2], :lam=>[rand(IsoNormal(2,1)) for i=1:N], :mu=>zeros(2), :sig => eye(2)] | |
#temp = (Symbol=>Any)[:x1=>data[:x1], :x2=>data[:x2], :lam=>rand(IsoNormal(2,1),data[:N]), :mu=>zeros(2), :sig => eye(2)] | |
inits = Dict{Symbol,Any}[copy(temp) for i=1:4] | |
scheme = [AMWG([:lam], ones(N)), AMWG([:mu],ones(2)/10),AMWG([:sig], ones(4))] | |
setsamplers!(model, scheme) | |
sim = mcmc(model, data, inits, 10000, burnin=2500, thin=2, chains=4) | |
describe(sim) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Error when using lam dimension = 1 (code above): | |
julia> include("mpm.jl") | |
MCMC Simulation of 10000 Iterations x 4 Chains... | |
exception on 1: ERROR: `convert` has no method matching convert(::Type{Float64}, ::Array{Float64,1}) | |
in copy! at abstractarray.jl:149 | |
in setinits! at /home/jason/.julia/Mamba/src/model/dependent.jl:120 | |
in setinits! at /home/jason/.julia/Mamba/src/model/initialization.jl:26 | |
in mcmc_sub! at /home/jason/.julia/Mamba/src/model/mcmc.jl:28 | |
in anonymous at multi.jl:652 | |
in run_work_thunk at multi.jl:613 | |
in remotecall_fetch at multi.jl:686 | |
in remotecall_fetch at multi.jl:701 | |
in anonymous at task.jl:1348 | |
ERROR: `convert` has no method matching convert(::Type{Chains}, ::MethodError) | |
in getindex at array.jl:121 | |
in mcmc at /home/jason/.julia/Mamba/src/model/mcmc.jl:20 | |
in include at ./boot.jl:245 | |
in include_from_node1 at ./loading.jl:128 | |
while loading /home/jason/GSP/research/samc/mamba/mpm.jl, in expression starting on line 47 | |
Error for dimensionality of lam=2 (commented code, and changing lam dim 1 to 2): | |
julia> include("mpm.jl") | |
MCMC Simulation of 10000 Iterations x 4 Chains... | |
exception on 1: ERROR: stochastic parameter and distribution dimensions must match | |
in setinits! at /home/jason/.julia/Mamba/src/model/dependent.jl:124 | |
in setinits! at /home/jason/.julia/Mamba/src/model/initialization.jl:26 | |
in mcmc_sub! at /home/jason/.julia/Mamba/src/model/mcmc.jl:28 | |
in anonymous at multi.jl:652 | |
in run_work_thunk at multi.jl:613 | |
in remotecall_fetch at multi.jl:686 | |
in remotecall_fetch at multi.jl:701 | |
in anonymous at task.jl:1348 | |
ERROR: `convert` has no method matching convert(::Type{Chains}, ::ErrorException) | |
in getindex at array.jl:121 | |
in mcmc at /home/jason/.julia/Mamba/src/model/mcmc.jl:20 | |
in include at ./boot.jl:245 | |
in include_from_node1 at ./loading.jl:128 | |
while loading /home/jason/GSP/research/samc/mamba/mpm.jl, in expression starting on line 46 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment