Description Usage Arguments Details Value See Also Examples
Compute the sum of squares between a given data and an odeModel
object.
1 2 3 4 | ssqOdeModel(p, simObj, obstime, yobs,
sd.yobs = as.numeric(lapply(yobs, sd)),
initialize = TRUE, lower. = -Inf, upper. = Inf, weights = NULL,
debuglevel = 0, ..., pnames = NULL)
|
p |
vector of named parameter values of the model (can be a subset), |
simObj |
a valid object of class |
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 |
sd.yobs |
vector of given standard deviations for all
observational variables given in |
initialize |
optional boolean value whether the |
lower., upper. |
named vectors with lower and upper bounds used in the optimisation, |
weights |
optional weights to be used in the fitting process.
Should be |
debuglevel |
a positive number that specifies the amount of debugging information printed, |
... |
additional parameters passed to the solver method (e.g.
|
pnames |
names of the parameters, optionally passed from fitOdeModel. This argument is a workaround for R versions below 2.8.1. It may be removed in future versions of simecol. |
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 (cost functions).
The sum of squared differences between yobs
and simulation,
by default weighted by the inverse of the standard deviations of the respective
variables.
fitOdeModel
, optim
,
p.constrain
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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)
## SSQ between model and data, downweight second observation
## (both variables)
weights <- data.frame(X=rep(1, nrow(yobs)), S = rep(1, nrow=(yobs)))
ssqOdeModel(p=c(vm=1, km=2), cs1, obstime, yobs, weights=weights)
## downweight 3rd data set (row)
weights[3,] <- 0.1
ssqOdeModel(p=c(vm=1, km=2), cs1, obstime, yobs, weights=weights)
## give one value double weight (e.g. 4th value of S)
weights$S[4] <- 2
ssqOdeModel(p=c(vm=1, km=2), cs1, obstime, yobs, weights=weights)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.