Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Générer un plan d'expériences d'ordre 1 : **`FrF2`** :Objectifs Générer un plan d'expérience d'odre 1 (plan factoriel complet ou plan factoriel fractionnaire à deux niveaux) Les plans d'expériences d’ordre 1 à deux niveaux permettant d'étudier k facteurs (plan factoriel complet $2^k$ ou plan factoriel fractionnaire $2^{k-p}$) peuvent être générés à l'aide de la commande `FrF2()` du package du même nom. Cette commande `FrF2()` permet de trouver, parmi un catalogue de plans, celui qui sera le plus adapté au cas à étudier. Il faut donc faire attention à ne pas surdéfinir le plan ce qui rendrait la recherche du plan voulu infructueuse. Le tableau ci-dessous regroupe les principaux arguments qu'admet cette commande | Rôle | Argument | Remarques | Rôle |Argument | Remarques | |-------------|-----------|------------|-------------|-------------|-----------| |nombre d'essais|nruns|[ici](#nruns) | Nombre de facteurs à étudier|nfactors| [ici](#nfactors)| |Nom des facteurs à étudier|factor.names| [ici](#factornames) |Niveaux pris par les facteurs|default.levels| [ici](#default-levels) | |Nombre de points au centre|ncenter| [ici](#ncenter)|Répartition des points au centre dans le plan|center.distribute| [ici](#centerdistribute) | |Aléa à utiliser pour la randomisation|seed| [ici](#seed) |Nombre de répétitions du plan|Replications|[ici](#replications) | |Randomisation du plan|randomize| [ici](#randomize) |Nombre de blocs du plan|blocks| [ici](#blocks)| |Alias initiaux|generators| [ici](#generators) |Type de résolution minimale souhaitée|resolution| [ici](#resolution) | :Aide{#nruns, toggle=popup, title-display=hidden} nruns doit être égal à ${2^k}$ avec k le nombre de facteurs à étudier (nfactors) dans le cas d'un plan factoriel complet et à $2^{k-p}$ dans le cas d'un plan factoriel fractionnaire avec k le nombre de facteurs à étudier et p le nombre d'alias initiaux. :Aide{#nfactors, toggle=popup, title-display=hidden} k du type de plan ${2^k}$ ou ${2^{k-p}}$ :Aide{#factornames, toggle=popup, title-display=hidden} Par défaut les facteurs sont nommés selon l'ordre alphabétique (A, B, C...). Si l'on veut nommer les facteurs différemment, il faut indiquer ces noms sous la forme factor.names=c("nom_du_facteur1"," nom_du_facteur2","..."} :Aide{#default-levels, toggle=popup, title-display=hidden} Vecteur de longueur 2 contenant les niveaux pris par les facteurs. Par défaut, les niveaux sont -1 et +1. :Aide{#ncenter, toggle=popup, title-display=hidden} Nombre de points au centre à inclure dans le plan. :Remarque{#ncenterquali} Tous les facteurs doivent être quantitatifs pour pouvoir introduire des points au centre. :Aide{#centerdistribute, toggle=popup, title-display=hidden} Permet de définir la position des points au centre dans le plan. Par défaut (=NULL). * pour les plans randomisés : les points au centre sont répartis (dans cet ordre) à la fin, au début et au milieu du bloc. * pour les plans non randomisés : tous les points au centre sont à la fin. :Aide{#generators, toggle=popup, title-display=hidden} Permet de définir les alias initiaux définissant le plan fractionnaire recherché. Les facteurs principaux utilisés pour définir les alias initiaux sont obligatoirement les derniers de la liste des facteurs, les k-p premiers facteurs définissant la matrice de base. p "generators" doivent être définis pour un plan fractionnaire de type ${2^{k-p}}$: * soit via une liste de vecteurs numériques listant les différentes interactions à aliaser via le numéro des facteurs intervenant dans cette interaction * soit via une liste de vecteurs de type "character"; :Remarque Cette méthode ne fonctionne qu'avec les noms standards des facteurs. :Remarque Malgré le nom `generators` ce sont les alias initiaux qui sont indiqués et non les générateurs d'alias. :Exemple{#exaliases} Un plan $2^{6-3}$ visant à étudier 6 facteurs (A, B, C, D, E, F), défini par les alias initiaux (F=ABC et E=AB et D=BC), serait défini à l'aide de l'argument : * Soit **generators=list(c(2,3),c(1,2),c(1,2,3))** car on définit d'abord D = BC ; soit (2,3), puis E=AB ; soit (1,2), puis F=ABC; soit (1,2,3). * Soit **generators=c("BC", "AB", "ABC")**, car on définit d'abord D, puis E, puis F. :Remarque{#limgene} **Limites à l'utilisation des alias**: Un plan $2^{5-2}$ visant à étudier 5 facteurs (A, B, C, D, E), défini par les alias initiaux (B=ACD et E=CD), ne peut être généré directement. Il faudrait modifier les facteurs de sorte que A, C et D soient les 3 premiers facteurs de la matrice. :Aide{#resolution, toggle=popup, title-display=hidden} Type de résolution minimale souhaitée pour le plan fractionnaire (en chiffre arabe) :Remarque Les différents niveaux de résolution possibles répondent aux définitions suivantes : * Plan de résolution III - Effets principaux aliasés aux interactions à deux facteurs ; * Plan de résolution IV - Effets principaux aliasés aux interactions à plus de deux facteur et les interactions à deux facteurs sont aliasées entre elles ; * Plan de résolution V - Effets principaux aliasés aux interactions à plus de deux facteurs et les interactions à deux facteurs ne sont pas aliasées entre elles. :Aide{#seed, toggle=popup, title-display=hidden} Nombre entier définissant la randomisation (peut être utile pour générer à nouveau le plan avec le même aléa) :Aide{#replications, toggle=popup, title-display=hidden} Nombre de répétitions du plan souhaité (par défaut replications = 1 ; chaque expérience est réalisée une fois). Pour les plans répétés, par défaut, les répétitions du plan sont séparées dans des blocs différents (on réalise d'abord une première fois toutes les expériences puis on répète chaque expérience une seconde fois etc. jusqu'à avoir réalisé le nombre de répétitions voulues) En ajoutant l'argument repeat.only=TRUE, les répétitions sont groupées (les X répétitions de chaque expérience sont réalisées l'une après l'autre). :Exemple{#repeatonly} Exemple pour un plan $2^{2}$ répété 3 fois Répétition séparées (option par défaut) ```r FrF2(nruns=4, nfactors=2, replications=3) ``` ``` ## creating full factorial with 4 runs ... ``` ``` ## run.no run.no.std.rp A B Blocks ## 1 1 4.1 1 1 .1 ## 2 2 2.1 1 -1 .1 ## 3 3 3.1 -1 1 .1 ## 4 4 1.1 -1 -1 .1 ## 5 5 3.2 -1 1 .2 ## 6 6 4.2 1 1 .2 ## 7 7 1.2 -1 -1 .2 ## 8 8 2.2 1 -1 .2 ## 9 9 4.3 1 1 .3 ## 10 10 1.3 -1 -1 .3 ## 11 11 2.3 1 -1 .3 ## 12 12 3.3 -1 1 .3 ## class=design, type= full factorial ## NOTE: columns run.no and run.no.std.rp are annotation, ## not part of the data frame ``` Répétitions groupées (repeat.only=TRUE) ```r FrF2(nruns=4, nfactors=2, replications=3, repeat.only=TRUE) ``` ``` ## creating full factorial with 4 runs ... ``` ``` ## run.no run.no.std.rp A B ## 1 1 3.1 -1 1 ## 2 2 3.2 -1 1 ## 3 3 3.3 -1 1 ## 4 4 2.1 1 -1 ## 5 5 2.2 1 -1 ## 6 6 2.3 1 -1 ## 7 7 4.1 1 1 ## 8 8 4.2 1 1 ## 9 9 4.3 1 1 ## 10 10 1.1 -1 -1 ## 11 11 1.2 -1 -1 ## 12 12 1.3 -1 -1 ## class=design, type= full factorial ## NOTE: columns run.no and run.no.std.rp are annotation, ## not part of the data frame ``` :Aide{#randomize, toggle=popup, title-display=hidden} Si randomize = TRUE, le plan est randomisé (valeur par défaut). Si randomize = FALSE, le plan n'est pas randomisé. :Remarque Chaque fois que la commande de création du plan est exécutée, l'aléa de randomisation est différent. Il est donc recommandé de fixer cet aléa à l'aide de l'option [seed](#seed). :Aide{#blocks, toggle=popup, title-display=hidden} Nombre de blocs pour la subdivision du plan :Remarque D'autre options peuvent être utilisées pour définir le blocking (manière dont sont construit les différents blocs) du plan ; ces options sont décrites dans l'aide de la commande. :Remarque{#2k} Pour définir un plan factoriel complet $2^k$ avec FrF2, il faut définir le nombre de facteurs (k) et le nombre d'essais $2^k$. :Remarque : Connaître les alias {#t2kp3, toggle=collapse} La commande `design.info()` permet (entre autres) de connaître l'ensemble des alias. Cette commande se construit sous la forme design.info(nom_du_plan). Pour avoir spécifiquement accès aux : * alias (facteurs principaux et interactions d'ordre 1) ```r design.info(nom_du_plan)$aliased ``` * alias des facteurs principaux ```r design.info(nom_du_plan)$aliased$main ``` * alias des interactions d'ordre 1 ```r design.info(nom_du_plan)$aliased$fi2 ``` * alias initiaux employés (`generators`) ```r design.info(nom_du_plan)$generators ``` :Exemple : Plan factoriel complet {#faccplet, toggle=collapse} **Générer un plan factoriel complet** Le plan nommé plan2 de type $2^{3}$ permettant d'étudier les facteurs temps (A), température (B) et agitation (C), non randomisé, sans points au centre et répété 2 fois, est généré par les commandes : ```r library(FrF2) ``` ```r plan2<-FrF2(nruns=8, nfactors=3, factor.names=c("temps", "temperature","agitation"), randomize=FALSE, replications=2) ``` ``` ## creating full factorial with 8 runs ... ``` Le plan ainsi généré correspond à la matrice des essais. La colonne run.no (première colonne) correspond au numéro de l'essai, run.no.std.rp (troisième colonne) correspond au numéro de l'essai selon la matrice standard (non randomisée) et au numéro de la répétition. Ainsi l'indication 6.2 obtenue dans la colonne run.no.std.rep pour l'essai 14 correspond à la deuxième répétition de l'essai numéro 6 de la matrice standard des essais : ```r plan2 ``` ``` ## run.no run.no.std.rp temps temperature agitation Blocks ## 1 1 1.1 -1 -1 -1 .1 ## 2 2 2.1 1 -1 -1 .1 ## 3 3 3.1 -1 1 -1 .1 ## 4 4 4.1 1 1 -1 .1 ## 5 5 5.1 -1 -1 1 .1 ## 6 6 6.1 1 -1 1 .1 ## 7 7 7.1 -1 1 1 .1 ## 8 8 8.1 1 1 1 .1 ## 9 9 1.2 -1 -1 -1 .2 ## 10 10 2.2 1 -1 -1 .2 ## 11 11 3.2 -1 1 -1 .2 ## 12 12 4.2 1 1 -1 .2 ## 13 13 5.2 -1 -1 1 .2 ## 14 14 6.2 1 -1 1 .2 ## 15 15 7.2 -1 1 1 .2 ## 16 16 8.2 1 1 1 .2 ## class=design, type= full factorial ## NOTE: columns run.no and run.no.std.rp are annotation, ## not part of the data frame ``` Par défaut les deux répétitions du plan sont séparées en 2 blocs identifiés dans la colonne Blocks. :Exemple : Plan factoriel fractionnaire {#ordre1, toggle=collapse} **Générer un plan factoriel fractionnaire** Le plan nommé plan1 de type $2^{5-2}$ permettant d'étudier les facteurs temps (A), température (B), agitation (C), humidité (D) et concentration (E), défini par les alias D=ABC et E=BC, randomisé selon le seed 324, avec 3 points au centre, est généré par la commande : ```r plan1<-FrF2(nruns=8, nfactors=5, factor.names=c("temps", "temperature","agitation", "humidite", "concentration"), randomize=TRUE, seed=324, generators=list(c(1,2,3),c(2,3)), ncenter=3) ``` Le plan ainsi généré correspond à la matrice des essais et aux alias : ```r plan1 ``` ``` ## temps temperature agitation humidite concentration ## 1 0 0 0 0 0 ## 2 1 -1 1 -1 -1 ## 3 -1 1 -1 1 -1 ## 4 1 1 -1 -1 -1 ## 5 -1 -1 -1 -1 1 ## 6 0 0 0 0 0 ## 7 -1 1 1 -1 1 ## 8 1 -1 -1 1 1 ## 9 1 1 1 1 1 ## 10 -1 -1 1 1 -1 ## 11 0 0 0 0 0 ## class=design, type= FrF2.generators.center ``` ```r design.info(plan1)$aliased ``` ``` ## $legend ## [1] "A=temps" "B=temperature" "C=agitation" "D=humidite" ## [5] "E=concentration" ## ## $main ## [1] "A=DE" "B=CE" "C=BE" "D=AE" "E=AD=BC" ## ## $fi2 ## [1] "AB=CD" "AC=BD" ``` ```r design.info(plan1)$aliased$main ``` ``` ## [1] "A=DE" "B=CE" "C=BE" "D=AE" "E=AD=BC" ``` ```r design.info(plan1)$aliased$fi2 ``` ``` ## [1] "AB=CD" "AC=BD" ``` :Suite Plans d'expériences {#plexp, toggle=collapse, title-display=hidden} [Générer un plan d'ordre 1](caps_11_1_generer_un_plan_ordre_1.html) [Générer un plan d'ordre 2](caps_11_2_generer_un_plan_ordre_2.html) [Ajouter les réponses](caps_11_3_plans_experiences_ajout_reponse.html) [Analyse qualitative : graphiques des effets](caps_11_4_plans_experiences_graphiques_effets.html) [Analyse quantitative : régression et ANOVA](caps_11_5_plans_experiences_regression_anova.html) [Plans factoriels fractionnaires : interprétation et plans complémentaires](caps_11_6_plans_experiences_interpretation_fractionnaire_complementaire.html) [Isoréponses](caps_11_7_plans_experiences_isoreponses.html) [Exercices bilan](caps_11_8_exercice_recap_plans_exp.html)