Profiling Papers and Code
The main paper describing the methodology is
James Ramsay, Giles Hooker David Campbell and Jiguo Cao, 2007. ""Estimating Differential Equations", Journal of the Royal Statistical Society, Series B, Vol 69, No 5.
Some proofs from the paper above are given in
Giles Hooker, 2007, "Theorems and Calculations for Smoothing-based Profiled Estimation of Differential Equations", Technical Report BU-1671-M, Department of Biological Statistics and Computational Biology, Cornell University.
There is a Matlab software bundle available for use with the FDA package.
A users manual for the software bundle is also available.
Webpage demonstrations of the Matlab software in action using the FitzHugh-Nagumo equations and the Rossler equations may be useful to go through.
The software supports replicated experiments; this is demonstrated on the FitzHugh-Nagumo equations and the Rossler equations.
As a useful special case, there is a set of functions for estimating forced, linear, systems, also given as a webpage demonstration.
Finally, there is a webpage demonstration for some diagnostic tools for the mis-specification of linear differential equations. A demonstration on estimating forcing functions for nonlinear systems is also available.
The code currently only allows systems that are observed directly, plus (approximately) Gaussian noise. If you have observations of some transform of a system or want to use some likelihood other than squared error, please feel free to bug us about updating the code.
An R package, CollocInfer implements the same methodology (and more). While the fda package interfaces with it, it is not strictly necessary. A user manual is available for this package, also.
The profiling ideas can be thought of as an improvement on "Gradient Matching" -- estimate a non-parametric smooth to the data and then choose parameters to minimize the discrepancy between the derivative of the smooth, and the right hand side of a differential equation. This idea has been re-discovered many times; my earliest reference is Bellman and Roth, 1971, "The Use of Splines with Unknown End Points in the Identification of Systems", in Journal of Mathematical Analysis and Applications with thanks to Stephen Ellner for pointing this out. Hints of similar ideas can be found in Lindsay, 1962, "Optimum Time Scheduling for Kinetic Experiments" Ind. Engng. Chem. Fundam and in de Nevers, 1966, "Rate Data and Derivatives", A.I.Ch.E. Journal. Pointers to yet earlier references are welcomed.
For inquiries, comments, more code, or suggestions, please contact Giles Hooker at giles[dot]hooker[at]cornell[dot]edu.