INTRODUCTION AU LOGICIEL R



Documents pareils
Lire ; Compter ; Tester... avec R

Introduction à la statistique non paramétrique

Introduction aux Statistiques et à l utilisation du logiciel R

distribution quelconque Signe 1 échantillon non Wilcoxon gaussienne distribution symétrique Student gaussienne position

TABLE DES MATIERES. C Exercices complémentaires 42

Statistiques. Rappels de cours et travaux dirigés. Master 1 Biologie et technologie du végétal. Année

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

Logiciel XLSTAT version rue Damrémont PARIS

TP de Statistiques: Utilisation du logiciel R

Optimiser ses graphiques avec R

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

Annexe commune aux séries ES, L et S : boîtes et quantiles

Une introduction. Lionel RIOU FRANÇA. Septembre 2008

Didacticiel - Études de cas. Description de quelques fonctions du logiciel PSPP, comparaison des résultats avec ceux de Tanagra, R et OpenStat.

Estimation et tests statistiques, TD 5. Solutions

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Analyse de la variance Comparaison de plusieurs moyennes

Biostatistiques : Petits effectifs

Exemples d Analyses de Variance avec R

Introduction à l approche bootstrap

données en connaissance et en actions?

La place de SAS dans l'informatique décisionnelle

Analyses de Variance à un ou plusieurs facteurs Régressions Analyse de Covariance Modèles Linéaires Généralisés

Leslie REGAD ; Gaëlle LELANDAIS. leslie.regad@univ- paris- diderot.fr ; gaelle.lelandais@univ- paris- diderot.fr

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

Une introduction au langage R

Table des matières. I Mise à niveau 11. Préface

Exemples d application

Exercices M1 SES Ana Fermin ( fermin.perso.math.cnrs.fr/ ) 14 Avril 2015

Chapitre 3 : Principe des tests statistiques d hypothèse. José LABARERE

Principe d un test statistique

TABLE DES MATIÈRES. Bruxelles, De Boeck, 2011, 736 p.

2010 Minitab, Inc. Tous droits réservés. Version Minitab, le logo Minitab, Quality Companion by Minitab et Quality Trainer by Minitab sont des

Tests paramétriques de comparaison de 2 moyennes Exercices commentés José LABARERE

Densité de population et ingestion de nourriture chez un insecte vecteur de la maladie de Chagas

La problématique des tests. Cours V. 7 mars Comment quantifier la performance d un test? Hypothèses simples et composites

INTRODUCTION AU LOGICIEL R

Aide - mémoire gnuplot 4.0

Chapitre 6 Test de comparaison de pourcentages χ². José LABARERE

Utilisation du Logiciel de statistique SPSS 8.0

Statistique inférentielle TD 1 : Estimation

VI. Tests non paramétriques sur un échantillon

Mises en relief. Information supplémentaire relative au sujet traité. Souligne un point important à ne pas négliger.

Introduction à MATLAB R

Déroulement d un projet en DATA MINING, préparation et analyse des données. Walid AYADI

Fitted Surface; Variable: Y_REND 2 factors, 1 Blocks, 13 Runs; MS Pure Error=.053 DV: Y_REND

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Présentation du logiciel

Relation entre deux variables : estimation de la corrélation linéaire

Etude des propriétés empiriques du lasso par simulations

Cours 7 : Utilisation de modules sous python

IBM SPSS Statistics Base 20

TSTI 2D CH X : Exemples de lois à densité 1


Fonctions de plusieurs variables

Biostatistiques Biologie- Vétérinaire FUNDP Eric Depiereux, Benoît DeHertogh, Grégoire Vincke

SAS de base : gestion des données et procédures élémentaires

Calcul Formel et Numérique, Partie I

Modèles pour données répétées

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R

Analyse exploratoire des données

Chapitre 3. Les distributions à deux variables

Initiation au logiciel R

Package TestsFaciles

Analyse discriminante et régression logistique: application au cas de l innovation pour les entreprises du Canton du Tessin

Introduction à SPSS. Guy Mélard, U.L.B. Mars 2006 Guy Mélard, ULB 1. Introduction à SPSS. Objectif de la leçon.

Cours (7) de statistiques à distance, élaboré par Zarrouk Fayçal, ISSEP Ksar-Said, LES STATISTIQUES INFERENTIELLES

Premiers pas avec SES-Pegase (version 7.0) SES : Un Système Expert pour l analyse Statistique des données. Premiers pas avec SES-Pegase 1

Manipuler des données calendaires

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

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

Initiation à l analyse en composantes principales

TP 1 Introduction à Matlab Février 2009

Économetrie non paramétrique I. Estimation d une densité

Statistiques descriptives

Statistique Descriptive Élémentaire

1 Objectifs. Traitement statistique des données d enquête avec introduction à SPSS. Plan

Étude des flux d individus et des modalités de recrutement chez Formica rufa

Evaluation des modèles non-linéaires à effets mixtes

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Découverte du tableur CellSheet

Lecture critique d article. Bio statistiques. Dr MARC CUGGIA MCU-PH Laboratoire d informatique médicale EA-3888

Analyse des durées de vie avec le logiciel R

4. Résultats et discussion

Probabilité et Statistique pour le DEA de Biosciences. Avner Bar-Hen

INF6304 Interfaces Intelligentes

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

UFR de Sciences Economiques Année TESTS PARAMÉTRIQUES

Chapitre 7. Statistique des échantillons gaussiens. 7.1 Projection de vecteurs gaussiens

Innovations Majeures de la Version 4

Tests de comparaison de moyennes. Dr Sahar BAYAT MASTER 1 année UE «Introduction à la biostatistique»

La survie nette actuelle à long terme Qualités de sept méthodes d estimation

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

1 Importer et modifier des données avec R Commander

Cours d Analyse. Fonctions de plusieurs variables

Modèle de troncature gauche : Comparaison par simulation sur données indépendantes et dépendantes

Un exemple de régression logistique sous

Fiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel

Approche par groupe de gènes pour les données longitudinales d expression génique avec une application dans un essai vaccinal contre le VIH

3.2. Matlab/Simulink Généralités

Transcription:

avancés INTRODUCTION AU LOGICIEL R 3. et graphes Anne Dubois, Julie Bertrand, Emmanuelle Comets emmanuelle.comets@inserm.fr INSERM UMR738 E. Comets (UMR738) Introduction à R - Novembre 2009 1 / 65

avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution simples Eléments des graphes Sauvegarde avancés Librairies graphiques avancées ggplot2 E. Comets (UMR738) Introduction à R - Novembre 2009 2 / 65

avancés Remise en jambe : un exercice 1 Simulez deux vecteurs vec1 et vec2 contenant 20 réalisations d une loi normale de moyennes respectivement 70 et 25, et de variances 10 et 4 2 Simulez un deuxième vecteur vec3 contenant 20 réalisations d une loi uniforme sur l intervalle [0; 5] transformez vec3 pour qu il contienne des valeurs entières 3 Créez un dataframe contenant les 3 vecteurs dans 3 colonnes, et nommez-les "poids", "age" et "douleur" respectivement 4 Calculez les moyennes et les variances des deux variables continues E. Comets (UMR738) Introduction à R - Novembre 2009 3 / 65

avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Moyenne et variance Analyse de variance Variables discrètes Tests de distribution simples Eléments des graphes Sauvegarde avancés Librairies graphiques avancées ggplot2 E. Comets (UMR738) Introduction à R - Novembre 2009 4 / 65

Test de la moyenne avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Les tests usuels pour une moyenne ou une comparaison de moyenne sont : le test t pour des variables normales : t.test(x) ou t.test(x,y) le test de Wilcoxon, non-paramétrique, pour des petits échantillons ou des variables non normales : wilcox.test(x) ou wilcox.test(x,y) Pour un test apparié on utilise l option "paired=t" > x <- rnorm(50,0,1) > y <- rnorm(50,-0.27,0.4) > w <- x + rnorm(50,0,0.1) > t.test(x,y) Pour ces deux tests on peut spécifier l hypothèse alternative en utilisant l argument mu=. E. Comets (UMR738) Introduction à R - Novembre 2009 5 / 65

Application du test t avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Comparaison de moyennes entre 2 groupes : > t.test(x,y) Welch Two Sample t-test t = 2.6064, df = 63.131, p-value = 0.01140 alternative hypothesis: true difference in means!= 0 95 percent confidence interval: 0.0967519 0.7325692 Comparaison de moyennes sur données appariées : > t.test(x,w,paired=t) Paired t-test t = 0.246, df = 49, p-value = 0.8067 95 percent confidence interval: -0.02543856 0.03253569 Il est possible d obtenir un intervalle de confiance sur l estimation de la moyenne en spécifiant conf.int=t, et l option alternative ("two.sided", "less", "greater") permet de spécifier l hypothèse alternative. E. Comets (UMR738) Introduction à R - Novembre 2009 6 / 65

Test de Wilcoxon avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Pour une seule variable ou deux variables appariées, wilcox.test produit un test des signes de Wilcoxon (sur x ou sur (x-y)). Pour deux variables non appariées, le test correspond au test de Mann-Whitney aussi appelé test des rangs de Wilcoxon. L option exact=t est utilisée pour demander un calcul exact de la p-value. E. Comets (UMR738) Introduction à R - Novembre 2009 7 / 65

avancés Utilisation avec un dataframe Moyenne et variance Analyse de variance Variables discrètes Tests de distribution On utilise la base energy contenue dans la librairie ISwR : > library(iswr) > attach(energy) On teste une différence de dépense énergétique entre obèses et non-obèses : > t.test(expend~stature) qui revient à tester : > t.test(expend[stature=="lean"],expend[stature=="obese"]) Cela correspond en SAS à : proc ttest data=energy; class stature; var expend; run; E. Comets (UMR738) Introduction à R - Novembre 2009 8 / 65

Exercice avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution 1 En reprenant la base que vous avez créée en début de cours, testez l égalité des moyennes entre les sujets ayant un grade de douleur inférieur ou supérieur à 2. 2 En utilisant le test de Wilcoxon, comparez les moyennes dans les 2 échantillons pour les cas suivants A=c(0,1,2), B=c(100,150,5000) A=c(0,1,2), B=c(100,150,5000,6000) A=c(0,1,2,3,4), B=c(100,150,5000,6000) Qu en concluez-vous? 3 Faites la même chose qu en 2 en utilisant un test t. E. Comets (UMR738) Introduction à R - Novembre 2009 9 / 65

avancés Comparaison des variances (1) Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Par défaut, on suppose que la variance entre les 2 groupes est différente (ce qui n est pas le cas en SAS). Il est préférable d effectuer un test d homogénéité des variances : > var.test(expend~stature) F test to compare two variances F = 0.7844, num df = 12, denom df = 8, p-value = 0.6797 alt. hypothesis: true ratio of variances is not equal to 1 On ne rejette pas l hypothèse d égalité des variances : > t.test(expend~stature,var.equal=t) E. Comets (UMR738) Introduction à R - Novembre 2009 10 / 65

avancés Comparaison des variances (2) Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Le test de Fisher porte stricto sensu sur des variables normales. D autres tests d homogénéité des variances sont disponibles sous R. En particulier le test de Bartlett est plus robuste en cas d écarts à la normalité > bartlett.test(expend~stature) Bartlett test of homogeneity of variances data: expend by stature Bartlett s K-squared = 0.1362, df = 1, p-value = 0.712 Il existe également des tests non-paramétriques (Fligner-Killeen, Ansari-Bradley et Mood) d homogénéité de la variance. E. Comets (UMR738) Introduction à R - Novembre 2009 11 / 65

avancés Récupération des résultats Moyenne et variance Analyse de variance Variables discrètes Tests de distribution On peut stocker le résultat du test dans un objet : test <- t.test(x,y) > names(test) [1] "statistic" "parameter" "p.value" "conf.int" "estimate" [6] "null.value" "alternative" "method" "data.name" On peut aussi utiliser attributes(test). Si on souhaite conserver la statistique de test, l IC 95% et la p-value : > res <- c(test$statistic,test$conf.int,test$p.value) > names(res) <- c("stat","lim0.025","lim0.975","p.value") > res stat Lim0.025 Lim0.975 p.value 2.60640690 0.09675190 0.73256922 0.01140137 E. Comets (UMR738) Introduction à R - Novembre 2009 12 / 65

Corrélations avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution La syntaxe pour calculer la corrélation et la tester est : > cor.test(x,y,method="methode") où methode peut être : Pearson (par défaut) Spearman (non paramétrique) Kendall (non paramétrique) > cor.test(x,y,method="spearman") Spearman s rank correlation rho... S = 15460, p-value = 0.07103 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.2576230 Par défaut retire les valeurs manquantes. E. Comets (UMR738) Introduction à R - Novembre 2009 13 / 65

Analyse de variance (1) avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Pour comparer simultanément les moyennes de plusieurs variables, on pratique une ANOVA. On utilise le jeu de données red.cell.folate. On souhaite tester une différente en folates selon le type de ventilation (N 2 O+O 2 pendant 24h, N 2 O+O 2 pendant l opération, seulement O 2 pendant 24h) : > attach(red.cell.folate) > anova(lm(folate~ventilation)) Analysis of Variance Table Response: folate Df Sum Sq Mean Sq F value Pr(>F) ventilation 2 15516 7758 3.7113 0.04359 * Residuals 19 39716 2090 --- Signif. codes: 0 *** 0.001 ** 0.01 *... E. Comets (UMR738) Introduction à R - Novembre 2009 14 / 65

Analyse de variance (2) avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Comme une différence significative entre les 3 types de ventilation a été mise en évidence, on peut faire un test 2 à 2 entre les types de ventilation : > pairwise.t.test(folate,ventilation,p.adj="fdr") data: folate and ventilation N2O+O2,24h N2O+O2,op N2O+O2,op 0.042 - O2,24h 0.232 0.408 Note: ce test inclut une correction pour tests multiples. Autre possibilité : TukeyHSD (sur un objet de type aov) E. Comets (UMR738) Introduction à R - Novembre 2009 15 / 65

avancés ANOVA non paramétrique Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Le test de Kruskal Wallis (kruskal.test) est la forme non paramétrique de l ANOVA : > kruskal.test(folate~ventilation) Kruskal-Wallis rank sum test data: folate by ventilation Kruskal-Wallis chi-squared = 4.1852, df = 2, p-value = 0.1234 E. Comets (UMR738) Introduction à R - Novembre 2009 16 / 65

Exercice avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution 1 La base airquality est un jeu de données de R contenant des mesures de qualité de l air réalisées sur plusieurs mois. visualiser la base 2 Comparer la concentration d ozone entre les mois de mai et d août. en utilisant un test t en utilisant un test non paramétrique 3 La concentration d ozone est-elle comparable pour les différents mois (utiliser un test global)? avec une anova (utiliser as.factor() et lm) en utilisant un test non paramétrique E. Comets (UMR738) Introduction à R - Novembre 2009 17 / 65

avancés Variables discrètes : test du χ 2 (1) Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Cas classique : on cherche à savoir si le fait de présenter une caractéristique particulière (exemple : le fait de fumer) a une influence sur la réponse à un traitement. On a donc deux vecteurs avec pour chaque sujet, 1 s il fume et 0 sinon, et sa réponse au traitement considéré. Le tableau de contingence se construit avec la commande table(x,y) : > fumeur <- rbinom(50,1,0.4) > reponse <- rbinom(50,1,0.4) > table(fumeur,reponse) reponse fumeur 0 1 0 18 16 1 11 5 E. Comets (UMR738) Introduction à R - Novembre 2009 18 / 65

Test du χ 2 (2) avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Pour effectuer le test d une relation entre le fait de fumer et la réponse au traitement, on utilise la fonction chisq.test. Deux syntaxes sont possibles : forme vectorielle chisq.test(x,y) > chisq.test(fumeur,reponse) Pearson s Chi-squared test with Yates continuity correction data: fumeur and reponse X-squared = 0.5616, df = 1, p-value = 0.4536 forme matricielle chisq.test(tab), en utilisant le tableau de contingence tab > chisq.test(table(fumeur,reponse))... E. Comets (UMR738) Introduction à R - Novembre 2009 19 / 65

avancés Généralisation à plusieurs classes Moyenne et variance Analyse de variance Variables discrètes Tests de distribution On utilise les mêmes commandes si les variables ont plusieurs classes : > malade <- rbinom(15,2,0.3) > trait <- rbinom(15,2,0.3) > table(malade,trait) trait malade 0 1 2 0 2 3 2 1 2 3 1 2 1 0 1 > chisq.test(malade,trait) Pearson s Chi-squared test data: malade and trait X-squared = 1.8214, df = 4, p-value = 0.7686 Warning message: l approximation du Chi-2 est peut-être incorrecte in: chisq.test(malade, trait) E. Comets (UMR738) Introduction à R - Novembre 2009 20 / 65

Variables discrètes (2) avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution La fonction CrossTable, contenue dans le package gmodels, permet d obtenir des tables de contigence identiques à la Proc Freq de SAS : > library(gmodels) > CrossTable(fumeur,reponse,prop.t=F,prop.chisq=F) reponse fumeur 0 1 Row Total ------------- ----------- ----------- ----------- 0 18 16 34 0.529 0.471 0.680 0.621 0.762 ------------- ----------- ----------- ----------- 1 11 5 16 0.688 0.312 0.320 0.379 0.238 ------------- ----------- ----------- ----------- Column Total 29 21 50 0.580 0.420 ------------- ----------- ----------- ----------- E. Comets (UMR738) Introduction à R - Novembre 2009 21 / 65

avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Tests de comparaison d une proportion (1) On suppose un taux de succès p = O/N où O est le nombre de succès et N est le nombre de patients. Dans le cas de plusieurs groupes, on suppose que l on a les variables Succes et Groupe. comparaison de p à une référence : prop.test(o,n,p0) ou binom.test(o,n,p0) > prop.test(220,500,0.5) 1-sample proportions test with continuity correction data: 220 out of 500, null probability 0.5 X-squared = 6.962, df = 1, p-value = 0.008326 alternative hypothesis: true p is not equal to 0.5 95 percent confidence interval: 0.3961300 0.4848059 sample estimates: p 0.44 E. Comets (UMR738) Introduction à R - Novembre 2009 22 / 65

avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Tests de comparaison d une proportion (1) On suppose un taux de succès p = O/N où O est le nombre de succès et N est le nombre de patients. Dans le cas de plusieurs groupes, on suppose que l on a les variables Succes et Groupe. comparaison de deux proportions : prop.test(c(o1,o2),c(n1,n2)) fisher.test(matrix(c(o1,o2,n1-o1,n2-o2),2)) fisher.test(succes,groupe) chisq.test(matrix(c(o1,o2,n1-o1,n2-o2),2)) chisq.test(succes,groupe) comparaison de plus de 2 proportions : chisq.test(succes,groupe) ou fisher.test(succes,groupe) E. Comets (UMR738) Introduction à R - Novembre 2009 23 / 65

Tests de normalité avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Test de Shapiro-Wilk (hypothèse nulle = "normalité"): > x <- rnorm(100) > y <- runif(100,-2,2) > shapiro.test(x) Shapiro-Wilk normality test data: x W = 0.9872, p-value = 0.4523 > shapiro.test(y) Shapiro-Wilk normality test data: y W = 0.9516, p-value = 0.001055 E. Comets (UMR738) Introduction à R - Novembre 2009 24 / 65

Tests de distribution avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Test de Kolmogorov-Smirnov ks.test(x,"distribution") pour tester si x suit la distribution "distribution" (ex : punif, pnorm...) ks.test(x,y) pour tester si x et y suivent les mêmes distributions > x<-runif(20);y<-rnorm(20) > ks.test(x,y) Two-sample Kolmogorov-Smirnov test data: x and y D = 0.55, p-value = 0.003967 alternative hypothesis: two.sided > ks.test(x,"pnorm") One-sample Kolmogorov-Smirnov test data: x D = 0.5048, p-value = 3.032e-05 alternative hypothesis: two.sided E. Comets (UMR738) Introduction à R - Novembre 2009 25 / 65

Exercice avancés Moyenne et variance Analyse de variance Variables discrètes Tests de distribution Reprendre la base airquality pour répondre à la question : y a-t-il une relation entre le fait d observer une température supérieure à 85 F et le fait d observer un pic d ozone supérieur à 75 ppb? construire le tableau de contingence et utiliser un test du χ 2 la distribution des concentrations d Ozone suit-elle une loi normale? attention aux données manquantes E. Comets (UMR738) Introduction à R - Novembre 2009 26 / 65

avancés simples Eléments des graphes Sauvegarde Moyenne et variance Analyse de variance Variables discrètes Tests de distribution simples Eléments des graphes Sauvegarde avancés Librairies graphiques avancées ggplot2 E. Comets (UMR738) Introduction à R - Novembre 2009 27 / 65

Les graphiques avancés La fonction de base est plot : > x<-c(-1000:1000)*pi/500 > y<-cos(x) > plot(x,y) simples Eléments des graphes Sauvegarde donne y 1.0 0.5 0.0 0.5 1.0 6 4 2 0 2 4 6 x E. Comets (UMR738) Introduction à R - Novembre 2009 28 / 65

avancés Options de la fonction plot simples Eléments des graphes Sauvegarde main="le titre" sub="le sous-titre" xlab="",ylab="" xlim=c(xa,xb) ylim=c(ya,yb) type="" log="" pch=n, lty=n col=n font=n,cex=n titre du graphe sous-titre du graphe légende des axes limites des axes par défaut : "p" pour points sinon "l", "o", "h" ou "s" échelle logarithmique pour les X ("x"), pour les Y ("y") ou les 2("xy") symbole ou type de ligne utilisé couleur fonte et taille du texte et des symboles Pour plus de détails, voir help(par) E. Comets (UMR738) Introduction à R - Novembre 2009 29 / 65

avancés simples Eléments des graphes Sauvegarde Types de symboles utilisables (pour référence) plot symbols : points (... pch = *, cex = 3 ) 0 6 12 18 24 0 0 1 7 13 19 25 + + 2 8 14 20 * * 3 9 15 21. 4 10 16 22 o o % % 5 11 17 23 O O # # E. Comets (UMR738) Introduction à R - Novembre 2009 30 / 65

avancés Exemple d utilisation de plot simples Eléments des graphes Sauvegarde > plot(x,y,xlim=c(0,pi),ylim=c(-1,1), xlab="x",ylab="y",lty=2,type="l", main="graphe de la fonction cosinus") donne y 1.0 0.5 0.0 0.5 1.0 graphe de la fonction cosinus 0.0 0.5 1.0 1.5 2.0 2.5 3.0 x E. Comets (UMR738) Introduction à R - Novembre 2009 31 / 65

avancés Tracé de variables discrètes simples Eléments des graphes Sauvegarde > plot(test$poids,test$womac, xlim=c(70,85),ylim=c(0,50), xlab="poids",ylab="womac",pch=2,type="p", main="relation entre les variables poids et womac") relation entre les variables poids et womac womac 0 10 20 30 40 50 70 75 80 85 poids E. Comets (UMR738) Introduction à R - Novembre 2009 32 / 65

Exercice avancés simples Eléments des graphes Sauvegarde Réaliser le graphe suivant à partir de la base airquality Ozone observée les 20 premiers jours du mois de mai ozone 0 10 20 30 40 50 0 5 10 15 20 E. Comets (UMR738) Introduction à R -jours Novembre 2009 33 / 65

avancés Ajouter des éléments à un graphe simples Eléments des graphes Sauvegarde title() legend() text() mtext() box() lines(x,y) points(a,b) arrows(a,b,c,d) abline(a,b) titre légende texte texte dans la marge encadrement du graphe trait entre x(=c(a,b)) et y(=c(c,d)) tracé du point de coordonnées (a,b) tracé d une flèche entre (a,b) et (c,d) tracé de la droite d ordonnée à l origine a et de pente b E. Comets (UMR738) Introduction à R - Novembre 2009 34 / 65

Exemple avancés >x<-c(0:1000)*pi/100 >plot(x,cos(x),xlim=c(0,pi),ylim=c(-1,1), type="l",ylab="",font=3) >lines(x,sin(x),lty=2) >abline(-1,1,lty=3) >legend(1, -0.5, c("cos(x)", "sin(x)", "x-1"), lty = c(1, 2, 3)) simples Eléments des graphes Sauvegarde 1.0 0.5 0.0 0.5 1.0 cos(x) sin(x) x 1 0.0 0.5 1.0 1.5 2.0 2.5 3.0 E. Comets (UMR738) Introduction à R - Novembre x 2009 35 / 65

Exercice avancés simples Eléments des graphes Sauvegarde Réaliser le graphe suivant à partir de la base airquality Relation entre l ozone et le vent, selon la température Ozone (ppb) 40 60 80 100 120 Temp>=85 F Temp<85 F 2 4 6 8 10 12 14 Vent (mph) E. Comets (UMR738) Introduction à R - Novembre 2009 36 / 65

avancés simples Eléments des graphes Sauvegarde hist() barplot() boxplot() qqplot(), qqnorm() pie() pairs() matplot() histogramme graphe en barre boîte à moustache graphe quantile-quantile camembert corrélations entre les colonnes d une matrice corrélations entre les colonnes de deux matrices E. Comets (UMR738) Introduction à R - Novembre 2009 37 / 65

Histogramme avancés simples Eléments des graphes Sauvegarde On peut spécifier le nombre de barres de l histogramme grâce à la commande breaks hist(airquality$ozone) hist(airquality$ozone,breaks=20) Histogram of airquality$ozone Histogram of airquality$ozone Frequency 0 10 20 30 Frequency 0 5 10 15 20 25 0 50 100 150 airquality$ozone 0 50 100 150 airquality$ozone E. Comets (UMR738) Introduction à R - Novembre 2009 38 / 65

avancés Histogrammes de plusieurs variables simples Eléments des graphes Sauvegarde Pour tracer plusieurs graphes sur la même page (ex : histogramme de différentes variables), on utilise l option mfrow=c(m,n) > par(mfrow=c(2,2)) > hist(airquality$ozone,main="",xlab="ozone") > hist(airquality$solar.r,main="",xlab="solar.r") > hist(airquality$wind,main="",xlab="wind") > hist(airquality$temp,main="",xlab="temp") Frequency 0 10 20 30 Frequency 0 10 20 30 0 50 100 150 Ozone 0 50 150 250 350 Solar.R Frequency 0 10 20 30 Frequency 0 10 20 30 0 5 10 15 20 Wind 60 70 80 90 100 Temp E. Comets (UMR738) Introduction à R - Novembre 2009 39 / 65

Exercice avancés simples Eléments des graphes Sauvegarde Réaliser le graphique suivant à partir de la base swiss Frequency 3 4 0 1 2 5 6 7 Density 0.00 0.02 0.04 0.06 0 20 40 60 80 Agriculture 5 10 15 20 25 30 35 Examination Frequency 0 2 4 6 8 10 Frequency 0 2 4 6 8 10 0 10 20 30 40 50 0 20 40 60 80 100 E. Comets (UMR738) Education Introduction à R - Novembre 2009 Catholic 40 / 65

Boxplot avancés simples Eléments des graphes Sauvegarde Le boxplot permet de résumer graphiquement la distribution d un échantillon : > boxplot(airquality$ozone) 0 50 100 150 Ozone E. Comets (UMR738) Introduction à R - Novembre 2009 41 / 65

avancés Boxplot de plusieurs variables simples Eléments des graphes Sauvegarde On peut tracer un boxplot d un data.frame (peu d intérêt si les échelles des variables sont trop différentes) > boxplot(airquality) 0 50 100 150 200 250 300 Ozone Solar.R Wind Temp Month Day E. Comets (UMR738) Introduction à R - Novembre 2009 42 / 65

avancés simples Eléments des graphes Sauvegarde Boxplot d une variable selon des catégories Pour tracer les boxplot de Ozone, selon si Temp est < ou à 85 F. > air1<-transform(airquality,iftemp=ifelse(temp>85,1,0)) > attach(air1) > boxplot(ozone~itemp,xlab="itemp",ylab="ozone") > legend(1.8,170,c("0 : Temp<=85","1 : Temp>85")) Ozone 0 50 100 150 0 : Temp<85 1 : Temp>85 0 1 Itemp E. Comets (UMR738) Introduction à R - Novembre 2009 43 / 65

Exercice avancés simples Eléments des graphes Sauvegarde Réaliser le graphique suivant à partir de la base swiss Fertility 40 50 60 70 80 90 0 : Edu <10 1 : Edu >10 Fertility 40 50 60 70 80 90 0 : Inf.Mort<20 1 : Inf.Mort>20 0 1 0 1 E. Comets (UMR738) Introduction à R - Novembre 2009 44 / 65

Les spaghetti plot avancés simples Eléments des graphes Sauvegarde La fonction interaction.plot trace des données longitudinales selon des catégories (en particulier par sujet) >attach(esoph) >interaction.plot(agegp, alcgp, ncases/ncontrols, xlab="age par groupe",trace.label="alcool") esoph Data mean of ncases/ncontrols 0.0 0.2 0.4 0.6 0.8 1.0 alcool 80 119 120+ 40 79 0 39g/day 25 34 35 44 45 54 55 64 65 74 75+ age par groupe E. Comets (UMR738) Introduction à R - Novembre 2009 45 / 65

Quantile-quantile plot avancés simples Eléments des graphes Sauvegarde Pour comparer les quantile empiriques de 2 vecteurs x1,x2. Si x1 et x2 sont 2 réalisations d une même variable aléatoire, le qq-plot est proche de la droite y=x > x1<-runif(100) > x2<-runif(100) > qqplot(x1,x2,main="qq-plot de x1 et x2") > abline(0,1) qq plot de x1 et x2 x2 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0 x1 E. Comets (UMR738) Introduction à R - Novembre 2009 46 / 65

Quantile-quantile norm avancés simples Eléments des graphes Sauvegarde Pour comparer les quantile empiriques d un vecteur aux quantiles théoriques de la distribution normale. > x<-runif(100) > y<-rnorm(100) > qqnorm(x) > qqnorm(y) > abline(0,1) > abline(0,1) qq norm de x qq norm de y Sample Quantiles 0.0 0.2 0.4 0.6 0.8 1.0 Sample Quantiles 3 2 1 0 1 2 2 1 0 1 2 Theoretical Quantiles 2 1 0 1 2 Theoretical Quantiles E. Comets (UMR738) Introduction à R - Novembre 2009 47 / 65

Camembert avancés simples Eléments des graphes Sauvegarde Pour faire un camembert > pie(rep(1,12),col=rainbow(12)) 4 3 5 2 6 1 7 12 8 11 9 10 E. Comets (UMR738) Introduction à R - Novembre 2009 48 / 65

Corrélations : pairs avancés simples Eléments des graphes Sauvegarde Trace les graphes des variables deux à deux : > pairs(trees) 65 70 75 80 85 Girth 8 10 12 14 16 18 20 65 70 75 80 85 Height Volume 10 20 30 40 50 60 70 8 10 12 14 16 18 20 10 20 30 40 50 60 70 E. Comets (UMR738) Introduction à R - Novembre 2009 49 / 65

avancés simples Eléments des graphes Sauvegarde associés à un type d objet (1) > attach(swiss) > lm1<-lm(fertility~education) > par(mfrow=c(2,2)) > plot(lm1) Residuals vs Fitted Normal Q Q plot Residuals 20 10 0 10 20 8 24 3 Standardized residuals 1 0 1 2 24 3 8 40 50 60 70 80 2 1 0 1 2 Fitted values Theoretical Quantiles Standardized residuals 0.0 0.5 1.0 1.5 Scale Location plot 8 243 Cook s distance 0.00 0.05 0.10 0.15 Cook s distance plot 42 47 46 40 50 60 70 80 0 10 20 30 40 Fitted values Obs. number E. Comets (UMR738) Introduction à R - Novembre 2009 50 / 65

avancés simples Eléments des graphes Sauvegarde associés à un type d objet (2) Pour afficher uniquement le premier graphe : > attach(swiss) > lm1<-lm(fertility~education) > par(mfrow=c(2,2)) > plot(lm1,which=1) En fait plot fait ici appel à une autre fonction, plot.lm, qui sait comment construire les graphes associés aux résultats d une régression linéaire. Il y a de nombreuses méthodes spécifiques associées à différents objets : methods(plot) E. Comets (UMR738) Introduction à R - Novembre 2009 51 / 65

avancés Analyse de variance (3) : graphe simples Eléments des graphes Sauvegarde > xbar <- tapply(folate,ventilation, mean) > s <- tapply(folate,ventilation,sd) > n <- tapply(folate,ventilation,length) # nombre de patients > sem <- s/sqrt(n) > stripchart(folate~ventilation,pch=16,vert=t) > arrows(1:3,xbar+sem,1:3,xbar-sem,angle=90,code=3,length=.1) > lines(1:3,xbar,pch=4,type="b",cex=2) 200 250 300 350 N2O+O2,24h N2O+O2,op O2,24h E. Comets (UMR738) Introduction à R - Novembre 2009 52 / 65

Enregistrer une figure avancés simples Eléments des graphes Sauvegarde Sauvegarde avec une commande, exemple en postscript postscript("mongraphe.eps") par(mfrow=c(2,2)) plot(lm1) dev.off() Formats disponibles jpeg : jpeg("mongraphe.jpg") postscript : postscript("mongraphe.eps") png : png("mongraphe.png") Sauvegarde avec la fenêtre graphique placer la souris sur la figure de R puis File/Save as/ et choisir son format Copier-coller dans Power-Point placer la souris sur la figure de R et taper Ctrl+C ouvrir PowerPoint et dans une diapo, taper Ctrl+V. E. Comets (UMR738) Introduction à R - Novembre 2009 53 / 65

Exercice avancés simples Eléments des graphes Sauvegarde Tracer sur 4 figures placées sur une même page les densités des lois suivantes : loi normale centrée réduite loi log-normale correspondante loi de Poisson (paramètre à choisir) loi Gamma E. Comets (UMR738) Introduction à R - Novembre 2009 54 / 65

avancés Librairies graphiques avancées ggplot2 Moyenne et variance Analyse de variance Variables discrètes Tests de distribution simples Eléments des graphes Sauvegarde avancés Librairies graphiques avancées ggplot2 E. Comets (UMR738) Introduction à R - Novembre 2009 55 / 65

avancés avancés Librairies graphiques avancées ggplot2 Librairies graphiques spécialisées lattice : librairie graphique apportant des fonctions treillis ggplot2 : définition d une grammaire graphique Ces librairies sont utilisées par d autres librairies pour tracer des graphes xpose par exemple utilise lattice Conception différente d un graphe graphe considéré comme un objet dont on spécifie les caractéristiques pas d ajout possible sur un graphe de type lattice (mais complètement paramétrable) E. Comets (UMR738) Introduction à R - Novembre 2009 56 / 65

Librairie lattice avancés Librairies graphiques avancées ggplot2 Utilisation similaire aux fonctions graphiques classiques mais fonctionnement différent création d un objet tracé automatique quand R est utilisé interactivement à l intérieur d un fichier (source) ou d une fonction, l objet doit être tracé explicitement par un print Utilisation de formules ( ) décrivant les relations représentées dans les graphes relation directe et intuitive entre graphe et analyse capacités graphiques améliorées par rapport aux graphes de la librairie standard E. Comets (UMR738) Introduction à R - Novembre 2009 57 / 65

Librairie ggplot2 avancés Librairies graphiques avancées ggplot2 Librairie développée par Hadley Wickham première version ggplot utilise lattice Apprentissage pas de tutoriel livre disponible en PDF E. Comets (UMR738) Introduction à R - Novembre 2009 58 / 65

Graphe de base : qplot avancés Librairies graphiques avancées ggplot2 Fonctionne comme plot Peut être redirigé vers un objet nécessite d appeler l objet pour que le graphe soit tracé Options automatisées ajout de couleurs pour différencier des groupes (couleurs choisies selon des palettes prédéfinies) différenciation (split) selon des groupes nom des attributs faciles à retenir (colour, size, shape) E. Comets (UMR738) Introduction à R - Novembre 2009 59 / 65

Un graphe avec plot avancés Librairies graphiques avancées ggplot2 plot(airquality$temp,airquality$ozone,xlab="temperature",ylab="ozone",type="n") month<-sort(unique(airquality$month)) for(i in month) points(airquality$temp[airquality$month==i], airquality$ozone[airquality$month==i],col=(i-4)) legend(60,150,month,col=(month-4),pch=1) Ozone 0 50 100 150 Month 5 6 7 8 9 60 70 80 90 Temperature E. Comets (UMR738) Introduction à R - Novembre 2009 60 / 65

avancés Le même graphe avec qplot Librairies graphiques avancées ggplot2 library(ggplot2) qplot(temp,ozone,data=airquality,colour=month) 150 Ozone 100 Month 5 6 7 8 9 50 60 70 80 90 Temp E. Comets (UMR738) Introduction à R - Novembre 2009 61 / 65

avancés Changements de graphes Librairies graphiques avancées ggplot2 Fonctionne par la définition d objets géométriques (geom) caractérisant les graphes Ajustement d une courbe par ajout de l option geom="smooth" ajustement linéaire (method="lm") ajustement de splines Changement de style de graphe histogramme : geom="histogram" boîte à moustaches : geom="boxplot" Deux courbes/styles peuvent se superposer : geom=c("point","smooth") notion de couche (layer) comme Photoshop ou Gimp E. Comets (UMR738) Introduction à R - Novembre 2009 62 / 65

avancés Librairies graphiques avancées ggplot2 Un graphe plus sophistiqué q1<-qplot(temp,ozone,data=airquality,colour=month,geom=c("point","smooth"), facets=.~month,span=2,facet_grid)+geom_smooth(method="lm",linetype=2) q1 E. Comets (UMR738) Introduction à R - Novembre 2009 63 / 65

avancés Passer à ggplot2 ou pas? Librairies graphiques avancées ggplot2 Deux modes de raisonnement très différents... Avantage des graphes de base simple mais paramétrisable à l infini on arrive toujours à faire ce qu on veut (mais parfois on y passe du temps!) Avantage des graphes de ggplot2 très rapide de faire de beaux graphes sans avoir à régler plein de petits détails (regroupement, comparaisons,...) relation immédiate entre le graphe et l analyse statistique en revanche, plus compliqué de paramétriser certains éléments par rapport aux graphiques de base Choix très personnel... E. Comets (UMR738) Introduction à R - Novembre 2009 64 / 65

avancés Librairies graphiques avancées ggplot2 Pas immédiat : plusieurs graphes sur une page plot(airquality[,1:2],type="n",axes=f,xlab="",ylab="") pl1<-qplot(as.factor(month),ozone,data=airquality,colour=month,geom=c("jitter"), xlab="month") pl2<-qplot(as.factor(month),ozone,data=airquality,colour=month,geom=c("boxplot"), xlab="month") vp1<-viewport(width=0.5, height=1,x=0.25,y=0.5) vp2<-viewport(width=0.5, height=1,x=0.75,y=0.5) print(pl1,vp=vp1) print(pl2,vp=vp2) E. Comets (UMR738) Introduction à R - Novembre 2009 65 / 65