У меня есть система уравнений ODE, которую я пытаюсь приспособить к сгенерированным данным, синтетическим или лабораторным.Конечный продукт, который меня интересует, - это параметр и его оценочная ошибка.Мы используем пакет R FME
с modCost
и modFit
.Например, система ODE может быть определена следующим образом:
eqs <- function (time, y, parms, ...) {
with(as.list(c(parms, y)), {
dP <- k2*PA - k1*A*P # concentration of nucleic acid
dA <- dP # concentration of free protein
dPA <- -dP
list(c(dA,dP,dPA))
}
}
с параметрами k1
и k2
и переменными A,P
и PA
.Я импортирую данные (не показаны) и определяю функцию стоимости, используемую в modFit
cost <- function(p, data, ...) {
yy <- p[c("A","P","PA")]
pp <- p[c("k1", "k2")]
out <- ode(yy, time, eqs, pp)
modCost(out, data, ...)
}
. Я устанавливаю некоторые начальные условия с помощью вектора parms
, а затем выполняю подгонку с помощью
fit <- modFit(f = cost, p = parms, data = dat, weight = "std",
lower = rep(0, 8), upper = c(600,100,600,0.01,0.01), method = "Marq")
Затем я делаю окончательный ode
, чтобы получить сгенерированные подгонки с лучшими параметрами, Бобом, твоим дядей, и бумом, оценочными параметрами.Вводимые цифры не имеют значения, я надеюсь, что моя схема процесса разборчива для тех, кто использует этот пакет.
Моя проблема и вопрос сосредоточены вокруг двух вещей: я ученый, физик, и ошибка в оценочных параметрах важна для сообщения.Могу ли я как-то сгенерировать предполагаемую ошибку из MFE или для такого вида возврата есть отдельный пакет?