Analyse des Données. Travaux Pratiques 0



Documents pareils
1 Introduction - Qu est-ce que le logiciel R?

TP 1. Prise en main du langage Python

Introduction à MATLAB R

Les concepts de base, l organisation des données

Cours 1. I- Généralités sur R II- Les fonctions de R et autres objets III-Les vecteurs

STAGE IREM 0- Premiers pas en Python

R01 Import de données

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Gestion des données avec R

Séance 0 : Linux + Octave : le compromis idéal

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2


TP1 - Prise en main de l environnement Unix.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Le langage C. Séance n 4

TP 1 Prise en main de l environnement Unix

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

TP1 : Initiation à l algorithmique (1 séance)

Présentation du langage et premières fonctions

Jérôme Mathieu janvier Débuter avec R. Ce document est disponible sur le site web :

MODE D EMPLOI DU MODULE D E-COMMERCE

Europresse.com. Pour bibliothèque d enseignement Pour bibliothèque publique. Consulter facilement la presse. Guide version 1.

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Transmission d informations sur le réseau électrique

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

SEMIN. Données sous R : stockage et échange. Julio PEDRAZA ACOSTA

Aide-mémoire de statistique appliquée à la biologie

IMPORTATION, CRÉATION, MANIPULATION, EXPORTATION DE DONNÉES STATISTIQUES

Initiation au logiciel R

R, Bonnes pratiques. Christophe Genolini

TD3: tableaux avancées, première classe et chaînes

TP : Gestion d une image au format PGM

La structure de la base de données et l utilisation de PAST. Musée Royal de l Afrique Centrale (MRAC Tervuren)

Algorithmique et Programmation, IMA

VOS PREMIERS PAS AVEC TRACENPOCHE

Introduction à la programmation en R. Vincent Goulet

L informatique en BCPST

Initiation à la Programmation en Logique avec SISCtus Prolog

VAMT 2.0. Activation de Windows 7 en collège

Initiation à la programmation en Python

Administration de Parc Informatique TP03 : Résolution de noms

TP1. Outils Java Eléments de correction

Présentation du logiciel

1. Structure d'un programme FORTRAN 95

EXCEL TUTORIEL 2012/2013

MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R

Package TestsFaciles

1 Introduction et installation

Administration du site (Back Office)

Fonctions de plusieurs variables

1 Lecture de fichiers

Utiliser un tableau de données

INTRODUCTION À L'ENVIRONNEMENT DE PROGRAMMATION STATISTIQUE R

Projet Matlab : un logiciel de cryptage

Automatiser la création de comptes utilisateurs Active Directory

Programmation Web. Madalina Croitoru IUT Montpellier

Plan du cours Cours théoriques. 29 septembre 2014

Authentification unique Eurécia

Setting Up PC MACLAN File Server

Objectifs du TP : Initiation à Access

Travaux pratiques. DECOUVERTE PDMLink - PTC

26 Centre de Sécurité et de

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Europresse.com. Pour les bibliothèques publiques et de l enseignement. Votre meilleur outil de recherche en ligne. Guide version 1.

Principe de fonctionnement du lanceur d'application "AdisTlsStartCfgLotus"

Utilisation d objets : String et ArrayList

Excel 2007 Niveau 3 Page 1

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

INF6304 Interfaces Intelligentes

Langage Java. Classe de première SI

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Excel avancé. Frédéric Gava (MCF)

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

La boucle for La boucle while L utilisation du if else. while (condition) { instruction(s) }

Initiation à l analyse en composantes principales

Créer et partager des fichiers

Importer les fichiers élèves - professeurs du secrétariat

Formation. Module WEB 4.1. Support de cours

Unix/Linux I. 1 ere année DUT. Université marne la vallée

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Traitement des données avec Microsoft EXCEL 2010

Chap III : Les tableaux

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Calcul Formel et Numérique, Partie I

EXCEL PERFECTIONNEMENT CALCULS AVANCES

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde

Outils pour la pratique

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Cours 7 : Utilisation de modules sous python

Le cas «BOURSE» annexe

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Didacticiel Études de cas. Description succincte de Pentaho Data Integration Community Edition (Kettle).

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

BIRT (Business Intelligence and Reporting Tools)

Conventions d écriture et outils de mise au point

Création et Gestion des tables

Transcription:

Analyse des Données Travaux Pratiques 0 Introduction La maison-page du logiciel se trouve à l adresse www.r-project.org. Toutes les réponses aux questions relatives à la bonne exécution de ce TP (commandes, manipulation d objets,...) peuvent être trouvées en utilisant l aide en ligne de R. Une bonne base pour débuter est de commencer par taper help.start() et de suivre le lien An Introduction to R ou de consulter les documentations en français disponibles sur http ://cran.r-project.org/otherdocs.html. Ce TP a pour but de vous familiariser avec les commandes de base de R. En fin de TP, vous serez capable de lire, écrire et afficher des données sous R. Ce TP est séparé en trois parties, la première vous donnant les concepts fondammentaux du langage R, la seconde mettant en application ces principes sur un exemple et la troisième, plus exploratoire, vous permettra d effectuer votre première analyse de données. Pour bien commencer : 1. Placer les fichiers de données dont vous aurez besoin pour ce TP dans un répertoire que vous appellerez mes donnees, 2. lancer le logiciel R, 3. positionner le working directory (dans le menu Tools pour un mac et menu File ->change dir pour windows) sur votre répertoire mes donnees. 1 Principes de base de R Dans cette section, en partant de la documentation indiquée ci-dessus, nous décrivons quelques principes de base de R. Le logiciel R est un langage qui est orienté-objet et qui est interprété. Il fournit, via une interface utilisateur simple (cf. le menu File, Edit, Packages) et surtout via une fenêtre principale de commandes, un langage et un environnement de programmation essentiellement dédié à l analyse statistique. Les commandes sont entrées depuis la fenêtre principale (appelée aussi console). L assignation d une valeur à un objet s effectue à l aide de l opérateur <- et selon la forme générale : > objet <- valeur(s) Dans cette section, nous présentons les principales structures de données, c.-à-d. les vecteurs, les listes, les tableaux de données,... Pour finir, nous présentons la notion de fonction. 1

1.1 Vecteur Le type de données de base dans R est le vecteur. Un vecteur désigne une collection ordonnée d éléments de même nature (appelé mode dans R). Selon son mode, un vecteur est numérique, logique ou alphanumérique. On peut créer soi-même un vecteur en utilisant la fonction concaténation c(element 1, element 2,... ). Les nombres décimaux doivent comporter un point décimal, les chaines de caractères être entourées de guillemets doubles, et les valeurs logiques être codées par TRUE et FALSE, soit T et F en abrégé. Une donnée manquante est codée par la valeur NA. Entrer la commande suivante : > AGE <- c(34.5, 23, 18, 42.5, 75, 7) et vérifier son résultat avec la commande qui permet d afficher AGE : > AGE Le résultat doit être : [1] 34.5 23 18 42.5 75 7 Le chiffre 1 entre crochets indique le numéro d index du premier élément affiché sur la ligne. Les vecteurs peuvent être utilisés tels quels dans des expressions arithmétiques classiques. Les opérations sont effectués élément par élément. Lorsque les vecteurs intervenant dans l expression n ont pas la même longueur, la longueur du vecteur résultat est celle du plus long vecteur de l expression. Dans ce cas, les valeurs des vecteurs plus courts sont recyclées, éventuellement partiellement, de manière à atteindre cette longueur. > TEMPS <- c(1, 0.5) > x <- AGE * TEMPS ; y <- AGE + TEMPS > x > y > x2 <- TEMPS * AGE ; x2 Dans le même esprit, une expression logique peut être appliquée à un vecteur : le résultat est alors un vecteur logique contenant le résultat de l expression appliquée sur chaque élément du vecteur de départ. > AGE > 20 2

L extraction d éléments d un vecteur s effectue via un vecteur d index placé entre crochet. Un vecteur d index peut être de quatre types distincts : vecteur logique, vecteur d entiers positifs, vecteur d entiers négatifs, vecteur de chaines de caractères. Extraction par vecteur logique. Le vecteur logique et le vecteur indexé sont de même longueur. Les éléments extraits sont ceux qui génèrent une valeur TRUE par application du vecteur logique, et le vecteur résultat a donc pour longueur le nombre déléments ayant une valeur TRUE. > AGE[AGE > 20] Extraction par vecteur d entiers positifs. Le vecteur d index, i.e. ici le vecteur d entiers positifs, est de longueur quelconque. Chaque élément dont la position correspond à la valeur mentionnée dans le vecteur d index est extrait. Le résultat a donc pour longueur celle du vecteur d index. > AGE[c(3, 5, 6)] Extraction par vecteur d entiers negatifs. Chaque élément dont la position correspond à la valeur absolue du nombre mentionnée dans le vecteur d index est exclus de la selection. > AGE[-c(3, 5, 6)] Extraction par vecteur de chaines de caractères. Chaque élément du vecteur indexé peut être préalablement nommé explicitement par la fonction names(). Les éléments dont le nom correspond aux chaines de caractères du vecteur d index, sont alors sélectionné et accompagnés de leur nom. > names(age) <- c( Fred, Paul, Marie, Jo, Yves, Jack ) > AGE ; AGE[c( Paul, Marie )] 1.2 Autres structures : listes, tableaux de données et matrices 1.2.1 Listes Une liste (list) est une collection ordonnée d objets, non nécessairement du même mode. Les éléments d une liste peuvent être n importe quel objet défini dans R. Cette propriété 3

est utilisée par certaines fonctions pour renvoyer des résultats complexes sous la forme d un unique objet liste. La constitution d une liste s effectue par la fonction list : list(nom1 = élément1, nom2 = élément2,...), l utilisation des noms étant facultative. On peut accéder à chaque élément de la liste par son index numérique entre double crochets [[... ]], ou par son nom précédé du signe $. > liste <- list(ages=age, agesplus=y, agenoms=c( Paul, Marie )) > # extraction du deuxieme element de la liste par index > liste[[2]] > # extraction du deuxieme element de la liste par nom > liste$agesplus > # extraction d un sous-element de agesplus par index > liste[[2]][1] Il est possible de concaténer plusieurs listes en une seule au moyen de la fonction c(liste1, liste2,...), comme pour les vecteurs : l utilisation de la fonction list(liste1, liste2,...) conduirait à l obtention d une liste de listes... 1.2.2 Tableaux de données Un tableau de données (data.frame) est une classe particulière de listes, qui a pour but de stocker des données qui sont à analyser. Chaque composant (le plus souvent un vecteur) de la liste est l équivalent d une colonne ou variable, tandis que les différents éléments de ces composants correspondent aux lignes ou individus. On peut appliquer à cette classe d objets des méthodes spécifiques destinées à faciliter la visualisation et l analyse de leur contenu, comme par exemple les méthodes plot(), summary(),... Un tableau de données peut être créé par rassemblement de ses composants individuels via la fonction data.frame(nom1 = élément1, nom2 = élément2,...), qui est l analogue de list, ou via la conversion d un objet existant par as.data(), ou enfin via la fonction read.table qui permet la lecture des données dans un fichier externe. Les vecteurs inclus dans un data.frame doivent être de même longueur, ou si un des éléments est plus court il doit pouvoir être recyclé uniquement un nombre entier de fois. Vérifier que, selon la règle indiquée ci-dessus, seule la dernière des trois instructions utilisant data.frame est incorrecte. > x <- 1:6 ; y <- 10 ; z <- c(20,30) ; w <- 1:4 > data.frame(x,y) > data.frame(x,z) > data.frame(x,w) 4

1.2.3 Matrice Une matrice est en fait un vecteur qui possède un argument supplémentaire (dim) qui est lui-même un vecteur numérique de longueur 2 et qui définit les nombres de lignes et de colonnes de la matrice. Une matrice peut être créée avec la fonction matrix dont les paramètres par défaut sont : matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL) L option byrow indique si les valeurs données par data doivent remplir successivement les colonnes (option par défaut) ou les lignes (si TRUE). L option dimnames permet de donner des noms aux et aux colonnes. > matrix(1:6, 2, 3) > matrix(1:6, 2, 3, byrow = TRUE) > # on peut aussi utiliser l attribut dim pour transformer un > # vecteur en matrice. > x <- 1:6 ; dim(x) <- c(2,3) ; x 1.3 Fonctions Les fonctions de R sont considérées comme des objets élémentaires. Elles peuvent contenir une suite d instructions, y compris des appels à d autres fonctions. 1.3.1 Syntaxe La syntaxe d appel d une fonction est simple : nom fonction(argument1 = valeur1, argument2 = valeur2,...). Chaque argument peut être défini de deux façons : par son nom, ou par sa position dans la liste des arguments. > HAUTEUR <- c(185, 170, 172, 180, 168, 175) > plot(x=age, y=hauteur, type= p ) > plot(x=age, y=hauteur, type= l ) > plot(age, HAUTEUR, type= p ) La documentation de R sur chaque fonction et ses paramètres est disponible via la commande help(nom fonction). On peut aussi afficher des exemples d utilisation d une fonction de R grâce à example(nom fonction). 1.3.2 Définition d une fonction Le logiciel R permet de définir des fonctions personnalisées à l aide de l expression suivante : 5

nom fonction <- function(arg1[=expr1], arg2[expr2],...) { bloc d instructions }. Les accolades indiquent le début et la fin du code source de la fonction en cours de définition. Les crochets ne sont pas nécessaires : ils indiquent la valeur par défaut d un argument facultatif. Pour définir une fonction, on peut également utiliser la commande fix(nom fonction) qui permet d écrire le code source de la fonction via un éditeur de texte (par défaut, le Bloc notes). L instruction nom fonction2 <- edit(nom fonction1) permet à la fois de renommer et de modifier la définition d une fonction. Les valeurs initiales des arguments d une fonction ne sont pas modifiées par les expressions contenues dans la fonction. > x <- 3 > carré <- function(x) {x <- x*x ; return(x)} > carré(x) > x Exercice. Définir une fonction fact(n) qui pour chaque entier positif retourne la valeur n! = n (n 1)... 2 1. On pourra pour cela utiliser une boucle for dont la syntaxe est : for(i in 1 : n) { instructions }. 2 Mise en application des principes de base Cette partie vous permettra de lire un fichier, manipuler les données, créer des scripts et fabriquer de petites fonctions. Bref, que du bonheur. Toutes les instructions à faire vous sont données, mais sont bien évidemment présentes dans l aide de R. Ceci vous permettra d avoir un petit pense-bête à portée de main. On utilisera pour cette partie les données du tableau titanic.dat rendant compte pour chaque passager de : - son type de billet (de la première à la troisième classe, une valeur 0 étant destinée aux membres d équipage), - son age (1=adulte, 0=enfant), - son sexe (1=homme, 0=femme, 2=indéterminé), - son trépas (0=a succombé, 1=a survécu) 2.1 Lecture de fichier 2.1.1 On commence. Placer les données du fichier titanic.dat dans la variable titanic. 6

Élements de solution : # les champs sont séparés par des virgules, on utilise donc read.csv() # header=true est important (cf. doc) 2.1.2 Qu a-t-on récupéré? Ceci fait, afficher la variable titanic (elle doit posséder 2201 lignes) ainsi que ses attributs. 2.1.3 De plus en plus fort Afficher uniquement le sexe des passagers, puis uniquement les caractéristiques du passager numéro 1974. 2.2 Modification de variable Après de longues analyses, la personne ayant un sexe indéterminé s est révélée être un homme. 2.2.1 On vérifie qu on sait faire Trouver le passager ayant un sexe indéterminé et afficher ses caractéristiques. Élements de Solution : #utiliser une boucle for et la commande print 2.2.2 Lever le doute Corriger l indétermination. 2.2.3 Sauvegarde de la langue française Traduiser les noms des différentes colonnes en Français. Élements de solution : #names(titanic) donne les noms des colonnes sous forme de vecteur 2.2.4 Attention, ça va aller très vite Pour finir, un petit jeu. écrire en une seule ligne une commande R qui remplace le nom de chaque ligne par P x où x est le numéro du passager (i.e. le numéro de ligne). 7

Élements de solution : #row.names(titanic) rend le vecteur des noms des lignes #utiliser la commande paste pour aller plus vite :) 2.3 Fichier de script 2.3.1 American history R Créer un fichier contenant toutes les commandes précédentes, appeler le tp 1.R. Effacer ensuite les objets créés et lancer le script pour tout retrouver. Solution : #on considere que le script s appelle "Robert.R" # on pourra utiliser la commande history() pour le creer # # lire la doc de rm() et ls() # ici on efface tout rm(list=ls()) source("robert.r") 2.3.2 Une petite fonction pour la route Écrire une fonction qui rend les statistiques descriptives d un tableau donné en entrée, et écrit un petit mot gentil à l utilisateur. Élements de solution : #utiliser la commande summary pour avoir les statistiques descriptives 3 Mais où est donc Leonardo? 3.1 les femmes et les enfants d abord En utilisant la fonction table(), vérifier que l adage les femmes et les enfants d abord est vérifié. 3.1.1 Pourcentages 1. Calculer le nombre total de survivants, le nombre de femmes (non enfants) et le nombre d enfants surviants. 2. Déduire les pourcentages de femmes (non enfants) et d enfants parmi les survivants. 3. Caluler le nombre de femmes (non enfants) et le nombre d enfants parmi les passagers. 8

4. Calculer le pourcentage de femmes (non enfant) survivantes parmi les toutes les femmes (non enfants), le pourcentage d enfant survivants parmi tous les enfants, et enfin le pourcentage de femmes et d enfants survivants parmi toutes les femmes et enfants. 3.1.2 La Classe, c est classe La classe a-t-elle une importance dans la survie du passager? Pour résoudre cette question épineuse, reprendre les questions précédentes en séparant les différentes classes. 3.2 Graphiques Les différentes fonctions utiles pour cette partie sont : plot() : pour dessiner des trucs, points() : pour rajouter des choses à un graphique. 3.2.1 Tracés Pour les deux graphiques suivants, on supposera que l axe des abcisses représente les différentes classes. superposer sur un même graphique les courbes du nombre total de passager, du nombre total de femmes et d enfants, et du nombre d enfants superposer sur un même graphique les courbes du nombre total de passager, du nombre total de survivants, du nombre de femmes et d enfants survivants et le nombre d enfants survivants. 3.2.2 Question bonus représenter les deux graphiques ci-avant dans une même fenêtre. On utilisera pour cela la fonction par(). 9