lundi 24 décembre 2012

Analyse des correspondances multiples - Outils

L’analyse des correspondances multiples (ACM) est une technique factorielle qui s’applique aux tableaux « individus - variables », ces dernières étant exclusivement catégorielles. On peut la voir comme une variante de l’analyse en composantes principales (il y a de nombreuses manières de la voir en réalité). D’ailleurs, lorsque les descripteurs sont tous binaires, les deux approches se rejoignent. A la sortie, nous obtenons une description synthétique des données qui préserve les proximités entre les individus, met en évidence les liaisons entre les variables et, éventuellement, permettre de situer des groupes d’observations partageant les mêmes caractéristiques. Je n’en dirai pas plus, il existe de très nombreux supports de qualité sur internet qui permettent de situer relativement simplement les tenants et aboutissants de cette méthode.

Nous avons décrit la mise en œuvre de l’ACM dans plusieurs tutoriels, notamment sous Tanagra et sous R avec le package FactoMiner. Les sorties du composant « MULTIPLE CORRESPONDENCE ANALYSIS » ayant été complétées dans la version 1.4.48 de Tanagra, je me suis dit que la meilleure manière de situer les avancées est de comparer les tableaux de résultats fournis par Tanagra avec ceux des autres logiciels. Ce travail permet aux étudiants de se dégager de l’autocratie des logiciels : comprendre la méthode est  le plus important, qu’importent les outils, tous – normalement, si ce n’est pas le cas il faut comprendre pourquoi – fourniront en définitive les mêmes résultats.

Dans un premier temps, nous décrirons la mise en œuvre de Tanagra sur une base de données comportant 8403 individus décrits par 23 variables. Nous mettrons en parallèle les sorties de SAS 9.3 (PROC CORRESP). Par la suite, nous mènerons la même étude avec R via le package « ade4 », puis avec STATISTICA. Nous constaterons que si les solutions numériques sont identiques, la manière de les présenter peut différer d’un logiciel à l’autre.

Mots clés : analyse des correspondances multiples, ACM, analyse factorielle des correspondances multiples, AFCM, logiciel R, package ade4, statistica, sas, proc corresp, détection du nombre de facteurs
Composants : MULTIPLE CORRESPONDENCE ANALYSIS, PARALLEL ANALYSIS
Lien : Tutoriel ACM
Données : mca_loisirs.zip
Références :
H. Abdi, D. Valentin, « Multiple correpondence analysis », In N.J. Salkind (Ed.): Encyclopedia of Measurement and Statistics. Thousand Oaks (CA): Sage, 2007.

samedi 15 décembre 2012

Analyse des correspondances discriminante

L’analyse factorielle discriminante ou analyse discriminante descriptive vise à décrire et à expliquer l’appartenance des observations à des groupes prédéfinis à partir d’un ensemble de variables explicatives (variables prédictives, descripteurs). Etant basée sur la décomposition de la variance, elle ne s’applique qu’aux variables explicatives quantitatives. La solution n’est pas directement transposable aux variables catégorielles (qualitatives).

J’ai découvert récemment un article d’Hervé Abdi (2007). Il propose d’exploiter les propriétés de l’analyse factorielle des correspondances (AFC) pour résoudre le problème de l’analyse discriminante descriptive sur variables catégorielles. L’approche, appelée « discriminant correspondence analysis » traduite librement par « analyse des correspondances discriminante », repose sur une transformation ingénieuse des données « individus x variables » en un tableau de contingence un peu particulier. A la sortie nous obtenons des résultats qui décrivent les relations entre les modalités de la variable cible (qui définissent l’appartenance aux groupes) et celles des variables explicatives qualitatives. Il est même possible d’obtenir une représentation graphique révélant les attractions et répulsions.

Dans ce tutoriel, nous montrons la mise en œuvre de la méthode dans Tanagra 1.4.48. Nous reprendrons l’exemple de l’article de référence de la méthode. Il s’agit de caractériser la provenance des vins à partir de leurs propriétés. Notre objectif est d’expliquer pas à pas l’approche en associant les résultats de Tanagra à chaque étape de l’article. Par la suite, nous reproduisons les calculs à l’aide d’un programme écrit pour le logiciel R.

Mots clés : analyse factorielle discriminante, ACD, discriminant correspondence analysis, DCA, analyse discriminante descriptive, analyse des correspondances, logiciel R, package xlsx, package ca
Composants : DISCRIMINANT CORRESPONDENCE ANALYSIS
Lien : Tutoriel DCA
Données : french_wine_dca.zip
Références :
H. Abdi, « Discriminant correspondence analysis », In N.J. Salkind (Ed.): Encyclopedia of Measurement and Statistics. Thousand Oaks (CA): Sage. pp. 270-275, 2007.

mercredi 12 décembre 2012

Analyse des correspondances - Comparaisons

L’analyse des correspondances est une méthode statistique de réduction de dimension. Elle propose une vision synthétique de l’information intéressante d’un tableau de contingence. Son pouvoir de séduction repose en grande partie sur les représentations graphiques qu’elle propose. Elles nous permettent de situer facilement (beaucoup le pensent en tous cas) les similarités (dissimilarités) et les attractions (répulsions) entre les modalités. L’AFC est bien une technique factorielle. Les facteurs – les variables latentes – qui en sont issus sont des combinaisons linéaires des points modalités (lignes ou colonnes) exprimés par des profils (lignes ou colonnes).

Dans ce tutoriel, nous décrivons la mise en œuvre de l’AFC dans plusieurs logiciels : la version 1.4.48 de Tanagra qui intègre des nouveautés destinées à améliorer la lecture des résultats ; le logiciel R avec les packages « ca » et « ade4 » ; le logiciel OpenStat ; et le logiciel SAS qui servira de référence. Nous constaterons – comme toujours – que tous ces logiciels produisent exactement les mêmes résultats numériques (heureusement !). Les différences se situent essentiellement au niveau de la mise en valeur des sorties.

Mots clés : afc, analyse factorielle des correspondances, représentation quasi-barycentrique, logiciel R, package ca, package ade4, openstat, sas
Composants : CORRESPONDENCE ANALYSIS
Lien : fr_Tanagra_Correspondence_Analysis.pdf
Données : statements_foods.zip
Références :
M. Bendixen, « A practical guide to the use of the correspondence analysis in marketing research », Marketing Research On-Line, 1 (1), pp. 16-38, 1996.
Tutoriel Tanagra, "AFC - Association médias et professions".

samedi 1 décembre 2012

Tanagra - Version 1.4.48

De nouveaux composants ont été implémentés.

K-Means Strengthening. Ce composant m’a été suggéré par Mme Claire Gauzente. Il s’agit de « confirmer » une partition existante (ex. issue d’une CAH – Classification ascendante hiérarchique) à l’aide de plusieurs passes de l’algorithme des centres mobiles. Une comparaison des partitions avant et après optimisation est proposée, indiquant l’efficacité de la post-optimisation. Dans Tanagra, l’approche peut intervenir après toute technique de clustering. Merci à Claire pour cette idée très intéressante.

Discriminant Correspondence Analysis. Analyse factorielle discriminante pour les variables qualitatives (Hervé Abdi, 2007). Elle vise à caractériser l’appartenance des individus à des groupes (définies par une variable cible) à l’aide d’un ensemble de variables descriptives qualitatives. La méthode s’appuie sur une transformation du tableau de données attribut-valeur en un tableau de contingence qui permet l’application d’une analyse factorielle des correspondances. Nous retrouvons dès lors le mode de lecture habituel des résultats de cette dernière (coordonnées factorielles, contributions, qualité de représentation).

D’autres composants ont été améliorés.

HAC. Après le choix du nombre de classes dans le dendrogramme dans la classification ascendante hiérarchique, une dernière passe sur les données est effectuée, affectant chaque individu de l’échantillon d’apprentissage au centre de classes qui leur est le plus proche. La même approche est mise en œuvre lorsqu’il s’agit de déployer le modèle de classification aux individus supplémentaires. De fait, il peut y avoir incohérence entre le nombre d’observations affiché sur les nœuds du dendrogramme et le nombre d’individus dans les classes. Tanagra fournit à présent les deux informations. Seule la seconde est utilisée pour le déploiement et le calcul des statistiques descriptives subséquentes (moyennes conditionnelles pour la comparaison des groupes, etc.).

Correspondence Analysis. Tanagra fournit maintenant les coefficients  des fonctions de projection pour les lignes et colonnes supplémentaires dans l’analyse factorielle des correspondances (AFC). Il sera ainsi possible de calculer facilement les coordonnées factorielles d’un nouveau point décrit par un profil ligne ou colonne. Enfin, les tableaux de résultats peuvent être triés suivant les contributions aux axes des lignes et des colonnes.

Multiple correspondence analysis. Plusieurs améliorations ont été apportées à l’analyse factorielle des correspondances multiples (AFCM) : le composant sait prendre en compte les variables supplémentaires quantitatives et qualitatives ; les variables peuvent être triées selon leur contribution aux axes ; tous les indicateurs d’évaluation peuvent être réunis dans un seul grand tableau pour une vision synthétique des résultats, cette fonctionnalité est surtout intéressante si  on s’en tient à un faible nombre de facteurs ; les fonctions de score sont fournies, elles permettent de calculer facilement les coordonnées factorielles des individus supplémentaires en dehors de Tanagra.

Des tutoriels viendront décrire la mise en œuvre de ces composants dans des études de cas réalistes.

Page de téléchargement : setup

mardi 30 octobre 2012

Data Mining avec Orange

Exceptionnellement, je présente dans ce post un tutoriel que je n’ai pas écrit, découvert au fil de mes recherches sur le net. Il décrit en détail, et surtout de manière particulièrement claire, les fonctionnalités du logiciel Orange.

Je trouve ce document très intéressant parce qu’il nous permet de cerner ce que nous pouvons attendre d’un logiciel de Data Mining. Il s’articule autour d’une démarche classique d’analyse de données : importation, vérification et préparation des données, visualisation graphique, modélisation, évaluation.

Par rapport aux autres logiciel libres (ou accessibles gratuitement), Orange est très « user-friendly ». Il se démarque par ses outils graphiques, intuitifs et interactifs.

Mots clés : logiciel orange, arbres de décision, induction de règles, classifieur bayesien naïf, cah, classification ascendante hiérarchique, k-means, nuées dynamiques, courbe roc, matrice de coûts
Lien : Janez Demsar, "Data Mining".
Références :
Orange - Data Mining Fruitful & Fun -- http://orange.biolab.si/

mardi 25 septembre 2012

Analyse en facteurs principaux

On parle souvent de l'analyse en facteur principaux (AFP) en contrepoint à l'analyse en composantes principales (ACP) dans la littérature anglo-saxonne. Qu’est ce qui les distingue, qu’est-ce qui les réunit ?  Ce sont des techniques factorielles, raison pour laquelle on les confond bien souvent. Mais l’ACP cherche à résumer de manière la plus efficace possible l’information disponible en s’intéressant à la variabilité totale portée par chaque variable de la base. Il s’agit donc d’une technique de compression, intéressante surtout lorsque l’on cherche à exploiter les facteurs dans des études subséquentes (ex. analyse discriminante sur facteurs). En revanche, l’AFP cherche à structurer l’information en s’intéressant à la variabilité commune aux variables. L’idée est de mettre en avant des facteurs sous-jacents (variables latentes) qui associent deux ou plusieurs colonnes des données. L’influence des variables qui font cavalier seul, indépendantes des autres, devrait être écartée.

Elles sont donc différentes de par la nature des informations qu’elles exploitent. Mais la nuance n’est pas évidente. D’autant plus qu’elles sont souvent regroupées dans le même outil dans certains logiciels, que les tableaux de résultats sont identiques, et que les interprétations sont finalement très proches.

Dans ce tutoriel, nous décrirons trois techniques d’analyse factorielle pour variables quantitatives (Principal Component Analysis - ACP, Principal Factor Analysis, Harris Component Analysis). Nous nous en tiendrons aux algorithmes non itératifs pour les deux dernières. L’ACP, maintes fois présentée, servira surtout de repère pour les deux suivantes. Nous les distinguerons en détaillant la matrice (de corrélation pour l’ACP) qui sera présentée à l’algorithme de diagonalisation. Ce prisme permet de comprendre le type d’information que les méthodes mettent en avant à l’issue des calculs. Pour appuyer l’exposé, nous préciserons chaque étape des opérations sous le logiciel R en mettant en miroir les résultats fournis par SAS (PROC FACTOR). Par la suite, nous décrirons leur mise en œuvre sous les logiciels Tanagra 1.4.47, R avec le package PSYCH et SPSS 12.0.1.

Mots clés : ACP normée, analyse en facteurs principaux, analyse de Harris, corrélation reproduite, corrélation résiduelle, corrélation partielle, rotation varimax, logiciel R, package psych, principal( ), fa( ), proc factor, SAS, SPSS
Composants : PRINCIPAL COMPONENT ANALYSIS, PRINCIPAL FACTOR ANALYSYS, HARRIS COMPONENT ANALYSIS, FACTOR ROTATION
Lien : fr_Tanagra_Principal_Factor_Analysis.pdf
Données : beer_rnd.zip
Références :
D. Suhr, "Principal Component Analysis vs. Exploratory Factor Analysis".

lundi 24 septembre 2012

Tanagra - Version 1.4.47

Non iterative Principal Factor Analysis (PFA). Analyse en facteurs principaux est une technique factorielle qui cherche à mettre en évidence les variables latentes qui lient deux ou plusieurs variables actives de la base de données. A ce titre, à la différence de l’analyse en composante principales (ACP), elle s’intéresse uniquement à la variabilité partagée entre les variables. Dans les faits, elle travaille à partir d’une variante de la matrice des corrélations où pour chaque variable, sur la diagonale principale, nous remplaçons la valeur 1 par sa proportion de variance expliquée par les autres variables.

Harris Component Analysis. C’est une technique factorielle qui s’intéresse à la variabilité partagée entre les variables. Elle travaille sur une seconde variante de la matrice des corrélations où les liaisons entre deux variables sont accentuées lorsqu’elles (l’une des deux ou les deux) présentent une relation forte avec les autres variables de la base. Seule l’approche non itérative a été implémentée.

Analyse en composantes principales (ACP). L’outil est complété avec la reconstitution de la matrice de corrélation. Il est aussi réorganisé en interne afin que la structure puisse couvrir les différentes variantes de techniques factorielles pour variables quantitatives ou mixtes.

Ces trois techniques peuvent être couplées avec la rotation orthogonale des axes (FACTOR ROTATION).

Elles peuvent également être couplées avec les composants d’aide à la détection du nombre adéquat d’axes : PARALLEL ANALYSIS et BOOTSTRAP EIGENVALUES.

Page de téléchargement : setup

lundi 3 septembre 2012

Analyse factorielle de données mixtes

Habituellement, on utilise l’analyse en composantes principales (ACP) lorsque toutes les variables actives sont quantitatives, l’analyse des correspondances multiples (ACM ou AFCM) lorsqu’elles sont toutes catégorielles. Mais que faire lorsque nous avons un mix des deux types de variables ?

L’analyse factorielle des données mixtes (AFDM) de Jérôme Pagès (Pagès, 2004) s'appuie le codage disjonctif complet des variables qualitatives. Mais elle introduit une subtilité supplémentaire. A l’instar de l’ACP normée où l’on réduit les variables (c’est une forme de recodage) pour uniformiser leurs influences, il propose de substituer au codage 0/1 des variables qualitatives un codage 0/x où « x » est savamment calculé à partir des fréquences des modalités. On peut dès lors utiliser un programme usuel d’ACP pour mener l’analyse (Pagès, 2004 ; page 102). Les calculs donc bien maîtrisés. L’interprétation des résultats requiert en revanche un effort supplémentaire puisqu’elle sera différente selon que l’on étudie le rôle d’une variable quantitative ou qualitative.

Dans ce tutoriel, nous montrons la mise en œuvre de l’AFDM avec les logiciels Tanagra 1.4.46 et R 2.15.1 (package FactoMineR). Nous mettrons l’accent sur la lecture des résultats. Il faut pouvoir analyser simultanément l’impact des variables quantitatives et qualitatives lors de l’interprétation des facteurs. Les outils graphiques sont très précieux dans cette perspective.

Mots clés : ACP, ACM, AFCM, AFDM, corrélation linéaire, rapport de corrélation, package FactoMineR, logiciel R
Composants : AFDM, SCATTERPLOT WITH LABEL, CORRELATION SCATTERPLOT, VIEW MULTIPLE SCATTERPLOT
Lien : fr_Tanagra_AFDM.pdf
Données : AUTOS2005AFDM.txt
Références :
Jérôme Pagès, « Analyse Factorielle de Données Mixtes », Revue de Statistique Appliquée, tome 52, n°4, 2004 ; pages 93-111.

samedi 1 septembre 2012

Tanagra - Version 1.4.46

AFDM (Analyse factorielle des données mixtes). Etend l’analyse en composantes principales (ACP) aux données comportant un mélange de variables quantitatives et qualitatives. La méthode est due à Pagès (2004). Un tutoriel viendra décrire la mise en œuvre de la méthode et la lecture des résultats.

Page de téléchargement : setup

mercredi 8 août 2012

Manipulation des données avec R

Le logiciel R est à la fois un logiciel de statistique, sa bibliothèque de fonctions est quasi-infinie, et un langage de programmation, avec tous les attributs associés (types de données, branchements conditionnels, boucles, modularité…).

Mais, on le met peu souvent en avant, R est aussi un excellent outil de préparation des données. Il propose l’équivalent des fonctionnalités qui font la popularité des tableurs dans la phase de pré-traitement (filtres, filtres élaborés, élaboration de variables synthétiques, tris, tableaux croisés dynamiques, etc.).

Dans ce tutoriel, nous présentons succinctement les possibilités de R en matière de manipulation de données. Nous aborderons tour à tour : le filtrage, les statistiques descriptives ciblées sur des sous-populations, les tris et, très brièvement, les outils graphiques.

Mots-clés : logiciel R, package xlsx, fichier excel, filtrage, tri, graphiques, préparation des données
Fichier : r_manip_data.zip
Références :

mardi 17 juillet 2012

Analyse discriminante linéaire - Comparaisons

L’analyse discriminante est à la fois une méthode prédictive et descriptive. Dans le premiers cas, on se réfère souvent à l’analyse discriminante linéaire. On cherche à produire un système de classement qui permet d’affecter un groupe à un individu selon ses caractéristiques (les valeurs prises par les variables indépendantes). Dans le second cas, on parle d’analyse factorielle discriminante. L’objectif est de produire un système de représentation synthétique où l’on distinguerait au mieux les groupes, en fournissant les éléments d’interprétation permettant de comprendre ce qui les réunit ou les différencie. Les finalités ne sont donc pas intrinsèquement identiques même si, en creusant en peu, on se rend compte que les deux approches se rejoignent. Certaines références bibliographiques entretiennent d’ailleurs la confusion en les présentant dans un cadre unique.

Tanagra opère clairement la distinction en proposant les deux méthodes dans des composants différents : LINEAR DISCRIMINANT ANALYSIS (onglet SPV LEARNING) pour la prédiction, CANONICAL DISCRIMINANT ANALYSIS (onglet FACTORIAL ANALYSIS) pour la description. Il en est de même pour SAS avec respectivement les procédures DISCRIM et CANDISC. D’autres en revanche les associent. C’est le cas des logiciels SPSS et R, mélangeant des résultats de teneur différente. Pour les spécialistes qui savent distinguer les éléments importants selon le contexte, cet amalgame n’est pas un problème. Pour les néophytes, c’est un peu plus problématique. On peut être perturbé par des informations qui ne semblent pas en rapport direct avec les finalités de l’étude.

Dans ce tutoriel, nous détaillons  dans un premier temps les sorties de Tanagra 1.4.45 concernant l’analyse discriminante linéaire. Dans un second temps, nous les mettrons en parallèle avec les résultats fournis par les logiciels R 2.15.1, SAS 9.3 et SPSS 12.0.1. L’objectif est de discerner les informations importantes pour l’analyse prédictive c.-à-d. obtenir un système simple d’affectation des individus aux classes, avoir des indications sur le rôle (interprétation) et la pertinence (significativité) des variables, et disposer d’un mécanisme de sélection de variables.

Mots clés : analyse discriminante linéaire, analyse discriminante prédictive, sélection de variables, logiciel sas, stepdisc, discrim, candisc, logiciel R, package xlsx, package MASS, lda, package klaR, greedy.wilks, matrice de confusion, taux d'erreur en resubstitution
Composants : LINEAR DISCRIMINANT ANALYSIS, CANONICAL DISCRIMINANT ANALYSIS, STEPDISC
Lien : fr_Tanagra_LDA_Comparisons.pdf
Données : alcohol
Références :
Wikipedia - "Analyse discriminante linéaire"

mardi 10 juillet 2012

La compilation sous R

De temps en temps, des informaticiens me tombent dessus en m’assénant que R est bien beau, mais que ça reste un langage interprété, donc notoirement lent. Invariablement je réponds que c’est indéniable, mais que nos programmes représentent la plupart du temps un enchaînement d’appels de fonctions qui, elles, sont compilées (depuis la version 2.14 tout du moins). De fait, les temps de traitements sont très peu grevés par les caractéristiques de l’interpréteur. Avec un peu d’expérience, on se rend compte que R est surtout mal à l’aise lorsque nous implémentons explicitement des boucles (ex. la boucle for). Il faut donc les éviter autant que possible.

J’en étais resté à cette idée lorsque j’ai découvert le package « compiler » de Luke Tierney, inclus dans la distribution standard de R 2.14 . Il serait possible de compiler très simplement un bloc d’instructions intégré dans une fonction. Dans certaines configurations, que l’on s’attachera à déterminer justement, le « byte code » qui en découle se révèlerait nettement plus performant que le code natif passé à la moulinette de l’interpréteur.

Dans ce tutoriel, nous programmons deux traitements classiques de l’analyse de données, (1) avec et (2) sans l’utilisation des boucles : le centrage réduction des variables d’un data frame et le calcul d’une matrice de corrélation par produit matriciel. Dans un premier temps, nous mesurons les temps d’exécution respectifs des versions interprétées. Dans un second temps, nous les compilons avec la fonction « cmpfun » du package compiler, puis nous les évaluons de nouveau.

Nous constatons que le gain en vitesse d’exécution de la version compilée est particulièrement spectaculaire pour les versions avec boucles, il est négligeable en revanche pour les secondes variantes.

Mots clés : package compiler, cmpfun, byte code, package rbenchmark, benchmark
Lien : fr_Tanagra_R_compiler_package.pdf
Programme : compilation_r.zip
Références :
Luke Tierney, "A Byte Code Compiler for R", Department of Statistics and Actuarial Science, University of Iowa, March 30, 2012.
Package 'compiler' - "Byte Code Compiler"

samedi 16 juin 2012

ACP sur corrélations partielles (suite)

Dans certains cas, les résultats de l’analyse en composantes principales  propose des résultats guère décisifs, parce qu’évidents. C’est le cas lorsque l’étude est dominée par l’influence de quelques variables qui pèsent exagérément sur toutes les autres. On parle « d’effet taille ». Il est alors généralement conseillé d’ignorer la première composante pour se concentrer sur l’étude des suivantes. Mais ce n’est pas aussi simple car nous sommes alors confrontés à d’autres problèmes. Par exemple, les guides usuels (règle de Kaiser, scree plot, etc) pour la détection du nombre adéquat de facteurs deviennent inopérants. En effet, mis à part le premier, les axes sont portés par des valeurs propres très faibles, laissant à penser qu’ils correspondent à des informations résiduelles, négligeables. Bien malin celui qui pourrait dès lors déterminer les facteurs « intéressant » pour l’interprétation.

Dans un ancien document, nous analysions les mensurations des différentes parties du corps. L’idée était de détecter les concomitances (ex. celui qui a de gros genoux a-t-il aussi de grosses chevilles). Très rapidement, nous nous sommes rendu compte que la taille, le poids et le genre pesaient fortement sur toutes les autres, masquant les relations pouvant exister entre les variables. Pour dépasser cette contrariété, j’avais proposé de réaliser l’ACP, non pas à partir de la matrice des corrélations brutes, mais à partir des corrélations partielles, en contrôlant l’impact des trois variables ci-dessus (cf. Saporta, 2006 ; page 197). Le diagramme de traitements était un peu complexe, mais les résultats en valaient la peine. Nous retrouvions bien les similitudes qu’il pouvait y avoir selon les différentes régions du corps.

Très récemment, je me suis rendu compte que ce type d’analyse est proposé de manière native par la proc factor du logiciel SAS. Je me suis jeté dessus pour vérifier que l’on retrouvait bien les mêmes résultats, ce qui est le cas, c’est toujours rassurant. C’est ce nouveau traitement qui vient compléter ce tutoriel (Section 7).

Enfin, puisque la procédure est somme toute assez simple, je l’ai également programmée sous R en exploitant princomp( ). La difficulté réside dans une préparation adéquate des données (Section 8). Bien évidemment, quel que soit le logiciel utilisé, nous avons exactement les mêmes résultats.

Mots clés : corrélation partielle, analyse en composantes principales, acp, sas, proc factor, partial, logiciel R, princomp, varimax
Composants : Principal Component Analysis, Scatterplot, 0_1_Binarize, Residual Scores, VARHCA, Parallel Analysis, Factor Rotation
Lien : fr_Tanagra_PartialCorrelation_PCA_continued.pdf 
Données : body.xls ; body_sas.zip
Références :
Tutoriel Tanagra, "Travailler sur les corrélations partielles"
Tutoriel Tanagra, "ACP avec Tanagra - Nouveaux outils"

vendredi 15 juin 2012

ACP avec Tanagra - Nouveaux outils

L’analyse en composantes principales (ACP) est une technique exploratoire très populaire.  Selon les points de vue, on peut la considérer : comme une technique descriptive où l’on essaie de résumer les données dans ses dimensions les plus importantes ; comme une technique de visualisation où l’on essaie de préserver les proximités entre les individus dans un espace de représentation réduit ; comme une technique de compression de l’information ; etc.

Outre les excellents ouvrages en langue française qui les décrivent, les références sont suffisamment abondantes sur le web pour que chacun se fasse son idée. J’en ai moi-même beaucoup parlé dans plusieurs didacticiels et, récemment, j’ai décrit la programmation sous R du test de Bartlett, de l’indice KMO (MSA – Measure of Sampling Adequacy), et des indicateurs pour la détermination du nombre de facteurs en ACP. On les trouve rarement sous une forme native dans les logiciels libres, je me suis dit qu’il était opportun de les intégrer dans Tanagra 1.4.45.

Dans ce tutoriel, nous décrivons la mise en œuvre de ces nouveaux outils. Nous mettrons en parallèle, quand cela est possible, les résultats de la PROC FACTOR de SAS. Nous avons choisi cette dernière plutôt que PRINCOMP parce que ses sorties sont plus complètes.

Mots clés : analyse en composantes principales, acp, sas, proc princomp, proc factor, test de sphéricité de Bartlett, logiciel R, scree plot, cattell, règle de kaiser, règle de karlis saporta spinaki, test des bâtons brisés, analyse parallèle, randomisation, bootstrap, corrélation, corrélation partielle, rotation varimax, classification de variables, msa index, indice kmo, cercle des corrélations
Composants : PRINCIPAL COMPONENT ANALYSIS, CORRELATION SCATTERPLOT, PARALLEL ANALYSIS, BOOTSTRAP EIGENVALUES, FACTOR ROTATION, SCATTERPLOT, VARHCA
Lien : fr_Tanagra_PCA_New_Tools.pdf
Données : beer_pca.xls
Références :
Tutoriel Tanagra - "ACP – Description de véhicules"
Tutoriel Tanagra - "Analyse en Composantes principales avec R"
Tutoriel Tanagra - "ACP sous R - Indice KMO et test de Bartlett"
Tutoriel Tanagra - "ACP avec R - Détection du nombre d'axes"

mardi 12 juin 2012

Tanagra - Version 1.4.45

Plusieurs nouveautés autour de l’analyse en composantes principales (ACP).

PRINCIPAL COMPONENT ANALYSIS. Sorties additionnelles pour le composant : Dessin de la scree plot et de la courbe de l’inertie expliquée ;  ACP normée – Aide à la détection du nombre d’axes avec les seuils de Kaiser-Guttman, de Karlis-Saporta-Spinaki, test des bâtons brisés de Legendre-Legendre ; ACP normée – test de Bartlett et indice KMO (indice MSA de Kaiser-Mayer-Olkin) si le déterminant de la matrice des corrélations est supérieur à 1E-45 ; ACP normée – Affichage de la matrice des corrélations brutes et des corrélations partielles.

PARALLEL ANALYSIS. Le composant calcule la distribution des valeurs propres pour un jeu de données généré aléatoirement. Il procède par randomisation. Il s’applique à l’analyse en composantes principales et l’analyse des correspondances multiples. Un facteur est considéré significatif si sa valeur propre est supérieure au quantile d’ordre 0.95 (paramétrable).

BOOTSTRAP EIGENVALUES. Calcul par ré-échantillonnage bootstrap de l’intervalle de variation des valeurs propres. Un axe est significatif si sa valeur propre est supérieure à un seuil qui dépend de la méthode sous-jacente (ACP ou ACM), ou si la borne basse de la valeur propre d’un axe est supérieure à la borne haute de la suivante. Le niveau de confiance 0.90 est paramétrable. S’applique à l’analyse en composantes principales et l’analyse des correspondances multiples.

JITTERING. S’applique aux composants de visualisation de nuages de points (SCATTERPLOT, CORRELATION SCATTERPLOT, SCATTERPLOT WITH LABEL, VIEW MULTIPLE SCATTERPLOT). Modifie très légèrement, aléatoirement, la position des points dans le nuage pour que l’utilisateur puisse identifier les superpositions.

RANDOM FOREST. Libération de la mémoire non utilisée après apprentissage des arbres de décision. Dans un apprentissage simple, cela ne porte pas à conséquence. En revanche, dans les méthodes ensemble (BAGGING, BOOSTING, et les RANDOM FOREST) où l’on empile un très grand nombre d’arbres, les capacités de calcul sont très largement améliorées. Merci à Vincent Pisetta de m’avoir signalé cet écueil.

Page de téléchargement : setup

dimanche 3 juin 2012

ACP avec R - Détection du nombre d'axes

L’analyse en composantes principales (ACP) est une technique exploratoire très populaire. Il s’agit de résumer l’information contenue dans un fichier en un certain nombre de variables synthétiques, combinaisons linéaires des variables originelles. On les appelle « composantes principales », ou « axes factoriels », ou tout simplement « facteurs ». Nous devons les interpréter pour comprendre les principales idées forces que recèlent les données.

Le choix du nombre de facteurs est très important. L’enjeu est de distinguer d’une part l’information pertinente (le « signal »), véhiculée par les axes que l’on choisit de retenir ; et d’autre part, l’information résiduelle – le « bruit » issu des fluctuations d’échantillonnage – traduite par les derniers facteurs que l’on choisit de négliger.

Dans ce tutoriel, nous présentons plusieurs méthodes de détermination du nombre adéquat de facteurs. Nous nous concentrerons tout d’abord sur les procédures simples, facilement opérationnelles. Les techniques de ré-échantillonnage, efficaces certes, mais gourmandes en ressources surtout lorsque la taille des fichiers augmente, feront l’objet d’une description à part. Nous détaillerons les calculs à partir des résultats d’une ACP normée menée sur une base relativement réduite. Nous travaillerons dans un premier temps avec le couple TANAGRA + tableur Excel puis, dans un second temps, nous décrirons la même analyse menée à l’aide de la fonction PRINCOMP du logiciel R. Ce document a été inspiré par plusieurs articles référencés en bibliographie.

Mots clés : analyse en composantes principales, acp, princomp, test de sphéricité de Bartlett, xslx package, logiciel R, scree plot, cattell, règle de kaiser, règle de karlis, test des bâtons brisés, analyse parallèle, randomisation, bootstrap, corrélation, corrélation partielle
Composants : PRINCIPAL COMPONENT ANALYSIS, LINEAR CORRELATION, PARTIAL CORRELATION
Lien : fr_Tanagra_Nb_Components_PCA.pdf
Données : crime_dataset_pca.zip
Références :
D. Jackson, “Stopping Rules in Principal Components Analysis: A Comparison of Heuristical and Statistical Approaches”, in Ecology, 74(8), pp. 2204-2214, 1993.
P. Neto, D. Jackson, K. Somers, “How Many Principal Components? Stopping Rules for Determining the Number of non-trivial Axes Revisited”, in Computational Statistics & Data Analysis, 49(2005), pp. 974-997, 2004.
Tutoriel Tanagra - "ACP – Description de véhicules"
Tutoriel Tanagra - "Analyse en Composantes principales avec R"
Tutoriel Tanagra - "ACP sous R - Indice KMO et test de Bartlett"

samedi 26 mai 2012

ACP sous R - Indice KMO et test de Bartlett

L’analyse en composantes principales (ACP) est une technique exploratoire très populaire. Il y a différentes manières de l’appréhender, en voici une très simplifiée : « partant d’une base de données à ‘’n’’ observations et ‘’p’’ variables, toute quantitatives, on cherche à résumer l’information disponible à l’aide de quelques variables synthétiques qu’on appelle facteurs ». Leur nombre n’est pas défini à l’avance, sa détermination est d’ailleurs un enjeu fort dans le processus. Généralement, on en prend au moins deux afin de disposer d’une représentation graphique des individus et des variables dans le plan.

Nous avons présenté maintes fois l’ACP auparavant, tant pour le logiciel R que pour Tanagra. Dans ce tutoriel, nous décrivons deux indicateurs de qualité de l’analyse qui sont directement proposés dans des logiciels commerciaux célèbres (SPSS et SAS pour ne pas les citer), mais que l’on retrouve peu ou prou dans les logiciels libres. On notera qu’ils ne sont pas non plus repris dans les ouvrages qui font référence en français. Il s’agit du test de sphéricité de Bartlett et de l’indice KMO (Kaiser – Mayer – Olkin) mesurant l’adéquation de l’échantillon. Plusieurs internautes m’ayant posé la question sur la manière des le obtenir sous R, je me suis dit qu’il y a avait là quelque chose à faire.

Dans ce qui suit, nous présentons succinctement les formules de calcul, nous leur associons un programme écrit en R, et nous montrons leur mise en œuvre sur un fichier de données. Nous comparons nos sorties avec celles du logiciel SAS.

Mots clés : analyse en composantes principales, acp, spss, sas, proc factor, princomp, indice kmo, msa index, test de sphéricité de Bartlett, xslx package, psych package, logiciel R
Composants : VARHCA, PRINCIPAL COMPONENT ANALYSIS
Lien : fr_Tanagra_KMO_Bartlett.pdf
Données : socioeconomics.zip
Références :
Tutoriel Tanagra - "ACP – Description de véhicules"
Tutoriel Tanagra - "Analyse en Composantes principales avec R"
SPSS - "Factor algorithms"
SAS - "The Factor procedure"

mardi 22 mai 2012

Le format de fichier "sparse"

Le traitement statistique des documents non-structurés est un vrai challenge. « Non-structuré » est a priori difficile à cerner. Dans le cadre du data mining, on l’utilise généralement (en simplifiant à l'extrême, je vois déjà les puristes bondir) pour toute donnée qui s’écarte du classique attribut-valeur où l’observation est décrite par un vecteur de longueur constante de caractéristiques (ex. un client est décrit par son âge, son revenu, …).

Ainsi, même si intrinsèquement le texte et l’image, pour ne citer qu’eux, ont une structure interne cohérente, un pré-traitement est nécessaire pour parvenir à une description « attribut-valeur ». Cette transformation engendre des tableaux de données volumineux avec certaines spécificités. Il est possible de les exploiter pour proposer un format de description parcimonieux, et aboutir à des fichiers de taille réduite. Il s’agit en quelque sorte d’une forme de compression sans perte. Mais le fichier reste lisible avec un simple éditeur de texte. Comme nous le constaterons pour l’exemple que nous traiterons, la réduction de la taille du fichier n’est absolument pas négligeable.

Dans ce tutoriel, nous décrivons le format de fichier « sparse » (format « creux », extension .data ou .dat) pour la régression et le classement reconnu par Tanagra (depuis la version 1.4.44), il est directement inspiré du format traité par les bibliothèques de calcul « svmlight », « libsvm » et « libcvm ». Nous illustrons son exploitation dans un processus de catégorisation de texte appliquée à la base Reuters, bien connue en data mining.

Mots clés : support vector machine, machines à vecteur de support, séparateur à vaste marge, svm, libsvm, c-svc, régression logistique, tr-irls, apprentissage supervisé, scoring, courbe roc, auc, aire sous la courbe
Composants : VIEW DATASET, CONT TO DISC, UNIVARIATE DUISCRETE STAT, SELECT FIRST EXAMPLES, C-SVC, SCORING, ROC CURVE
Lien : fr_Tanagra_Sparse_File_Format.pdf
Données : reuters.data.zip
Références :
T. Joachims, "SVMlight: Support Vector Machine".
UCI Repository,  "Reuters-21578 Text Categorization Collection".

vendredi 18 mai 2012

La librairie LIBCVM (Core Vector Machine)

Les Support Vector Machine (SVM) constituent des méthodes particulièrement efficaces en apprentissage supervisé. De par leur grande stabilité, elles sont bien adaptées aux problèmes comportant un grand nombre de descripteurs relativement à la taille d’échantillon .  Elles sont moins à leur avantage lorsque le nombre d’observations « n » devient important. En effet, une implémentation naïve est de complexité O(n^3) en temps de calcul et O(n^2) en espace de stockage. De fait, obtenir la solution optimale n’est pas possible en pratique. Les implémentations recherchent des solutions approchées, et en profitent au passage pour réduire les complexités.

J’ai découvert récemment la librairie LIBCVM. L’idée des auteurs est très astucieuse, ils tiennent le raisonnement suivant (traduction très libre) : « Puisqu’on ne peut obtenir que des solutions approchées, on peut s’appuyer sur une formulation équivalente de la recherche des points supports, la recherche de la plus petite boule englobante (Minimum Enclosing Ball) en géométrie computationnelle, et utiliser les résultats obtenus avec cette dernière ». A la sortie, tout comme les SVM, la technique produit une série de points supports utilisables pour la prédiction, les performances prédictives sont similaires voire améliorées, avec une capacité accrue d’appréhension des grandes bases (en nombre d’observations).

Les méthodes CVM (Core Vector Machine) et BVM (Ball Vector Machine) dédiées à l’apprentissage supervisé sont implémentées dans la librairie LIBCVM. Il s’agit une extrapolation de la bibliothèque LIBSVM (version 2.85), bien connue des chercheurs. Le code source en C++ étant disponible, j’ai compilé LIBCVM (version 2.2 [beta], 29 août 2011) en DLL et je l’ai intégrée dans TANAGRA 1.4.44. Dans ce tutoriel, nous décrivons le comportement des méthodes CVM et BVM sur la base « Web data set » accessible sur le site des auteurs. Nous comparons les performances (qualité de prédiction, temps de calcul) avec celles de la méthode C-SVC de la librairie LIBSVM.

Mots clés : support vector machine, machines à vecteur de support, séparateur à vaste marge, svm, libcvm, cvm, bvm, libsvm, c-svc
Composants : SELECT FIRST EXAMPLES, CVM, BVM, C-SVC
Lien : fr_Tanagra_LIBCVM_library.pdf
Données w8a.txt.zip
Références :
I.W. Tsang, A. Kocsor, J.T. Kwok : LIBCVM Toolkit, Version: 2.2 (beta)
C.C Chang, C.J. Lin : LIBSVM -- A Library for Support Vector Machines

lundi 14 mai 2012

Tanagra - Version 1.4.44

LIBSVM (http://www.csie.ntu.edu.tw/~cjlin/libsvm/). Mise à jour de la librairie LIBSVM version 3.12 (Avril 2012) [concerne les composants de support vector machine : C-SVC, Epsilon-SVR, nu-SVR]. Les calculs sont plus rapides. Possibilité de normalisation ou non des données (elle était imposée auparavant).

LIBCVM (http://c2inet.sce.ntu.edu.sg/ivor/cvm.html ; version 2.2). Intégration de la librairie LIBCVM. Deux méthodes sont disponibles : CVM et BVM (Core Vector Machine et Ball Vector Machine). Possibilité de normalisation ou non des données.

TR-IRLS (http://autonlab.org/autonweb/10538). Mise à jour de la librairie TR-IRLS pour la régression logistique sur de grandes bases de données, comportant un grand nombre de descripteurs  (dernière version disponible - 08/05/2006). Calcul automatique de la déviance, et amélioration de l’affichage des coefficients (plus de décimales). Accès à  plusieurs paramètres de l’algorithme d’apprentissage (règles d’arrêt).

FICHIER SPARSE. Importation des fichiers “sparse” (cf. format SVMLight, LibSVM ou LibCVM), extensions .DAT ou .DATA Les données peuvent être relatives à l’apprentissage supervisé ou à la régression. Le format est décrit en ligne (http://c2inet.sce.ntu.edu.sg/ivor/cvm.html).

SÉLECTION DES INDIVIDUS. Un nouveau composant pour la sélection des m premiers individus parmi n dans une branche du diagramme. Cette option est utile lorsque le fichier résulte de la concaténation des échantillons d’apprentissage et de test.

Page de téléchargement : setup

lundi 30 avril 2012

Revolution R Community 5.0

Le logiciel R est en train de bouleverser le panorama des logiciels de statistique et de data mining. Le système des packages est un de ses principaux atouts. Il peut être enrichi à l’infini. Toute méthode statistique est potentiellement disponible dans R.

Mais si les packages sont nombreux, rares sont les projets qui cherchent à améliorer le moteur même de R, l’application principale. J’ai découvert récemment les travaux de la société Revolution Analytics. Elle commercialise Revolution R Enterprise qui : améliore très significativement les performances de calculs de R, est capable de traiter les grandes bases de données, et propose un EDI (environnement de développement) évolué avec un débogueur intégré. Cette version étant payante, je n’ai pas pu la tester. En revanche, la société distribue également une version communautaire qui, elle, est en libre accès. Bien évidemment, je me suis précipité dessus pour voir ce qu’il en était.

Revolution R Community est une variante améliorée de R. Elle n’intègre pas les fonctionnalités additionnelles de la version Enterprise. L’effort porte essentiellement sur les performances. Deux aspects sont mis en avant : elle intègre la bibliothèque de calcul mathématique Intel ; elle est capable de titrer profit des processeurs multi-cœurs. Des comparatifs sont accessibles en ligne. Apparemment, le gain est spectaculaire pour les techniques de data mining s’appuyant sur des calculs matriciels.

Dans ce tutoriel, nous étendons le « benchmark » à d’autres méthodes de data mining. Nous étudions les performances de « Revolution R Community 5.0 – 64 bits » : pour la régression logistique (glm) ; l’analyse discriminante (lda du package MASS) ; l’induction des arbres de décision (rpart du package du même nom) ; de l’analyse en composantes principales (ACP) avec deux techniques : celle reposant sur le calcul des valeurs propres (princomp) et celle s’appuyant la décomposition en valeurs singulières (prcomp). Nous utilisons une variante binaire de la base « wave » (Breiman et al., 1984) pour mesurer les temps de calculs.

Mots-clés : logiciel R, script r, revolution analytics, revolution r community, régression logistique, glm, analyse discriminante linéaire, lda, analyse en composantes principales, acp, princomp, prcomp, calcul matriciel, valeurs propres, vecteurs propres, eigen, décomposition en valeurs singulières, svd, arbres de décision, cart, rpart
Lien : fr_Tanagra_Revolution_R_Community.pdf
Fichier : revolution_r_community.zip
Références :
Revolution Analytics, "Revolution R Community".

jeudi 26 avril 2012

La proc logistic de SAS 9.3

Un étudiant est venu me voir une fois pour me demander si je comptais décrire l’utilisation de la « proc logistic » de SAS durant mon cours de régression logistique (Master SISE) . Je lui ai dit qu’on utilisait suffisamment d’outils comme ça (R, SPAD, SIPINA, TANAGRA et le tableur EXCEL), je ne voyais pas trop l’intérêt de voir un logiciel supplémentaire. D’autant plus que le plus important finalement est de bien maîtriser la chaîne de traitements, de comprendre la finalité et les implications de chacune des étapes, et de savoir lire les résultats. Qu’importe l’outil, la démarche reste toujours la même. Et puis, tout à fait prosaïquement, les heures ne sont malheureusement pas extensibles à l’infini dans nos Universités. Je lui dis alors que SAS étant disponible dans nos salles informatiques, il ne tenait qu’à lui de s’exercer en récupérant les très nombreux tutoriels accessibles sur internet.

Après coup, je suis allé vérifier moi-même sur le web. Et je me suis rendu compte qu’ils ne sont pas si nombreux que ça finalement les tutoriels en français, avec des copies d’écran explicites, montrant de manière simple et didactique la chaîne complète de traitements allant de l’importation de données jusqu’à la récupération des résultats. Je me suis dit qu’il y avait là des choses à faire.

Dans ce tutoriel, nous décrivons l’utilisation de la « proc logistic » de SAS 9.3, sans et avec la sélection de variables. Nous en profiterons pour étudier ses performances (essentiellement la rapidité de calcul) sur une base de grande taille. Nous comparerons les valeurs obtenues avec celles de Tanagra 1.4.43.

Mots-clés : sas, proc logistic, régression logistique
Composants : BINARY LOGISTIC REGRESSION
Lien : fr_Tanagra_SAS_Proc_Logistic.pdf
Fichier : wave_proc_logistic.zip
Références :
SAS - "The LOGISTIC Procedure"
R. Rakotomalala, "Pratique de la régression logistique - Régression logistique binaire et polytomique", Version 2.0, Juin 2011.
Tutoriel Tanagra - "Régression logistique sur les grandes bases"

samedi 14 avril 2012

SAS Add-in 4.3 pour Excel

Le logiciel SAS est bien connu des statisticiens. Il est présent sur le marché des logiciels de statistique depuis un grand nombre d’années maintenant. Il jouit d’une excellente réputation. Son principal défaut, outre le fait qu’il n’est pas accessible gratuitement, est qu’il faut connaître les instructions SAS, et de manière plus générale le langage de macro-commandes, pour pouvoir réellement l’exploiter.

SAS propose plusieurs solutions pour dépasser cet écueil. Entres autres, il a développé une macro complémentaire (add-in en anglais) pour la suite Office de Microsoft . Je l’ai découvert très récemment sur les machines des salles informatiques de notre département (Département Informatique et Statistique – Université Lyon 2 – http://dis.univ-lyon2.fr/). Je me suis intéressé en particulier à l’add-in dévolue au tableur Excel. De fait, 3 tâches pas toujours évidentes à mettre en œuvre dans la version standard de SAS sont très largement facilitées : l’importation d’un fichier Excel dans SAS, le paramétrage et le lancement des techniques statistiques, la récupération des résultats dans le tableur aux fins de visualisation ou d’élaboration des rapports.

Dans ce tutoriel, nous décrivons le comportement de la macro complémentaire lors de la mise en œuvre des tests non paramétriques de comparaisons de populations et de la régression logistique avec sélection de variables. Nous mettrons en parallèle les résultats obtenus avec le logiciel Tanagra. L’idée est de comparer les calculs et le mode de présentation des résultats.

Mots-clés : excel, sas, add-on, add-in, macro complémentaire, régression logistique, tests non paramétriques
Composants : MANN-WHITNEY COMPARISON, KRUSKAL-WALLIS 1-WAY ANOVA, MEDIAN TEST, VAN DER WAERDEN 1-WAY ANOVA, ANSARI-BRADLEY SCALE TEST, KLOTZ SCALE TEST, MOOD SCALE TEST
Lien : fr_Tanagra_SAS_AddIn_4_3_for_Excel.pdf
Fichier : scoring_dataset.xls
Références :
SAS - http://www.sas.com/
SAS - "SAS Add-in for Microsoft Office"
Tutoriel Tanagra - "L'add-in Tanagra pour Excel 2007 et 2010"

mercredi 28 mars 2012

Tanagra - Version 1.4.43

Quelques bugs ont été corrigés et quelques nouvelles fonctionnalités ajoutées.

Le calcul des contributions des individus dans l'ACP (PRINCIPAL COMPONENT ANALYSIS) ont été corrigées. Il était faussé lorsque nous travaillons sur un sous-échantillon de notre fichier de données. Cette erreur m'a été signalée par M. Gilbert Laffond.

La normalisation des facteurs après VARIMAX (FACTOR ROTATION) ont été corrigés de manière à ce que leur variance coïncide avec la somme des carrés des corrélations avec les axes, et donc avec la valeur propre associée à l'axe. Cette modification m'a été suggérée par M. Gilbert Laffond.

Dans le calcul de l'intervalle de confiance bootstrap de la Régression PLS (PLS CONF. INTERVAL), une erreur survenait lorsque le nombre d'axes demandé était supérieur au nombre de variables prédictives. Il est maintenant réduit d'autorité. Cette erreur m'a été signalée par M. Alain Morineau.

Dans certaines circonstances, une erreur peut survenir dans FISHER FILTERING, surtout lorsque Tanagra est exécuté via Wine sous Linux. Le composant a été sécurisé. Cette erreur m'a été signalée par M. Bastien Barchiési.

La vérification des données manquantes durant l'importation est maintenant optionnelle. La performance peut être privilégiée pour le traitement des très gros fichiers. Nous retrouvons les temps de traitement des versions 1.4.41 et précédentes.

Le menu «COMPONENT / COPY RESULTS » envoie des informations au format HTML qui sont maintenant compatibles avec le tableur Calc de la suite bureautique Libre Office (3.5.1). Il fonctionnait déjà avec le tableur Excel auparavant. Curieusement, la copie vers le tableur OOCalc d'Open Office  n'est pas possible à l'heure actuelle (Open Office 3.3.0).

Page de téléchargement : setup

vendredi 23 mars 2012

Sipina add-on pour OOCalc

La connexion entre les logiciels de data mining et un tableur est primordiale pour la popularité des premiers. Lorsqu’il s’agit de manipuler des bases de taille « raisonnable », avec plusieurs milliers d’observations et quelques dizaines de variables, le tableur est très pratique pour la gestion et le prétraitement des données (transformation, recodage, etc.). A l’issue de l’analyse, il constitue également un outil privilégié pour la mise en forme des résultats. Il n’est pas surprenant dès lors que des éditeurs de logiciels proposent des solutions de couplage fort sous forme de macro complémentaire pour Excel (ex. XLMiner). Particulièrement édifiant, des éditeurs tels que SAS s’y sont mis également. Notons enfin que Microsoft propose son propre add-in pour Excel basé sur le moteur « SQL Server Analysis Services ».

Tout ça est très bien. On notera simplement que si les solutions commerciales sont assez répandues pour Excel, les équivalents gratuits sont plutôt rares. Il y a bien sûr SIPINA et TANAGRA dont la macro complémentaire date de 2006 ; il y a RExcel qui permet d’établir connexion entre Excel et R  ; à force de chercher sur le net, j’ai réussi à en dénicher d’autres : XL-Statistics ; XL Toolbox ; etc.

Mais Excel lui-même n’est pas gratuit. Heureusement, il existe des alternatives crédibles avec le tableur des suites bureautiques gratuites Open Office et Libre Office. Véritable signe des temps, je constate qu’une bonne partie de mes étudiants préfèrent utiliser ces logiciels plutôt que de s’embarquer dans des copies plus ou moins piratées de la suite MS Office. Ce qui constitue une véritable avancée. D’où la question suivante : existe-t-il des add-on dédiés au calcul statistique qui s’intégreraient dans le tableur libre Calc ? Après quelques recherches, j’ai découvert, entres autres, quelques produits intéressants tels que Statistical Data Analyser for OOCalc, R4Calc. Nous les étudierons de manière approfondie dans un prochain tutoriel.

En ce qui nous concerne, l’add-on Tanagra pour Calc existe depuis 2006. En revanche, je n’ai jamais pris le temps de transposer l’idée à SIPINA alors que, par ailleurs, la macro-complémentaire « sipina.xla » pour Excel existe depuis plusieurs années. Cet oubli est réparé avec la version 3.9 de SIPINA (du 22 mars 2012). Nous montrons dans ce tutoriel l’installation et la mise en œuvre de l’add-on pour Open Office Calc 3.3.0. La transposition à Libre Office 3.5.1 est immédiate.

Mots-clés : calc, open office, libre office, oocalc, add-on, add-in, macro complémentaire, sipina
Lien : fr_sipina_calc_addon.pdf
Fichier : heart.xls
Références :
Tutoriel Tanagra - Connexion Excel - Sipina
Tutoriel Tanagra - Tanagra add-on pour Open Office Calc 3.3
Open Office - http://www.openoffice.org/fr/
Libre Office - http://fr.libreoffice.org/

jeudi 22 mars 2012

Sipina - Version 3.9

L'add-on « SipinaLibrary.oxt » a été rajouté à la distribution. A partir d'un menu additionnel intégrée au tableur CALC, il permet de lancer directement le logiciel SIPINA sur une sélection de données. L'add-on fonctionne pour les suites bureautiques Open Office (testée pour la version 3.3.0) et Libre Office (version 3.5.1).

Rappelons qu'un add-on, sous forme de macro-complémentaire (sipina.xla), permet également à SIPINA de s'intégrer dans le tableur Excel.

Site web : Sipina
Chargement : Fichier setup
Références :
Tutoriel Tanagra - Connexion Excel - Sipina
Open Office - http://www.openoffice.org/fr/
Libre Office - http://fr.libreoffice.org/

mercredi 14 mars 2012

Introduction à R - Arbre de décision

Dans la même veine que le précédent consacré à la régression logistique, ce tutoriel présente l’induction des arbres de décision sous le logiciel R sans entrer dans les arcanes de la programmation. Un minimum est fait sur les structures de données (data.frame, vecteurs, matrices).

Finalement, on s’en sort plutôt bien. Il est possible de mener une étude complète avec le peu de choses mises en avant dans ce document : construction d’un modèle sur un échantillon d’apprentissage, prédiction sur un échantillon test, élaboration de la matrice de confusion, calcul du taux de mauvais classement.

Nous utilisons en priorité la procédure rpart du package du même nom. Par la suite, nous montrons qu’il est possible de mener les mêmes analyses avec les procédures incluses dans les packages tree et party.

Ces deux derniers tutoriels récents s’inscrivent dans un de mes cours de data mining où je souhaite faire découvrir le logiciel R aux étudiants sans entrer dans les détails de la programmation sous R.

Mots-clés : logiciel R, arbres de décision, matrice de confusion, taux d’erreur, package xlsx, fichier excel
Lien : introduction_arbre_de_decision_avec_r.pdf
Fichier : intro_arbres_avec_r.zip
Références :
R Project,"The R Project for Statistical Computing"
R. Rakotomalala, « Arbres de décision », Revue Modulad, N°33, 2005.

vendredi 9 mars 2012

Introduction à R - Régression logistique

Est-il possible d’utiliser R sans savoir programmer ? C’est une question que je me suis longuement posée.

A priori, OUI. Il suffit de connaître les commandes adéquates, de savoir les entrer au clavier, de comprendre à peu près les structures internes des données manipulées par R (vecteurs, matrices, data frame), et savoir lire les résultats proposés.

Mais après réflexion, je trouve que c’est bien dommage parce que, dans ce cas, R se comporte comme n’importe quel logiciel lambda, avec la fastidieuse obligation de respecter les contraintes syntaxiques de l’interpréteur de commandes. Les autres outils, surtout ceux pilotés par diagramme, permettent de faire tout aussi bien – enchaîner les traitements – sans avoir à s’investir dans l’apprentissage des instructions adéquates pour telle ou telle manipulation.

Mais bon, on ne fait pas toujours ce qu’on veut dans la vie. Disposer d’heures supplémentaires pour enseigner le langage de programmation R préalablement à son utilisation dans les cours de statistique et de data mining est un luxe qui n’est pas toujours accessible. Nous sommes alors obligés d’exploiter R en faisant l’impasse sur énormément de choses. Au moins, nous obtenons les résultats souhaités.

Ce tutoriel sur la régression logistique sous R s’inscrit dans cette perspective. Je présente très succinctement R et la structure data.frame dans un premier temps, puis j’enchaîne directement sur la régression logistique dans un deuxième temps. Le principal avantage que je vois par rapport à tout autre logiciel, piloté par menu ou par diagramme, est que nous avons accès facilement aux résultats intermédiaires (aux champs des objets) pour réaliser des calculs complémentaires.

Mots-clés : logiciel R, régression logistique, prédiction, matrice de confusion, taux d'erreur, package xlsx, fichier excel
Fichier : demo_reglog.xls
Références :
R. Rakotomalala, "Pratique de la régression logistique - Régression logistique binaire et polytomique".

samedi 25 février 2012

PSPP, une alternative à SPSS

Tout le monde l’aura compris, je passe énormément de temps à analyser les logiciels de statistique et de data mining gratuits découverts ici ou là sur le web. Je suis toujours enthousiasmé à l’idée de découvrir les dispositifs imaginés par les uns et les autres pour proposer aux utilisateurs, nous, des solutions de traitement de données. Au fil des années, j’en suis arrivé à la conclusion qu’il n’existe pas de mauvais logiciels. Il y a simplement des outils plus ou moins adaptés à des contextes d’utilisation qu’il nous appartient de cerner, en tenant compte de nos objectifs, des caractéristiques de nos données, de notre mode opératoire, de nos affinités, etc. On ne gagnera jamais le Paris-Dakar avec une Formule Un ; Sébastien Loeb, aussi fort soit-il, ne peut pas gagner un rallye avec une semi-remorque (j’imagine hein, avec lui on ne sait jamais). C’est l’une des raisons pour lesquelles je parle énormément des autres logiciels, autres que ceux que je développe moi-même. Plus nous en verrons, plus nous saurons nous détacher de l’outil pour nous concentrer sur les finalités, les techniques, l’exploitation des résultats. C’est ce qui importe en définitive.

Dans ce tutoriel, nous décrivons le logiciel PSPP. Ses promoteurs la positionnent comme une alternative à SPSS (« PSPP is a program for statistical analysis of sampled data. It is a free replacement for the proprietary program SPSS, and appears very similar to it with a few exceptions. »). Plutôt que de procéder à une analyse exhaustive de ses fonctionnalités, ce qui est déjà très bien fait par ailleurs , avec en particulier le document en français de Julie Séguéla (« Introduction au logiciel PSPP – Version 0.4.0 », 2006 ; 119 pages ), nous préférons décrire quelques procédures statistiques en mettant en miroir les résultats fournis par Tanagra, R 2.13.2 et OpenStat (build 24/02/2012). C’est une manière de les valider mutuellement. Plus que les plantages, les erreurs de calculs sont la hantise des informaticiens. Obtenir des résultats identiques pour les mêmes traitements avec plusieurs logiciels n’est pas un gage d’exactitude. En revanche, en cas de disparités, il y a clairement un problème. L’affaire devient diablement compliquée lorsque ces disparités ne surviennent que dans des situations que l’on a du mal à identifier.

Mots-clés : pspp, logiciel R, openstat, spss, statistiques descriptives, comparaison de moyennes, test de student, welch test, comparaison de variances, test de levene, test du khi-2, tableau de contingence, analyse de variance, anova, régression linéaire multiple, courbe roc, critère auc, aire sous la courbe
Composants :  MORE UNIVARIATE CONT STAT, GROUP CHARACTERIZATION, CONTINGENCY CHI-SQUARE, LEVENE'S TEST, T-TEST, T-TEST UNEQUAL VARIANCE, PAIRED T-TEST, ONE-WAY ANOVA, MULTIPLE LINEAR REGRESSION, ROC CURVE
Lien : fr_Tanagra_PSPP.pdf
Fichier : autos_pspp.zip
Références :
GNU PSPP, http://www.gnu.org/software/pspp/
R Project for Statistical Computing, http://www.r-project.org/
OpenStat, http://www.statprograms4u.com/

vendredi 17 février 2012

Tinn-R, un éditeur de code pour R

TINN-R est mon éditeur de code favori pour le logiciel R. Je l’utilise pour mes enseignements. Je me rends compte d’ailleurs que je ne suis pas le seul à l’apprécier. Ça ne veut pas dire qu’il est le meilleur (si tant est qu’il en existe). Je constate tout simplement qu’il présente des qualités intéressantes dans mon contexte : il est simple, léger, facile à manipuler, sans pour autant être limité face aux autres outils accessibles gratuitement. Il convient parfaitement pour la conception de petits scripts « .r ».

Dans ce didacticiel, nous décrivons succinctement les principales fonctionnalités de TINN-R. Nous mettrons l’accent sur les erreurs fréquemment rencontrées avec l’outil. Après plusieurs années de pratique, je commence à identifier les différents écueils qui laissent parfois perplexes les utilisateurs. Ce didacticiel ne sera jamais définitif, au fil des années il sera complété au fur et à mesure des problèmes rencontrés et, je l’espère, résolus.

Bien évidemment, pour pouvoir exploiter TINN-R, il faut que le logiciel R lui-même soit déjà installé sur notre machine.

Mots-clés : logiciel R, tinn-r, éditeur de code, EDI
Lien : fr_Tanagra_Tinn_R.pdf
Références :
Site du logiciel Tinn-R ; Site du logiciel R.
R. Rakotomalala, "Cours de programmation R".
KDNuggets Polls, « R GUIs you use frequently », Avril 2011.
Developpez.com, « Quel éditeur utilisez-vous pour R ? », Mars 2010.

dimanche 5 février 2012

Vérification des données manquantes - Tanagra

Jusqu’à la version 1.4.41, Tanagra ne gérait pas les données manquantes parce qu’il me semblait pédagogiquement intéressant que les étudiants, qui constituent quand même le principal public de Tanagra, réfléchissent et traitent explicitement en amont ce problème difficile. Le pire serait de s’en remettre aveuglément au logiciel c.-à-d. de le laisser choisir à notre place un traitement automatique inadapté au cadre de notre étude, aux caractéristiques de nos données, etc. Ainsi, Tanagra se contentait de tronquer le fichier à l’importation dès le premier obstacle rencontré. Ce traitement sans concessions déroutait souvent l’utilisateur, d’autant plus qu’aucun message d’erreur n’était envoyé. Il se demandait alors pourquoi, alors que toutes les conditions semblent réunies, les données n’étaient pas correctement chargées.

Avec la nouvelle version 1.4.42, l’importation des fichiers TXT (fichiers textes avec séparateur tabulation), des fichiers XLS (Excel 97-2003), et le transfert des données via les add-in pour Excel (jusqu’à Excel 2010) et LibreOffice 3.4/OpenOffice 3.3, ont été modifiés. Tanagra parcourt bien toutes les lignes de la base. Il se contente simplement de sauter les observations incomplètes et/ou comportant des incohérences (ex. une valeur non numérique pour un attribut initialement détecté quantitatif). Et, surtout, un message d’erreur explicite comptabilise le nombre de lignes ignorées. L’utilisateur est mieux informé. Cette approche très simpliste correspond à la stratégie « listwise deletion » . Ses faiblesses sont largement identifiées . Pour nous, il s’agit surtout d’alerter l’utilisateur sur les problèmes rencontrés lors de la lecture du fichier de données. Libre à lui de poursuivre directement si ce traitement par défaut lui convient. Ce qui n’est pas très conseillé quand même dans la plupart des cas. Les études que nous avons menées pour la régression logistique le montrent bien.

Dans ce tutoriel, nous montrons la gestion des données manquantes lors de l’envoi des données d’Excel vers Tanagra via la macro complémentaire Tanagra.xla. Certaines cellules du fichier Excel sont vides. Cet exemple illustre bien le nouveau comportement de Tanagra. Nous obtiendrions des résultats identiques si nous importions directement le fichier XLS ou si nous importions le fichier au format TXT correspondant.

Mots clés : données manquantes, données incohérentes, missing data, missing values, importation des fichiers textes, excel, macro complémentaire, tanagra.xla
Composants : DATASET, VIEW DATASET
Lien : fr_Tanagra_Missing_Data_Checking.pdf
Fichier : ronflement_with_missing_empty.zip
Références :
Wikipedia, "Listwise deletion".

samedi 4 février 2012

Tanagra - Version 1.4.42

La macro complémentaire Tanagra.xla est maintenant compatible avec les versions 64 bits d’Excel (en plus des versions 32 bits gérées auparavant).

Avec le gestionnaire de mémoire FastMM, Tanagra peut adresser 3 Go de RAM sur les versions 32 bits de Windows, et 4 Go sur les versions 64 bits. La capacité à traiter des très grands fichiers est largement améliorée.

L’importation des fichiers texte (séparateur tabulation) et xls (Excel 97-2003) a été sécurisée. Auparavant, lorsqu’une ligne invalide était rencontrée (valeur manquante ou incohérente), le chargement était interrompu et les données tronquées. Maintenant, Tanagra saute la ligne incriminée et poursuit le chargement pour les observations restantes. Le nombre de lignes ignorées sont indiquées dans le rapport d’importation.

Page de téléchargement : setup

jeudi 26 janvier 2012

Régression logistique sur les grandes bases

Gratter les millisecondes est le péché mignon des informaticiens. Au-delà de la petite satisfaction personnelle, il y a quand même des enjeux  forts derrière l’optimisation des programmes. Notre rôle est de produire des logiciels fiables, rapides, avec une occupation mémoire contenue. Dans le cadre du data mining, cela se traduit par la capacité à  traiter les grandes bases de données. Certes, dans la phase finale où il s’agit de produire le modèle qui sera déployé dans le système d’information, qu’importe finalement que les calculs durent une 1/2 heure ou une 1/2 journée. Mais il y a la phase exploratoire en amont, lorsque nous cherchons les solutions les mieux adaptées à notre problème. Plus rapide sera l’outil, plus de configurations nous pourrons tester. Nous aurons ainsi de meilleures chances de mettre en évidence la solution la plus efficace.

Il m’est apparu intéressant de comparer les temps de traitement et l’occupation mémoire de la régression logistique de Tanagra avec ceux des autres outils gratuits largement répandus au sein de la communauté du Data Mining. J’avais déjà mené un travail similaire par le passé. La nouveauté dans ce tutoriel est que nous nous situons dans un nouveau cadre : j’utilise maintenant un OS 64 bits (Windows 7), et certains de ces logiciels sont justement passés aux 64 bits avec des capacités de traitements accrus comme on a pu le constater pour les algorithmes de construction des arbres de décision . J’ai donc largement augmenté la taille de la base à traiter (300.000 observations et 121 variables prédictives). Pour corser l’affaire, des attributs générés complètement aléatoirement ou de manière à être corrélés avec les variables initiales ont été rajoutées. L’objectif est d’observer le comportement des logiciels durant la recherche des prédicteurs pertinents.

Dans ce comparatif, outre Tanagra 1.4.41 (32 bits), nous utiliserons les logiciels R 2.13.2 (64 bits), Knime 2.4.2 (64 bits), Orange 2.0b (build 15 oct 2011, 32 bits) et Weka 3.7.5 (64 bits).

Mots clés : régression logistique, grands fichiers, grandes bases, gros volumes, comparaison de logiciels, glm, stepAIC, logiciel R, knime, orange, weka
Composants : BINARY LOGISTIC REGRESSION, FORWARD LOGIT
Lien : fr_Tanagra_Perfs_Bis_Logistic_Reg.pdf
Fichier : perfs_bis_logistic_reg.zip
Références :
R. Rakotomalala, "Pratique de la régression logistique - Régression logistique binaire et polytomique", Version 2.0, Juin 2011.
Tutoriel Tanagra, "Régression logistique - Comparaison de logiciels".

mercredi 18 janvier 2012

Sipina - Version 3.8

Les logiciels (SIPINA RESEARCH, REGRESS et ASSOCATION RULE SOFTWARE) associés à la distribution SIPINA ont été mis à jour avec quelques améliorations.

SIPINA.XLA. La macro complémentaire fonctionne indifféremment avec les versions 32 et 64 bits d’Excel (testée jusqu’à Excel 2010).

Importation des fichiers textes. Le temps de traitement a été amélioré. Cette modification joue également sur le temps de transfert durant l’envoi des données d’Excel vers les logiciels via la macro-complémentaire (qui utilise un fichier temporaire au format texte).

Association rule software. L’interface a été simplifiée, l’affichage des règles est rendue plus lisible.

S'appuyant sur le gestionnaire de mémoire FastMM, ces 3 logiciels peuvent adresser jusqu'à 3 Go sous Windows 32 bits et 4 Go sous Windows 64 bits. Les capacités de traitement sont améliorées.

Site web : Sipina
Chargement : Fichier setup
Références :
Tutoriel Tanagra - Connexion Excel - Sipina
Delphi Programming Resource - FastMM, a Fast Memory Manager

mardi 10 janvier 2012

Arbres de décision sur les grandes bases (suite)

S’endormir sur ses lauriers est impossible en informatique. Tout évolue très vite : matériel, système, logiciel. C’est un de ses principaux attraits d’ailleurs. La vérité d’aujourd’hui n’est pas celle d’hier, elle sera peut être différente demain, il faut être sur le qui-vive. Ayant changé de système, je suis passé à Windows 7 en 64 bits (avec un Quad Core Q9400 à 2.66 Ghz), j’étais curieux de voir le nouveau comportement des outils analysés dans un ancien document dont l'objet était l'analyse comparative des performances des différents logiciels de data mining durant l'apprentissage d'un arbre de décision. Surtout que plusieurs de ces outils sont passés à une version 64 bits (Knime, RapidMiner, R).

J’ai donc reproduit la même analyse avec les mêmes données et mesuré les mêmes critères : temps de traitement et occupation mémoire. J’ai constaté que la grande majorité des outils ont bien progréssé en termes de temps de traitement, à des degrés divers néanmoins. En revanche, les évolutions ne sont pas manifestes concernant l’occupation mémoire. Nous détaillons tout cela dans la dernière section de cette nouvelle version de notre tutoriel.

Mots clés : c4.5, arbres de décision, grandes bases de données, comparaison de logiciels, knime2.4.2, orange 2.0b, r 2.13.2, rapidminer 5.1.011, sipina 3.7, tanagra 1.4.41, weka 3.7.4, windows 7 - 64 bits
Composants : SUPERVISED LEARNING, C4.5
Lien : fr_Tanagra_Perfs_Comp_Decision_Tree_Suite.pdf
Lien (2) : Copies d'écran avec les versions des logiciels utilisées dans cette mise à jour.
Données : wave500k.zip 
Références :
Tanagra, "Traitement de gros volumes - Comparaison de logiciels".
Tanagra, "Arbres de décision sur les grands fichiers (mise à jour)".
R. Quinlan, « C4.5 : Programs for Machine Learning », Morgan Kaufman, 1993.

Arbres sur les " très" grandes bases (suite)

Triturer des très grands fichiers était de fantasme ultime du data miner a-t-on coutume de dire. Etant passé récemment à un système 64 bits (mieux vaut tard que jamais), je me propose d’étudier le comportement des outils spécifiquement dédiés à ce système, principalement Knime 2.4.2 et RapidMiner 5.1.011.

Ce document vient compléter une étude récente où nous traitions une base moyennement volumineuse avec 500.000 observations et 22 variables. Nous poussons le curseur un peu plus loin en reprenant un tutoriel où le fichier à traiter comportait 9.634.198 observations et 41 variables, (quasiment) impossible à faire tenir en mémoire sur un système 32 bits. L’idée était alors de montrer qu’un système de swap adapté aux algorithmes d’apprentissage, l’induction d’un arbre de décision en l’occurrence, permettait d’appréhender de très grandes bases avec des temps de traitement raisonnables. La procédure avait été implémentée dans Sipina.

Dans ce tutoriel, nous constatons que le passage aux 64 bits augmente considérablement les capacités de calcul des logiciels de Data Mining. C’est indéniable. Mais il faut disposer d’une machine à l’avenant pour en tirer réellement parti.

Mots clés : gros volumes, très grands fichiers, grandes bases de données, arbre de décision, échantillonnage, sipina, knime, rapidminer, windows 7 - 64 bits
Composants : ID3
Lien : fr_Tanagra_Tree_Very_Large_Dataset.pdf
Données : twice-kdd-cup-discretized-descriptors.zip
Références :
Tutoriel Tanagra, « Arbres de décision sur les grandes bases (suite) ».
Tutoriel Tanagra, « Sipina - Traitement des très grands fichiers »

lundi 2 janvier 2012

Bonne année 2012 - Bilan 2011

L'année 2011 s'achève, 2012 commence. Je vous souhaite à tous une belle et heureuse année 2012.

Un petit bilan chiffré concernant l'activité organisée autour de Tanagra pour l' année écoulée. L'ensemble des sites (logiciel, support de cours, ouvrages, tutoriels) a été visité 281.352 fois cette année, soit 770 visites par jour. Par comparaison, nous avions 349 visites journalières en 2008, 520 en 2009 et 662 en 2010.

Qui êtes-vous ? La majorité des visites viennent de France et du Maghreb. Puis viennent les autres pays francophones, une grande partie vient d'Afrique. Pour ce qui est des pays non francophones, nous observons parmi ceux qui reviennent souvent : les États-Unis, l'Inde, le Royaume Uni, l'Italie, le Brésil, l'Allemagne, etc.

Que consultez-vous en priorité ? Les pages qui ont le plus de succès sont celles qui se rapportent à la documentation sur le Data Mining : les supports de cours, les tutoriels, les liens vers les autres documents accessibles en ligne, etc. Ce n'est guère étonnant. Au fil des années, plus que la programmation et la promotion de Tanagra, je passe de plus en plus de temps moi-même à écrire des fascicules de cours et des tutoriels, à étudier le comportement des différents logiciels. Je constate d'ailleurs que ma page consacrée à la Programmation R fait une percée dans le top 10.

Encore Bonne Année 2012 à tous. Que chacun puisse mener à bien les projets qui leur sont les plus précieux.

Ricco.
Diaporama : Tanagra - Bilan 2011