Plans d'expériences avec R

Les plans d'expérience permettent de déterminer les meilleurs paramétrages à réaliser pour en un minimum d'expérience.

Exemple : comment déterminer la meilleure recette d'un gâteau sans avoir à tester toutes les proportions possibles de farine/sucre/sel/levure/fruits...

L'essentiel de cette page !

La fonction pde() permet de réaliser très rapidement une analyse sur des expériences où 2 paramètres ont varié. 

Cette fonction a été réalisée en partenariat avec Marwa Brahim et Julien Bousquet.

Cette fonction est à copier-coller telle quelle puis à utiliser.

Des versions futures devraient permettre de travailler avec un nombre "infini" de paramètres.


ATTENTION !

Avez-vous vérifié que vous avez au MINIMUM 6 combinaisons uniques (x,y) et que chaque variable x ou y dispose bien de MINIMUM 3 modalités ?

Plans d'expérience réalisés avec la version 01 de pde() R programming language langage

Etape 1 - Installer fonction pde() - VERSION 03 - 2020.01 (avec débogage) avec la librairie {KefiR}

install.packages("remotes") ; require(remotes)

remotes::install_github("Antoine-Masse/KefiR",force=TRUE)

# Répondre à la question (ou CRAN (2) ou None (3)).

# Relancer en répondant(1) si rien ne marche

# Charger la librairie {KefiR} sa fonction pde()

library("KefiR")

Étape 2 -Tracer

Les paramètres de la fonction pde()

Étape 2.1 - Tracez le graphique en mode 1 et déterminer le couple (x,y) qui donnera la meilleure note z potentiellement

Remarque importante : x et y (x1 et y1) doivent être décorrélés ! sinon BUG !

On peut vérifier que tout va bien avec :

cor(x1,y1)$p.value # doit être supérieur à 0,05 idéalement.

# Exemple

x1   <- c(0,2,3,4,5,6)  ; # sucre

y1   <- c(0,2,1,0,4,4)  ;  # sel

hedo <- c(0,3,3,2,0,0)  ; # note hédonique obtenue en goûtant le produit


pde(x1,y1,hedo,xlab="Sucre",ylab="Sel",zlab="Note hédonique",main="Optimisation d'une recette",dim=30,mode=1)

# main : titre

# xlab, ylab, zlabs : titre des axes

# col : une liste de couleurs qui donne le gradient de couleur (par défaut du bleu vers le rouge)

# dim : la finesse de la nappe : valeur élevée = nappe lissée (par défaut 45)

Autre exemple :

a   <- c(0,20,35,45,60,0,10,32,28,0,25)  

b   <- c(0,2,1,0,8,4,3,3,0,2,4)  

c <- c(0,3,3,0,0,-1,3,5,0,0,0) 

pde(a,b,c, col=c("blue","red"))

Plan d'expérience réalisé avec R

Étape 2.2 - Tracez le graphique en mode 2

# Exemple

x1   <- c(0,2,3,4,4,0,1,3,2,0,2)  ; # sucre

y1   <- c(0,2,1,0,4,4,3,3,0,2,4)  ;  # sel

hedo <- c(0,3,3,0,0,0,3,5,0,0,0)  ; # note hédonique obtenue en goûtant le produit


pde(x1,y1,hedo,xlab="Sucre",mode=2,pch=c(10:16),alpha=0.5,

ylab="Sel",zlab="Note hédonique",main="Optimisation d'une recette",dim=50)

Remarques et problèmes :

Si il y a un message d'erreur lorsque vous exécutez la commande pde, il va t'afficher tout un charabia dont une/deux lignes qui ressemble(nt) à cela :

Error in shell.exec(url) : 

  access to 'C:\Users\masse\AppData\Local\Temp\RtmpicjHOk\viewhtml112035ce193e/index.html' denied

Il suffit de copier l'adresse C:\Users\etc\index.html et de la coller dans la barre d'adresse d'internet explorer et ça marchera tout seul !

Débuggage :

Le mode 3 de la fonction permet de ne pas afficher le graphique et de juste contrôler la régression, cela plus rapidement.

Attention !

Le paramètre pch n'est pas disponible pour les graphiques 3D réalisés avec la librairie de R. On peut ajouter des paramétrages plus complexes type symbol="diamond" ou symbol = "circle" (à implémenter soi-même dans la comme add_trace.


Ajouter des segments en mode 1 !

On peut ajouter des segments en ajoutant la commande 

add_segments(x = xy.max$x, xend = xy.max$x, y = xy.max$y, yend = xy.max$y, z = max, zend = 0) bien configurée précédée à la ligne d'avant de  %>%