Une anova avec modèle mixte comme VARCOMP dans SAS Créons d’abord un jeu de données. On souhaite déterminer la précision et la répétabilité d’une analyse. Pour cela, la mesure est effectuée par 2 techniciens différents, sur des concentrations de produits différents sur 3 jours différents et avec 2 réplicats. library(dplyr) set.seed(42) data <- tibble( concentration = rep(c(10, 30, 50, 80), 3*2), technicien = rep(c(« A », « B »), each = 3*2*2), jour = rep(rep(1:3, each = 2*2), 2), replicat = rep(1:2, times = 2*3*2)) %>% mutate(mesure = ifelse( technicien == « A », 0.2 * concentration + rnorm(12, sd = 3), 0.2 * concentration + rnorm(12, sd = 2))) dataRead More →

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 →