SciML / StructuralIdentifiability.jl

Fast and automatic structural identifiability software for ODE systems
https://docs.sciml.ai/StructuralIdentifiability/stable/
MIT License
105 stars 16 forks source link

Any way to impose constraints? #103

Open qchenmath opened 2 years ago

qchenmath commented 2 years ago

It isn't an issue, but more of a functionality. Is there a way to impose constraint like, the bounds for parameters, or the bounds for the state-variables, in the identifiability analysis?

pogudingleb commented 2 years ago

No, there is no such feature now. We would like to have it but it is quite challenging. In the case one is able to find identifiable combinations, one can try to impose constraints there. If you have a particular example you are interested in, feel free to send to me.

qchenmath commented 2 years ago

I was just playing with the SEIR model. Two parameters: gamma and sigma and two initial conditions S(0), E(0) are locally identifiable. They all have 2 possible solutions. Interestingly enough, the second-set set of solutions are not physical - with negative values for R. It means that in practical situations, one won't get the 2nd set. The ultimate question is: how bad will it be if some parameters are locally identifiable. It doesn't look like an answer exists for general cases - that is why I asked if there is some way to impose constraints during the identifiability analysis.

pogudingleb commented 2 years ago

Yes, this process is currently not fully automatized. The strategy I have been using with such constraints was:

An example (similar to yours) would be if you have: you have two parameters a and b and the identifiable functions are a + b and a b meaning that you know a and b as an unordered pair of numbers. Such a model will become globally identifiable if the imposed constraint is a > b.