| ssqOdeModel {simecol} | R Documentation |
Compute the sum of squares between a given data and an odeModel object
ssqOdeModel(p, simObj, obstime, yobs, sd.yobs = as.numeric(lapply(yobs, sd)), initialize = TRUE, lower. = -Inf, upper. = Inf, debuglevel = 0, ...)
p |
Vector of named parameter values of the model (can be a subset). |
simObj |
a valid object of class odeModel |
obstime |
vector with time steps for which observational data are available |
yobs |
data frame with observational data for all or a subset of
state variables. Their names must correspond exacly with existing names of state
variables in the odeModel. |
sd.yobs |
vector of given standard deviations for all observational
variables given in yobs. If no standard deviations are given,
these are estimated from yobs. |
initialize |
optional boolean value whether the simObj should be re-initialized after the assignment of new parameter values. This can be necessary in certain models to assign consistent values to initial state variables if they depend on parameters. |
lower., upper. |
named vectors with lower and upper bounds used in the optimisation. |
debuglevel |
a positive number that specifies the amount of debugging information printed |
... |
additional parameters passed to the solver method (e.g.
lsoda) |
This is the default function called by function fitOdeModel.
The source code of this function can be used as a starting point
to develop user-defined optimization criteria.
The sum of squared differences between yobs and simulation, weighted
by the inverse of the standard deviations of the respective variables.
fitOdeModel, optim, p.constrain
data(chemostat)
cs1 <- chemostat
## generate some noisy data
parms(cs1)[c("vm", "km")] <- c(2, 10)
times(cs1) <- c(from=0, to=20, by=2)
yobs <- out(sim(cs1))
obstime <- yobs$time
yobs$time <- NULL
yobs$S <- yobs$S + rnorm(yobs$S, sd= 0.1 * sd(yobs$S))*2
yobs$X <- yobs$X + rnorm(yobs$X, sd= 0.1 * sd(yobs$X))
## SSQ between model and data
ssqOdeModel(NULL, cs1, obstime, yobs)
## SSQ between model and data, different parameter set
ssqOdeModel(p=c(vm=1, km=2), cs1, obstime, yobs)