我有一个 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 生成估计错误,或者是否有单独的包用于这种返回?