On rappelle que le modèle de Michaelis-Menten permet de décrire des données observées de mesure de vitesse de réaction enzymatique en fonction de la concentration en substrat :

\[ y_{i} \sim \mathcal{N}(v(x_{i}), \sigma) \]

avec \((x_i,y_i)\), pour \(i=1,...,n\), les \(n\) observations.

La fonction \(v\) est définie par :

\[ v([S]) = \frac{v_\max [S]}{K_M + [S]} \]

1 Analyse par régression non linéaire

1.1 Jeu de données no.1

library(nlstools)
dataMM1 <- read.table("dataMM1.txt", header=TRUE)
n <- nrow(dataMM1)
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=0.5, KM=0.3)
ajusMM <- nls(formula=modeleMM, data=dataMM1, start=valinit)
par(mar=c(4,4,0.25,0.25))
plotfit(ajusMM, smooth=TRUE)

1.1.1 Estimation des paramètres

overview(ajusMM)
moy.nonlin <- summary(ajusMM)$coefficients[,"Estimate"]
SE.nonlin <- summary(ajusMM)$coefficients[,"Std. Error"]
ER.nonlin <- 100*qt(0.975, n-2)*SE.nonlin/moy.nonlin
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(0.69\) \([0.58 ; 0.79]\) \(ER = 15 \%\)
\(K_M\) \(0.60\) \([0.41 ; 0.73]\) \(ER = 32 \%\)

La corrélation entre \(v_{max}\) et \(K_M\) vaut 0.95 : elle est donc très forte ce qui laisse à penser que l’estimation des paramètres n’est pas très bonne.

1.1.2 Graphe des résidus

residus <- nlsResiduals(ajusMM)
par(mfrow=c(1,2), mar=c(4,4,3,0.25))
plot(residus, which=2)
plot(residus, which=6)

On observe une forte variabilité pour les faibles valeurs prédites.

1.2 Jeu de données no.2

library(nlstools)
dataMM2 <- read.table("dataMM2.txt", header=TRUE)
n <- nrow(dataMM2)
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=17, KM=41)
ajusMM <- nls(formula=modeleMM, data=dataMM2, start=valinit)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plotfit(ajusMM, smooth=TRUE)

1.2.1 Estimation des paramètres

overview(ajusMM)
moy.nonlin <- summary(ajusMM)$coefficients[,"Estimate"]
SE.nonlin <- summary(ajusMM)$coefficients[,"Std. Error"]
ER.nonlin <- 100*qt(0.975, n-2)*SE.nonlin/moy.nonlin
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(18.4\) \([17.2 ; 19.5]\) \(ER = 6 \%\)
\(K_M\) \(42.9\) \([37.6 ; 48.4]\) \(ER = 13 \%\)

La corrélation entre \(v_{max}\) et \(K_M\) vaut 0.94 : elle est donc très forte ce qui laisse à penser que l’estimation des paramètres n’est pas très bonne.

1.2.2 Graphe des résidus

residus <- nlsResiduals(ajusMM)
par(mfrow=c(1,2), mar=c(4,4,3,0.25))
plot(residus, which=2)
plot(residus, which=6)

Rien ne permet de rejeter le modèle.

1.3 Jeu de données no.3

library(nlstools)
dataMM3 <- read.table("dataMM3.txt", header=TRUE)
n <- nrow(dataMM3)
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=17, KM=41)
ajusMM <- nls(formula=modeleMM, data=dataMM3, start=valinit)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plotfit(ajusMM, smooth=TRUE)

1.3.1 Estimation des paramètres

overview(ajusMM)
moy.nonlin <- summary(ajusMM)$coefficients[,"Estimate"]
SE.nonlin <- summary(ajusMM)$coefficients[,"Std. Error"]
ER.nonlin <- 100*qt(0.975, n-2)*SE.nonlin/moy.nonlin
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(9.70\) \([8.56 ; 10.8]\) \(ER = 12 \%\)
\(K_M\) \(27.0\) \([15.4 ; 38.7]\) \(ER = 43 \%\)

La corrélation entre \(v_{max}\) et \(K_M\) vaut 0.88 : elle est donc très forte ce qui laisse à penser que l’estimation des paramètres n’est pas très bonne.

1.3.2 Graphe des résidus

residus <- nlsResiduals(ajusMM)
par(mfrow=c(1,2), mar=c(4,4,3,0.25))
plot(residus, which=2)
plot(residus, which=6)

Rien ne permet de rejeter le modèle, même si un des résidus est proche de la limite des extrêmes.

2 Transformation de Lineweaver & Burk

Le changement de variables est \(x = \frac{1}{[S]}\) et \(y = \frac{1}{v}\), ce qui conduit à la relation :

\[y = \frac{K_M}{v_\max} x + \frac{1}{v_\max}\]

2.1 Jeu de données no.1

dataMM1 <- read.table("dataMM1.txt", header=TRUE)
n <- nrow(dataMM1)
x <- 1/dataMM1$S
y <- 1/dataMM1$V
m <- lm(y ~ x)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plot(x, y)
abline(m, col="red")

2.1.1 Estimation des paramètres

summary(m)
confint(m)
moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
ER <- 100*qt(0.975, n-2)*SE/moy
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(\frac{1}{v_\max}\) \(1.70\) \([0.87 ; 2.6]\) \(ER = 49 \%\)
\(\frac{K_M}{v_\max}\) \(0.75\) \([0.54 ; 0.97]\) \(ER = 28 \%\)

2.1.2 Graphe des résidus

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
sigma <- sd(m$residuals)*n/(n-1) 
plot(fitted(m), residuals(m), las=1, ylim=c(-2.2*sigma,2.2*sigma), main="Residuals")
abline(h=0, col="blue")
abline(h=c(-2*sigma,2*sigma), lty=2, col="blue")
qqnorm(residuals(m))
qqline(residuals(m))

A l’inverse de ce que l’observait avec la régression non linéaire, la variabilité est plus grande pour les grandes valeurs prédites (on rappelle que \(y = 1/v\)). Sur le graphe des résidus, on observe un léger effet entonnoir. La droite de Henry montre une déviation par rapport à la normalité attendue.

2.1.3 Retour aux paramètres initiaux

moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
vmax <- 1/moy["(Intercept)"]
KM <- moy["x"]*vmax
SE.vmax <- SE["(Intercept)"]/moy["(Intercept)"]^2
SE.KM <- (moy["x"]/moy["(Intercept)"])*sqrt((SE["(Intercept)"]/moy["(Intercept)"])^2+(SE["x"]/moy["x"])^2)
vmax.inf <- vmax - qt(0.975, n-2)*SE.vmax
vmax.sup <- vmax + qt(0.975, n-2)*SE.vmax
KM.inf <- KM - qt(0.975, n-2)*SE.KM
KM.sup <- KM + qt(0.975, n-2)*SE.KM
ER.vmax <- 100*qt(0.975, n-2)*SE.vmax/vmax
ER.KM <- 100*qt(0.975, n-2)*SE.KM/KM
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(0.58\) \([0.30 ; 0.87]\) \(ER = 49 \%\)
\(K_M\) \(0.44\) \([0.19 ; 0.69]\) \(ER = 57 \%\)

2.1.4 Comparaison avec la régression non linéaire

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=0.5, KM=0.3)
ajusMM <- nls(formula=modeleMM, data=dataMM1, start=valinit)

# Dans le plan ([S], v)
plot(dataMM1$S, dataMM1$V, xlab="[S]", ylab="v", las=1, pch=19, main="Représentation directe", cex.main=0.75, xlim=c(0,max(dataMM1$S)), ylim=c(0,max(dataMM1$V)))
curve(coef(ajusMM)["vmax"]*x/(coef(ajusMM)["KM"]+x), from=0, to=max(dataMM1$S), add=TRUE)
curve(vmax*x/(KM+x), from=0, to=max(dataMM1$S), add=TRUE, lty=2)
legend("bottomright", legend=c("MM", "L&B"), lty=c(1,2), bty="n", cex=0.75)

# Dans le plan (1/[S], 1/v)
plot(1/dataMM1$S, 1/dataMM1$V, xlab="1/[S]", ylab="1/v", las=1, pch=19, 
     main="Représentation L&B", cex.main=0.75, xlim=c(0,max(1/dataMM1$S)), ylim=c(0,max(1/dataMM1$V)))
abline(a=1/coef(ajusMM)["vmax"], b=coef(ajusMM)["KM"]/coef(ajusMM)["vmax"])
abline(m, lty=2)
legend("bottomright", legend=c("MM", "L&B"), lty=c(1,2), bty="n", cex=0.75)

On constate une sous-estimation systématique avec la transformation linéaire de Lineweaver & Burk pour les grandes valeurs de \([S]\), c’est-à-dire quand on s’approche du plateau. Sur le graphe de droite, on voit clairement que le dernier point “tire” la droite de Lineweaver & Burk vers le bas.

De manière générale, la régression non linéaire sur le jeu de données no.1 permet une meilleure estimation des paramètres, malgré la forte corrélation. De plus, les hypothèses sous-jacentes au modèle concernant les résidus sont vérifiées, ce qui n’est pas le cas avec la transformation de Lineweaver & Burk.

2.2 Jeu de données no.2

dataMM2 <- read.table("dataMM2.txt", header=TRUE)
n <- nrow(dataMM2)
x <- 1/dataMM2$S
y <- 1/dataMM2$V
m <- lm(y ~ x)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plot(x, y)
abline(m, col="red")

2.2.1 Estimation des paramètres

summary(m)
confint(m)
moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
ER <- 100*qt(0.975, n-2)*SE/moy
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(\frac{1}{v_\max}\) \(0.06\) \([0.05 ; 0.07]\) \(ER = 17 \%\)
\(\frac{K_M}{v_\max}\) \(2.35\) \([2.26 ; 2.43]\) \(ER = 4 \%\)

2.2.2 Graphe des résidus

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
sigma <- sd(m$residuals)*n/(n-1) 
plot(fitted(m), residuals(m), las=1, ylim=c(-2.2*sigma,2.2*sigma), main="Residuals")
abline(h=0, col="blue")
abline(h=c(-2*sigma,2*sigma), lty=2, col="blue")
qqnorm(residuals(m))
qqline(residuals(m))

On observe un net effet entonnoir sur les résidus. Deux points dérogent nettement à la droite de Henry.

2.2.3 Retour aux paramètres initiaux

moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
vmax <- 1/moy["(Intercept)"]
KM <- moy["x"]*vmax
SE.vmax <- SE["(Intercept)"]/moy["(Intercept)"]^2
SE.KM <- (moy["x"]/moy["(Intercept)"])*sqrt((SE["(Intercept)"]/moy["(Intercept)"])^2+(SE["x"]/moy["x"])^2)
vmax.inf <- vmax - qt(0.975, n-2)*SE.vmax
vmax.sup <- vmax + qt(0.975, n-2)*SE.vmax
KM.inf <- KM - qt(0.975, n-2)*SE.KM
KM.sup <- KM + qt(0.975, n-2)*SE.KM
ER.vmax <- 100*qt(0.975, n-2)*SE.vmax/vmax
ER.KM <- 100*qt(0.975, n-2)*SE.KM/KM
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(17.8\) \([14.7 ; 20.9]\) \(ER = 17 \%\)
\(K_M\) \(41.8\) \([34.4 ; 49.2]\) \(ER = 18 \%\)

2.2.4 Comparaison avec la régression non linéaire

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=17, KM=41)
ajusMM <- nls(formula=modeleMM, data=dataMM2, start=valinit)

# Dans le plan ([S], v)
plot(dataMM2$S, dataMM2$V, xlab="[S]", ylab="v", las=1, pch=19, main="Représentation directe", cex.main=0.75, xlim=c(0,max(dataMM2$S)), ylim=c(0,max(dataMM2$V)))
curve(coef(ajusMM)["vmax"]*x/(coef(ajusMM)["KM"]+x), from=0, to=max(dataMM2$S), add=TRUE)
curve(vmax*x/(KM+x), from=0, to=max(dataMM2$S), add=TRUE, lty=2)
legend("bottomright", legend=c("MM", "L&B"), lty=c(1,2), bty="n", cex=0.75)

# Dans le plan (1/[S], 1/v)
plot(1/dataMM2$S, 1/dataMM2$V, xlab="1/[S]", ylab="1/v", las=1, pch=19, 
     main="Représentation L&B", cex.main=0.75, xlim=c(0,max(1/dataMM2$S)), ylim=c(0,max(1/dataMM2$V)))
abline(a=1/coef(ajusMM)["vmax"], b=coef(ajusMM)["KM"]/coef(ajusMM)["vmax"])
abline(m, lty=2)
legend("bottomright", legend=c("MM", "L&B"), lty=c(1,2), bty="n", cex=0.75)

La régression non linéaire donne de nouveau des estimations plus précises des paramètres (erreurs relatives plus faibles). Sur ce jeu de données, outre les hypothèses relatives aux résidus qui ne sont pas vérifiées et des erreurs relatives plus grandes, la transformation linéaire ne montre pas de problème visuel particulier : la répartition des points dans la gamme des valeurs de \([S]\) est plus adaptée que précédemment pour cette transformation linéaire en termes de tracé de courbes.

2.3 Jeu de données no.3

dataMM3 <- read.table("dataMM3.txt", header=TRUE)
n <- nrow(dataMM3)
x <- 1/dataMM3$S
y <- 1/dataMM3$V
m <- lm(y ~ x)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plot(x, y)
abline(m, col="red")

2.3.1 Estimation des paramètres

summary(m)
confint(m)
moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
ER <- 100*qt(0.975, n-2)*SE/moy
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(\frac{1}{v_\max}\) \(0.077\) \([0.049 ; 0.105]\) \(ER = 36 \%\)
\(\frac{K_M}{v_\max}\) \(4.42\) \([3.70 ; 5.13]\) \(ER = 16 \%\)

2.3.2 Graphe des résidus

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
sigma <- sd(m$residuals)*n/(n-1) 
plot(fitted(m), residuals(m), las=1, ylim=c(-2.2*sigma,2.2*sigma), main="Residuals")
abline(h=0, col="blue")
abline(h=c(-2*sigma,2*sigma), lty=2, col="blue")
qqnorm(residuals(m))
qqline(residuals(m))

Le problème majeur que présente ces résidus est celui de la non indépendance des résidus avec un motif “en triangle”, c’est-à-dire des résidus positifs au début puis négatifs puis enfin positifs.

2.3.3 Retour aux paramètres initiaux

moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
vmax <- 1/moy["(Intercept)"]
KM <- moy["x"]*vmax
SE.vmax <- SE["(Intercept)"]/moy["(Intercept)"]^2
SE.KM <- (moy["x"]/moy["(Intercept)"])*sqrt((SE["(Intercept)"]/moy["(Intercept)"])^2+(SE["x"]/moy["x"])^2)
vmax.inf <- vmax - qt(0.975, n-2)*SE.vmax
vmax.sup <- vmax + qt(0.975, n-2)*SE.vmax
KM.inf <- KM - qt(0.975, n-2)*SE.KM
KM.sup <- KM + qt(0.975, n-2)*SE.KM
ER.vmax <- 100*qt(0.975, n-2)*SE.vmax/vmax
ER.KM <- 100*qt(0.975, n-2)*SE.KM/KM
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(13.0\) \([8.31 ; 17.7]\) \(ER = 36 \%\)
\(K_M\) \(57.4\) \([34.7 ; 80.1]\) \(ER = 40 \%\)

2.3.4 Comparaison avec la régression non linéaire

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=13, KM=57)
ajusMM <- nls(formula=modeleMM, data=dataMM3, start=valinit)

# Dans le plan ([S], v)
plot(dataMM3$S, dataMM3$V, xlab="[S]", ylab="v", las=1, pch=19, main="Représentation directe", cex.main=0.75, xlim=c(0,max(dataMM3$S)), ylim=c(0,max(dataMM3$V)))
curve(coef(ajusMM)["vmax"]*x/(coef(ajusMM)["KM"]+x), from=0, to=max(dataMM3$S), add=TRUE)
curve(vmax*x/(KM+x), from=0, to=max(dataMM3$S), add=TRUE, lty=2)
legend("bottomright", legend=c("MM", "L&B"), lty=c(1,2), bty="n", cex=0.75)

# Dans le plan (1/[S], 1/v)
plot(1/dataMM3$S, 1/dataMM3$V, xlab="1/[S]", ylab="1/v", las=1, pch=19, 
     main="Représentation L&B", cex.main=0.75, xlim=c(0,max(1/dataMM3$S)), ylim=c(0,max(1/dataMM3$V)))
abline(a=1/coef(ajusMM)["vmax"], b=coef(ajusMM)["KM"]/coef(ajusMM)["vmax"])
abline(m, lty=2)
legend("bottomright", legend=c("MM", "L&B"), lty=c(1,2), bty="n", cex=0.75)

Très clairement la transformation linéaire, sur ce jeu de données no.3, n’arrive pas à modéliser le plateau. On voit très bien qu’un seul point “tire” toute la droite de L&B vers le haut.

La régression non linéaire, bien que meilleure que la transformation linéaire, ne permet une estimation précise de \(K_M\) : la répartition des points dans la gamme des valeurs de \([S]\) n’est pas adaptée pour bien estimer \(K_M\) : pas assez de points dans la zone de la courbure au regard du nombre de points au plateau.

2.4 Conclusion sur L&B

Globalement, la transformation de Lineweaver & Burk ne donne pas de bons résultats même si graphiquement avec le jeu de données no.2 on pourrait dire l’inverse. Outre les problèmes associés à l’analyse des résidus pour cette transformation, les erreurs relatives sont toujours très grandes et les estimations des paramètres loin de celles que l’on obtient en non linéaire. Il faut donc s’en méfier et privilégier l’utilisation de la régression non linéaire.

3 Transformation de Eadie et Hofstee

Le changement de variables est \(x = \frac{v}{[S]}\) et \(y = v\), ce qui conduit à la relation :

\[y = - K_M x + v_\max\]

Avec cette transformation, \(x\) n’est plus connu sans erreur du fait de sa définition impliquant \(v\).

3.1 Jeu de données no.1

dataMM1 <- read.table("dataMM1.txt", header=TRUE)
n <- nrow(dataMM1)
x <- dataMM1$V/dataMM1$S
y <- dataMM1$V
m <- lm(y ~ x)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plot(x, y)
abline(m, col="red")

3.1.1 Estimation des paramètres

summary(m)
confint(m)
moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
ER <- 100*qt(0.975, n-2)*SE/moy
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(-K_M\) \(-0.49\) \([-0.72 ; -0.26]\) \(ER = 47 \%\)
\(v_\max\) \(0.63\) \([0.46 ; 0.79]\) \(ER = 27 \%\)

3.1.2 Graphe des résidus

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
sigma <- sd(m$residuals)*n/(n-1) 
plot(fitted(m), residuals(m), las=1, ylim=c(-2.2*sigma,2.2*sigma), main="Residuals")
abline(h=0, col="blue")
abline(h=c(-2*sigma,2*sigma), lty=2, col="blue")
qqnorm(residuals(m))
qqline(residuals(m))

Le graphe des résidus montre un léger motif en triangle, c’est-à-dire avec des résidus positifs, puis négatifs et de nouveau positifs. Rien d’anormal sur le Q-Q plot.

3.1.3 Retour aux paramètres initiaux

moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
vmax <- moy["(Intercept)"]
KM <- -moy["x"]
SE.vmax <- SE["(Intercept)"]
SE.KM <- SE["x"]
vmax.inf <- vmax - qt(0.975, n-2)*SE.vmax
vmax.sup <- vmax + qt(0.975, n-2)*SE.vmax
KM.inf <- KM - qt(0.975, n-2)*SE.KM
KM.sup <- KM + qt(0.975, n-2)*SE.KM
ER.vmax <- 100*qt(0.975, n-2)*SE.vmax/vmax
ER.KM <- 100*qt(0.975, n-2)*SE.KM/KM
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(0.63\) \([0.46 ; 0.79]\) \(ER = 27 \%\)
\(K_M\) \(0.49\) \([0.26 ; 0.72]\) \(ER = 47 \%\)

Dans ce modèle, les paramètres estimés avec la régression linéaire et la régression non linéaire sont, au signe près, les mêmes. L’avantage c’est donc qu’on ne “paie pas le coût” de la transformation linéaire sur les intervalles de confiance à 95‰ sur les paramètres. L’inconvénient toutefois de cette transformation c’est que l’erreur sur la variable \(x\) (dépendante de \(v\)) n’est pas prise en compte ce qui engendre nécessairement un biais d’estimation.

3.1.4 Comparaison avec la régression non linéaire

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=0.5, KM=0.3)
ajusMM <- nls(formula=modeleMM, data=dataMM1, start=valinit)

# Dans le plan ([S], v)
plot(dataMM1$S, dataMM1$V, xlab="[S]", ylab="v", las=1, pch=19, main="Représentation directe", cex.main=0.75, xlim=c(0,max(dataMM1$S)), ylim=c(0,max(dataMM1$V)))
curve(coef(ajusMM)["vmax"]*x/(coef(ajusMM)["KM"]+x), from=0, to=max(dataMM1$S), add=TRUE)
curve(vmax*x/(KM+x), from=0, to=max(dataMM1$S), add=TRUE, lty=2)
legend("bottomright", legend=c("MM", "E&H"), lty=c(1,2), bty="n", cex=0.75)

# Dans le plan (v/[S], v)
plot(dataMM1$V/dataMM1$S, dataMM1$V, xlab="v/[S]", ylab="v", las=1, pch=19, 
     main="Représentation E&H", cex.main=0.75, xlim=c(0,max(dataMM1$V/dataMM1$S)), ylim=c(0,max(dataMM1$V)))
abline(a=coef(ajusMM)["vmax"], b=-coef(ajusMM)["KM"])
abline(m, lty=2)
legend("bottomleft", legend=c("MM", "E&H"), lty=c(1,2), bty="n", cex=0.75)

L’ajustement par régression non linéaire est meilleur, même si les deux prédictions sont proches. Pour ce jeu de données, la transformation de Eadie & Hofstee est meilleure que celle de Lineweaver & Burk.

3.2 Jeu de données no.2

dataMM2 <- read.table("dataMM2.txt", header=TRUE)
n <- nrow(dataMM2)
x <- dataMM2$V/dataMM2$S
y <- dataMM2$V
m <- lm(y ~ x)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plot(x, y)
abline(m, col="red")

3.2.1 Estimation des paramètres

summary(m)
confint(m)
moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
ER <- 100*qt(0.975, n-2)*SE/moy
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(-K_M\) \(-43.6\) \([-49.6 ; -37.6]\) \(ER = 14 \%\)
\(v_\max\) \(18.5\) \([16.7 ; 20.2]\) \(ER = 9 \%\)

3.2.2 Graphe des résidus

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
sigma <- sd(m$residuals)*n/(n-1) 
plot(fitted(m), residuals(m), las=1, ylim=c(-2.2*sigma,2.2*sigma), main="Residuals")
abline(h=0, col="blue")
abline(h=c(-2*sigma,2*sigma), lty=2, col="blue")
qqnorm(residuals(m))
qqline(residuals(m))

RAS sur le graphe des résidus et le Q-Q plot.

3.2.3 Retour aux paramètres initiaux

moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
vmax <- moy["(Intercept)"]
KM <- -moy["x"]
SE.vmax <- SE["(Intercept)"]
SE.KM <- SE["x"]
vmax.inf <- vmax - qt(0.975, n-2)*SE.vmax
vmax.sup <- vmax + qt(0.975, n-2)*SE.vmax
KM.inf <- KM - qt(0.975, n-2)*SE.KM
KM.sup <- KM + qt(0.975, n-2)*SE.KM
ER.vmax <- 100*qt(0.975, n-2)*SE.vmax/vmax
ER.KM <- 100*qt(0.975, n-2)*SE.KM/KM
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(18.5\) \([16.7 ; 20.2]\) \(ER = 9 \%\)
\(K_M\) \(43.6\) \([37.6 ; 49.6]\) \(ER = 14 \%\)

Comme précédemment, on estime directement les deux paramètres (au signe près pour \(K_M\)).

3.2.4 Comparaison avec la régression non linéaire

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=0.5, KM=0.3)
ajusMM <- nls(formula=modeleMM, data=dataMM2, start=valinit)

# Dans le plan ([S], v)
plot(dataMM2$S, dataMM2$V, xlab="[S]", ylab="v", las=1, pch=19, main="Représentation directe", cex.main=0.75, xlim=c(0,max(dataMM2$S)), ylim=c(0,max(dataMM2$V)))
curve(coef(ajusMM)["vmax"]*x/(coef(ajusMM)["KM"]+x), from=0, to=max(dataMM2$S), add=TRUE)
curve(vmax*x/(KM+x), from=0, to=max(dataMM2$S), add=TRUE, lty=2)
legend("bottomright", legend=c("MM", "E&H"), lty=c(1,2), bty="n", cex=0.75)

# Dans le plan (v/[S], v)
plot(dataMM2$V/dataMM2$S, dataMM2$V, xlab="v/[S]", ylab="v", las=1, pch=19, 
     main="Représentation E&H", cex.main=0.75, xlim=c(0,max(dataMM2$V/dataMM2$S)), ylim=c(0,max(dataMM2$V)))
abline(a=coef(ajusMM)["vmax"], b=-coef(ajusMM)["KM"])
abline(m, lty=2)
legend("bottomleft", legend=c("MM", "E&H"), lty=c(1,2), bty="n", cex=0.75)

On ne voit aucune différence graphique entre les deux ajustements ; sur la base de critère, la transformation de Eadie & Hofstee est bonne. Par contre, la régression non linéaire reste meilleure sur d’autres critères par exemple l’erreur relative sur le paramètre \(v_{max}\).

3.3 Jeu de données no.3

dataMM3 <- read.table("dataMM3.txt", header=TRUE)
n <- nrow(dataMM3)
x <- dataMM3$V/dataMM3$S
y <- dataMM3$V
m <- lm(y ~ x)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plot(x, y)
abline(m, col="red")

3.3.1 Estimation des paramètres

summary(m)
confint(m)
moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
ER <- 100*qt(0.975, n-2)*SE/moy
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(-K_M\) \(-30.8\) \([-45.3 ; -16.3]\) \(ER = 47 \%\)
\(v_\max\) \(9.91\) \([8.09 ; 11.7]\) \(ER = 18 \%\)

3.3.2 Graphe des résidus

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
sigma <- sd(m$residuals)*n/(n-1) 
plot(fitted(m), residuals(m), las=1, ylim=c(-2.2*sigma,2.2*sigma), main="Residuals")
abline(h=0, col="blue")
abline(h=c(-2*sigma,2*sigma), lty=2, col="blue")
qqnorm(residuals(m))
qqline(residuals(m))

On observe un résidu extrême, hors de l’intervalle \([- 2 \hat \sigma ; + 2 \hat \sigma]\), ainsi qu’un léger effet “triangle” avec des résidus négatifs au début et à la fin. A ces extrémités, les points dévient de la droite de Henry.

3.3.3 Retour aux paramètres initiaux

moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
vmax <- moy["(Intercept)"]
KM <- -moy["x"]
SE.vmax <- SE["(Intercept)"]
SE.KM <- SE["x"]
vmax.inf <- vmax - qt(0.975, n-2)*SE.vmax
vmax.sup <- vmax + qt(0.975, n-2)*SE.vmax
KM.inf <- KM - qt(0.975, n-2)*SE.KM
KM.sup <- KM + qt(0.975, n-2)*SE.KM
ER.vmax <- 100*qt(0.975, n-2)*SE.vmax/vmax
ER.KM <- 100*qt(0.975, n-2)*SE.KM/KM
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(9.91\) \([8.09 ; 11.7]\) \(ER = 18 \%\)
\(K_M\) \(30.8\) \([16.3 ; 45.3]\) \(ER = 47 \%\)

Comme précédemment, on estime directement les deux paramètres (au signe près pour \(K_M\)).

3.3.4 Comparaison avec la régression non linéaire

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=0.5, KM=0.3)
ajusMM <- nls(formula=modeleMM, data=dataMM3, start=valinit)

# Dans le plan ([S], v)
plot(dataMM3$S, dataMM3$V, xlab="[S]", ylab="v", las=1, pch=19, main="Représentation directe", cex.main=0.75, xlim=c(0,max(dataMM3$S)), ylim=c(0,max(dataMM3$V)))
curve(coef(ajusMM)["vmax"]*x/(coef(ajusMM)["KM"]+x), from=0, to=max(dataMM3$S), add=TRUE)
curve(vmax*x/(KM+x), from=0, to=max(dataMM3$S), add=TRUE, lty=2)
legend("bottomright", legend=c("MM", "E&H"), lty=c(1,2), bty="n", cex=0.75)

# Dans le plan (v/[S], v)
plot(dataMM3$V/dataMM3$S, dataMM3$V, xlab="v/[S]", ylab="v", las=1, pch=19, 
     main="Représentation E&H", cex.main=0.75, xlim=c(0,max(dataMM3$V/dataMM3$S)), ylim=c(0,max(dataMM3$V)))
abline(a=coef(ajusMM)["vmax"], b=-coef(ajusMM)["KM"])
abline(m, lty=2)
legend("bottomleft", legend=c("MM", "E&H"), lty=c(1,2), bty="n", cex=0.75)

Avec ce jeu de données, on voit une très légère différence entre les deux ajustements, plus marquée dans la représentation linéaire. La régression non linéaire reste meilleure, et de nouveau la transformation de Eadie & Hofstee est meilleure que la transformation de Lineweaver & Burk.

3.4 Conclusion sur E&H

Pour les trois jeux de données, la transformation de Eadie & Hofstee est meilleure que la transformation de Lineweaver & Burk. Elle est toujours assez proche de la régression non linéaire qui reste toujours meilleure que les transformations linéaires sur la base de l’ensemble des critères.

4 Transformation de Wilkinson

Le changement de variables est \(x = [S]\) et \(y = \frac{[S]}{v}\), ce qui conduit à la relation :

\[y = \frac{1}{v_\max} x + \frac{K_M}{v_\max}\]

On remarque que les paramètres sont les mêmes qu’avec la transformation de Lineweaver & Burk, mais en inversant pente et ordonnée à l’origine. La variable \(x\) est de nouveau connue sans erreur.

4.1 Jeu de données no.1

dataMM1 <- read.table("dataMM1.txt", header=TRUE)
n <- nrow(dataMM1)
x <- dataMM1$S
y <- dataMM1$S/dataMM1$V
m <- lm(y ~ x)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plot(x, y)
abline(m, col="red")

4.1.1 Estimation des paramètres

summary(m)
confint(m)
moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
ER <- 100*qt(0.975, n-2)*SE/moy
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(\frac{1}{v_\max}\) \(1.46\) \([1.23 ; 1.69]\) \(ER = 16 \%\)
\(\frac{K_M}{v_\max}\) \(0.85\) \([0.68 ; 1.02]\) \(ER = 19 \%\)

4.1.2 Graphe des résidus

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
sigma <- sd(m$residuals)*n/(n-1) 
plot(fitted(m), residuals(m), las=1, ylim=c(-2.2*sigma,2.2*sigma), main="Residuals")
abline(h=0, col="blue")
abline(h=c(-2*sigma,2*sigma), lty=2, col="blue")
qqnorm(residuals(m))
qqline(residuals(m))

Le graphe des résidus montre clairement un effet entonnoir.

4.1.3 Retour aux paramètres initiaux

moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
vmax <- 1/moy["x"]
KM <- moy["(Intercept)"]*vmax
SE.vmax <- SE.vmax <- SE["x"]/moy["x"]^2
SE.KM <- SE.KM <- (moy["(Intercept)"]/moy["x"])*sqrt((SE["x"]/moy["x"])^2+(SE["(Intercept)"]/moy["(Intercept)"])^2)
vmax.inf <- vmax - qt(0.975, n-2)*SE.vmax
vmax.sup <- vmax + qt(0.975, n-2)*SE.vmax
KM.inf <- KM - qt(0.975, n-2)*SE.KM
KM.sup <- KM + qt(0.975, n-2)*SE.KM
ER.vmax <- 100*qt(0.975, n-2)*SE.vmax/vmax
ER.KM <- 100*qt(0.975, n-2)*SE.KM/KM
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(0.69\) \([0.58 ; 0.79]\) \(ER = 16 \%\)
\(K_M\) \(0.58\) \([0.44 ; 0.73]\) \(ER = 25 \%\)

On note une amélioration de l’erreur relative sur \(K_M\), ce que l’on n’a observé sur aucun des jeux de données avec les deux autres transformations linéaires.

4.1.4 Comparaison avec la régression non linéaire

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=0.5, KM=0.3)
ajusMM <- nls(formula=modeleMM, data=dataMM1, start=valinit)

# Dans le plan ([S], v)
plot(dataMM1$S, dataMM1$V, xlab="[S]", ylab="v", las=1, pch=19, main="Représentation directe", cex.main=0.75, xlim=c(0,max(dataMM1$S)), ylim=c(0,max(dataMM1$V)))
curve(coef(ajusMM)["vmax"]*x/(coef(ajusMM)["KM"]+x), from=0, to=max(dataMM1$S), add=TRUE)
curve(vmax*x/(KM+x), from=0, to=max(dataMM1$S), add=TRUE, lty=2)
legend("bottomright", legend=c("MM", "W"), lty=c(1,2), bty="n", cex=0.75)

# Dans le plan ([S], [S]/v)
plot(dataMM1$S, dataMM1$S/dataMM1$V, xlab="[S]", ylab="S/v", las=1, pch=19, 
     main="Représentation Wilkinson", cex.main=0.75, xlim=c(0,max(dataMM1$S)), ylim=c(0,max(dataMM1$S/dataMM1$V)))
abline(a=coef(ajusMM)["KM"]/coef(ajusMM)["vmax"], b=1/coef(ajusMM)["vmax"])
abline(m, lty=2)
legend("bottomright", legend=c("MM", "W"), lty=c(1,2), bty="n", cex=0.75)

Les deux prédictions se superposent, et ce, dans les deux représentations. La transformation de Wilkinson donne des résultats de qualité équivalente à ceux de la régression non linéaire (excepté le graphe en entonnoir des résidus), et cette transformation est meilleure que les deux précédentes.

4.2 Jeu de données no.2

dataMM2 <- read.table("dataMM2.txt", header=TRUE)
n <- nrow(dataMM2)
x <- dataMM2$S
y <- dataMM2$S/dataMM2$V
m <- lm(y ~ x)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plot(x, y)
abline(m, col="red")

4.2.1 Estimation des paramètres

summary(m)
confint(m)
moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
ER <- 100*qt(0.975, n-2)*SE/moy
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(\frac{1}{v_\max}\) \(0.054\) \([0.051 ; 0.057]\) \(ER = 6 \%\)
\(\frac{K_M}{v_\max}\) \(2.4\) \([2.2 ; 2.5]\) \(ER = 6 \%\)

4.2.2 Graphe des résidus

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
sigma <- sd(m$residuals)*n/(n-1) 
plot(fitted(m), residuals(m), las=1, ylim=c(-2.2*sigma,2.2*sigma), main="Residuals")
abline(h=0, col="blue")
abline(h=c(-2*sigma,2*sigma), lty=2, col="blue")
qqnorm(residuals(m))
qqline(residuals(m))

RAS sur le graphe des résidus et le Q-Q plot.

4.2.3 Retour aux paramètres initiaux

moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
vmax <- 1/moy["x"]
KM <- moy["(Intercept)"]*vmax
SE.vmax <- SE.vmax <- SE["x"]/moy["x"]^2
SE.KM <- SE.KM <- (moy["(Intercept)"]/moy["x"])*sqrt((SE["x"]/moy["x"])^2+(SE["(Intercept)"]/moy["(Intercept)"])^2)
vmax.inf <- vmax - qt(0.975, n-2)*SE.vmax
vmax.sup <- vmax + qt(0.975, n-2)*SE.vmax
KM.inf <- KM - qt(0.975, n-2)*SE.KM
KM.sup <- KM + qt(0.975, n-2)*SE.KM
ER.vmax <- 100*qt(0.975, n-2)*SE.vmax/vmax
ER.KM <- 100*qt(0.975, n-2)*SE.KM/KM
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(18.5\) \([17.5 ; 19.6]\) \(ER = 6 \%\)
\(K_M\) \(43.9\) \([40.4 ; 47.5]\) \(ER = 8 \%\)

On note de nouveau une amélioration de l’erreur relative sur \(K_M\).

4.2.4 Comparaison avec la régression non linéaire

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=17, KM=41)
ajusMM <- nls(formula=modeleMM, data=dataMM2, start=valinit)

# Dans le plan ([S], v)
plot(dataMM2$S, dataMM2$V, xlab="[S]", ylab="v", las=1, pch=19, main="Représentation directe", cex.main=0.75, xlim=c(0,max(dataMM2$S)), ylim=c(0,max(dataMM2$V)))
curve(coef(ajusMM)["vmax"]*x/(coef(ajusMM)["KM"]+x), from=0, to=max(dataMM2$S), add=TRUE)
curve(vmax*x/(KM+x), from=0, to=max(dataMM2$S), add=TRUE, lty=2)
legend("bottomright", legend=c("MM", "W"), lty=c(1,2), bty="n", cex=0.75)

# Dans le plan ([S], [S]/v)
plot(dataMM2$S, dataMM2$S/dataMM2$V, xlab="[S]", ylab="S/v", las=1, pch=19, 
     main="Représentation Wilkinson", cex.main=0.75, xlim=c(0,max(dataMM2$S)), ylim=c(0,max(dataMM2$S/dataMM2$V)))
abline(a=coef(ajusMM)["KM"]/coef(ajusMM)["vmax"], b=1/coef(ajusMM)["vmax"])
abline(m, lty=2)
legend("bottomright", legend=c("MM", "W"), lty=c(1,2), bty="n", cex=0.75)

De nouveau les prédictions sont confondues, et avec ce jeu de données, la transformation de Wilkinson apparaît meilleure que la régression non linéaire : pas de défaut sur les résidus, une erreur relative plus petite sur \(K_M\).

4.3 Jeu de données no.3

dataMM3 <- read.table("dataMM3.txt", header=TRUE)
n <- nrow(dataMM3)
x <- dataMM3$S
y <- dataMM3$S/dataMM3$V
m <- lm(y ~ x)
par(mfrow=c(1,1), mar=c(4,4,0.25,0.25))
plot(x, y)
abline(m, col="red")

4.3.1 Estimation des paramètres

summary(m)
confint(m)
moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
ER <- 100*qt(0.975, n-2)*SE/moy
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(\frac{1}{v_\max}\) \(0.104\) \([0.0935 ; 0.116]\) \(ER = 11 \%\)
\(\frac{K_M}{v_\max}\) \(2.88\) \([1.74 ; 4.03]\) \(ER = 40 \%\)

4.3.2 Graphe des résidus

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
sigma <- sd(m$residuals)*n/(n-1) 
plot(fitted(m), residuals(m), las=1, ylim=c(-2.2*sigma,2.2*sigma), main="Residuals")
abline(h=0, col="blue")
abline(h=c(-2*sigma,2*sigma), lty=2, col="blue")
qqnorm(residuals(m))
qqline(residuals(m))

Le graphe des résidus montre un motif en triangle, avec des résidus positifs, puis négatifs, puis positif de nouveau. Trois points sont éloignés de la droite de Henry.

4.3.3 Retour aux paramètres initiaux

moy <- summary(m)$coefficients[,"Estimate"]
SE <- summary(m)$coefficients[,"Std. Error"]
vmax <- 1/moy["x"]
KM <- moy["(Intercept)"]*vmax
SE.vmax <- SE.vmax <- SE["x"]/moy["x"]^2
SE.KM <- SE.KM <- (moy["(Intercept)"]/moy["x"])*sqrt((SE["x"]/moy["x"])^2+(SE["(Intercept)"]/moy["(Intercept)"])^2)
vmax.inf <- vmax - qt(0.975, n-2)*SE.vmax
vmax.sup <- vmax + qt(0.975, n-2)*SE.vmax
KM.inf <- KM - qt(0.975, n-2)*SE.KM
KM.sup <- KM + qt(0.975, n-2)*SE.KM
ER.vmax <- 100*qt(0.975, n-2)*SE.vmax/vmax
ER.KM <- 100*qt(0.975, n-2)*SE.KM/KM
Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
\(v_{max}\) \(9.6\) \([8.6 ; 10.6]\) \(ER = 11 \%\)
\(K_M\) \(27.6\) \([16.2 ; 38.9]\) \(ER = 41 \%\)

Cette fois-ci, sur ce jeu de données, l’amélioration de l’erreur relative sur \(K_M\) est moindre.

4.3.4 Comparaison avec la régression non linéaire

par(mfrow=c(1,2), mar=c(4,4,3,0.25))
modeleMM <- as.formula("V ~ vmax * S/(KM + S)")
valinit <- list(vmax=17, KM=41)
ajusMM <- nls(formula=modeleMM, data=dataMM3, start=valinit)

# Dans le plan ([S], v)
plot(dataMM3$S, dataMM3$V, xlab="[S]", ylab="v", las=1, pch=19, main="Représentation directe", cex.main=0.75, xlim=c(0,max(dataMM3$S)), ylim=c(0,max(dataMM3$V)))
curve(coef(ajusMM)["vmax"]*x/(coef(ajusMM)["KM"]+x), from=0, to=max(dataMM3$S), add=TRUE)
curve(vmax*x/(KM+x), from=0, to=max(dataMM3$S), add=TRUE, lty=2)
legend("bottomright", legend=c("MM", "W"), lty=c(1,2), bty="n", cex=0.75)

# Dans le plan ([S], [S]/v)
plot(dataMM3$S, dataMM3$S/dataMM3$V, xlab="[S]", ylab="S/v", las=1, pch=19, 
     main="Représentation Wilkinson", cex.main=0.75, xlim=c(0,max(dataMM3$S)), ylim=c(0,max(dataMM3$S/dataMM3$V)))
abline(a=coef(ajusMM)["KM"]/coef(ajusMM)["vmax"], b=1/coef(ajusMM)["vmax"])
abline(m, lty=2)
legend("bottomright", legend=c("MM", "W"), lty=c(1,2), bty="n", cex=0.75)

Sur ce jeu de données no.3, les deux prédictions ne sont pas confondues, mais la différence est très faible. La transformation de Wilkinson présente des défaut pour l’analyse des résidus mais donne une estimation de \(K_M\) plus précise que la régression non linéaire.

4.4 Conclusion sur Wilkinson

La transformation de Wilkinson s’est avérée très performante avec les trois jeux de données. malgré quelques défaut sur les résidus (jeux de données 1 et 3), elle a toujours fourni des estimations plus précises des paramètres, notamment de \(K_M\). Sur la base des ces résultats, on ne peut pas dire que la régression non linéaire est meilleure.

5 Synthèse des résultats

5.1 Classement par type de régression

Régression Jeu de données Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
Non linéaire no.1 \(v_{max}\) \(0.69\) \([0.58 ; 0.79]\) \(ER = 15 \%\)
Non linéaire no.1 \(K_M\) \(0.60\) \([0.41 ; 0.73]\) \(ER = 32 \%\)
Non linéaire no.2 \(v_{max}\) \(18.4\) \([17.2 ; 19.5]\) \(ER = 6 \%\)
Non linéaire no.2 \(K_M\) \(42.9\) \([37.6 ; 48.4]\) \(ER = 13 \%\)
Non linéaire no.3 \(v_{max}\) \(9.70\) \([8.56 ; 10.8]\) \(ER = 12 \%\)
Non linéaire no.3 \(K_M\) \(27.0\) \([15.4 ; 38.7]\) \(ER = 43 \%\)
Lineweaver & Burk no.1 \(v_{max}\) \(0.58\) \([0.30 ; 0.87]\) \(ER = 49 \%\)
Lineweaver & Burk no.1 \(K_M\) \(0.44\) \([0.19 ; 0.69]\) \(ER = 57 \%\)
Lineweaver & Burk no.2 \(v_{max}\) \(17.8\) \([14.7 ; 20.9]\) \(ER = 17 \%\)
Lineweaver & Burk no.2 \(K_M\) \(41.8\) \([34.4 ; 49.2]\) \(ER = 18 \%\)
Lineweaver & Burk no.3 \(v_{max}\) \(13.0\) \([8.31 ; 17.7]\) \(ER = 36 \%\)
Lineweaver & Burk no.3 \(K_M\) \(57.4\) \([34.7 ; 80.1]\) \(ER = 40 \%\)
Eadie & Hofstee no.1 \(v_{max}\) \(0.63\) \([0.46 ; 0.79]\) \(ER = 27 \%\)
Eadie & Hofstee no.1 \(K_M\) \(0.49\) \([0.26 ; 0.72]\) \(ER = 47 \%\)
Eadie & Hofstee no.2 \(v_{max}\) \(18.5\) \([16.7 ; 20.2]\) \(ER = 9 \%\)
Eadie & Hofstee no.2 \(K_M\) \(43.6\) \([37.6 ; 49.6]\) \(ER = 14 \%\)
Eadie & Hofstee no.3 \(v_{max}\) \(9.91\) \([8.09 ; 11.7]\) \(ER = 18 \%\)
Eadie & Hofstee no.3 \(K_M\) \(30.8\) \([16.3 ; 45.3]\) \(ER = 47 \%\)
Wilkinson no.1 \(v_{max}\) \(0.69\) \([0.58 ; 0.79]\) \(ER = 16 \%\)
Wilkinson no.1 \(K_M\) \(0.58\) \([0.44 ; 0.73]\) \(ER = 25 \%\)
Wilkinson no.2 \(v_{max}\) \(18.5\) \([17.5 ; 19.6]\) \(ER = 6 \%\)
Wilkinson no.2 \(K_M\) \(43.9\) \([40.4 ; 47.5]\) \(ER = 8 \%\)
Wilkinson no.3 \(v_{max}\) \(9.6\) \([8.6 ; 10.6]\) \(ER = 11 \%\)
Wilkinson no.3 \(K_M\) \(27.6\) \([16.2 ; 38.9]\) \(ER = 41 \%\)

5.2 Classement par jeu de données

Régression Jeu de données Paramètre Moyenne Intervalle de confiance à 95% Erreur relative
Non linéaire no.1 \(v_{max}\) \(0.69\) \([0.58 ; 0.79]\) \(ER = 15 \%\)
Lineweaver & Burk no.1 \(v_{max}\) \(0.58\) \([0.30 ; 0.87]\) \(ER = 49 \%\)
Eadie & Hofstee no.1 \(v_{max}\) \(0.63\) \([0.46 ; 0.79]\) \(ER = 27 \%\)
Wilkinson no.1 \(v_{max}\) \(0.69\) \([0.58 ; 0.79]\) \(ER = 16 \%\)
Non linéaire no.1 \(K_M\) \(0.60\) \([0.41 ; 0.73]\) \(ER = 32 \%\)
Lineweaver & Burk no.1 \(K_M\) \(0.44\) \([0.19 ; 0.69]\) \(ER = 57 \%\)
Eadie & Hofstee no.1 \(K_M\) \(0.49\) \([0.26 ; 0.72]\) \(ER = 47 \%\)
Wilkinson no.1 \(K_M\) \(0.58\) \([0.44 ; 0.73]\) \(ER = 25 \%\)
Non linéaire no.2 \(v_{max}\) \(18.4\) \([17.2 ; 19.5]\) \(ER = 6 \%\)
Lineweaver & Burk no.2 \(v_{max}\) \(17.8\) \([14.7 ; 20.9]\) \(ER = 17 \%\)
Eadie & Hofstee no.2 \(v_{max}\) \(18.5\) \([16.7 ; 20.2]\) \(ER = 9 \%\)
Wilkinson no.2 \(v_{max}\) \(18.5\) \([17.5 ; 19.6]\) \(ER = 6 \%\)
Non linéaire no.2 \(K_M\) \(42.9\) \([37.6 ; 48.4]\) \(ER = 13 \%\)
Lineweaver & Burk no.2 \(K_M\) \(41.8\) \([34.4 ; 49.2]\) \(ER = 18 \%\)
Eadie & Hofstee no.2 \(K_M\) \(43.6\) \([37.6 ; 49.6]\) \(ER = 14 \%\)
Wilkinson no.2 \(K_M\) \(43.9\) \([40.4 ; 47.5]\) \(ER = 8 \%\)
Non linéaire no.3 \(v_{max}\) \(9.70\) \([8.56 ; 10.8]\) \(ER = 12 \%\)
Lineweaver & Burk no.3 \(v_{max}\) \(13.0\) \([8.31 ; 17.7]\) \(ER = 36 \%\)
Eadie & Hofstee no.3 \(v_{max}\) \(9.91\) \([8.09 ; 11.7]\) \(ER = 18 \%\)
Wilkinson no.3 \(v_{max}\) \(9.6\) \([8.6 ; 10.6]\) \(ER = 11 \%\)
Non linéaire no.3 \(K_M\) \(27.0\) \([15.4 ; 38.7]\) \(ER = 43 \%\)
Lineweaver & Burk no.3 \(K_M\) \(57.4\) \([34.7 ; 80.1]\) \(ER = 40 \%\)
Eadie & Hofstee no.3 \(K_M\) \(30.8\) \([16.3 ; 45.3]\) \(ER = 47 \%\)
Wilkinson no.3 \(K_M\) \(27.6\) \([16.2 ; 38.9]\) \(ER = 41 \%\)

5.3 Conclusion

On constate que la transformation de Lineweaver & Burk donne des résultats assez différents des trois autres types de régression. Considérant que les paramètres sont estimés de façon moins précise, on peut en conclure que la transformation de Lineweaver & Burk est à exclure dans tous les cas.

Concernant les deux autres transformations, celle de Wilkinson semble la meilleure. Toutefois, si on revient sur l’analyse des résidus dans chacun des cas, on conclura toujours que la régression non linéaire est la meilleure façon de faire, quel que soit le jeu de données. Pour aller dans ce sens, on peut se remémorer l’écriture du modèle initial :

\[ y_{i} \sim \mathcal{N}(v(x_{i}), \sigma) \Leftrightarrow y_{i} = v(x_{i}) + \varepsilon_{i} \]

Toutes les transformations linéaires que nous avons vues ne concernaient que la partie déterministe du modèle (c’est-à-dire \(v(x_i)\)), et pas du tout la partie stochastique (représentée par \(\sigma)\).