如何将时间延迟变量拟合到R中的数据?

问题描述 投票:1回答:1

我有两个已知(或怀疑)形状相似的数据集,但第二个数据集被延迟了tau并按因子mu缩放:

F(t)

C(t)= mu * F(t + tau)

我有C(t)和F(t)的数据,我也对F拟合了一个微分方程模型,并在R中生成了数值解。我也有一个mu的估计。我需要的是一种适合参数tau的方法。到目前为止,我一直在使用nls.lm和optim进行参数拟合,但是我不知道如何拟合时间延迟。如果有帮助,我有一个用F表示的F'(t)方程。

使用R拟合tau的最佳方法是什么?我希望有一种方法,如果可能的话,以后也可以同时适合亩。

r data-modeling differential-equations timedelay
1个回答
0
投票

我已经为ODE设置了药代动力学和药物溶解度分析,并带有滞后时间参数。这是一个Weibull分析文件的示例,用于拟合药物溶解时间与时间的累计百分比:

weibull2<-function(x,lwo,lbeta,lgama,Tlag){
  # overrides convergence problems
  # parameter redefined to be positive 
  beta<-exp(lbeta)
  gama<-exp(lgama)
  wo<-exp(lwo) 

  # lag time: 
  n=length(x)
  tps<-x - Tlag
  # split time vector tps in positive and negative
  tps.posit<-tps[tps>0]
  tps.negat<-tps[tps<=0]
  # time vector repeating 0   
  tps<-c(rep(0,length(tps.negat)),tps.posit)
  v<-wo*(1-exp(-(tps/beta)^gama))
  v
}

# PK model example, using package nlmeODE
foWeibDerR<-function(x,wo,beta,gama,Tlag,alfa,ka,Fer,escala){
  tps<-x - Tlag
  tps.posit<-tps[tps>0]
  tps.negat<-tps[tps<=0]
  tps<-c(rep(0,length(tps.negat)),tps.posit)
  Idx<-c(rep(1,length(tps[tps<10])),rep(0,length(tps[tps>=10])))
  v<-alfa*ka*exp(-ka*x) + Idx*Fer*(1-alfa)*(wo/100)*gama*(tps^(gama-1))*exp(-(tps/(beta*escala))^gama)/((beta*escala)^gama)
  v
}


根据我的经验,是否还有其他陈述对我不起作用

© www.soinside.com 2019 - 2024. All rights reserved.