mardi 22 octobre 2013

Programmation à partir d'objets statistiques sous R

R est un langage de programmation, R est aussi un logiciel de statistique. L’outil prend tout son sel lorsque nous dérivons de nouvelles méthodes à partir des résultats fournis par une approche existante.

Dans ce document, nous montrons comment programmer une procédure statistique à partir de l’objet de type lm issue de la régression linéaire multiple. Le rôle de la commande « attributes » qui permet d’en énumérer les propriétés est primordial dans ce cadre. Il permet d’identifier les données intermédiaires que nous pouvons exploiter dans les calculs subséquents. Un petit exemple de recherche de la meilleure régression simple à partir d’un ensemble de variables prédictives candidates permet de mieux situer le potentiel du dispositif.

Nous ne l’abordons pas dans ce support, mais une extension naturelle de la démarche serait d’encapsuler les nouvelles procédures et fonctions dans un package, et de le diffuser à grande échelle sur le web.

Mots clés : programmation r, objets, listes, attributes, summary, logiciel r
Lien : Programmation à partir d'objets statistiques sous R
Références :
Vincent Goulet, " Introduction à la programmation en R ".

dimanche 20 octobre 2013

La classe data frame sous R

La classe « data frame » est primordiale sous R. Elle est dédie à la gestion des ensembles de données de type individus – variables (lignes x colonnes). Ce qui correspond au format le plus répandu en statistique exploratoire et data mining.

Un objet data frame est une liste de vecteurs de même longueur. Ils représentent les variables de la base à traiter. Ils sont le plus souvent numériques (variables quantitatives) ou de type factor (variables qualitatives). Nous pouvons également considérer le data frame sous l’angle d’une matrice de valeurs. A cet égard, R propose de nombreuses fonctionnalités pour réaliser des restrictions et des projections via l’indexation par des vecteurs de booléens, qui peut éventuellement résulter d’une condition. Mettre en place des requêtes complexes devient relativement aisé.

Dans sa dernière partie, notre document présente l’utilisation des outils sapply() et lapply(). Ils sont destinés à appliquer des traitements sur les colonnes successives d’un ensemble de données en appelant des fonctions callback. Ils s’avèrent particulièrement performants par rapport à une programmation usuelle s’appuyant sur des boucles.

Mots clés : programmation r, data.frame, listes, sapply, lapply, importation de fichiers, package xlsx, excel, logiciel r
Lien : Le type data frame sous R
Références :
Vincent Goulet, " Introduction à la programmation en R ".

samedi 19 octobre 2013

Tableaux et matrices sous R

« Tableaux et matrices sous R » est le document de référence pour la 4ème séance du cours de programmation R. Une matrice est un vecteur encapsulé dans une structure particulière possédant l’attribut dim. L’accès indicé (ligne, colonne) devient possible.

Nous pouvons réaliser des extractions de lignes et/ou de colonnes. La manipulation des matrices préfigure ainsi les fonctionnalités applicables sur le type data frame qui représente les ensembles de données (un tableau individus x variables peut être assimilé à une matrice d’une certaine manière).

Enfin, les matrices proposent des opérateurs qui leur sont propres (inversion, produit matriciel, diagonalisation, décomposition en valeurs singulières, etc.). La fonction apply() permet de s’affranchir des boucles en appliquant une fonction callback sur les lignes ou les colonnes d'une matrice.

Mots clés : programmation r, tableau, matrice, apply, logiciel r
Lien : Tableaux et matrices sous R
Références :
Vincent Goulet, " Introduction à la programmation en R ".

jeudi 17 octobre 2013

Manipulation des vecteurs sous R

Le vecteur est l’objet de base dans R. Il sert à stocker une collection de valeurs de même type. Toute donnée est placée dans un vecteur dans R. Un scalaire est en réalité un vecteur de taille 1. R propose toute une panoplie d’outils pour leur manipulation. Nous pouvons extraire une sous-partie des valeurs, les trier, effectuer des opérations sur plusieurs vecteurs, réaliser des calculs récapitulatifs.

Deux principes forts régissent le fonctionnement des vecteurs : sauf utilisation d’opérateurs spécifiques, les opérations s’effectuent toujours élément par élément (element-wise en anglais) ; quand les tailles des vecteurs ne sont pas compatibles, R applique le recyclage c.-à-d. la réplication des valeurs. Ces particularités m’ont beaucoup rebuté quant à l’utilisation du langage R à mes débuts. Elles m’empêchaient d’interpréter correctement les codes sources que je trouvais ici ou là sur le web.

Après coup, une fois ces notions assimilées, une des barrières à l’entrée de la compréhension du langage R est allègrement franchie.

Mots clés : programmation r, vecteur, type factor, concaténation, c(), logiciel r
Lien : Manipulation des vecteurs sous R
Références :
Vincent Goulet, " Introduction à la programmation en R ".

mercredi 16 octobre 2013

Programmation modulaire sous R

« Programmation modulaire sous R » décrit le découpage des programmes en procédures et fonctions dans un premier temps, puis en modules dans un second temps. Comme pour tout langage de programmation, il est possible d’agencer un projet en blocs de manière à réduire (voire éliminer) la redondance et maximiser la réutilisation.

Cette étape est une première étape vers le partage du code avec les autres programmeurs. En effet, il est très facile de distribuer les procédures et fonctions d’un module en diffusant le fichier « .r ». On peut faire mieux encore en l’organisant sous forme de package (cf. référence ci-dessous).

On notera deux petites curiosités concernant le langage R : une fonction –qui correspond à un bloc d’instructions - renvoie quand même une valeur même si on ne le fait pas explicitement ; il est possible de renvoyer plusieurs résultats via le mécanisme des listes, qui se révèle particulièrement souple.

Mots clés : instructions, bloc d'instruction, fonctions, procédures, modules, source(), logiciel r
Lien : Programmation modulaire sous R
Références :
Vincent Goulet, " Introduction à la programmation en R ".
Christophe Genolini, "Construire un Package - Classic et S4".

dimanche 13 octobre 2013

Les bases du langage R

Régulièrement à la mi-août, je me demande ce que je peux améliorer dans mes enseignements pour l’année universitaire à venir. Cette fois-ci, j’ai décidé de mettre sous forme de slides mon cours de R. Je n’ai jamais souhaité le faire jusqu’à présent. Il y a suffisamment de supports en ligne. Je me contentais donc de donner aux étudiants les principaux repères au tableau (écrire au tableau était aussi une manière de canaliser mon enthousiasme), en les redirigeant sur les documents les plus intéressants que j’ai pu trouver ici ou là. Au fil du temps, j’ai réussi (j'espère) à affiner la présentation pour faire passer les bons messages dans chaque séance. Je me suis rendu compte que je disais les choses à peu près de la même manière ces dernières années. Il était temps de coucher tout cela sur papier (enfin… sur PDF).

« Introduction à la programmation R » correspond à ma première séance sur R en Master 2 IDS-SISE (Informatique et Statistique, Data Mining). Il s’agit d’introduire R en tant que langage de programmation dans un premier temps. De fait, j’occulte sciemment les fonctionnalités statistiques en adoptant une présentation ultra-classique d’un cours de programmation quelconque (ex. Pascal, C, etc.). Sont ainsi décrits les types de données (sous leur forme scalaire), les entrées et sorties à la console, les structures algorithmiques (branchements conditionnels, boucles indicées, boucles conditionnelles). La séance est complétée par une série d’exercices d’algorithmie directement appliqués sur machines.

Mots clés : programmation r, types de données, branchements conditionnels, boucles, séquences, logiciel r
Lien : Introduction à R
Références :
Vincent Goulet, " Introduction à la programmation en R ".