Giter Site home page Giter Site logo

firstpassagetools.jl's People

Contributors

smith-garrett avatar

Watchers

 avatar

firstpassagetools.jl's Issues

Add tests for splitting probabilities

Not really used in fitting right now, but would be useful to test:

  1. With a single condition: should sum to 1.0
  2. With multiple conditions: each condition separately should sum to 1.0.

Create tutorial(s)

  • Simple random walk from van Kampen (2007, Ch. XII)
  • Parsing example
  • Chemical example?
  • Queuing example?

Trouble with autodifferentiation in Turing

MethodError: no method matching exponential!(::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{DynamicPPL.DynamicPPLTag, Float64}, Float64, 2}}, ::ExponentialUtilities.ExpMethodHigham2005Base)

pdf() sometimes returns very small negative values

Could be a numerical issue, but the numbers are often -1e-162. This causes issues in logpdf() when trying to fit models because log() doesn't take negative arguments unless they are explicitly of type Complex.

Implement conditional first-passage statistics

Interface: pdf(d::fpdistribution, x::Real, dims=...). The dims argument is either an integer or a collection/vector of integers referring to the absorbing states/the rows of the absorbing matrix A.

Implement conditional statistics

CDF/quantile fns. need to know which transient states exit into which absorbing states in order to implement for systems with more than one absorbing state.

CDF_abs = 1 - (sum_{transient states exiting into abs} / splitting probability_abs)

Revise to get rid of conditions interface

The idea of encoding multiple conditions (= multiple different transition rate matrices) seems to just be making things complicated. Better to just remove and make the user handle that manually in the @model internals.

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Domain Error from logpdf & occasional incorrect T matrix errors

Error:

ERROR: DomainError with -4.5958295283709015e-27:
log will only return a complex result if called with a complex argument. Try log(Complex(x)).

This happens occasionally. Most recently, I've noticed it using ReverseDiff.jl while fitting fpdistribs in Turing. I suspect that this might be due to proposals being sampled that cause the entries in the T matrix to be very close to zero. When that gets fed to pdf(), it might lead to numerical overflow.

I think something similar happens when I get feedback from the fpdistribution() fn. that the T matrix is incorrect, i.e., the columns don't sum to zero.

Reconsider rescaling in setup()

Currently, rescaling is done by multiplying the transition rates by the total number of states, transient + absorbing. It might be better to rescale by the number of transient states only, since this is what really contributes to first-passage times, i.e., the number of states you have to pass through (approx.) before you reach an absorbing state (which no longer contributes to FPT).

Biased sampling from NUTS and SMC

Simulation-based calibration returns evidence of biased sampling for a simple, non-hierarchical model. PG(25) seems to work just fine, though.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.