F. Farnir, L. Massart 1 BMV Année académique 2008-2009



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

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

R01 Import de données

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

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

Gestion des données avec R

Initiation au logiciel R

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

Introduction à MATLAB R

Présentation du langage et premières fonctions

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Une introduction au langage R

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

Lire ; Compter ; Tester... avec R

Introduction aux Statistiques et à l utilisation du logiciel R

INTRODUCTION AU LOGICIEL R

Les concepts de base, l organisation des données

Aide - mémoire gnuplot 4.0

Maple: premiers calculs et premières applications


Calcul Formel et Numérique, Partie I

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

Python - introduction à la programmation et calcul scientifique

Introduction à la présentation graphique avec xmgrace

TP 1. Prise en main du langage Python

Calcul Formel et Numérique, Partie I

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Introduction à l informatique en BCPST

Programmation C. Apprendre à développer des programmes simples dans le langage C

Manipulation de données avec SAS Enterprise Guide et modélisation prédictive avec SAS Enterprise Miner

Cours Informatique Master STEP

Analyse de la variance Comparaison de plusieurs moyennes

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

R00 Installation du logiciel R sous Windows

L informatique en BCPST

TP 1 Introduction à Matlab Février 2009

Initiation à l analyse en composantes principales

Créer et partager des fichiers

GESTION DU LOGO. 1. Comment gérer votre logo? Format de l image Dimensions de l image Taille de l image 9

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

La place de SAS dans l'informatique décisionnelle

INTRODUCTION À L'ENVIRONNEMENT DE PROGRAMMATION STATISTIQUE R

Outils pour les réseaux de neurones et contenu du CD-Rom

Logiciel ArpentGIS-PC Guide de l utilisateur

Exemples d Analyses de Variance avec R

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Cours 7 : Utilisation de modules sous python

Comment utiliser RoundCube?

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

Présentation du logiciel

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

TP 0 : INTRODUCTION À MATLAB

Package TestsFaciles

Exemples d application

Formats d images. 1 Introduction

Sécurisation de Windows NT 4.0. et Windows 2000

Gestion collaborative de documents

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Un exemple de régression logistique sous

Installation d'un TSE (Terminal Serveur Edition)

Données longitudinales et modèles de survie

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Visual Taxe 4.1.0B04 minimum

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

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

TP3 : Manipulation et implantation de systèmes de fichiers 1

Installation. Notes de Cours sur le logiciel R. Plan. Au démarrage

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Mode d emploi Accès & consultation des certificats d étalonnage MES PV EN LIGNE

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

1 Modélisation d être mauvais payeur

Procédure de restauration F8. Série LoRdi 2012 à Dell V131 V3360 L3330

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

Logiciel XLSTAT version rue Damrémont PARIS

Gestion des sauvegardes

Guide Utilisateur Easy Share

ALLIANZ MODE OPERATOIRE DE MIGRATION D UNE AGENCE WINDOWS Août Version du document : 010

Notes de cours Statistique avec le logiciel R

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

Tutoriel Mathematica Les graphiques

Créer le schéma relationnel d une base de données ACCESS

données en connaissance et en actions?

Une introduction. Lionel RIOU FRANÇA. Septembre 2008

Structure du format BMP, sa lecture, sa construction et son écriture

Tsoft et Groupe Eyrolles, 2005, ISBN :

Manuel d utilisation Logiciel (Communications Utility)

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

La solution à vos mesures de pression

4 Exemples de problèmes MapReduce incrémentaux

Manuel de System Monitor

Transcription:

F. Farnir, L. Massart 1 BMV Année académique 2008-2009

Pourquoi? Logiciel d analyse statistique et graphique Gratuit... GNU General Public License Disponible sur Internet... voir http://www.r-project.org Maintenu pour toutes les plateformes... PC, Mac, Linux,... Ouvert... Simple d utilisation...

Site web abritant R

Simple? Il faut programmer... Mais: Langage interprété... Syntaxe simple et intuitive (avec un peu d expérience)... Concepts simples...

Concepts de base? Tout est sous forme d «objets nommés» variables, données, fonctions, résultats On travaille sur les objets à l aide: d opérateurs (exemple: + ) de fonctions (exemple: sin ) Arguments Options Fonction Arg. par défaut Résultats

Fonctionnement schématique Commandes R OS Fonctions Opérateurs Objets «données» Objets «résultats» Librairies R Fichiers E/S (données, graphiques,...) Mémoire vive Disque dur

Les fonctions de R Stockées dans des «librairies» de fonctions Regroupées dans des «packages» Structure du répertoire R_ROOT/libraries/<package>/R/<package> Répertoire d installation de R exemple: R_ROOT/libraries/base/R/base

Une session élémentaire de R On «double-clique» sur, puis:

Quelques commandes > n <- 10 => affecte 10 à la variable «n» > print(n) => affiche le contenu de «n» > n => affiche le contenu de «n» > 5 -> N => affecte 5 à la variable «N» > ls() => liste tous les objets > rm(list=ls(«^n»)) => efface les objets dont le nom commence par «n» > q() => permet de quitter R

Obtenir de l aide > help() => ouvre une fenêtre d aide > help(«help») => aide sur l aide... > help(«ls») «ls» > help.start() >?<func> => ouvre une fenêtre d aide avec l aide sur la fonction => ouvre un site (local) d aide en HTML => aide sur la fonction <func>

Les objets dans Tout ce qui est manipulable dans R est sous forme d objets (nombres réel, logique ou complexe, chaine de caractères, fonctions, expressions,...) Les objets se différencient notamment par leurs attributs 2 attributs sont présents avec chaque type d objet x: le mode => > mode(x) «numeric» la longueur => > length(x) 2

Les objets dans (suite) Exemple: > x <- 10 > mode(x) [1] «numeric» > y <- «R is easy» > mode(y) [1] «character» > length(y) [1] 1 >

Les objets dans (suite) Les objets de longueur 1 Vecteurs > a <- vector(mode=«numeric», length=5) > a [1] 0 0 0 0 0 > length(a) [1] 5 > is.vector(a) [1] TRUE > a <- c(1,4,9,16,25) > a [1] 1 4 9 16 25

Les objets dans (suite) Les objets de longueur 1 Facteurs > b <- factor(a) > b [1] 1 4 9 16 25 Levels: 1 4 9 16 25 > length(b) [1] 5 > is.factor(b) [1] TRUE

Les objets dans (suite) Les objets de longueur 1 Tableaux > a <- vector(length=10) > c <- array(a,dim=c(2,5)) > c [,1] [,2] [,3] [,4] [,5] [1,] FALSE FALSE FALSE FALSE FALSE [2,] FALSE FALSE FALSE FALSE FALSE > is.array(c) [1] TRUE > dim(c) [1] 2 5

Les objets dans (suite) Les objets de longueur 1 Tableaux (suite) > d <- matrix(data=10,nr=2,nc=3) > d [,1] [,2] [,3] [1,] 10 10 10 [2,] 10 10 10 > d <- matrix(1:6,nr=2,nc=3,byrow=true) > d [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6

Les objets dans (suite) Les objets de longueur 1 «Data frame» > d <- data.frame(race=«bbb»,poids=100.0) > d race poids 1 BBB 100.0 >

Les objets dans (suite) Les objets de longueur 1 «Data frame» (suite) > x <- c(1,2,3,4); y <- («A»,«C»,«G»,«T») > e <- data.frame(x,y) > e x y 1 1 A 2 2 C 3 3 G 4 4 T >

Les objets dans (suite) Les objets de longueur 1 Listes > e <- list(race=«bbb»,poids=100.0) > e $race [1] «BBB» $poids [1] 100.0 >

Les objets dans (suite) Les objets de longueur 1 Listes (suite) > x <- c(«bbb»,«cha») > y <- c(100.0,120.0) > e <- list(race=x,poids=y) > e $race [1] «BBB» «CHA» $poids [1] 100.0 120.0

Les objets dans (suite) Les objets de longueur 1 Listes (suite) > e$race [1] «BBB» «CHA» > e$poids [1] 100.0 120.0 >

Les objets dans (suite) Remarques Il existe d autres objets (function, expression, ts,...) Pour chaque objet, des défauts existent Il est possible de convertir des objets vers un autre type Chaque type d objets a potentiellement des fonctions qui lui sont associées (méthodes), permettant de manipuler ce type d objets en particulier Voir l exemple page suivante

Les objets dans (suite) Exemple de «méthode» Objet de type «expression» > e <- expression(x/(x^2+y^2)) > e expression(x/(x^2+y^2)) > x <- 2; y <- 1 > eval(e) [1] 0.4 > D(e, «x») 1/(x^2 + y^2) - x * (2 * x)/(x^2 + y^2)^2

Lecture de données externes Répertoire de travail («working directory») Répertoire dans lequel on lit (et on écrit) > getwd() => get working directory > setwd(«r_home/my_data») => set working directory Autre solution: spécifier explicitement le nom du fichier cible... > mydata<-read.table(«c:/fred/data.dat»)

Lecture de données externes Types de fichiers En général: ASCII, Excel, SAS, SPSS, SQL... Ici, on se limitera au mode ASCII > data <- read.table(«data.dat», header=true, sep=«,», quote=, dec=«.»)

Lecture de données externes Exemple de lecture Fichier: race,poids BBB,120.0 Charolais,340.0... Dans : > data race poids 1 BBB 120 2 Charolais 340...

Lecture de données externes Exemple de lecture (suite) > data$race [1] BBB Charolais Levels: BBB Charolais > is.factor(data$race) [1] TRUE > data$poids [1] 120 340 > is.vector(data$poids) [1] TRUE

Lecture de données externes Remarques sur la lecture D autres fonctions de lecture existent: read.csv («comma separated variables»), read.delim, read.fwf («fixed width format»), scan... Exemple: > d<-scan(«data.dat», what=list(,0), skip=1,sep=«,»)

Ecriture de données externes Remarques sur l écriture Comme pour l écriture, diverses fonctions d écriture existent, parmi lesquelles write.table(...) et write(...) Exemple: > write.table(data,file=«data.out», row.names=true,col.names=true, quote=false)

Ecriture de données externes Sauvetage et chargement de variables Exemple: > save(x,y,z,file=«xyz.dat»,ascii=true) => sauvetage des variables x,y,z > load(«xyz.dat») => récupération des variables x,y,z (autre session R)

Ecriture de données externes Sauvetage et chargement de toutes les variables Exemple: > save(list=ls(all=true), file=«all.dat»,ascii=true) > load(«all.dat») => récupération de toutes les variables (autre session R)

Génération de données Lire des données à l écran > d <- scan() 1: 1 2 3 4 5 6: Read 5 items > d [1] 1 2 3 4 5 >

Génération de données Créer des séquences d entiers et de réels > a <- 1:5 > a [1] 1 2 3 4 5 > b <- seq(1,2,0.1) > b [1] 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 > c <- seq(length=6,from=1,to=3) > c [1] 1.0 1.4 1.8 2.2 2.6 3.0

Génération de données Créer des séquences d entiers et de réels (suite) > a <- c(rep(1,3),rep(2,4),rep(3,2)) > a [1] 1 1 1 2 2 2 2 3 3 > b <- sequence(2:4) > b [1] 1 2 1 2 3 1 2 3 4 > c <- sequence(c(2,3,4)) > c [1] 1 2 1 2 3 1 2 3 4

Génération de données Créer des séquences de facteurs > a <- gl(3,4,label=c(«bbb»,«cha»,«bxc»),length=24) > a [1] BBB BBB BBB BBB CHA CHA CHA CHA BxC BxC BxC BxC [13] BBB BBB BBB BBB CHA CHA CHA CHA BxC BxC BxC BxC Levels: BBB CHA BxC

Génération de données Créer des séquences de facteurs (suite) > a <- expand.grid(race=c(«bbb»,«cha»,«cxb»), sexe=c(«m»,«f»),conf=c(«--»,«-»,«+»,«++»)) > a race sexe conf 1 BBB M -- 2 CHA M -- 3 CxB M -- 4 BBB F --... 24 CxB F ++ >

Génération de données Créer des séquences aléatoires Illustration sur la distribution binomiale B(n=10;p=0.3)

Génération de données Créer des séquences aléatoires Fonctions R dbinom(x,n,p) => Valeur des probabilités Exemple: > x <- seq(0,10,1) > y <- dbinom(x,10,0.3)

Génération de données Créer des séquences aléatoires Fonctions R rbinom(k,n,p) => Valeurs de la variable aléatoire Exemple: > k <- 3 > rbinom(k,10,0.3) [1] 2 3 3

Génération de données Créer des séquences aléatoires Fonctions R pbinom(r,n,p) Exemple: > pbinom(3,10,0.3) [1] 0.6496107 => Valeurs des probabilités cumulées

Génération de données Créer des séquences aléatoires Fonctions R qbinom(prob,n,p) => Valeur de r : P( r) 1-prob Exemple: > qbinom(0.95,10,0.3) [1] 5 Exemple appliqué: si j observe 100 vêlages, combien de veaux femelles verrai-je au moins, avec une probabilité de 95%? > qbinom(0.05,100,0.5) [1] 42

Génération de données Créer des séquences aléatoires Autres distributions: <d,p,q,r><nom>(<arguments>) <arguments> dépend du type de distribution, <nom> = (norm, exp, pois, t, f, chisq, multinom, hyper, nbinom, unif,...) Exemple: > qnorm(0.05,mean=0,sd=1) [1] -1.644854

Manipulation de données Les expressions dans R Utilisation des opérateurs de R (liste: cfr manuel) > x <- 10; y <- 15 > x + y [1] 25 > x <= y [1] TRUE > 9 < (x < 11) [1] FALSE > 9 < x && x < 11 [1] TRUE

Manipulation de données Les expressions dans R (suite) Utilisation des opérateurs de R sur des vecteurs > x <- 1:3; y <- 1:3 > x == y [1] TRUE TRUE TRUE > identical(x,y) [1] TRUE > identical(0.9,1.1-0.2) [1] FALSE > all.equal(0.9,1.1-0.2) [1] TRUE

Manipulation de données Indexation dans R (suite) Accès aux éléments des vecteurs et tableaux > x <- c(1^2,2^2,3^2,4^2,5^2,6^2) > y <- matrix(x,nr=2,nc=3,byrow=true) > x [1] 1 4 9 16 25 36 > y [,1] [,2] [,3] [1,] 1 4 9 [2,] 16 25 36 >

Manipulation de données Indexation dans R (suite) Accès aux éléments des vecteurs > x[3] [1] 9 > x[c(1,4)] [1] 1 16 > i<-c(1,2) > z<-x[i] > z [1] 1 4

Manipulation de données Indexation dans R (suite) Accès aux éléments des matrices > y[1,3] [1] 9 > y[,2] [1] 4 25 > y[,2]<-10:11 > y [,1] [,2] [,3] [1,] 1 10 9 [2,] 16 11 36

Manipulation de données Indexation dans R (suite) Accès aux éléments des matrices > z <- y[-1,] > z [1] 16 11 36 > x <- runif(5) > x [1] 0.4461344 0.5481882 0.5895491 0.4740851 0.5399470 > x[x>0.5] [1] 0.5481882 0.5895491 0.5399470

Manipulation de données Indexation dans R (suite) Accès aux éléments des matrices par noms > t <- matrix(c(10,30,50,30),nr=2) > rownames(t) <- c(«malade»,«sain») > colnames(t) <- c(«traité»,«témoin») > t Traité Témoin Malade 10 50 Sain 30 30 > t[«malade»,] Traité Témoin 10 50

Manipulation de données Indexation dans R (suite) Accès aux éléments des listes > z <- list(1:3,«bbb»,«cha»,«cxb») > z[1] # retourne une liste [[1]] [1] 1 2 3 > z[[1]] # retourne le vecteur [1] 1 2 3 > z[[1]][3] [1] 3

Calculs élémentaires Quelques opérations > x <- 1:3 > y <- seq(1,2,0.5) > x*y [1] 1.0 3.0 6.0 Recyclage > x <- 1:6 > y <- seq(1,2,0.5) > x-y [1] 0.0 0.5 1.0 3.0 3.5 4.0

Calculs élémentaires Calcul matriciel Exemple: résoudre x + 3y = 4 1 3 x 4 => = 2x + 4y = 6 2 4 y 6 Code R > a <- matrix(1:4,nr=2) > b <- c(4,6) > solve(a) %*% b [,1] [1,] 1 [2,] 1

Calculs élémentaires Fonctions Très nombreuses... Voici quelques exemples > x <- 1:8 > x[x%%2==0]<-x[x%%2==0]+3 > x [1] 1 5 3 7 5 9 7 11 > mean(x) [1] 6 > median(x) [1] 6

Calculs élémentaires Fonctions Très nombreuses... Voici quelques exemples (suite) > sort(x) > x [1] 1 3 5 5 7 7 9 11 > range(x) [1] 1 11 > var(x) [1] 10.28571

Les graphiques de R Fonctionnement général Les fonctions graphiques retournent, en général, leur résultat vers un dispositif graphique (fichier pdf, fichier image, écran) Les fonctions principales créent le graphique Les fonctions secondaires ajoutent des éléments au graphique Les paramètres graphiques peuvent être manipulés à volonté par l utilisateur

Les graphiques de R Sélection du dispositif graphique Les possibilités dépendent du système où R est installé. La liste s obtient par: >?device Dispositifs communs: windows(), postscript(), pdf(), pictex(), png(), jpeg(), bmp()... exemple: > pdf(«myplot.pdf») > x<-1:10; y<-(x-2)*(x-5) > plot(x,y) > dev.off() # Libère le fichier myplot.pdf

Les graphiques de R Sélection du dispositif graphique

Les graphiques de R Ouverture de plusieurs dispositifs graphiques Gestion d une liste de dispositifs ouverts > pdf(«plot.pdf»); jpeg(«plot.jpg») > dev.list() pdf jpeg:75:plot.jpg 2 3 > dev.cur() > dev.set(2) pdf 2

Les graphiques de R Fermeture de dispositif graphique Gestion d une liste de dispositifs > pdf(«plot.pdf»); jpeg(«plot.jpg») > dev.list() pdf jpeg:75:plot.jpg 2 3 > dev.off(3) # retourne le dev actif pdf 2 > dev.list() pdf 2

Les graphiques de R Fractionnement d un dispositif graphique Accès à différentes parties d un dispositif > x11() > split.screen(c(1,2)) [1] 1 2 > screen(1) > plot(x,y) > screen(2) > plot(x,z)

Les graphiques de R Fractionnement d un dispositif graphique

Les graphiques de R Quelques fonctions graphiques de R Les fonctions plot(x) et plot(x,y) > x<-rnorm(100,mean=170,sd=10) > y<-rnorm(100,mean=70,sd=20) > split.screen(c(1,2)) [1] 1 2 > screen(1) > plot(x) > screen(2) > plot(x,y)

Les graphiques de R Quelques fonctions graphiques de R Les fonctions plot(x) et plot(x,y)

Les graphiques de R Quelques fonctions graphiques de R La fonction pie(x) > x<-c(10,20,20,20,20,20) > n<-c(«animal et société»,«anglais», «Biologie»,«Chimie»,«Physique»,«Stat») > pie(x,labels=n,main=«pondérations en 1BMV») >

Les graphiques de R Quelques fonctions graphiques de R La fonction pie(x)

Les graphiques de R Quelques fonctions graphiques de R La fonction boxplot(x) > x<-rnorm(200,mean=165,sd=15) > boxplot(x) >

Les graphiques de R Quelques fonctions graphiques de R La fonction boxplot(x)

Les graphiques de R Quelques fonctions graphiques de R La fonction boxplot(formule) > x<-c(rep(«m»,100),rep(«f»,100)) > y<-c(rnorm(100,mean=170,sd=10), rnorm(100,mean=160,sd=10)) > d<-data.frame(sexe=x,taille=y) > boxplot(taille~sexe,data=d,notch=true)

Les graphiques de R Quelques fonctions graphiques de R La fonction boxplot(formule)

Les graphiques de R Quelques fonctions graphiques de R La fonction coplot(y~x z) > race <- c(rep(«bbb»,50),rep(«cha»,50), rep(«bxc»,50)) > agebbb <- runif(50,min=0,max=60) > agecha <- runif(50,min=0,max=60) > agebxc <- runif(50,min=0,max=60) > age <- c(agebbb,agecha,agebxc) > colors <- c(rep(«blue»,50), rep(«red»,50), rep(«green»,50))

Les graphiques de R Quelques fonctions graphiques de R La fonction coplot(y~x z) (suite) > tailbbb <- rnorm(50,mean=40+1.0*agebbb,sd=0.2*agebbb) > tailcha <- rnorm(50,mean=40+1.2*agecha,sd=0.2*agecha) > tailbxc <- rnorm(50,mean=40+1.1*agebxc,sd=0.2*agebxc) > taille <- c(tailbbb,tailcha,tailbxc) > coplot(taille~age race,col=colors)

Les graphiques de R Quelques fonctions graphiques de R La fonction coplot(y~x z) (suite)

Les graphiques de R Quelques fonctions graphiques de R La fonction hist(x) > x <- rbinom(1000,20,0.2) > hist(x,col=«blue»)

Les graphiques de R Quelques fonctions graphiques de R La fonction hist(x)

Les graphiques de R Quelques fonctions graphiques de R La fonction qqnorm(x) > x <- rnorm(1000,mean=100,sd=10) > qqnorm(x,col=«red»)

Les graphiques de R Quelques fonctions graphiques de R La fonction qqnorm(x)

Les graphiques de R Quelques fonctions graphiques de R La fonction qqplot(x,y) > x <- rnorm(1000,mean=10,sd=1) > y <- rnorm(1000,mean=10,sd=1) > z <- rexp(1000,mean=10) > screen(1) > qqplot(x,y) > screen(2) > qqplot(x,z)

Les graphiques de R Quelques fonctions graphiques de R La fonction qqplot(x,y)

Les graphiques de R Quelques fonctions graphiques de R Les fonctions contour(x,y,z) et filled.contour(x,y,z) > x <- seq(-10,10,1) > y <- seq(-10,10,1) > z <- matrix(nr=21,nc=21) > for (i in x) { + for (j in y) { + z[i+11,j+11]=i^2+j^2 + } + } > filled.contour(x,y,z)

Les graphiques de R Quelques fonctions graphiques de R Les fonctions contour(x,y,z) et filled.contour(x,y,z)

Les graphiques de R Quelques fonctions graphiques de R Les fonctions contour(x,y,z) et filled.contour(x,y,z) > x <- seq(-10,10,1) > y <- seq(-10,10,1) > z <- matrix(nr=21,nc=21) > for (i in x) { + for (j in y) { + z[i+11,j+11]=i^2-j^2 + } + } > filled.contour(x,y,z)

Les graphiques de R Quelques fonctions graphiques de R Les fonctions contour(x,y,z) et filled.contour(x,y,z)

Les graphiques de R Quelques fonctions graphiques de R Les fonctions contour(x,y,z) et filled.contour(x,y,z) > x <- seq(-10,10,1) > y <- seq(-10,10,1) > z <- matrix(nr=21,nc=21) > for (i in x) { + for (j in y) { + z[i+11,j+11]=i^2+j^2-2*i*j + } + } > filled.contour(x,y,z)

Les graphiques de R Quelques fonctions graphiques de R Les fonctions contour(x,y,z) et filled.contour(x,y,z)

Les graphiques de R Quelques fonctions graphiques secondaires de R > x <- 0:10 > y <- rnorm(11,mean=3+0.5*x,sd=1) > plot(x,y) > abline(3,0.5,col=«green») > title(«droite et points») > text(2,5,expression(y==3+0.5*x))

Les graphiques de R Quelques fonctions graphiques secondaires de R

Les paramètres graphiques de R Plus de 70 paramètres sont disponibles pour améliorer l environnement graphique Accessibles via la commande par(): > x <- 1:10; y <- (x-2)*(x-6) > oldpar <- par() > par(bg = «lightgreen») > par(col.axis = «red») > plot(x,y,type=«l») > par(oldpar) > plot(x,y,type=«l»)

Les paramètres graphiques de R Plus de 70 paramètres sont disponibles pour améliorer l environnement graphique

Autres graphiques dans R Plusieurs packages sont disponibles et enrichissent les possibilités graphiques de R exemple: > library(lattice) Ce package contient des fonctions permettant de construire des graphes conditionnés sur les valeurs d une variable (voir aussi coplot pour un exemple dans le package de base).

Analyses statistiques dans R Le package stats inclut une série de fonctions statistiques de base. D autres types d analyses statistiques sont accessibles dans d autres packages (éventuellement à ajouter à l installation de base) Nous allons illustrer une analyse simple par un exemple tiré d une librairie d exemples fournis avec le logiciel

Un exemple d analyse simple Problème L efficacité de 6 insecticides est comparée, en comptant le nombre d insectes observés dans une culture traitée (12 parcelles traitées par insecticides). La question est de savoir s il y a une différence (significative) d efficacité entre les différents traitements (a-t-on en général moins d insectes avec certains insecticides qu avec d autres?)

Un exemple d analyse simple Solution Ces problèmes peuvent être traités par une analyse de la variance (ANOVA, voir le cours de statistique). Le modèle est le suivant Compte ij = µ + Spray i + e ij où Compte ij désigne le nombre d insectes sur la parcelle j traitée avec le Spray i, et e ij désigne l erreur associée à cette observation

Un exemple d analyse simple Solution avec R Le traitement avec R est très simple: > data(insectsprays) # Internal data > result <-aov(sqrt(count)~spray, data=insectsprays) > L objet result contient les résultats de l analyse. Nous allons montrer différentes fonctions extrayant l information de cet objet.

Un exemple d analyse simple Affichage de l objet > result Call: aov(formula = sqrt(count) ~ spray, data = InsectSprays) Terms: spray Residuals Sum of Squares 88.43787 26.05798 Deg. of Freedom 5 66 Residual standard error: 0.6283453 Estimated effects may be unbalanced

Un exemple d analyse simple Résumé de l objet > summary(result) Df Sum Sq Mean Sq F value Pr(>F) spray 5 88.438 17.688 44.799 < 2.2e-16 *** Residuals 66 26.058 0.395 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Un exemple d analyse simple Exemple de graphique de l objet > termplot(result,se=true, partial.resid=true) >

Un exemple d analyse simple Exemple de graphique de l objet

Un exemple d analyse simple Formules Dans une analyse statistique, une composante importante du modèle est la relation de causalité qu on essaie d établir entre une (ou plusieurs) variable(s) dite(s) dépendante(s) et une (ou plusieurs) variable(s) dite(s) indépendante(s) (ou explicative(s)). Exemple: dans l exemple précédent, on essaie d établir une relation de cause à effet entre l insecticide (spray) (qui serait la variable explicative) et (une fonction de) le nombre d insectes observés sur une parcelle (qui serait la variable dépendante, ou expliquée)

Un exemple d analyse simple Formules Cette relation est matérialisée par une formule décrivant la dépendance. Exemple: sqrt(count) ~ spray signifie qu on essaie d expliquer la racine carrée du nombre d insectes par l insecticide utilisée (si le nombre d insectes trouvés dans une parcelle dépend de manière cohérente de l insecticide utilisé, c est que l insecticide «a un effet» sur le nombre d insectes) D autres relations de cause à effet sont modélisables addition de plusieurs effets, interactions entre effets, régression sur la dimension de la parcelle... voir le cours de statistique

Un exemple d analyse simple Exemples de formules y ~ a+b Deux facteurs additifs (a et b) pour expliquer y y ~ a:b L interaction de 2 facteurs (a et b) pour expliquer y y ~ poly(x,3)... Un polynome du 3 ème degré en x (variable numérique, et non plus facteur) pour expliquer y

Un exemple d analyse simple Classe d objets, et fonctions génériques Les fonctions statistiques (aov, lm,...) retournent leurs résultats dans un objet de mode «list», mais dont la structure dépend de la fonction utilisée (on parle alors de classe d objet plutôt que du mode) L accès aux éléments de la liste se fait via des fonctions spécifiques à une classe Certaines fonctions sont présentes de manière générale (même si leur résultat dépend évidemment du type d objet). On les appelle fonctions génériques.

Un exemple d analyse simple Exemples de fonctions génériques summary(<objet>) Résumé de l objet print(<objet>) Affichage de l objet coeff(<objet>) Affichage des coefficients estimés de l objet fitted(<objet>)... Affichage des valeurs ajustées par le modèle

Programmer en R Un des intérêts majeurs de R est la possibilité de construire des programmes utilisant toutes les fonctionnalités de R Un exemple typique d application de cette possibilité est la situation où on souhaite répéter les mêmes calculs sur différents ensembles de données Nous allons illustrer le principe sur un exemple fictif dans lequel 3 ensembles de données (dataset) vont être étudiés de manière similaire.

Programmer en R Utilisation des programmes Les programmes seront stockés dans des fichiers «<nom>.r» Ils seront chargés et exécutés par la commande: > source(«<nom>.r»)

Programmer en R Programme I (birds1.r) layout(matrix(1:3,3,1)) # partition data<-read.table(«bird1.dat») plot(data$v1,data$v2,type=«l») title(«bird 1») data<-read.table(«bird2.dat») plot(data$v1,data$v2,type=«l») title(«bird 2») data<-read.table(«bird3.dat») plot(data$v1,data$v2,type=«l») title(«bird 3»)

Programmer en R Programme II (birds2.r) layout(matrix(1:3,3,1)) # partition species<-c(«bird1»,«bird2»,«bird3») files<-c(«bird1.dat», «bird2.dat»,«bird3.dat») for (i in 1:length(species)) { } data<-read.table(files[i]) plot(data$v1,data$v2,type=«l») title(species[i])

Programmer en R Programme III (birds3.r) layout(matrix(1:3,3,1)) # partition myfun<-function(s,f) { } data<-read.table(f) plot(data$v1,data$v2,type=«l») title(s) myfun(«bird1», «bird1.dat» ) myfun(«bird2», «bird2.dat» ) myfun(«bird3», «bird3.dat» )

Programmer en R Programme IV (birds4.r) myfun<-function(s,f) { } data<-read.table(f) plot(data$v1,data$v2,type=«l») title(s) layout(matrix(1:3,3,1)) # partition species<-c(«bird1»,«bird2»,«bird3») files<-c(«bird1.dat», «bird2.dat»,«bird3.dat») sapply(species,myfun,files)

Programmer en R Exercice: la courbe de croissance de Gompertz Représentez la fonction de Gompertz dans l intervalle t = 0 => t = 10 y ( t) = a * e b* e c* t pour différentes valeurs de a, b et c a est l asymptote horizontale (exemple: poids adulte) b est négatif c est le «taux de croissance» (et est négatif)