previous up next_inactive
Up: Return to previous menu

Ensait - E2 - Plans d'expérience

Corrigé de l'évaluation du 2007-11-16
durée 2h00

tous documents autorisés - le sujet comporte deux pages

Quelques remarques d'ensemble

La première qualité que l'on attend d'un ingénieur est de savoir présenter ses conclusions. Les listings, les calculs, les graphiques et autres "sorties d'ordinateur" ne peuvent en aucun cas remplacer un relevé de conclusions, rédigé de façon précise et scientifique. Le sujet proposé demandait de procéder à trois modélisations différentes à partir d'une même campagne d'essais. Il était donc nécessaire d'ordonner différents types de matériaux de façon à produire une réponse organisée. Différentes méthodes ont été utilisées. Faire des captures d'écran et tout intégrer dans un traitement de texte, c'est très bien. Faire des couper-coller avec des ciseaux et de la colle (et des traces de pouce), c'est TRÈS bien aussi... et c'est probablement la méthode la plus rapide. On peut aussi intégrer des commentaires dans le listing d'exécution. On peut aussi... Toutes les méthodes sont bonnes. Ce qui ne va pas est l'absence d'une stratégie de communication. Certains commentaires sont "inégalement rédigés". Des copies mentionnant des "valeurs propes", des "motalités", des représentations "cratésiennes" et même "l'idéal est qu'ils soivent égal" créent une certaine surprise au niveau bac+4. Il nous a semblé néanmoins qu'une absence de fautes de rédaction par absence de rédaction n'était pas une qualité, et nous avons systématiquement donné une plus mauvaise évaluation à un résultat non commenté qu'à un résultat commenté de façon fautive. La moyenne sur 57 copies est de 11.7, ce qui est tout à fait honorable. Sept étudiants ont écrit des choses pertinentes sur l'ensemble des questions posées et ont été évalués à 19/20 ou plus. Quelques autres ont échoué à ouvrir un fichier : des progrès restent possibles.

Rappel des consignes matérielles

Imprimer en "2 pages par feuille" sur les imprimantes OKI. Vérifier le bon fonctionnement des imprimantes dès le début de l'évaluation. Votre nom doit apparaître sur les documents imprimés (et en particulier dans le titre des figures). Les autres consignes données lors de l'évaluation MAO 2006-2007 continuent d'être valables. Elles sont consultables à l'adresse :
http://www.douillet.info/~douillet/maotp/maotp_ds17/index.html. En particulier, l'attention des étudiants est attirée sur le fait que le trafic réseau de leur ordinateur est susceptible d'être enregistré pendant la durée de l'évaluation.

1 Codage d'un plan d'expérience

Télécharger le fichier situé à l'adresse : http://www.douillet.info/~douillet/cours/planx_ds07a/dat_planx_ds07a.txt. Ce fichier décrit un plan d'expérience. La dernière colonne est celle des résultats, les autres colonnes décrivent les paramètres (réglages) du plan d'expérience.
  1. Quel est le nombre $jx$ des expériences ? Quel est le nombre $ix$ de modalités ? Quel est, pour chaque modalité, le nombre de niveaux ? Quelle est la taille $lx$ du code adapté à un modèle affine sans corrélations ?
    1. Rappelons que le nom du module planx est "plans d'expérience" et non pas "scilab" ou "révision". Nous avons constaté une différence significative de résultats entre les étudiants connaissant le titre du module suivi et les autres.
    2. On voit que le plan d'expérience comporte $jx=27$ essais. Il y a $ix=4$ modalités, chacune possédant $3$ niveaux codés $0,1,2$. La taille de l'espace total à explorer est donc $\Omega=81$.
    3. Si l'on considère ces niveaux comme de simples identifiants, le codage réduit nécessite $lx=1+2+2+2+2=9$ variables (une pour la constante du modèle affine, et deux pour les niveaux indépendants de chaque modalité).
  2. Lire le fichier sous Scilab (en modifiant la procédure de lecture... ou en modifiant le fichier à la main). Donner la matrice ma codant le plan d'expériences.
    1. Il fallait transformer le caractère "space" en autre chose, par exemple "underscore". Puis transformer les séparateurs texte, anciennement "space/semi-colon/space" en séparateurs scilab, par exemple "space".
    2. Il était rappelé que faute d'arriver à programmer cela sous Scilab, il était possible de modifier le fichier à la main, en utilisant un traitement de texte, comme edit ou notepad ou scipad ou ...
    3. On obtient une matrice texte datas de taille $\left(jx+1\right)\times\left(ix+1\right)=28\times5$, puis une matrice numérique ma de taille $jx\times lx=27\times9$ (cf Table 1, gauche).

    Table 1: Matrices ma et Ma
    \begin{table}\begin{displaymath}\left(\begin{array}{rrrrrrrrr}
1&-1&-1&-1&-1&0&1...
...0\cr 1&1&0&0&0\cr 1&1&0&1&1
\end{array}\right)\end{displaymath}\par\end{table}


  3. Donner une représentation cartésienne de ce plan d'expériences. Que remarque-t-on ? Que pensez-vous de cette répartition ?
    1. La représentation cartésienne $\left[1,2\right],\left[3,4\right]$ disposant en abscisse les deux premières modalités et les deux autres en ordonnées ne fait pas apparaître de défauts.

      \begin{displaymath}\begin{array}{ccccccccc}
1&0&0&0&0&1&0&1&0\cr 0&0&1&0&1&0&1&0...
...1&0&1&0&0\cr 0&1&0&1&0&0&0&0&1\cr 1&0&0&0&0&1&0&1&0
\end{array}\end{displaymath}

    2. Par contre les représentations cartésiennes utilisant trois des quatre modalités font apparaître les qualités de ce plan. Il y a quatre façons de choisir trois modalités sur les quatre. Et pour chaque restriction on obtient un plan complet par rapport aux modalités conservées.

      \begin{displaymath}\begin{array}{ccccccccc}
1&1&1&1&1&1&1&1&1\cr 1&1&1&1&1&1&1&1&1\cr 1&1&1&1&1&1&1&1&1
\end{array}\end{displaymath}

  4. Rappeler quelle est la mesure habituellement utilisée pour déterminer la qualité d'un choix d'essais. Obtenir, par tirage au sort un tel choix parmi les choix possibles. Quelle est sa qualité ? Comparer avec le plan décrit dans le fichier donné.
    1. La mesure habituellement utilisée pour déterminer la qualité d'un choix d'essais est la valeur propre minimale de la matrice ms=ma'*ma. Plus cette valeur propre est grande, plus la propagation d'erreur est petite.
    2. La commande [Rdatas,Rma,Rms]=randplan() fournit un plan d'expérience parmi les $C_{81}^{27}$ possibles.
    3. Quand on compare les valeurs propres des deux matrices ms (à gauche) et Rms (à droite), on voit que le plan proposé ma est de meilleure qualité que le plan Rma obtenu par tirage au sort

      \begin{displaymath}\begin{array}{rr}
9&3.194381\cr 9&4.286482\cr 9&7.414665\cr 9...
...150\cr 27&30.746163\cr 27&37.171821\cr 27&50.191043
\end{array}\end{displaymath}

2 Meilleur modèle sans interactions

  1. Utiliser la méthode des moindres carrés pour déterminer mx, le meilleur modèle affine sans interactions tenant compte des résultats expérimentaux.
    1. La méthode des moindres carrés est
      ms=ma'*ma ; mx=(1/ms)*ma'*mb
      Cette formule permet de déterminer le modèle affine qui "colle" le mieux aux données expérimentales.
    2. On obtient :

      \begin{displaymath}\begin{array}{r}
9.5803648\cr -0.0147956\cr 3.2608300\cr 0.04...
... -0.0992214\cr 4.0853027\cr -0.0675738\cr 4.9267311
\end{array}\end{displaymath}

  2. Évaluer la confiance que l'on peut apporter à ce modèle. Donner les détails des calculs, tracer et imprimer les graphiques utiles.
    1. La confiance que l'on peut apporter à un modèle concerne son aptitude à prévoir les résultats des mesures qui n'ont pas été faites. L'évaluation de cette aptitude est fondée sur l'aptitude du modèle à prévoir rétrospectivement le passé.
    2. Visuellement, on porte en abscisse les résultats expérimentaux, et en ordonnée les désaccords entre le modèle et la réalité. On obtient la Figure 1.
      Figure 1: Désaccords versus résultats
      \includegraphics[width=0.95\columnwidth,keepaspectratio]{ds_residus-sav}

    3. L'estimation de la qualité de l'accord modèle/réalité est fondée sur le rapport des variances :
      FRV=variance(mb)/variance(mdelta)$\approx8.51$
    4. On peut obtenir une estimation visuelle en utilisant le rapport des amplitudes :
      (max(mb)-min(mb))/(max(mdelta)-min(mdelta))$\approx2.84$
      ce rapport est grosso modo la racine carrée du FRV.
    5. La valeur FRV$\approx8.51$ estime la capacité à prévoir rétrospectivement le passé. La capacité à prévoir l'avenir s'obtient en corrigeant ce résultat de façon à tenir compte des degrés de liberté utilisés. Il vient :

      \begin{displaymath}
est\left(FRV\right)=8.51\times\frac{27-9}{27-1}\approx5.89\end{displaymath}

    6. Même réduite ainsi, la qualité du modèle reste bonne (FRV nettement supérieur à 1).
  3. Évaluer l'influence (isolée) de chaque facteur (tracer, imprimer et commenter les graphiques utiles).
    1. L'influence de chaque modalité est estimée en examinant l'amplitude des variations obtenues en laissant fixes les autres modalités (cf Figure 2).
      Figure 2: Influences des quatre modalités
      \includegraphics[width=0.95\columnwidth,keepaspectratio]{ds_influ-sav}

    2. On constate que la modalité D est la plus influente, tandis que l'influence de la modalité B est environ six fois moindre.

3 Meilleur modèle affine à quatre paramètres

On considère maintenant les données comme quatre paramètres, les nombres $0, 1, 2$ étant désormais considérés comme étant les valeurs prises par une grandeur mesurable et pas seulement comme les niveaux d'une modalité.
  1. Coder l'expérience $\left[A,  B,  C,  D\right]$ par $\left[1,  A-1,  B-1,  C-1,  D-1\right]$ de façon à travailler avec des variables centrées. Obtenir la nouvelle matrice de codage mA puis le nouveau modèle mX correspondant.
    1. La matrice mA est donnée Table 1, droite.
    2. La matrice mX=(1/mS)*mA'*mb vaut :

      \begin{displaymath}\begin{array}{r}
9.5803648\cr 3.2534322\cr 0.8432093\cr 4.0356921\cr 4.8929442
\end{array}\end{displaymath}

  2. Comparer la qualité de ce modèle avec la qualité du modèle précédent.
    1. La capacité de ce modèle à prédire le passé est très légèrement moins bonne que celle du modèle précédent. En effet, var(mdelta)$\approx4.750$ tandis que var(mDelta)$\approx4.759$
    2. La mesure fondée sur la plus petite valeur propre est nettement en faveur du nouveau plan, la matrice mS étant désormais diagonale et ses valeurs propres $18,18,18,18,27$ étant plus élevées.
    3. Plus que tout, le nouveau modèle nécessite moins de coefficients et sa capacité à prévoir l'avenir est nettement meilleure :

      \begin{displaymath}
est\left(FRV\right)=\frac{40.429}{4.759}\times\frac{27-5}{27-1}\approx7.19\end{displaymath}

4 Meilleur modèle du second degré

On considère maintenant un modèle du second degré.
  1. Montrer que la séquence d'expériences réalisée permet d'évaluer les interactions deux par deux des paramètres.
    1. Un modèle du second degré nécessite $n\left(n-1\right)/2=6$ coefficients d'interaction et $n=4$ coefficients de courbure en plus des $n+1=5$ coefficients déjà utilisés. Soit $15$ coefficients en tout. Il restera $10$ essais pour évaluer la qualité du modèle.
    2. On peut aussi prévoir que les coefficients de courbure seront négligeables et se limiter aux six coefficients d'interaction. On obtient alors un modèle à $11$ coefficients
  2. Procéder aux calculs nécessaires et obtenir les coefficients de ce nouveau modèle.
    1. La procédure auh(j,k) permet de construire de proche en proche les matrices maa (avec termes carrés) et Zma (sans termes carrés).
    2. Il est préférable de travailler avec des variables centrées. Les $x_{i}$ sont centrées par construction. Les $x_{i}x_{j}$ sont donc centrées. Par contre, les $x_{i}^{2}$ ne sont pas centrées. Il vaut mieux utiliser $y_{i}=x_{i}^{2}-2/3$ et corriger la matrice maa en conséquence. Soit Yma la matrice corrigée.
    3. Les spectres de Yms et Zms sont :

      \begin{displaymath}\begin{array}{ccccccccccccccc}
6&6&6&6&9&9&9&15&15&15&18&18&18&18&27\cr \ &\ &\ &\ &9&9&9&15&15&15&18&18&18&18&27
\end{array}\end{displaymath}

    4. Les coefficients sont donnés Table 2. On constate que les modèles affine, sans carrés et quadratique complet sont "emboîtés". Il en est ainsi parce que les groupes de colonnes correspondants sont linéairement indépendants (Yms est diagonale par blocs).

    Table 2: Les coefficients mX, Zmx et Ymx des trois modèles
    \begin{table}\begin{displaymath}\begin{array}{rrr}
9.5803648&9.5803648&9.5803648...
...\cr 0&0&0.1488321\cr 0&0&0.1013607
\end{array}\end{displaymath}\par\end{table}


  3. Que remarque-t-on ?
    1. On constate que le dernier modèle, avec quatre coefficients de plus, conduit à une variance résiduelle légèrement plus petite. Mais ce qui compte n'est pas de mieux prédire le passé.
    2. On constate, au contraire, que le modèle sans carrés possède une meilleure aptitude à prévoir le futur car le FRV corrigé est supérieur (446 au lieu de 395).
    3. On constate en outre que le modèle quadratique est bien meilleur que le modèle affine simple. Les termes exprimant les interactions 12 et 34 ont une influence comparable aux termes affines et sont donc indispensables à une bonne modélisation du processus étudié.

5 Listing


//Evaluation Plans d'Expérience

//Vient en complément du fichier 'planx.sce'

-->function readds
-->global mydir myfig shortnam datas
-->myfig=mydir;
-->nam = "dat_planx_ds07a.txt";	shortnam="ds";
-->fich = mydir + nam ; disp('source: '+fich)
-->hndl = mopen(fich, "r") ; rep = mgetl(hndl) ; mclose(hndl) ;
-->rep = strsubst( rep, ' ', '_') ; rep = strsubst( rep, '_;_', ' ') ;
-->frmt='%s%s%s%s%s%s%s%s' ; datas = msscanf(-1, rep, frmt) ;
-->readmoda
-->endfunction

-->function draw_residus_modif
-->curfig= scf(1);
-->draw_residus ; curax=get('current_axes') ;
-->curax.title.text=shortnam+" : residus "+curax.title.text
-->curax.margins=[0.05,0.01,0.15,0.05] ;
-->set_posfig_dim(curfig.figure_size(1),curfig.figure_size(2))
-->xs2eps(1, myfig+shortnam+"_residus")
-->endfunction

-->function draw_influences_modif
-->curfig= scf(2);
-->draw_influences ; curax=get('current_axes') ;
-->curax.title.text=shortnam+" : "+curax.title.text
-->set_posfig_dim(curfig.figure_size(1),curfig.figure_size(2))
-->xs2eps(2, myfig+shortnam+"_influ")
-->endfunction

-->mydir = "/home/douillet/docs/Ensait/planx/planx_ds07a/";
-->cd (mydir); exec('planx.sce',-1);

!fun readdata(item)                                              !
!fun mambms                      fun mat=data2mat(data)          !
!fun draw_residus                fun draw_influences             !
!fun rectan=recmap(tox,toy,DAT)                                  !
!fun aug(u,v)                                                    !
!fun [Datas,mA,mS]=randplan()    fun [Datas,mA,mS]=goodplan(tx)  !

-->//1.1
-->readds

 source: /home/douillet/docs/Ensait/planx/planx_ds07a/dat_planx_ds07a.txt

-->printf(" nb modalités=%d, nb essais=%d\n", ix,jx)
 nb modalités=4, nb essais=27

-->//1.2
-->ma=data2mat(datas)
    1.  - 1.  - 1.  - 1.  - 1.    0.    1.    0.    1.
    1.    1.    0.    0.    1.  - 1.  - 1.  - 1.  - 1.
    1.    1.    0.  - 1.  - 1.    1.    0.  - 1.  - 1.
    1.    0.    1.  - 1.  - 1.    0.    1.  - 1.  - 1.
    1.  - 1.  - 1.    0.    1.    1.    0.    0.    1.
    1.    1.    0.  - 1.  - 1.  - 1.  - 1.    0.    1.
    1.  - 1.  - 1.    1.    0.  - 1.  - 1.    0.    1.
    1.  - 1.  - 1.    0.    1.    0.    1.  - 1.  - 1.
    1.  - 1.  - 1.    1.    0.    1.    0.  - 1.  - 1.
    1.    1.    0.    1.    0.    0.    1.  - 1.  - 1.
    1.    0.    1.    0.    1.    0.    1.    1.    0.
    1.    1.    0.    1.    0.  - 1.  - 1.    1.    0.
    1.  - 1.  - 1.  - 1.  - 1.  - 1.  - 1.  - 1.  - 1.
    1.  - 1.  - 1.  - 1.  - 1.    1.    0.    1.    0.
    1.    0.    1.  - 1.  - 1.    1.    0.    0.    1.
    1.  - 1.  - 1.    1.    0.    0.    1.    1.    0.
    1.    1.    0.    1.    0.    1.    0.    0.    1.
    1.    0.    1.  - 1.  - 1.  - 1.  - 1.    1.    0.
    1.    1.    0.  - 1.  - 1.    0.    1.    1.    0.
    1.    1.    0.    0.    1.    0.    1.    0.    1.
    1.    1.    0.    0.    1.    1.    0.    1.    0.
    1.    0.    1.    1.    0.  - 1.  - 1.  - 1.  - 1.
    1.    0.    1.    0.    1.  - 1.  - 1.    0.    1.
    1.    0.    1.    0.    1.    1.    0.  - 1.  - 1.
    1.  - 1.  - 1.    0.    1.  - 1.  - 1.    1.    0.
    1.    0.    1.    1.    0.    1.    0.    1.    0.
    1.    0.    1.    1.    0.    0.    1.    0.    1.

-->//1.3 : on obtient un plan complet pour chaque triplet de variables
-->recmap([1,2],[3],datas)
    1.    1.    1.    1.    1.    1.    1.    1.    1.
    1.    1.    1.    1.    1.    1.    1.    1.    1.
    1.    1.    1.    1.    1.    1.    1.    1.    1.
-->recmap([2,3],[4],datas)
    1.    1.    1.    1.    1.    1.    1.    1.    1.
    1.    1.    1.    1.    1.    1.    1.    1.    1.
    1.    1.    1.    1.    1.    1.    1.    1.    1.

-->//1.4
-->[Rdatas,Rma,Rms]=randplan(); ms=ma'*ma;
-->[spec(ms), spec(Rms)]
    9.     2.4190038
    9.     3.5469372
    9.     6.1151175
    9.     9.7608775
    27.    15.872093
    27.    20.786309
    27.    31.664489
    27.    36.357574
    27.    41.477599

-->//2.1
-->mambms;

 rawvar= 40.429040, redvar= 4.750327, est(FRV)= 5.892086

-->mx
    9.5803648
  - 0.0147956
    3.26083
    0.0433691
    0.8215247
  - 0.0992214
    4.0853027
  - 0.0675738
    4.9267311

-->//2.2
-->draw_residus_modif

-->FRV=variance(mb)/variance(mdelta)
    8.5107915

-->//2.3
-->draw_influences_modif

-->//3.1
-->mA=[ones(jx,1), eval(datas(2:$,1:4))-1] ;
-->mS=mA'*mA , spec(mS)
 mS  =
    27.    0.     0.     0.     0.
    0.     18.    0.     0.     0.
    0.     0.     18.    0.     0.
    0.     0.     0.     18.    0.
    0.     0.     0.     0.     18.
 ans  =
    18.
    18.
    18.
    18.
    27.

-->mX=(1/mS)*mA'*mb, mDelta=mA*mX-mb;
 mX  =
    9.5803648
    3.2534322
    0.8432093
    4.0356921
    4.8929442

-->//3.2
-->variance(mDelta)
    4.7588996

-->printf("est(FRV)=%f\n", variance(mb)/variance(mDelta)*(jx-5)/(jx-1))
est(FRV)=7.188466

-->//4.2
-->maa=mA; for j=2:5 do for k=j+1:5 do auh(j,k) ; end; end; Zma=maa; 
-->for j=2:5 do auh(j,j); end;
-->Yma=maa+[zeros(27,11),-ones(27,4)*2/3]; fac=1E14;
-->Yms=Yma'*Yma; Yms=round(fac*Yms)/fac; Zms=Zma'*Zma; 
-->Ymx=(1/Yms)*Yma'*mb; Zmx=(1/Zms)*Zma'*mb;
-->[[mX;zeros(10,1)], [Zmx;zeros(4,1)], Ymx]
    9.5803648    9.5803648    9.5803648
    3.2534322    3.2534322    3.2534322
    0.8432093    0.8432093    0.8432093
    4.0356921    4.0356921    4.0356921
    4.8929442    4.8929442    4.8929442
    0.           1.9247444    1.9247444
    0.           0.0923934    0.0923934
    0.           0.0119960    0.0119960
    0.           0.0564158    0.0564158
    0.         - 0.0688481  - 0.0688481
    0.           2.1078514    2.1078514
    0.           0.           0.0221934
    0.           0.         - 0.0650536
    0.           0.           0.1488321
    0.           0.           0.1013607

-->//4.3
-->Zmdelta=Zma*Zmx-mb; Ymdelta=Yma*Ymx-mb;

-->printf("est(FRVZ)=%f\n", variance(mb)/variance(Zmdelta)*(jx-5-6)/(jx-1))
est(FRVZ)=445.602126

-->printf("est(FRVY)=%f\n", variance(mb)/variance(Ymdelta)*(jx-5-6-4)/(jx-1))
est(FRVY)=394.825384

-->exit

previous up next_inactive
Up: Return to previous menu


douillet@ensait.fr
2007-11-20