Comment estimer les paramètres d'un modèle d'équations différentielles ordinaires par les moindres carrés avec R ?
De nombreux systèmes sont modélisés par des équations différentielles ordinaires. R peut permettre de résoudre certains de ces systèmes et aussi d’estimer leurs paramètres. On prend ici l’exemple d’un modèle épidémiologique temporel SI. #edo SIXlibrary(deSolve) # on utilise deSolve#on définit le système dans une fonction six icisix<-function(t,x,parms){ with( as.list(c(parms,x)),{ rp<-ap*exp(-bp*t) rs<-as*exp(-0.5*(log(t/gs)/bs)^2) dI<- (rp*X*S+rs*I*S) dS<- -(rp*X*S+rs*I*S) res<-c(dI,dS) list(res)})}#on définit les paramètres pour la simulation du systèmeparms<-c(ap=0.002, bp=0.0084, as=5.9e-7, bs=0.25, gs=1396, X=1, N=1010)#on crée un vecteur pour le tempstimes<-seq(0:3000)#valeurs initiales des variables (ici tous les individus sont sains au début)y<- xstart <-(c(I = 0, S = 1010))#on résout le système avec la fonction lsodaout<-as.data.frame(lsoda(xstart, times, six,Read More →