rapport

48 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
48
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
1
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

rapport

  1. 1. Rapport de Stage de 5ème année présenté par Mamadou SECK Filière MAM Promotion 21 Année 2014-2015 Intégration de l’analyse de la variance multivariée dans la solution XLSTAT Tuteur de l’entreprise : Arnaud BELLETOILE Tuteur de l’école : Thierry CLOPEAU Août 2015 Polytech Lyon - UNIVERSITE CLAUDE BERNARD LYON 1 Domaine Scientifique de la Doua - 15 Boulevard Latarjet 69622 VILLEURBANNE CEDEX Tél. (33) 04.72.43.12.24 - Fax. (33) 04.72.43.12.25 http://polytech.univ-lyon1.fr
  2. 2. Remerciements Tout d’abord, j’exprime ma profonde gratitude à Monsieur Arnaud BELLETOILE pour m’avoir e cacement encadré durant ce stage, ainsi qu’à Thierry FAHMY sans qui il aurait été plus di cile de faire ce stage chez Addinsoft. Bien sûr, je les remercie également pour leurs nombreux conseils. Ils m’ont permis d’organiser mon travail d’un point de vue professionnel. J”adresse aussi mes remerciements aux autres collègues pour la bonne ambiance et les conseils utiles qu’ils ont prodigués avec générosité. Cela a été un réel plaisir de travailler dans une telle équipe. Note ˚ Ce rapport a été rédigé en LATEX˙“La connais- sance s’acquiert par l’expérience, tout le reste n’est que de l’information” - Albert Ein- stein ˚ i
  3. 3. Sommaire Introduction 1 1 Addinsoft 2 1.1 Structure de l’entreprise . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Position économique et stratégique . . . . . . . . . . . . . . . . . . . . . 3 2 Analyse de la Variance Multivariée 5 2.1 Le modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Estimation et somme des carrés et produits croisés . . . . . . . . . . . . 7 2.3 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.1 Caractéristiques des tests . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.2 SSCP dans une MANOVA . . . . . . . . . . . . . . . . . . . . . . 10 2.3.3 Wilks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.4 Test de la trace de Hotelling Lawley . . . . . . . . . . . . . . . . . 12 2.3.5 Test de la trace de Pillai . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.6 Test de la plus grande racine de Roy . . . . . . . . . . . . . . . . 12 2.3.7 Somme des carrés de type I, II et III . . . . . . . . . . . . . . . . 13 3 Implémentation et intégration du code 15 3.1 Revue de l’existant dans la concurrence . . . . . . . . . . . . . . . . . . . 15 3.2 C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3 Interfaçage VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.3.1 Schéma d’exécution du code . . . . . . . . . . . . . . . . . . . . . 19 3.4 Comparaison XLSTAT et logiciels concurrents . . . . . . . . . . . . . . . 21 4 Impressions personnelles 22 Conclusion 23 ii
  4. 4. Liste des tableaux 1.1 Compte de résultat des 3 dernières années . . . . . . . . . . . . . . . . . 4 1.2 Evolution du nombre de clients, de solutions statistiques et de l’e ectif chez Addinsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Table d’analyse de la variance multivariée . . . . . . . . . . . . . . . . . 11 2.2 Formules de calcul des matrices SSCP pour un modèle à 3 facteurs . . . 14 3.1 Options proposées par XLSTAT et ses concurrents . . . . . . . . . . . . . 21 iii
  5. 5. Introduction Étudiant en troisième année du cycle d’ingénieur à Polytech Lyon en Mathématiques Appliquées et Modélisation (MAM), j’ai été amené à réaliser un stage d’assistant ingénieur d’une vingtaine de semaines pour acquérir une nouvelle expérience professionnelle et valider mon diplôme. Je l’ai e ectué au sein de Addinsoft du 27 avril 2015 au 25 septembre 2015. Cela a été pour moi une opportunité de travailler dans le développement d’un logiciel. Le but étant non pas le profit mais l’expérience, cela crée une réelle motivation. C’est dans ce cadre que j’ai mis en pratique mes connaissances acquises ces dernières années et également appris à m’adapter pour optimiser et non plus appliquer pour réaliser. Cahier des charges Le thème du stage correspond à une implémentation de l’analyse de la variance multi- variée, solution statistique fréquemment utilisée par les professionnels. Il consiste en premier lieu à une recherche bibliographique sur le modèle linéaire général, plus particulièrement la MANOVA pour comprendre la méthode et avoir de premières idées quant au raisonnement mathématique et à l’implémentation de cette méthode. En second lieu, choisir une bonne méthode d’implémentation aussi bien en C++ qu’en VBA pour construire un code optimisé et bien conditionné, qui se chargerait de faire une analyse rapide tout en produisant des résultats justes. Conditions requises L’implémentation de la MANOVA nécessite une bonne connaissance de la méthode à développer, des résultats produits par les concurrents sur le marché et de leurs spéci- ficités et finalement choisir le meilleur benchmark . Le choix du meilleur benchmark se faisant à partir d’un certain nombre de critères, il est indispensable de faire une étude préalable du fonctionnement du code de chaque concur- rent, pour déterminer lequel d’eux constituera le meilleur benchmark. Cela m’a permis de me familiariser avec le langage C++, mais également de mieux com- prendre les logiciels R, Excel et la programmation Excel VBA. Après avoir présenté Addinsoft et l’environnement du stage, nous nous intéresserons à mon activité de stagiaire ainsi qu’aux travaux réalisés et, enfin nous ferons le bilan de ce stage, avant de conclure. 1
  6. 6. 1 Addinsoft Addinsoft est l’entreprise éditrice du logiciel XLSTAT, une solution logicielle adossée à Microsoft Excel et spécialisée dans les statistiques et l’analyse de données. Fondée en 2000 par son dirigeant actuel, M. Thierry Fahmy, l’entreprise a su s’imposer au fil des ans comme l’une des solutions qui compte sur son cœur de métier. Pour cela, elle a su proposer une approche originale combinant des méthodes d’analyses pointues directement issues du milieu académique, une interface conviviale et intuitive destinée à rendre ces méthodes accessibles à un large éventail d’utilisateurs et enfin un support aux utilisa- teurs, humain et réactif, centré sur l’échange et la satisfaction du client. 1.1 Structure de l’entreprise Jusqu’à tout récemment, l’entreprise Addinsoft a conservé une taille et une organisation de très petite entreprise avec un e ectif salarié ne dépassant jamais 4 ou 5 personnes. Cependant, une phase importante de développement a été amorcée durant l’année 2014 avec une vague de recrutements, portant l’e ectif à 11 personnes et une formalisation des rôles de chacun dans une structure davantage segmentée. Cette nouvelle structure opérationnelle couvre 4 pôles d’activités et de métiers qui sont : • le pôle développement statistique • le pôle SEO (Search Engine Optimization) • le pôle infrastructures/informatique • le pôle comptabilité/gestion Les missions de chacun de ces pôles sont détaillées dans l’organigramme ci dessous. 2
  7. 7. Pour ma part, j’ai évolué au sein du pôle développement statistique, composé de trois développeurs en statistiques. De part la taille humaine de la structure, j’ai pu intéragir avec les membres des di érents pôles, ce qui m’a facilité la tâche pour remplir les missions qui m’étaient confiées. 1.2 Position économique et stratégique Si la jeunesse de ses e ectifs et son positionnement high-tech font immanquablement penser à une start-up, l’entreprise Addinsoft est positionnée sur un segment de marché établi et mûr depuis les années 70, ce qui la démarque nettement d’une start-up classique. En e et, les acteurs principaux du domaine du logiciel de statistiques, tels que SAS ou SPSS (IBM), ont vu le jour en 1966 et 1968, respectivement. Ils ont, par la suite, acquis une position d’acteur dominant dès les années 2000. C’est donc au sein d’un domaine fortement concurrentiel, comptant des acteurs his- toriques d’envergure, qu’Addinsoft est parvenue à conquérir des parts de marchés pour de- venir la suite logicielle d’analyse de données pour Excel la plus utilisée au monde. Ce suc- cès s’explique en partie par un positionnement stratégique axé sur la facilité d’utilisation apportée par Excel et un excellent rapport qualité/prix. Comme le montrent les comptes de résultat regroupés dans le tableau 1.1 et 1.2, l’entreprise 3
  8. 8. s’est construite au fil des ans une solide santé économique. Cette dernière lui permet d’envisager sereinement la phase de développement qu’elle a entamée en 2014 et dont l’objectif principal est de réaliser une montée en gamme importante. Cet objectif am- bitieux se traduit d’ores et déjà par le lancement de plusieurs projets en parallèle actuelle- ment en cours de réalisation : • refonte de la vitrine web et de l’interface client; • renforcement de la présence sur les réseaux sociaux; • développement d’une solution cloud; • l’implémentation d’algorithmes sur GPUs; • veille accrue sur les dernières tendances dans le domaine des statistiques et de l’analyse des données. 2014 2013 2012 Variation Chi res d’a aires (euros) 1 629 800 1 572 600 1 355 200 20,04% Production (euros) 1 629 800 1 572 600 1 355 200 20,04% Valeur ajoutée (euros) 990 900 470 900 455 800 113,74% EBE (euros) 324 700 233 100 299 900 17,03% Résultat d’exploitation (euros) 149 800 195 000 260 100 -48,21% RCAI (euros) 165 600 223 600 259 100 -39,64% Résultat Net(euros) 218 300 151 500 163 500 36,75% Tableau 1.1: Compte de résultat des 3 dernières années (EBE : Excédent brut d’exploitation, RCAI : Résultat Courant Avant Impôt.) 2014 2013 2012 Nombre de clients 4 000 3 500 3 000 Universitaire 25% 26% 28% Entreprises 38% 41% 42% Individuels 37% 33% 30% E ectif 11 5 3 Nombre de solutions statistiques 15 13 11 Tableau 1.2: Evolution du nombre de clients, de solutions statistiques et de l’e ectif chez Addinsoft Tous les jours, plusieurs centaines de personnes téléchargent XLSTAT qui compte maintenant plus de 30000 utilisateurs. Les utilisateurs de XLSTAT se répartissent dans plus de 100 pays, de Hong-Kong au Pérou, de la Norvège à l’Afrique du Sud. Une augmentation de 36,75% sur le résultat net entre 2012 et 2014 témoigne de la bonne santé économique de Addinsoft. 4
  9. 9. 2 Analyse de la Variance Multivariée L’Analyse de la Variance (ANOVA) est un modèle particulier du modèle linéaire général utilisé quand une variable quantitative est expliquée par une ou plusieurs variables qualita- tives, appelés facteurs. Les modèles d’analyse de la variance sont très utilisés dans plusieurs domaines allant des biostatistiques à l’économie. Les tests associés à ces mo- dèles robustes sont généralement puissants. L’objectif des modèles d’ANOVA est de déterminer les e ets des variables qualitatives sur la variable quantitative et, éventuellement, de tester l’égalité des moyennes entre les di érents niveaux de facteurs. Dans plusieurs situations, il est plus intéressant de tester simultanément les e ets des facteurs sur non pas une mais plusieurs variables réponses. Cette étude multivariée est appelée MANOVA (pour l’anglais Multivariate Analysis Of Variance). L’analyse de la variance multivariée est donc une extension de l’ANOVA dans laquelle les e ets des facteurs sont évalués sur une combinaison de plusieurs variables réponses. L’avantage de l’utilisation d’une MANOVA au lieu de plusieurs ANOVA simultanées réside dans le fait qu’elle prend en compte la corrélation entre les variables réponses et permet ainsi une meilleure utilisation des informations provenant des données. Ainsi, la MANOVA teste la présence de di érences significatives parmi les combi- naisons de niveaux de facteurs sur plusieurs variables réponses. Avec une MANOVA, on est donc capable de tester conjointement toutes les hypothèses que testent une ANOVA et on a plus de chances d’observer les di érences entre les niveaux de facteurs. Par exemple, deux facteurs peuvent n’avoir d’e ets sur di érentes variables réponse que si celles-ci sont prises en compte ensemble et non pas séparément. De plus, faire plusieurs ANOVA au lieu d’une MANOVA augmente l’erreur de type I c’est à dire la probabilité de rejeter à tort l’hypothèse H0. Par exemple, pour 6 variables réponses et un niveau de confiance fixé à 5%, l’erreur de type I est de 30% pour plusieurs ANOVA et 5% pour une MANOVA. Enfin, plusieurs ANOVA séparées ne prennent pas en compte la covariation entre variables réponses tandis que la MANOVA n’est pas seulement sensible aux di érences de moyenne entre niveaux de facteurs mais également à la covariance entre variables ex- plicatives. Quand ces variables sont toutes étudiées ensemble, il y a plus de chances de détecter une possible corrélation entre certaines variables. Ce n’est pas le cas avec une ANOVA qui ne prend en compte qu’une seule variable réponse. Les modèles d’ANOVA et de MANOVA peuvent être utilisés sous certaines condi- 5
  10. 10. tions et leur complexité croît avec le nombre de facteurs inclus dans le modèle. Pour les variables dépendantes, les données forment un échantillon aléatoire de vecteurs dans une population normale multivariée. Dans cette population, les matrices de variance / covariance de toutes les cellules sont les mêmes. L’analyse de la variance supporte les écarts à la normalité, bien que les données doivent être symétriques. Dans ce rapport, nous nous e orcerons de montrer comment le modèle est a ecté quand des hypothèses ne sont pas respectées et de présenter les di érentes méthodes util- isées pour palier aux di érents problèmes. Des données équilibrées (plan équilibré) sont des données où le nombre d’observations est identique pour toutes combinaisons de niveaux de facteurs. Dans le cas contraire, on parle de données déséquilibrées ou plan déséquilibré. Nous introduirons la MANOVA et toutes ses propriétés selon qu’on soit dans un plan équilibré ou un plan déséquilibré. Ensuite, nous justifierons les choix d’implémentation de la méthode avant de terminer sur la description de l’implémentation en tant que telle. 2.1 Le modèle Pour les modèles standard d’ANOVA et de MANOVA, on suppose que les échantillons sont indépendants, suivent une loi normale et que les matrices de covariance sont égales pour chaque facteur et chaque combinaison de niveaux de facteurs (homogénéité de la covariance). Il a été prouvé que ces modèles restent robustes pour des données équilibrées même si l’hypothèse d’égalité des matrices de covariance n’est pas parfaitement respectée (Timm, 2002). Cependant, ce n’est pas le cas pour des données non équilibrées, nous verrons comment corriger ce problème dans la deuxième partie du rapport. Nous prendrons comme exemple illustratif une MANOVA à deux facteurs avec inter- action. Soit deux facteurs A et B avec respectivement a et b niveaux. yijk : p ◊ 1 est un vecteur avec p mesures pour la kème observation du ième niveau du facteur A et du jème niveau du facteur B : yijk = µ + –i + —j + –—ij + ‘ijk (2.1) avec i = 1, · · · , a , j = 1, · · · , b, k = 1, · · · , n –i , —j représentent les e ets principaux des facteurs A et B et –—ij l’e et d’interaction entre A et B. ‘ijk iid ≥ Np(0, ) ce qui implique E(yijk) = µ + –i + —j + –—ij et ‡(yijk) = ‡(‘ijk) = La forme matricielle du modèle est alors : 6
  11. 11. Y (n◊m) = X (n◊p) B (p◊m) + E (n◊m) (2.2) où Y est une matrice d’observations multivariées, X est une matrice de variables explicatives, B est une matrice de paramètres à estimer et E est une matrice contenant des erreurs ou du bruit. 2.2 Estimation et somme des carrés et produits croisés Comme pour les modèles d’ANOVA univariés, certains e ets seront inestimables dûs à une sur-paramétrisation du modèle. Des contraintes doivent donc être imposées sur les paramètres –i , —j et –—ij. Rappelons qu’on est toujours dans le modèle à deux facteurs avec interactions. On ex- prime ces contraintes de la manière suivante : aÿ i=1 –i = 0 bÿ j=1 —j = 0 aÿ i=1 –—ij = 0 ’j aÿ j=1 –—ij = 0 ’i (2.3) Avec les contraintes ci-dessus, les estimateurs du modèle avec interactions sont : ˆµ = y... ˆ–i = yi.. ≠ y... ˆ—j = y.j. ≠ y... ˆ–—ij = yij. ≠ yi.. ≠ y.j. + y... (2.4) où 7
  12. 12. y... = aÿ i=1 bÿ j=1 nÿ k=1 yijk yi.. = bÿ j=1 nij ÿ k=1 (bnij)≠1 yijk y.j. = aÿ i=1 nij ÿ k=1 (anij)≠1 yijk yij. = nij ÿ k=1 n≠1 ij yijk (2.5) Dans un modèle multivarié, les sommes des carrés dues aux e ets dans le modèle et les sommes des carrés d’erreur sont représentées sous forme matricielle plutôt que sous forme d’échelle comme dans l’analyse univariée. Ces matrices sont appelées matrices SSCP (sommes des carrés et produits croisés). Elles sont toutes carrées et symétriques. Ainsi, matriciellement, on obtient l’estimateur du maximum de vraisemblance de B par : ˆB = (XÕ X)≠1XÕ Y (2.6) La somme totale des carrés et produits croisés notée SSCPT peut être décomposée en somme des carrés issus de la régression SSCPReg et en somme des carrés résiduels SSCPE. SSCPT (m◊m) = Y Õ Y ≠ ny yÕ = 1 Y ≠ Y 2Õ 1 Y ≠ Y 2 SSCPT = ˆEÕ ˆE + 1 ˆY Õ ˆY ≠ ny yÕ 2 SSCPT = SSCPE + SSCPReg (2.7) y est un vecteur de taille (m ◊ 1) contenant les moyennes par colonne de la matrice des observations. ˆY = X ˆB est la matrices des valeurs ajustées des observations. ˆE = Y ≠ ˆY est la matrice des résidus ou matrice des erreurs d’ajustement. La somme des carrés et produits croisés de la régression peut à son tour être décom- posée en somme de somme de carrés et produits croisés issus de chaque facteur et de chaque interaction, SSCPA, SSCPB et SSCPAB respectivement. Dans notre exemple de la MANOVA à deux facteurs cette décomposition donne : SSCPReg = SSCPA + SSCPB + SSCPAB (2.8) Ces matrices seront utilisées ensuite pour réaliser l’ensemble des test statistiques qui sont présentés dans la section suivante. 8
  13. 13. 2.3 Tests Pour tester tous les e ets du modèle simultanément, les tests de Fisher standards pour les e ets principaux et les e ets d’interaction doivent être généralisés. Les résultats de ces tests multivariés sont tous basés sur la relation entre la matrice d’erreur E et la matrice H, c’est à dire sur le calcul des valeurs propres de la matrice E≠1 H. H symbolise l’hypothèse testée dans le modèle. Dans notre exemple de MANOVA à deux facteurs, HA, HB et HAB sont respectivement les matrices SSCP associées aux hypothèses de nullité d’e ets principaux des facteurs A, B et de l’e et d’interaction entre les facteurs A et B. H = HA,HB ou HAB suivant l’hypothèse testée. L’hypothèse générale pour une MANOVA à deux facteurs peut s’écrire sous la forme de la série d’hypothèses suivante : H0A : –1 = –2 = · · · = –a = 0 H0B : —1 = —2 = · · · = —b = 0 H0AB : –—11 = · · · = –—1b = · · · = –—a1 = · · · = –—ab = 0 (2.9) Les quatre tests multivariés les plus utilisés sont : • le test de Wilks • le test de la trace de Hotelling-Lawley • le test de la trace de Pillai • le test de la plus grande racine de Roy. 2.3.1 Caractéristiques des tests Rappelons qu’un test est robuste s’il reste valable alors que les hypothèses d’application ne sont pas toutes réunies. Cela peut être une taille d’échantillon un peu faible ou une loi de probabilité (loi normale pour les tests paramétriques) qui n’est pas vérifiée. Rappelons aussi que la puissance d’un test statistique ou encore le complément du risque de deuxième espèce est la probabilité de rejeter l’hypothèse nulle sachant qu’elle est incorrecte. Autrement dit, la puissance exprime la probabilité de détecter une di érence lorsqu’elle existe réellement. Le test de Wilks est le plus utilisé, il reste interprétable aussi bien pour des données équilibrés que pour des données déséquilibrées. Compte tenu de l’expression de la statistique de test de la trace de Hotelling-Lawley que nous expliciterons, cette expression est considérée comme la généralisation multidi- mensionnelle la plus naturelle du test de Fisher. Il est utile dans le cas où toutes les 9
  14. 14. variables quantitatives ont toutes exactement deux niveaux. Le test de Pillai n’est e cace que dans le cas où on a égalité des échantillons (plan équilibré). Dans ce cas, il est robuste. On notera enfin dans le cas du test de la plus grande racine de Roy, la loi de Fisher est un minorant pour la loi de la statistique de test, ce qui signifie que la p-valeur calculée pour ce test est toujours plus petite que celle des autres tests. Le test de Roy est un test puissant mais pas robuste. Pour cette raison, il est déconseillé. 2.3.2 SSCP dans une MANOVA Restons dans l’exemple de la MANOVA avec les facteurs A et B avec respectivement a et b niveaux. Pour chaque niveau d’interaction ij, on réalise nij observations indépendantes de chaque variable quantitative à expliquer Y(nij Ø 1), notées yij,i = 1, · · · a, j = 1, · · · b, on pose enfin n = qa i=1 qb j=1 nij : n est le nombre total d’observations réalisées dans l’expérience. Si nij = n0 ,i = 1, · · · a, j = 1, · · · b, on dit que le plan est équilibré; sinon, on parle de plan déséquilibré. Dans un plan équilibré, n0 s’appelle le nombre de répétitions. Selon la nature des données (équilibrées ou déséquilibrées), les matrices SSCP ne se calculent pas de la même manière. Cependant le tableau 2.1 d’analyse de la variance multivariée suivant reste inchangé. Les matrices SSCP du modèle s’expriment de la manière suivante : SSCPA = nb aÿ i=1 (yi.. ≠ y...) (yi.. ≠ y...)Õ SSCPB = na bÿ j=1 1 y.j. ≠ y... 2 1 y.j. ≠ y... 2Õ SSCPAB = n aÿ i=1 bÿ j=1 1 yij. ≠ yi.. ≠ y.j. + y... 2 1 yij. ≠ yi.. ≠ y.j. + y... 2Õ SSCPE = aÿ i=1 bÿ j=1 nÿ k=1 1 yijk ≠ yij. 2 1 yijk ≠ yij. 2Õ SSCPT = aÿ i=1 bÿ j=1 nÿ k=1 1 yijk ≠ y... 2 1 yijk ≠ y... 2Õ (2.10) Les expressions des moyennes sont données à l’équation 2.5. 10
  15. 15. Source matrices SSCP Degrés de liberté Facteur A SSCPA a ≠ 1 Facteur B SSCPB b ≠ 1 Interaction AB SSCPAB (a ≠ 1)(b ≠ 1) Erreur SSCPE ab(n ≠ 1) Total SSCPT abn ≠ 1 Tableau 2.1: Table d’analyse de la variance multivariée 2.3.3 Wilks Pour i = 1, · · · m, soit ⁄i, les valeurs propres de la matrice E≠1 H. Pour les quatre tests qui suivront, on utilisera ces valeurs propres. Le test de rapport de vraisemblance plus connu sous le nom de test de Wilks (Wilks-1932) est égal à : = mŸ i=1 1 1 + ⁄i = |E| |E + H| (2.11) Cette valeur peut être interprétée comme le pourcentage de variabilité non expliquée par l’e et étudié. Si E est petit par rapport à H, sera proche de 0 sinon sera proche de 1. L’hypothèse nulle est rejetée quand est petit. Quand l’hypothèse nulle est vraie, la statistique de test T suit la loi de Fisher suivante : T = 1 ≠ 1/“ 1/“ ”“ ≠ c dfnum ≥ F(dfnum,”“≠c) (2.12) avec dffactor = nombre de niveaux du facteur ≠ 1 dfnum = p ◊ dffactor ” = (n ≠ (dffactor + 1)) ≠ dffactor ≠ p + 1 2 “ = Y ___] ___[ ˆ ı ı Ù p2 df2 factor ≠ 4 p2 + df2 factor ≠ 5 p2 + df2 factor ≠ 5 > 0 1 p2 + df2 factor ≠ 5 Æ 0 c = dfnum 2 ≠ 1 11
  16. 16. 2.3.4 Test de la trace de Hotelling Lawley Le test statistique THL = mÿ i=1 ⁄i = Tr(E≠1 H) (2.13) est souvent octroyé à Hotelling (1938) et Lawley (1947) qui ont travaillé sur ce test. Plus H est grand comparé à E, plus la trace est grande. Dans ce cas, on rejette l’hypothèse nulle pour des grandes valeurs de THL. La statistique de test 1 c THL ≥ F(a,b) (2.14) avec : a = pdfH ; b = 4 + a + 2 B ≠ 1 B = (dfE + dfH ≠ D ≠ 1)(dfE ≠ 1) (dfE ≠ p ≠ 3)(dfE ≠ p) c = a(b ≠ 2) b(dfE ≠ p ≠ 1) 2.3.5 Test de la trace de Pillai Pillai (1955) a développé le test suivant : TP = mÿ i=1 ⁄i 1 ≠ ⁄i = Tr 1 (E + H)≠1 H 2 (2.15) communément appelé test de la Trace de Pillai. Comme le test de la trace de Hotelling- Lawley, l’hypothèse nulle est rejetée pour de grandes valeurs de TP . 2.3.6 Test de la plus grande racine de Roy La statistique de ce dernier test est ⁄max, la plus grande valeur propre de E≠1 H. ⁄max = max 1ÆiÆm ⁄i (2.16) On trouve diverses approximations qui permettent de mettre en oeuvre ce test. Celle qui est la plus couramment utilisée est la suivante : S = ⁄max(dfH + dfE ≠ r) r ≥ F(r,dfH +dfE≠r) (2.17) où r = max(p, dfH) 12
  17. 17. 2.3.7 Somme des carrés de type I, II et III Dans le cas de données équilibrées, le type de somme de carrés choisi n’influe pas sur les résultats de la régression. Cependant pour des données non équilibrées, le choix du type devient important. Type I : Cette méthode est également appelée décomposition hiérarchique de la somme des carrés. Chaque terme est ajusté uniquement pour le terme qui le précède dans le modèle. La somme des carrés de type I est généralement utilisée pour : • Une analyse de la variance dans laquelle tout e et prinicipal est spécifié devant les e ets d’intéraction de premier ordre, et chaque e et de premier ordre spécifié avant ceux de second ordre, et ainsi de suite; • Un modèle de régression polynomial dans lequel les termes d’ordre inférieur sont spécifiés avant ceux d’ordre supérieur; • Un modèle par imbrication pur dans lequel le premier e et spécifié est imbriqué dans le second et le second spécifié dans le troisième, etc. Type II : Cette méthode calcule les sommes des carrés d’un e et dans le modèle ajusté pour tous les autres e ets “appropriés” . Un e et approprié est un e et qui correspond à tous les e ets qui ne contiennent pas l’e et à étudier. La méthode des sommes des carrés de type II sert généralement pour : • Une analyse de la variance équilibrée; • Tout modèle qui contient un e et principal uniquement; • Tout modèle de régression; • Un modèle par emboîtement pur. Type III : Cette méthode calcule les sommes des carrés d’un e et dans le modèle comme les sommes des carrés ajustée pour tout autre e et qui ne le contient pas et orthogonal à chaque e et qui le contient. Les sommes de carrés de type III présentent l’avantage essentiel de ne pas varier avec les fréquences de cellule. Ce type de somme des carrés est donc souvent considéré comme utile pour les modèles déséquilibrés auxquels aucune cellule ne manque. La méthode des sommes des carrés de type III sert généralement pour : • Tous les modèles énumérés dans les types I et type II; • Tous les modèles qui ne contiennent pas de cellules vides (données manquantes). 13
  18. 18. Exemple Considérons un modèle à 3 facteurs avec interactions, les matrices de somme des carrés et produits croisés seront calculés comme indiqué dans le tableau 2.2. On notera que : SSCP(x|y, z, u) = SSCP(x, y, z, u) ≠ SSCP(y, z, u) (2.18) SSCP(x|y, z, u) est la matrice SSCP des e ets de x sachant que les e ets de y, z et u sont déjà pris en compte dans le modèle. SSCP(x, y, z, u) est la matrice SSCP du modèle dans lequels les e ets de x, y, z et u sont pris en compte. E ets Type I Type II Type III A A A|B, C, BC A|B,AB,C,AC,BC,ABC B B|A B|A,C,AC B|A,AB,C,AC,BC,ABC A ◊ B AB|B,A A,B,C,AC,BC AB|A,B,C,AC,BC,ABC C C|A,B,AB as Type I C|A,B,AB,AC,BC,ABC A ◊ C AC|A,B,AB,C AC|A,B,AB,C,BC AC|A,B,AB,C,BC,ABC B ◊ C BC|A,B,AB,C,AC as Type I BC|A,B,AB,C,AC,ABC A ◊ B ◊ C ABC|A,B,AB,C,AC,BC as Type I as Type I Tableau 2.2: Formules de calcul des matrices SSCP pour un modèle à 3 facteurs 14
  19. 19. 3 Implémentation et intégration du code Une fois la recherche bibliographique faite et la méthode comprise, l’implémentation et l’intégration sont les parties les plus importantes. Plusieurs critères sont pris en compte pour l’implémentation et l’interfaçage dont les principaux sont : • la lisibilité du code; • la rapidité d’exécution du code; • la simplicité de l’interface et son ergonomie. 3.1 Revue de l’existant dans la concurrence On a vu dans les parties précédentes que la base de la MANOVA repose sur le calcul des matrices des sommes des carrés et produits croisés utilisées pour réaliser les tests de Wilks, Hotelling-Lawley, Pillai et Roy. Pour ce faire, il y a au moins trois approches, communément appelés somme des carrés de type I, II et III. Cette notation semble avoir été introduite par SAS mais est très répandue maintenant. La question du choix du type de somme de carrés et produits croisés ne se pose pas pour des données équilibrées. Cependant, pour des données déséquilibrées, ce choix est souvent sujet à controverses. Il est essentiel de savoir quelles informations sont les plus pertinentes dans le jeu de données à étudier pour faire le meilleur choix du type de somme des carrés. Par défaut, R utilise le type I pour le calcul des matrices SSCP. De part sa nature séquentielle, ce type de calcul donnera, sur des données non équilibrées, des résultats di érents selon l’ordre d’ajout des e ets principaux dans le modèle. En pratique, cette approche teste donc la di érence entre les moyennes pondérées et les résultats dépendent de la taille des échantillons de chaque niveau de facteur. Dans MinitabR• , seul le type II est utilisé pour le calcul des matrices SSCP. Dans ce cas, l’accent est mis sur les e ets principaux, aucune interaction, même signficative n’est prise en compte. En d’autres termes, il faut d’abord tester les interactions entre les di érents facteurs et, seulement s’ils ne sont pas significatifs, poursuivre l’analyse avec les e ets principaux. En termes de calcul et d’implémentation, le type II est équivalent à plusieurs type I avec di érents ordres d’ajouts de facteurs. Le type par défaut utilisé dans SASR• et SPSSR• est le type III. Cette approche est puissante quand les interactions sont significatives, cependant les e ets principaux ne 15
  20. 20. sont plus interprétables. En l’absence d’interactions significatives, le type II devient plus puissant. Le type II n’est puissant que dans un modèle sans interaction significative. Le type III n’est puissant que dans un modèle où les interactions sont significatives. Pour ces raisons, nous avons choisi d’implémenter la MANOVA de XLSTAT avec des matrices de somme de carrés et produits carrés de type I. L’utilisateur aura le choix d’ajouter les facteurs dans l’ordre qu’il souhaite. 3.2 C++ Pseudocode MANOVA Soit Y (n ◊ m) la matrice des observations et B(n ◊ p) la matrice des facteurs. On a n observations et p facteurs. nlevels(1 ◊ p + pinter + 1) contient le nombre de niveaux de chaque facteur et de chaque interaction. Algorithm 1 MANOVA à p facteurs implémentée avec des SSCP de type I pdesign = 1 pinter = 2p ≠ p ≠ 1 for i = 1 to p do pdesign = pdesign ◊ nlevels(i) end for X(n ◊ pdesign) X = BuildDesignMatrix(B) Faire la décomposition QR avec pivot de X X = Q R Calculer la matrice des e ets Effects = QT Y EndPoint(1) = 1, rank(1) = 1 for i = 2 to p + pinter + 1 do EndPoint(i) = EndPoint(i ≠ 1) + nlevels(i ≠ 1) Copier dans Xcopy les valeurs de X de la colonne 1 à la colonne EndPoint(i) rank(i) = RANK(Xcopy) if rank(i)! = rank(i ≠ 1) then Copier dans Effectscopy les valeurs de Effects de la ligne EndPoint(i ≠ 1) + 1 à la ligne EndPoint(i) SSCP(i ≠ 1) = (Effectscopy)T Effectscopy end if end for Run Tests (Wilks, Hotelling, Pillai, Roy) L’algorithme 1 présente l’implémentation d’une MANOVA à p facteurs avec des ma- 16
  21. 21. trices SSCP de type I. Les parties les plus importantes de cet algorithme seront détaillées à travers un exemple. Exemple Soit Y (10 ◊ m) une matrice avec 10 observations et m variables dépendantes, —(10 ◊ 2) la matrice des variables explicatives représentée ci-après : — = Q c c c c c c c c c c c c c c c c c c a A1 B2 A1 B2 A1 B1 A1 B1 A2 B1 A2 B1 A2 B3 A2 B3 A1 B3 A1 B3 R d d d d d d d d d d d d d d d d d d b La première partie consiste à construire la matrice de design X. La première colonne de — correspond au facteur A qui a deux niveaux : A1 et A2. La deuxième colonne de — correspond au facteur B qui a trois niveaux : B1, B2 et B3. On a ici l’exemple d’une MANOVA à deux facteurs. La première colonne de la matrice de design correspond toujours au vecteur unitaire. Les autres colonnes sont construites avec la contrainte a1 = 0. Autrement dit, le premier niveau de chaque facteur n’est pas pris en compte. On ne retouvera alors dans la matrice design que les e ets des niveaux A2, B2, B3 et les e ets des interactions A2 ◊ B2 et A2 ◊ B3. On obtient la matrice suivante : X = Q c c c c c c c c c c c c c c c c c c c c c c c c a A B A ◊ B A2 B2 B3 A2 ◊ B3 A2 ◊ B3 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 R d d d d d d d d d d d d d d d d d d d d d d d d b 17
  22. 22. On fait ensuite une décomposition QR de la matrice X. X (10◊6) = Q (10◊6) . R (6◊6) où Q est une matrice orthogonale (QT Q = I10, la matrice identité avec 10 lignes et 10 colonnes) et R une matrice triangulaire supérieure. La matrice des e ets contenant les e ets des facteurs A et B et de l’interaction A◊B est obtenue de la matrice suivante : E ets (6◊m) = QT (6◊10) . Y (10◊m) Les 6 lignes de la matrice E ets correspondent respectivement aux e ets des 6 colonnes de la matrice de design X. Par exemple, pour calculer la matrice SSCP correspondant à l’e et du facteur B, on sélectionne les lignes 3 et 4 de la matrice E ets que l’on copie dans la matrice E etsB(2◊ m) et fait ensuite le calcul suivant : SSCPB (m◊m) = E etsBT (m◊2) .E etsB (2◊m) Avec le même raisonnement, on obtient toutes les autres matrices de somme de carrés et produits carrés. Une fois que toutes les matrices SSCP sont calculées, les tests statistiques sont faits comme décrits dans la partie précédente. 3.3 Interfaçage VBA D’après l’ouvrage GUI Bloppers de Je Johnson, il y a neuf principes fondamentaux à respecter pour créer une meilleure expérience utilisateur et faciliter la réalisation d’une interface graphique. Ces principes sont : • Se concentrer sur l’utilisateur et ses tâches et non sur la technologie; • Considérer la fonction en premier, la présentation ensuite; • Se conformer à la vision de la tâche par l’utilisateur; • Gérer l’accès et la visibilité des fonctions; • Ne pas distraire les utilisateurs de leur tâche; • Faciliter l’apprentissage; • Fournir de l’information; • Concevoir pour la réactivité; • Essayer avec l’utilisateur et corriger ensuite. 18
  23. 23. Dans le cas de la MANOVA, l’utilisateur aura essentiellement besoin des matrices SSCP et des résultats des di érents tests. Comme il peut y avoir des données manquantes dans un jeu d’observations , l’utilisateur a la possibilité de gérer ces données manquantes. Il a aussi la possibilité d’attribuer des poids à des observations. L’interface suivante sera utilisée dans la solution XLSTAT . Il y a 4 onglets principaux : • L’onglet Général où l’utilisateur sélectionne la matrice des données et celle des facteurs. Il pourra éventuellement sélectionner la colonne correspondant aux poids si ceux-ci sont définis. • L’onglet Options où l’utilisateur choisit les résultats des tests qu’il souhaite obtenir en sortie, le niveau de confiance des tests et le niveau d’interaction maximal qui l’intéresse. • L’onget Missing Values où l’utilisateur peut choisir si une observation doit être supprimée si une des données de cette observation est manquante. Il peut aussi choisir de ne pas autoriser de données manquantes dans son jeu de données auquel cas, une boîte de dialogue l’avertira si une donnée manquante est détectée. • L’onglet Outputs où l’utilisateur peut choisir d’a cher les statistiques descriptives de son jeu de données et les matrices SSCP. 3.3.1 Schéma d’exécution du code L’exécution du code VBA/C++ se fait en suivante les étapes ci-dessous : • L’utilisateur sélectionne ses données et explore toutes les options qui s’o rent à lui 19
  24. 24. Figure 3.1: Schéma d’exécution du code • Le code VBA se charge de la conversion des données qualitatives en données quan- titatives, vérifient les données et si tout a été bien respecté, la fonction passerelle entre le code VBA et C++ est appelée. Autrement, une boîte de dialogue signale à l’utilisateur un problème avec sa sélection. Des variables sont aussi créés au sein de la fonction VBA pour contenir les résultats des tests et les matrices SSCP. Ces variables sont en argument de la fonction lien VBA/C++. • La fonction lien vérifie la nature des arguments d’entrée et leur taille et passe ensuite à l’éxécution de la fonction C++. • Les résultats de la fonction C++ sont copiés dans les variables gardées en mémoire • On utilise ces variables mémoire pour a cher les résultats attendus par l’utilisateur dans une nouvelle feuille Excel Toutes ces étapes sont schématisées ci-après : 20
  25. 25. 3.4 Comparaison XLSTAT et logiciels concurrents XLSTAT R IBM SPSS Type I 3 3 3 Type II 7 7 3 Type III 7 7 3 Wilks 3 3 3 Hotelling 3 3 3 Pillai 3 3 3 Roy 3 3 3 Pondération 3 7 3 Interface 3 7 3 Licence GNU Public 7 3 7 Plateformes Windows - Mac Windows - Mac -Linux Windows-Mac Tableau 3.1: Options proposées par XLSTAT et ses concurrents Comme le montre le tableau 3.1 SPSS a l’avantage de proposer tous les types de cal- culs de somme des carrés et produits croisés à ses utilisateurs. R propose une solution assez complète à l’image de XLSTAT à la seule di érence qu’il requiert de ses utilisateurs, des compétences en programmation. XLSTAT o re donc une MANOVA similaire à celle des leaders du marchés, en termes de précision de calculs et de qualité. Temps de calcul : Le test suivant a été réalisé avec une matrice de données de 205 lignes et 4 colonnes. De plus, on a 3 facteurs avec respectivement 22, 2 et 2 niveaux d’où une matrice X de taille 205 ◊ 88. Le temps d’exécution entre la validation de la part de l’utilisateur de sa sélection des données et l’a chage complète des résultats est d’environ 10.75 secondes avec XLSTAT. Ce temps d’exécution est de l’ordre de la seconde avec les logiciels R et SPSS. On voit alors que les concurrents sont nettement meilleurs en termes de temps d’exécution. Ce déficit devrait être comblé avec le développement en cours d’une classe de matrices creuses. En e et, pour des jeux de données de grande taille, la matrice de design X est généralement une matrice creuse. 21
  26. 26. 4 Impressions personnelles Malgré un sujet conceptuellement assez simple, la compréhension des bases théoriques de la MANOVA et surtout la manière dont elle doit e cacement être programmée ont pris beaucoup de temps. De plus, l’absence de documentation sur l’implémentation de ces méthodes statistiques et le non-libre accès au code source des logiciels concurrents nécessitaient une recherche poussée. En e et, dans un marché où la plupart des logiciels statistiques sont commercialisés, il est parfois di cile d’avoir accès aux informations concernant les méthodes d’implémenta- tion de ces méthodes statistiques. Plus précisément j’ai commencé mon implémentation plus de deux semaines après mon arrivée. J’ai essayé beaucoup de méthodes d’implémentation en rencontrant beau- coup de problèmes. En e et, la manière d’implémenter di ère souvent de la présentation théorique de la méthode. J’ai fait également beaucoup de recherches sur la manière dont la MANOVA était implémentée chez les concurrents, plus particulièrement la manière de R. Ces recherches m’ont pris du temps avant que j’organise mes recherches d’une autre manière à savoir cibler l’existant au détriment de la théorie. Cependant, en suivant les bons conseils et sans partir sur de mauvaises pistes, nous avons finalement obtenu des résultats satisfaisants. J’ai donc beaucoup appris durant ce stage, tant au niveau professionnel que personnel. D’un point de vue personnel, je vais définitivement me tourner vers la programmation mathématique. Ayant passé presque six mois sur la programmation logicielle, avec un bon encadrement, j’ai énormément progressé dans le développement C++ et VBA. Professionnellement, j’ai découvert le domaine de la conception logicielle et de la recherche. Tout cela s’inscrit dans un univers passionnant. De par ce que j’ai appris et réalisé durant ce stage, c’est avec un réel enthousiasme que je recommencerai volontiers un tel projet. Merci à toute l’équipe Addinsoft ! 22
  27. 27. Conclusion Le bilan de ce stage s’est avéré très positif. Les objectifs ont été atteints et ce fut une très bonne expérience pratique pour moi. Dorénavant, l’analyse de la variance multivariée est disponible sur XLSTAT. Tous les programmes étant implementés sous une forme standard qu’utilise toute l’équipe de développement statistique Addinsoft, cela augmente les chances que le code puisse être amélioré pour une meilleure expérience utilisateur. Pour ce qui est des performances, il s’agit surtout d’utiliser la classe de matrices creuses pour accélerer les calculs. On a pu voir au cours de notre implémentation qu’il n’est souvent pas judicieux de faire une implémentation directe de la théorie. Dans la continuité du projet, il pourrait être avisé de laisser à l’utilisateur le choix du type de matrice de sommes de carrés et produits croisés, ce qui implique leur implémen- tation en amont. 23
  28. 28. Références bibliographiques [1] James E. Gentle, Wolfgang Karl H., Yuichi Mori Handbook of computational statistics, Edition 2 Springer [2] Alan Taylor Multivariate Analyses with Manova and GLM Department of psychology Macquarie University 2002-2011. [3] Master thesis - Patrik Zetterberg E ects of unbalancedness and heteroscedasticity on two way MANOVA Department of statistics Stockholm University 2013. [4] John Fox, Michael Friendly, Sanford Weisberg Hypothesis for multivariate linear models using car package The R Journal ISSN 2073-4859. [5] Je Johnson GUI Bloppers [10] Analyse de la variance multivariée - MANOVA http://www.math.univ-toulouse.fr/~besse/Wikistat/pdf/ st-m-modmixt5-manova.pdf Wikistat [6] R [7] MinitabR• [8] SASR• [9] SPSSR• 24
  29. 29. Addinsoft 35 Place Gambetta Bordeaux France http://www.xlstat.com/ Mamadou SECK Polytech Lyon MAM - Promotion 21 Année 2014-2015 Résumé Intégration de l’analyse de la variance multivariée dans la solution XLSTAT Dans cette étude, nous présentons l’implémentation de l’analyse de la variance multivariée dans le logiciel XLSTAT. Après avoir présenté les bases théoriques d’une telle méthode et les di érentes possibilités de mises en oeuvre, nous nous pencherons sur l’implémentation du code source en C++, ensuite sur l’interface homme-machine réalisée en VBA avant de nous intéresser finalement à l’expérience utilisateur. Ceci passe par une recherche bibliographique, l’utilisation de logiciels concurrents pour compren- dre leur jauger la qualité de leur o re, les options proposées ainsi que la façon dont leur solution est implémentée. Mots-clés : MANOVA, SSCP, Statistiques, XLSTAT Abstract Integration of the multivariate analysis of variance in XLSTAT solution This present thesis describes the implementation of the MANOVA method within the XLSTAT statistical solution. The theoretical basis of this method will first be detailed. We will then explore the various possi- bilities of implementation of this method and present the several approaches taken by competing solutions. Finally, we will describe our implementation together with the GUI (Graphical User Interface). Thorough bibliography and the use of numerous tools, we are involved to achieve an exhaustive review of the competition and develop an e cient solution. Keywords : MANOVA, SSCP, Statistiques, XLSTAT

×