La manière la plus simple d’ajuster une fonction à des données est la méthode « géométrique » des moindres carrés (minimiser la somme des carrés des écarts correspond à maximiser la vraisemblance avec une loi normale). La fonction nls de R permet de réaliser ceci de manière simple. Voyons deux exemples : #exemple modèle de croissance exponentiel #on crée une fonction qui correspond à un modèle de Malthus malthus<-function(t,N0,r){N0*exp(r*t)} t<-seq(0:100) NO<-2 r<-0.05 plot(malthus(t,NO,r)~t,type=’l’,col=’green’,lwd=2) #on crée des données en ajoutant du bruit sim<-malthus(t,NO,r)+rnorm(t,sd=0.3*malthus(t,NO,r)) plot(sim~t,pch=20) #on ajuste la fonction sur les données simulées en utilisant les moindres carrés fitmalthus<-nls(sim~malthus(t,a,b),start=list(a=1,b=0.01)) fitmalthus summary(fitmalthus) #on vérifie plot(sim~t,pch=20) lines(malthus(t,NO,r)~t,type=’l’,col=’green’,lwd=2) lines(malthus(t,coef(fitmalthus)[1],coef(fitmalthus)[2])~t,type=’l’,col=’red’,lwd=2) #exemple 2 avecRead More →

On cherche souvent à modéliser un échantillon par une loi de probabilité. A partir d’un jeu de données, comment peut-on trouver les paramètres d’une loi préalablement fixée? Plusieurs méthodes peuvent être utilisées. On prend l’exemple ici du délai entre l’infection d’un individu et la détection de cet individu comme malade.On modélise ici ce délai (en jours) par une loi de Weibull (on peut aussi essayer les lois gamma et lognormale par exemple) La méthode la plus simple est d’utiliser la fonction fitdistr du package MASS.Cette fonction permet d’ajuster de nombreuses lois par maximum de vraisemblance. Regardons ce que ça donne pour une loi Weibull. #onRead More →