mmider / BridgeSDEInference.jl

Inference for diffusion processes with the use of `Guided Proposals`
https://mmider.github.io/BridgeSDEInference.jl/dev/
MIT License
16 stars 5 forks source link

WIP: Mixed effects #38

Open mschauer opened 5 years ago

mschauer commented 5 years ago

Overview [TODO]

mschauer commented 5 years ago

Currently stuck at:

julia> include("mixedeffects.jl")

---------------------------------------------------
The auxiliary diffusion is set to (Ỹ,X̃), a solution to an SDE:
dỸₜ = X̃ₜ dt,
dX̃ₜ = {[ϵ(1-3y²-6yẏ)-γ]Ỹₜ+[ϵ(1-3y²)-1]X̃ₜ+[ϵ(2y³+6y²ẏ)+s-β]} dt + σ dWₜ,  t∈[0,T],
where (y,ẏ) denotes an end-point of (Y,Ẏ).
---------------------------------------------------
ERROR: LoadError: PosDefException: matrix is not Hermitian; Cholesky factorization failed.
Stacktrace:
 [1] non_hermitian_error() at /Users/smoritz/.julia/packages/StaticArrays/WmJnA/src/cholesky.jl:2
 [2] cholesky at /Users/smoritz/.julia/packages/StaticArrays/WmJnA/src/cholesky.jl:4 [inlined]
 [3] whiten(::SArray{Tuple{2,2},Float64,2,4}, ::SArray{Tuple{2},Float64,1,2}) at /Users/smoritz/.julia/dev/GaussianDistributions/src/GaussianDistributions.jl:77
 [4] invStartPt(::SArray{Tuple{2},Float64,1,2}, ::GsnStartingPt{SArray{Tuple{2},Float64,1,2},SArray{Tuple{2,2},Float64,2,4}}, ::BridgeSDEInference.GuidPropBridge{SArray{Tuple{2},Float64,1,2},Float64,FitzhughDiffusion{Float64,Val{:complexConjug}},FitzhughDiffusionAux{Float64,Float64,Float64,Val{:complexConjug}},SArray{Tuple{2},Float64,1,2},SArray{Tuple{2,2},Float64,2,4},SArray{Tuple{4},Float64,1,4},SArray{Tuple{1,2},Float64,2,2},SArray{Tuple{1},Float64,1,1},SArray{Tuple{1,1},Float64,2,1},NoChangePt}) at /Users/smoritz/.julia/dev/BridgeSDEInference/src/starting_pt.jl:143
 [5] initialise(::PartObs, ::Array{ContinuousTimeProcess,1}, ::Int64, ::GsnStartingPt{SArray{Tuple{2},Float64,1,2},SArray{Tuple{2,2},Float64,2,4}}, ::Float64, ::Array{Float64,1}) at /Users/smoritz/.julia/dev/BridgeSDEInference/src/mcmc.jl:245
 [6] #mixedmcmc#93(::Array{Float64,2}, ::Float64, ::Float64, ::Int64, ::Int64, ::Tuple{Val{(true, true, true, false, false)},Val{(false, false, false, false, true)}}, ::NTuple{5,Bool}, ::Bool, ::Int64, ::Tuple{ConjugateUpdt,MixedEffectsMHUpdt}, ::NoBlocking, ::Tuple{Array{Any,1},Float64,NoChangePt}, ::Vern7, ::NoChangePt, ::Int64, ::typeof(mixedmcmc), ::Type{Float64}, ::PartObs, ::Array{SArray{Tuple{1},Float64,1,1},2}, ::Array{Float64,2}, ::Array{GsnStartingPt{SArray{Tuple{2},Float64,1,2},SArray{Tuple{2,2},Float64,2,4}},1}, ::Float64, ::Array{FitzhughDiffusion{Float64,Val{:complexConjug}},1}, ::Array{FitzhughDiffusionAux{Float64,Float64,Float64,Val{:complexConjug}},2}, ::Array{SArray{Tuple{1,2},Float64,2,2},2}, ::Array{SArray{Tuple{1,1},Float64,2,1},2}, ::Int64, ::RandomWalk{Array{Float64,1},Array{Bool,1}}, ::Priors, ::typeof(τ)) at /Users/smoritz/.julia/dev/BridgeSDEInference/src/mixedeffects.jl:74
 [7] (::getfield(BridgeSDEInference, Symbol("#kw##mixedmcmc")))(::NamedTuple{(:fpt, :ρ, :dt, :saveIter, :verbIter, :updtCoord, :randomEffects, :paramUpdt, :updtType, :skipForSave, :blocking, :blockingParams, :solver, :changePt, :warmUp),Tuple{Array{Float64,2},Float64,Float64,Int64,Int64,Tuple{Val{(true, true, true, false, false)},Val{(false, false, false, false, true)}},NTuple{5,Bool},Bool,Tuple{ConjugateUpdt,MixedEffectsMHUpdt},Int64,NoBlocking,Tuple{Array{Any,1},Float64,NoChangePt},Vern7,NoChangePt,Int64}}, ::typeof(mixedmcmc), ::Type{Float64}, ::PartObs, ::Array{SArray{Tuple{1},Float64,1,1},2}, ::Array{Float64,2}, ::Array{GsnStartingPt{SArray{Tuple{2},Float64,1,2},SArray{Tuple{2,2},Float64,2,4}},1}, ::Float64, ::Array{FitzhughDiffusion{Float64,Val{:complexConjug}},1}, ::Array{FitzhughDiffusionAux{Float64,Float64,Float64,Val{:complexConjug}},2}, ::Array{SArray{Tuple{1,2},Float64,2,2},2}, ::Array{SArray{Tuple{1,1},Float64,2,1},2}, ::Int64, ::RandomWalk{Array{Float64,1},Array{Bool,1}}, ::Priors, ::typeof(τ)) at ./none:0
 [8] top-level scope at none:0
 [9] include at ./boot.jl:326 [inlined]
 [10] include_relative(::Module, ::String) at ./loading.jl:1038
 [11] include(::Module, ::String) at ./sysimg.jl:29
 [12] include(::String) at ./client.jl:403
 [13] top-level scope at none:0
in expression starting at /Users/smoritz/.julia/dev/BridgeSDEInference/scripts/mixedeffects.jl:83

julia>