Plan. Notes de Cours sur le logiciel R. Documentations. Installation. Anne PHILIPPE. 26 septembre 2012. Documents sur le logiciel R :

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

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

Introduction à MATLAB R

Simulation de variables aléatoires

Lire ; Compter ; Tester... avec R

Introduction à l approche bootstrap

Introduction aux Statistiques et à l utilisation du logiciel R

Cours 7 : Utilisation de modules sous python

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

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

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

Logiciel XLSTAT version rue Damrémont PARIS

Programmes des classes préparatoires aux Grandes Ecoles

Chapitre 3. Les distributions à deux variables

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Corrigé des TD 1 à 5


Calcul Formel et Numérique, Partie I

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

Introduction à la statistique non paramétrique

Tests d indépendance en analyse multivariée et tests de normalité dans les modèles ARMA

TESTS PORTMANTEAU D ADÉQUATION DE MODÈLES ARMA FAIBLES : UNE APPROCHE BASÉE SUR L AUTO-NORMALISATION

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

Initiation au logiciel R

Maple: premiers calculs et premières applications

Continuité et dérivabilité d une fonction

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

TABLE DES MATIERES. C Exercices complémentaires 42

1 Recherche en table par balayage

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

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

La simulation probabiliste avec Excel

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Statistiques descriptives

Température corporelle d un castor (une petite introduction aux séries temporelles)

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

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

données en connaissance et en actions?

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

INTRODUCTION AU LOGICIEL R

Probabilités et Statistiques. Feuille 2 : variables aléatoires discrètes

Une introduction. Lionel RIOU FRANÇA. Septembre 2008

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

Analyse exploratoire des données

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

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

TP 1 Introduction à Matlab Février 2009

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Principe de symétrisation pour la construction d un test adaptatif

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

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

Évaluation de la régression bornée

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

Initiation à l analyse en composantes principales

NON-LINEARITE ET RESEAUX NEURONAUX

Chapitre 6. Fonction réelle d une variable réelle

Résolution de systèmes linéaires par des méthodes directes

Découverte du tableur CellSheet

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

STAGE IREM 0- Premiers pas en Python

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

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

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

FORMULAIRE DE STATISTIQUES

Modélisation aléatoire en fiabilité des logiciels

Limites finies en un point

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

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

Exemples d application

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Quantification Scalaire et Prédictive

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

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

PROBABILITES ET STATISTIQUE I&II

Statistiques Descriptives à une dimension

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Gestion des données avec R

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Recherche dans un tableau

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

INF6304 Interfaces Intelligentes

MODELE A CORRECTION D ERREUR ET APPLICATIONS

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

Moments des variables aléatoires réelles

Une comparaison de méthodes de discrimination des masses de véhicules automobiles

Modèle GARCH Application à la prévision de la volatilité

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

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

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

Cours Informatique Master STEP

1 Importer et modifier des données avec R Commander

Initiation à l algorithmique

TP 1. Prise en main du langage Python

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )


Tests non-paramétriques de non-effet et d adéquation pour des covariables fonctionnelles

Transcription:

Plan Notes de Cours sur le logiciel R Anne PHILIPPE Université de Nantes, Laboratoire de Mathématiques Jean Leray email : Anne.philippe@math.univ-nantes.fr 26 septembre 22 Dataframes Listes 2 Les fonctions 3 Les graphiques 4 Structures de contrôle et Itérations 5 Autour des lois de probabilités 6 Outils graphiques en statistique 7 Inférence statistique Estimation non paramétrique Tests Régression 8 Séries Chronologiques Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 2 / 47 Installation Documentations Le logiciel R est un freeware disponible sur le site http://cran.r-project.org/ Il eiste des versions Windows MacOS X Linu... Outils disponibles : un langage de programmation orienté objet des fonctions de "base" des librairies/packages complémentaires (8 sur le site CRAN) Documents sur le logiciel R : http://www.math.sciences.univ-nantes.fr/ philippe/r_freeware.html Site consacré au graphiques addictedtor.free.fr/graphiques/ Collection spécifique UseR chez Springer Plus de 8 livres, par eemple Introductory Statistics With R Bayesian Computation With R Applied Statistical Genetics With R : Generalized Additive Models : An Introduction with R Etending the Linear Model With R Time Series Analysis And Its Applications : With R Eamples Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 3 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 4 / 47

Au démarrage Sous linu > apparaît automatiquement en début de chaque ligne de commandes + apparaît en début de ligne si la ligne précédente est incomplète Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 5 / 47 Utiliser l aide Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 6 / 47 Éditeur Sous MacOS et Windows, un éditeur de tete intégré au logiciel R > > > > help ( " p l o t " )? plot help. search ( " p l o t " )?? p l o t Les démos : # pour o b t e n i r l a > demo ( ) > demo ( g r a p h i c s ) l i s t e d e s demos Les eemples : La fonction eample eécute les eemples généralement inclus à la fin des fichiers d aide. Ctrl R eécute la ligne sur laquelle se trouve le curseur ou les lignes d un bloc sélectionné. source("nom-du-fichier.r") pour eécuter le code contenu dans le fichier nom-du-fichier.r > eample (FUN) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 7 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 8 / 47

Librairies Toutes les librairies ne sont pas chargées au lancement du logiciel library() retourne la liste des librairies installées. library(lib) charge la librairie LIB library(help = LIB) retourne la liste des fonctions de la librairie LIB search(), searchpaths() retourne la liste des librairies chargées. Dataframes Listes Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 9 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 / 47 Opérations élémentaires Objets Opérations élémentaires sur les scalaires :,, +, /, ˆ >2+4 6 2 Opérations avec affectation (avec ou sans affichage) =2+4 6 (=2+4) # avec affichage du résultat 6 3 Les principau types sont entier, réel, complee caractère logique : TRUE, FALSE, NA (not available) Les objets de base sont vecteurs, matrices data.frames, listes Quelques fonctions génériques : ls() retourne la liste des objets de la session. rm(a) supprime l objet a Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 2 / 47

Fonctions is/as is.(obj) teste si obj est un objet de type as.(obj) contraint si possible obj au type d objet où représente un type d objet (comple, real, vector matri etc...) > =3 > is. real() [] TRUE > is. comple() [] FALSE > as. comple() [] 3+i > as. character() [] "3" Dataframes Listes Remarque : Conversion de TRUE / FALSE en valeur numérique : > as. integer(t) [] > as. integer(f) [] Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 3 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 4 / 47 Créer des vecteurs la fonction c( ) concatène des scalaires ou des vecteurs : > =c (,4,9) > y=c (,2,3) > y [] 4 9 2 3 Suites arithmétiques de raison ou - : c(a:b). > c (:4) > c (4:) # a<b raison # a>b raison [] 2 3 4 [] 4 3 2 # a b n est pas un entier > c (.4:7) [].4 2.4 3.4 4.4 5.4 6.4 Généralisation : seq(a,b,t) où a est premier terme, le dernier apple b et la raison t seq(from, to) la raison est seq(from, to, by= ) on fie la raison seq(from, to, length.out= ) on fie le nb de termes par eemple > seq (,4,by =.) []...2.3.4.5.6.7... [26] 3.5 3.6 3.7 3.8 3.9 4. =rep(y,n) pour créer un vecteur constitué de l élément y répété n fois. (y peut être un scalaire ou un vecteur) par eemple > rep (,4) [] Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 5 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 6 / 47

Créer des matrices Les matrices sont créées avec la fonction matri() à partir d un vecteur. On doit fier le nombre de colonnes ncol et/ou le nombre de lignes nrow. > = matri( c (2,3,5,7,,3), ncol=2) Par défaut la matrice est remplie colonne par colonne. Pour remplir ligne par ligne, on ajoute l argument byrow=t > y = matri( c (2,3,5,7,,3), ncol=2, byrow=t) > > y [,] [,2] [,] [,2] [,] 2 7 [,] 2 3 [2,] 3 [2,] 5 7 [3,] 5 3 [3,] 3 Attention : si la dimension du vecteur n est pas égale au produit (ncol nrow) alors l opération effectuée est la suivante : > matri( c (:3), ncol=2,nrow=3) [,] [,2] [,] [2,] 2 2 [3,] 3 3 > matri( c (:3), ncol=2) [,] [,2] [,] 3 [2,] 2 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 7 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 8 / 47 Quelques matrices particulières : diagonale, Toeplitz Concaténer des vecteurs/matrices > diag (:4) [,] [,2] [,3] [,4] [,] [2,] 2 [3,] 3 [4,] 4 > diag > toeplitz (:4) [,] [,2] [,3] [,4] [,] 2 3 4 [2,] 2 2 3 [3,] 3 2 2 [4,] 4 3 2 La fonction diag retourne une matrice diagonale lorsque le paramètre d entrée est un vecteur. Si le paramètre d entrée est une matrice, alors elle retourne un vecteur constitué de la diagonale de la matrice rbind cbind > =: > y=^2 > rbind(,y) [,] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,] 2 3 4 5 6 7 8 9 y 4 9 6 25 36 49 64 8 > cbind(,y) y [,] [2,] 2 4 [3,] 3 9 [4,] 4 6 [5,] 5 25 [6,] 6 36 etc Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 9 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 2 / 47

Etraire des éléments d un vecteur ou d une matrice Opérations sur les Matrices/Vecteurs > vect=c (.5:9.5 ) > vect [].5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 Etraire un élément > vect [] > mat [2,] [].5 [] 2.5 Etraire un bloc ou plusieurs coordonnées > mat=matri(vect,ncol=3,nrow=3) [,] [,2] [,3] [,].5 4.5 7.5 [2,] 2.5 5.5 8.5 [3,] 3.5 6.5 9.5 Colonne/ligne d une matrice > mat [,] > mat [3,] [].5 2.5 3.5 [] 3.5 6.5 9.5 > mat [2:3,:2] > vect[c (,3,7)] [,] [,2] [].5 3.5 7.5 [,] 2.5 5.5 [2,] 3.5 6.5 Attention : vect[-j] retourne le vecteur vect sans la j ème coordonnée > vect[ c (,3,7)] retourne 2.5 4.5 5.5 6.5 8.5 9.5 Les opérations + * - / entre 2 vecteurs ou matrices de même dimension sont des opérations terme à terme. > [] 2 3 4 5 > y [] > y [] 4 5 > A [,] [,2] [,] 2 [2,] 4 9 > B [,] [,2] [,] 2 [2,] > A B [,] [,2] [,] 2 [2,] 4 9 > Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 2 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 22 / 47 Attention Si les vecteurs ne sont pas de même longueur, le plus court est complété automatiquement. > =c (:5) > : 2 3 4 5 [] 2 3 4 5 y : 2 2 > y =c (,2) > y +y : 2 4 4 6 6 [] 2 > + y [] 2 4 4 6 6 Quelques opérations particulières sur les matrices > a=matri (, ncol=2,nrow=2) > a [,] [,2] [,] [2,] > a+3 #matrice +scalaire [,] [,2] [,] 4 4 [2,] 4 4 > a+c (:2) #matrice + vecteur [,] [,2] [,] 2 2 [2,] 3 3 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 23 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 24 / 47

Action d une fonction sur un vecteur ou une matrice Quelques fonctions sur les matrices Soit FUN une fonction définie sur les scalaires qui retourne un scalaire. Par eemple sqrt square root abs absolute value sin cos tan trigonometric functions (radians) ep log eponential and natural logarithm log common l o g a r i t h m gamma lgamma gamma function and i t s natural log Lorsque le paramètre d entrée est un vecteur (respectivement une matrice), la fonction FUN est appliquée sur chacune des composantes. L objet retourné est un vecteur (respectivement une matrice). s Eemple Si A =(a i,j ) est une matrice, alors ep(a) retourne une matrice constituée des éléments e a i,j. solve Le produit matriciel est obtenu avec % % Calcul des valeurs/vecteurs propres :eigen Calcul du déterminant : det t(a) retourne la transposée de la matrice A décomposition de Choleski :chol (X) retourne R telle que X = R R où R est une matrice triangulaire supérieure et R est la transposée de R. décomposition svd : svd(x) retourne (U,D,V) telles que X = UDV où U et V sont orthogonales et D est diagonale. solve(a) retourne l inverse de la matrice A solve(a,b) retourne tel que A = b Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 25 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 26 / 47 Objets booléens et instructions logiques Les opérations logiques : <, >, <=, >=,!= [différent], == [égal] retournent TRUE ou FALSE. La comparaison entre deu vecteurs est une comparaison terme à terme. Si les vecteurs ne sont pas de même longueur, le plus court est complété automatiquement. > a= :5 ; b=2.5 > a<b [] TRUE TRUE FALSE FALSE FALSE Il est possible de définir plusieurs conditions à remplir avec les opérateurs ET : & OU : Pour etraire les éléments d un vecteur vect, on peut utiliser des instructions logiques. Soit I un vecteur de booléens de même longueur que vect : vect[i] retourne les coordonnées vect[j] telles que I [j] =TRUE. Applications etraire les composantes >8 vect[vect>8] : vect>8 est un vecteur de TRUE et FALSE, on etrait les composantes affectées à TRUE. etraire les composantes >8 ou <2 vect[(vect>8) (vect<2)] etraire les composantes >8 et < vect[(vect>8) & (vect<)] Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 27 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 28 / 47

Effet de la précision sur la comparaison de réels Fonction which > ( sqrt(2)^2 == 2) [] FALSE Une solution > all. equal( sqrt (2)^2,2) [] TRUE #ou >istrue ( all. equal( sqrt (2)^2,2)) Est ce que p 2 2 = 2? Soit vec un vecteur logique. La fonction which(vec) retourne les indices des coordonnées du vecteur vec qui prennent la valeur TRUE > =(:)^2 > [] 4 9 6 25 36 49 64 8 > which(== 25) [] 5 > which( > 2) [] 5 6 7 8 9 Eemple Les commandes [>] et [which(>)] retournent le même vecteur. Cas particulier which.ma() retourne which(==ma()) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 29 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 3 / 47 Dataframes Ces fonctions retournent un scalaire : sum() (somme P i i), prod() (produit Q i i), mean() (moyenne n P n i= i ) ma(), min() length() (longueur du vecteur), dim(), ncol(), nrow() (dimension de la matrice/nombre de lignes / nombre de colonnes.) Ces fonctions retournent un vecteur : cumsum() (sommes cumulées (, + 2,..., P n i= i), cumprod() (produits cumulés), sort (tri), order, unique remarque : sort() = [order()] fft() (transformé de Fourier) Dataframes Listes Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 3 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 32 / 47

Dataframes Dataframes Définition des data.frames Opérations sur les dataframes C est une matrice dont toutes les colonnes ne sont pas nécessairement du même type : scalaire, booléen, caractère. Par eemple > data= data. frame(=,2=:,a=letters [:]) 2 a a 2 2 b 3 3 c 4 4 d 5 5 e 6 6 f 7 7 g 8 8 h 9 9 i j Par défaut les lignes sont numérotées,2 etc. Pour visualiser les premières lignes head() 2 Pour definir ou visualiser le nom des lignes row.names 3 Pour definir ou visualiser le nom des colonnes names 4 La dimension de l objet est donnée par dim > names(data) [] "" "2" "a" > names(data)< c ("c","c2","c3") > head(data,3) c c2 c3 a 2 2 b 3 3 c > dim(data) [] 3 >row. names(data) < letters [:] #le vecteurs letters contient les lettres de l alphabet > head(data,2) c c2 c3 a a b 2 b Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 33 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 34 / 47 Dataframes Dataframes Opérations sur les dataframes Opérations sur les dataframes Les opérations entre des dataframes sont opérations terme à terme comme pour les matrices. A = data. frame(=:3,y=2:4) B = data. frame(=,yy=:3) C= data. frame(=:3,y=rep("a",3)) > A y 2 2 2 3 3 3 4 > A+C y 2 NA 2 4 NA 3 6 NA > B yy 2 2 3 3 > A+B y 2 3 2 3 5 3 4 7 Warning message : In Ops. factor(left,right): ceci n est par pertinent pour des variables facteurs > C y a 2 2 a 3 3 a Pour etraire un élément ou un bloc, la syntae est la même que pour les matrices. Pour etraire une colonne les deu syntaes suivantes peuvent être utilisées > A$ [] 2 3 > A[,] [] 2 3 Pour concaténer des dataframes ayant le même nombre de lignes data. frame(a,b) y yy 2 2 2 3 2 3 3 4 3 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 35 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 36 / 47

Listes Listes Définition d une liste Dataframes Listes C est une structure qui regroupe des objets (pas nécessairement de même type). On crée les listes avec la fonction list Eemple On construit une liste appelée rnd qui contient 3 objets : un vecteur dans serie un scalaire dans taille une chaîne de caractères dans type La syntae est la suivante >rdn=list(serie=c (:), taille =,type="arithm") attention Une liste peut être créée sans donner des noms au variables c est a dire rdn=list(c(:),,"arithm"). Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 37 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 38 / 47 Listes Listes Opérations sur les listes Pour visualiser la liste des composantes d une liste >names(rdn) [] "serie" "taille" "type" > summary(rdn) Length Class Mode serie none numeric taille none numeric type none character Pour atteindre les composantes d une liste >rdn$ taille OU >rnd[[2]] [] [] Pour etraire les objets d une liste >attach(rdn) "serie" "taille" "type" supprimer les objets créés à la ligne précédente : >detach(rdn) attention Si la liste a été créée sans spécifier de noms au variables, il n y a pas de nom par défaut et la seule la première syntae est utilisable. Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 39 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 4 / 47

Listes Listes Importer/eporter des données Importer/eporter des objets R Sauvegarder des objets R dans un fichier Importer une suite : =scan("data.dat") : pour créer un vecteur à partir de données stockées dans un fichier, ici data.dat. 2 Importer un tableau : =read.table("data.dat") =read.table("data.dat", header=true) L instruction header=true permet de préciser que la première ligne du fichier contient le nom des colonnes du tableau. 3 Eporter : write, write.table > =: > y=list(a=, b=true,c=" e e m p l e " ) > save(,y, file= sav. rda ) 2 Lire un fichier qui contient des objets R > load("sav. rda") > [] 2 3 4 5 6 7 8 9 Attention si un objet R appelé (ou y) eistait avant l appel de la fonction load, il a été remplacé par celui contenu dans le fichier sav.rda 3 saverds peut aussi être utiliser si on sauvegarde une unique liste. Le fichier est lu avec readrds. On peut changer le nom de la liste à la lecture du fichier > a= list(=,y=3) > saverds(a, sav. rds ) > b = readrds( sav. rds ) > b $ [] $y [] 3 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 4 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 42 / 47 Les fonctions Les fonctions Structure générale pour créer des fonctions 2 Les fonctions La structure générale d une fonction est >FUN=function(liste_des_paramètres) { commandes return(objets_retournés) } Les accolades { et } définissent le début et la fin de la fonction. La dernière instruction return contient le ou les objets retournés par la fonction. Eécuter la fonction : FUN(...) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 43 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 44 / 47

Les fonctions Les fonctions Eemple Renvois multi-arguments La fonction suivante retourne le résultat de n lancers d une pièce. PF = function(n,proba. pile ) { #nb aléatoire suivant Unif (,) u=runif(n) pf=(u<proba. p i l e ) pf = as. integer( pf) return( pf) } La sortie de la fonction est PF (, / 2) [] # avec affectation de la sortie dans le vecteur = PF(,/ 2) [] La fonction return interdit les sorties avec plusieurs arguments : il faut les regrouper dans un seul objet sous la forme d une liste. PF = function(n,proba. pile ) { u=runif(n) #nb aléatoire suivant Unif (,) pf=(u<proba. p i l e ) pf = as. integer( pf) f =mean( pf) return( list(echantillon = pf,frequence = f)) } Eécution de la fonction : PF ( 4, / 2) $ echantillon [] $ frequence [].25 l= PF(4,/ 2) l $ echantillon [] l $ f [].5 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 45 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 46 / 47 Paramètres par défaut Les fonctions Paramètres d entrée Les fonctions On peut affecter des valeurs par défaut au paramètres d entrée d une fonction. Modification de la fonction PF par défaut on suppose que la pièce est équilibrée. PF = function(n,proba. pile=/ 2) { u=runif(n) #nb aléatoire suivant Unif (,) pf=(u<proba. p i l e ) pf = as. integer( pf) return( pf) } Les commandes PF ( ) OU PF (, / 2) retournent le même résultat Il y a trois façons de spécifier les paramètres d entrée d une fonction par la position : les paramètres d entrée sont affectés au premiers arguments de la fonction. PF(3,/2) : les paramètres d entrée sont n=3 et proba.pile=/2 par le nom : il s agit du moyen le plus sûr, les noms des arguments sont précisés de manière eplicite. On peut alors écrire PF(proba.pile=/2,n=3), l ordre n est plus prioritaire avec des valeurs par défaut : ces valeurs par défaut seront utilisées si les paramètres d entrée ne sont pas spécifiés. On peut alors écrire PF(3) ou PF(n=3) : les paramètres d entrée sont n=3 et la valeur par défaut pour proba.pile c est à dire /2. Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 47 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 48 / 47

Les fonctions Remarque sur les valeurs par défaut Les fonctions Pour les fonctions de deu variables Modification de la fonction PF : on inverse l ordre des paramètres d entrée : PF = function(proba. pile=/ 2, n) {... } PF ( ) Erreur dans. Internal( runif(n, min, ma )) : n est manquant PF( n=) [] f une fonction de deu variables f :(, y) 7! f (, y) et y deu vecteurs de même dimension. La commande f(,y) retourne le vecteur constitué des éléments f ( i, y i ). Si et y ne sont pas de même dimension, celui de plus petite dimension est répété. Tableau croisés La fonction outer retourne une matrice de la forme M(i, j) =fun( i, y j ) IL est donc préférable de placer les paramètres sans valeur par défaut en premier dans la déclaration des variables d entrée. =:5 y=:5 M= outer(,y, fun ) fun peut aussi être une opération élémentaire +/-* Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 49 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 5 / 47 la fonction Vectorize Les fonctions Les fonctions Illustration sur des fonctions de 2 variables Soit f une fonction dont le paramètre d entrée est un scalaire. Vectorize transforme la fonction f en une fonction vectorielle c est à dire une fonction qui évalue la fonction f en chaque point d un vecteur d entrée. Soit =(,..., n ), on veut évaluer f au points i. # on transforme la fonction { f } en une fonction vectorielle df. > df = Vectorize (f, ) >y=df() Autres programmations possibles avec une boucle for > y = rep (,n) > for ( i in :n) y[ i ] = f ([ i ]) 2 avec la fonction sapply > y = sapply(, f ) > f=function(,y) sin(+y^2) > f (,) [].992974 > # > = :3 > y= :3 > # on calcule f ( [ i ],y [ i ]) > f (,y) [].992974.279455.5365729 > z =:2 > f (, z) [].992974.279455.756825 Message d avis : In + y^2 : la taille d un objet plus long n est pas multiple de la taille d un objet plu > # le calcul effectué est > #f ( [],z []) f ( [2],z [2]) f ( [3],z []) > #identique à > f (,c (z,z[])) [].992974.279455.756825 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 5 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 52 / 47

y y Les fonctions Les graphiques suite > f (,y) [].992974.9589243.5442 > # identique à > f (rep (3,),y) [].756825.6569866.5365729 > > #calcul du tableau croisé f ( [ i ],y [ j ]) > df = Vectorize(f, ) > df(,z) [,] [,2] [,3] [,].992974.42.756825 [2,].9589243.279455.6569866 > # les vecteurs colonnes sont f (,:2) f (2,:2) f (3,:2) 3 Les graphiques Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 53 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 54 / 47 Les graphiques Les fonctions usuelles plot(), lines(), points() Les graphiques Quelques arguments de la fonction plot plot est la fonction centrale Le fonctions points ou lines sont utilisées pour superposer des courbes ou des nuages de points. 2 4 type=p Premier eemple : représenter des vecteurs plot(y) / plot(,y) = seq( 4,4,.) y=log(^2+/^2) 2 3 4 2 3 4 plot(y) 2 4 6 8 Inde plot(,y,pch=3) -4-2 2 4 pour fier les limites des aes ylim=c(ay,by) et lim=c(a,b) par défaut les bornes sont optimisées sur la première courbe tracée type="p" (points) ou "l" (ligne) : pour tracer une ligne ou un nuage de points. pch : type de points lty : type de lignes. col :couleur 2 4 2 4 2 4 5 5 2 25 3 Inde type=l 5 5 2 25 3 Inde type=s 5 5 2 25 3 Inde type=h 5 5 2 25 3 Inde Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 55 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 56 / 47

z y y z y y Graphique en 3D représentation d une fonction de R 2! R Les graphiques Les graphiques Représentation graphique d une matrice contour(, y, matrice... ) image( ) persp( ) < seq(,, length= 3) y < f < function(,y) { r < sqrt(^2+y^2); sin(r)/ r } z < outer(, y, f) persp(, y, z, theta = 3, phi = 3, epand =.5, col = "lightblue") 2 3 4 5 6 Maunga Whau Volcano 2 3 4 5 6 7 8 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 57 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 58 / 47 Superposition de courbes Les graphiques légende legend Les graphiques superposer des courbes legend(,.9, c ("^2 "," sin ","cos" ), col = c (3,4,6), lty = c (2,, ), pch = c (, 3, 4)) =rnorm (2) y=rep (2) #nuage de points plot(,y) #ajouter un nuage de points points(+.,y+., pch=2) #ajouter une ligne lines( sort(),y, lty=2) #ajouter une ligne horizontale abline(h=3) #tete + frametitle tet (,5,"commentaire") title("superposer des courbes") y 2 3 4 5-2 commentaire ^2 - -. -.5..5..5 ^2- sin cos les emplacements prédéfinis : -. -.5..5. topleft, inset =.5 left (,y) bottomleft (,y) (,y) top (,y) center (,y) bottom (,y)..2.4.6.8. topright, inset =.2 (,y) right (,y) bottomright (,y) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 59 / 47-3 -2-2 3 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 6 / 47

y Les graphiques Autour de la fonction plot Illustrations Les graphiques Le graphique produit par la fonction plot() dépend de la classe de l objet. methods( plot) [] "plot.data.frame" "plot. default" [3] "plot. density" "plot. factor" [5] "plot.formula" "plot. function" [7] "plot.histogram" "plot.lm" [9] "plot.mlm" "plot.mts" [] "plot.new" "plot.posixct" [3] "plot.posixlt" "plot. table" [5] "plot. ts" "plot.window" [7] "plot.y" sur une fonction (par e sin) plot( sin,lim=c( pi, pi )) sur un tableau =rpois (,) y=table() y 2 3 4 6 374 372 62 7 2 plot(y) sur un histogramme ou une densité r=rnorm (,) z=hist(r,plot=f ) plot(z) w=density(r) plot(w) sin () Frequency -. -.5..5. 5 5 2-3 -2-2 3 Histogram of r - 2 3 r 2 3...2.3.4 2 3 4 5 density.default( = r) -2-2 3 4 N = Bandwidth =.3564 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 6 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 62 / 47 Les graphiques Représentation graphique d une matrice ou dataframe Les outils graphiques matplot et pairs sont adaptés au matrices dont les colonnes correspondent à des variables. Eemple Les graphiques Fonction matplot(matrice...) Cette fonction représente sur un même graphique les colonnes d une matrice ou d une data.frame. Anderson s Iris Data 3 species >data(iris) >iris Sepal. Length Sepal. Height Petal. Length Petal. Height Species 5. 3.5.4.2 setosa 2 4.9 3..4.2 setosa 3 4.7 3.2.3.2 setosa 4... 54 5.5 2.3 4..3 v e r s i c o l o r 55 6.5 2.8 4.6.5 v e r s i c o l o r... 47 6.3 2.5 5..9 v i r g i n i c a 48 6.5 3. 5.2 2. v i r g i n i c a iris 2 4 6 8 5 5 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 63 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 64 / 47

Les graphiques Utilisation des biplots, pairs(matrice,...) Cette fonction représente tous les nuages de points possibles entre les différentes colonnes. 2. 2.5 3. 3.5 4. Sepal.Length Anderson's Iris Data -- 3 species 2. 2.5 3. 3.5 4..5..5 2. 2.5 Sepal.Width 4.5 5.5 6.5 7.5 Les graphiques Construction d un polygone On commence par fier les aes des abscisses et des ordonnés à l aide d un graphique vide. plot( c (,9), c (,2), type="n") 2 Avec la fonction polygon, on trace le polygone défini pas ses sommets polygon( c (4.5,5.5,5.5,4.5),c (,,,)) 3 Arguments supplémentaires polygon (:9, c (2,,2,,NA,2,,2,), col=c ("red", "blue"), border=c ("green", "yellow", lwd=3, lty=c ("dashed", "solid")).5..5 2. 2.5 Petal.Length Petal.Width 2 3 4 5 6 7 c(, 2)..5..5 2. etape c(, 2)..5..5 2. etape 2 c(, 2)..5..5 2. etape 3 4.5 5.5 6.5 7.5 2 3 4 5 6 7 2 4 6 8 2 4 6 8 2 4 6 8 c(, 9) c(, 9) c(, 9) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 65 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 66 / 47 autre eemple Les graphiques Les graphiques Distance -5 5 5 2 Distance Between Brownian Motions Pour sauvegarder un graphique : utilisation de la fonction dev.print. pour obtenir un fichier postscript : dev.print(postscript, file="essai.ps") pour obtenir un fichier pdf : dev.print(pdf, file="essai.pdf") 2 4 6 8 Time utilisation des menus (sous widows ou mac seulement) n= z.haut=c (,cumsum( rnorm(n)) ) z.bas= c (,cumsum( rnorm(n))) < c (:n, n:) yy < c (z.bas, rev(z.haut)) #graphique vide pour fier les dimensions plot (, yy, type="n", lab="time", ylab="distance") #tracer le polygone polygon(, yy, col=" g r a y ", b o r d e r = " r e d " ) title("distance Between Brownian Motions") La fenêtre graphique peut être fractionnée en utilisant par(mfrow=c(n,m)), on obtient alors n m graphiques sur une même page organisés sur n lignes et m colonnes split.screen(m,n) screen(i), screen(i,false) pour sélectionner la sous fenêtre erase.screen() close.screen(all = TRUE) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 67 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 68 / 47

Structures de contrôle et Itérations Structures de contrôle et Itérations Instructions conditionnelles 4 Structures de contrôle et Itérations La syntae if (condition) {instructions} permet de calculer les instructions uniquement si la condition est vraie. if (condition) { A } else {B} calcule les instructions A si la condition est vraie et les instructions B sinon. Par eemple, if (>) y=*log() else y= Remarque : Si les instructions se limitent à un seul calcul comme dans cet eemple on peut utiliser la fonction ifelse y=ifelse(>,*log(),) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 69 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 7 / 47 Structures de contrôle et Itérations Opération non vectorielle Avec la commande if (condition)... else... la condition ne peut pas être vectorielle Par eemple > = :7 > if(>2) print("a") else print("b") [] "B" Dans la condition, a une longueur supérieure à. Seul le premier élément est utilisé : (>2) correspond à ([] >2) 2 ifelse permet d appliquer une instruction conditionnelle sur chacune des coordonnées d un vecteur. > ifelse(<2,"a","b") [] "A" "B" "B" "B" "B" "B" "B" Alternative : > g = function() if(>2) print("a") else print("b") >vg = Vectorize(g, ) > vg(:) Itérations Structures de contrôle et Itérations On utilise les boucles pour eécuter plusieurs fois une instruction ou un bloc d instructions Les trois types de boucle sont for : for(var in seq) {commandes} while : while(cond) { commandes} repeat : repeat {commandes;if (cond) break } Dans une boucle for, le nombre d itérations est fié. 2 La durée d eecution des boucles while/repeat peut être infinie! Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 7 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 72 / 47

Eemple Structures de contrôle et Itérations Eemple Structures de contrôle et Itérations Les 3 programmations suivantes retournent le même résultat. Avec l instruction for for ( i in :) { commandes } 2 Avec l instruction while. i= while (i <= ) { commandes i = i+ } 3 Avec l instruction repeat i= repeat { commandes i = i+ if (i>) break } On veut simuler n variables aléatoires suivant la loi de X +... + X p où les X i sont iid suivant la loi uniforme sur [, ]. On stocke l échantillon dans Y. # initialisation de Y avec des Y = rep (,n) for ( i in :n ) { Y[ i ] = sum( runif(p,,)) } Une autre façon de remplir Y par concaténation : # Y est un vecteur vide Y = NULL for ( i in :n ) { Y = c (Y, sum( runif(p,,))) } Une autre programmation : # initialisation de Y avec des Y = rep (,n) for( i in :p) { Y = Y + runif(n,,) } Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 73 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 74 / 47 Eemple Structures de contrôle et Itérations Eemple Structures de contrôle et Itérations On simule des variables aléatoires suivant la loi de Bernoulli B(/2) jusqu à l obtention du premier. Le nombre de variables (noté N dans le code ci dessous) simulées suivant la loi de Bernoulli suit une loi géométrique de paramètre /2. En utilisant while =rbinom (,,.5) N= while (!= ) { =rbinom (,,.5) N=N+ } En utilisant repeat N= repeat { =rbinom (,,.5) N=N+ if (==) break } On dispose des températures moyennes mensuelles relevées à Nottingham pendant ans de 92 à 939. > nottem Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 92 4.6 4.8 44.4 46.7 54. 58.5 57.7 56.4 54.3 5.5 42.9 39.8 92 44.2 39.8 45. 47. 54. 58.7 66.3 59.9 57. 54.2 39.7 42.8 etc > nottem=matri(nottem,ncol=2,byrow=t) On souhaite calculer un profil moyen annuel et le stocker dans le vecteur temp. temp = rep (,2) for (i in :2) temp[i] = mean( nottem [, i ] ) On peut aussi initialiser le vecteur temp comme le vecteur vide, puis on le remplit en concaténant les résultats temp = NULL for (i in :2) temp = c (temp, mean( nottem [, i ] ) ) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 75 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 76 / 47

Histogram of med.2..2.4 med La fonction apply Structures de contrôle et Itérations Structures de contrôle et Itérations Eemple d utilisation de la fonction apply apply(matrice, MARGIN, FUN, ARG.COMMUN) La fonction apply() permet d appliquer la même fonction FUN sur toutes les lignes (MARGIN=) ou les colonnes (MARGIN=2) d une matrice MAT Chaque ligne ( (MARGIN=) ou les colonnes (MARGIN=2) ) est affectée au premier paramètre de la fonction FUN La syntae de FUN est FUN(, ARG.COMMUN) où est un vecteur ARG.COMMUN représente éventuellement des paramètres supplémentaires qui sont communs à toutes les eécutions. Cette fonction remplace une boucle sur le nombre de colonnes ou de lignes Retour à l eemple des températures Calcul du profil annuel : > temp = apply(nottem,2,mean) # moyenne sur les colonnes [] 39.695 39.9 42.95 46.29 52.56... Calcul des moyennes annuelles > temp. annuelle = apply(nottem,,mean) # moyenne sur les lignes Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 77 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 78 / 47 Structures de contrôle et Itérations Supprimer une boucle en utilisant apply replicate Structures de contrôle et Itérations Objectif : Estimer la distribution de la médiane empirique On simule N échantillons de taille n iid suivant la loi gaussienne standard. Pour chaque échantillon, on calcule et on stocke la valeur de la médiane empirique dans le vecteur med. avec boucle n = N=5 med = :N for (i in :N) med[i] = quantile( rnorm(n,,), probs=/ 2) 2 Sans boucle Alea = matri( rnorm(n N,,), ncol=n) med = apply(alea,2,quantile, probs=/ 2) 2 3 La fonction replicate évalue n fois une même epression La syntae : replicate(n, epression) Eemples > replicate(,+) [] 2 2 2 2 2 2 2 2 2 2 [utile l epression implique des nombres aléatoires!!]. > =rnorm () > replicate (5,mean()) [].57358.57358.57358.57358.57358 > replicate (5,mean( rnorm ())) [].223792.933663.25439.2636.98237 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 79 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 8 / 47

Structures de contrôle et Itérations Suite de l eemple sur la médiane empirique sapply,lapply Structures de contrôle et Itérations La fonction replicate permet de programmer sans boucle le code suivant n = N=5 med = :N for (i in :N) med[i] = quantile( rnorm(n,,), probs=/ 2) La syntae est la suivante med = replicate(5, quantile( rnorm (,,), probs=/ 2)) Ces fonctions calculent la même fonction sur tous les éléments d un vecteur ou d une liste. La syntae : lapply(x,fun, ARG.COMMUN) La fonction lapply applique une fonction FUN à tous les éléments du vecteur ou de la liste X. Les valeurs de X sont affectées au premier argument de la fonction FUN. Si la fonction FUN a plusieurs paramètres d entrée, ils sont spécifiés après le nom de la fonction : ARG.COMMUN Cette fonction retourne le résultat sous la forme de listes. sapply est une fonction similaire à lapply mais le résultat est retourné sous forme de vecteurs, si possible. Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 8 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 82 / 47 Structures de contrôle et Itérations Eemple d utilisation de lapply Structures de contrôle et Itérations Supprimer une boucle à l aide de la fonction sapply cars est une liste constituée de deu vecteurs speed et dist On calcule la moyenne et les quantiles des deu composantes de la liste. > cars speed dist 4 2 2 4 3 7 4 >lapply(cars, mean) $ speed $ dist [] 5.4 [] 42.98 >lapply(cars, quantile, probs = (:4)/ 4) $ speed % 25% 5% 75% % 4 2 5 9 25 $ dist % 25% 5% 75% % 2 26 36 56 2 Il est très souvent possible de supprimer les boucles for en utilisant lapply ou sapply. Soit =(,..., t ) une série représentant l évolution du pri d une action sur une durée de t jours. On veut calculer M i le pri maimum sur la période à i pour i =,...,t. avec une boucle M= :t for ( i in : t ) { M[ i ] = ma([: i ]) } 2 sans boucle FUN. ma = function(n, y) ma( y[ : n ]) M = sapply (:t, FUN.ma, y = ) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 83 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 84 / 47

La fonction tapply Structures de contrôle et Itérations Le type factor est un objet vectoriel qui permet de spécifier une classification discrète (nombre fini de groupes). La fonction tapply applique une fonction FUN sur les sous groupes d un vecteur X définis par une variable de type factor GRP tapply(x,grp,fun,...) > note [].83676.63757.732 3.79699.8486.72562 3.5868 4.857 3.5659 4.36744 > gr [] "a" "b" "a" "b" "a" "a" "b" "a" "b" "b" > gr=factor(gr) > gr [] a b a b a a b a b b Levels : a b > tapply(note,gr,mean) a b.6656 3.398 La fonction aggregate permet aussi d évaluer une fonction sur des sous ensembles. Elle ne necessite pas la définition d une variable de type factor. Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 85 / 47 Structures de contrôle et Itérations Evaluer le temps de calcul proc.time évalue combien de temps réel et CPU (en secondes) le processus en cours d eécution a déjà pris. > ptm < proc. time () > for (i in :5) mean( runif ()) > proc. time () ptm utilisateur système écoulé.6..27 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 86 / 47 Structures de contrôle et Itérations Comparaison de trois programmations for/replicate/apply Autour des lois de probabilités #boucle > =:M > for (i in :M) [i] = mean( runif(n)) #replicate > =replicate(m, mean( runif(n))) #apply > Z=matri( runif(n M), ncol=m) > =apply(z, 2, mean) (n= ^3, M= ^4) user system elapsed wfor.68.5.76 wrep.68.8.632 wapp.32.57.286 (n= ^2, M= ^5) user system elapsed wfor 3.6.239 3.45 wrep 2.522.66 2.6 wapp 3.3.253 3.456 (n=, M= ^6) user system elapsed wfor 32.77.49 43.655 wrep 37.29.48 4.47 wapp 29.9.392 3.357 5 Autour des lois de probabilités Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 87 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 88 / 47

Généralités Autour des lois de probabilités Autour des lois de probabilités Quelques lois disponibles Soit X une variable aléatoire de loi P X ( P 2A P(X = ) P X (A) =P(X 2 A) = R loi discrète A f ()ḍ loi continue Pour les lois classiques, des fonctions eistent pour calculer ( P(X = ) pour les lois discrètes la densité f () pour les lois continues la fonction de répartition F () =P(X apple ) les quantiles F (u) =inf{ : F () u} simuler des nombres aléatoires suivant la même loi que X. Lois discrètes Loi binomiale (n,p) binom Loi hypergéométrique (N,n,k) hyper Loi de Poisson (a) pois Loi géométrique (p) geom Loi à support fini {(a i, p i ), i =...m} sample 2 Lois continues Loi Gaussienne (m, 2 ) norm Loi uniforme sur [a, b] unif Loi de Student à degrés de liberté t Loi du 2 à degrés de liberté chisq. Si F est une bijection alors F = F Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 89 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 9 / 47 Autour des lois de probabilités Autour des lois de probabilités Eemple : loi gaussienne de moyenne et de variance Si www représente le nom d une des lois alors dwww(,...) calcule la densité de la loi www au point pwww(,... ) : calcule la fonction de répartition au point qwww(,... ) : calcule le quantile d ordre rwww(n,...) retourne un échantillon de taille n les... représentent les paramètres spécifiques à chaque loi. dnorm(,,) : densité au point pnorm(,,) : fonction de répartition au point qnorm(,,) : quantile d ordre rnorm(n,,) : échantillon de taille n =seq( 5,5,.) u=seq (,,.) plot(,dnorm(,,), dnorm() type="l")...2.3.4 Gaussian N(,) distribution density -4-2 2 4 pnorm()..2.4.6.8. cdf -4-2 2 4 plot(,pnorm(,,),type="l") quantile function random values plot(u,qnorm(u,,) plot( rnorm (,,)),type="l") qnorm(u) -4-2 2 4 rnorm()..5..5 2...2.4.6.8. u 2 4 6 8 Inde Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 9 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 92 / 47

Autour des lois de probabilités Simulation d une loi discrète finie Autour des lois de probabilités Simuler le résultat d un dé à 6 faces Soit Z une variable aléatoire à valeurs dans {,..., k } telle que pour tout i =...k p(z = i )=prob i La fonction sample est un générateur de nombres aléatoires pour les lois discrète à support fini. La syntae est sample(, n, replace= TRUE, prob) où contient les valeurs prises par Z prob contient les valeurs des probabilités. lorsque l option prob n est pas spécifié, par défaut c est la loi uniforme Lorsque replace=false indique que le tirage est sans remise. Autrement dit on simule une réalisation de n variables aléatoires indépendantes et de même loi On simule suivant la loi uniforme sur l ensemble {,...,6}. On simulen = réalisations de façon indépendante # Les réalisations > DE [] 3 2 5 3 4 5 4 4 2 4 2 5 2 6 5 6 4 3 5 4 5 3 5 [24] 3 5 4 4 5 5 4 4 4 3 5 5 2 5 3 5 4 3 3 3 4 [47] 2 5 6 2 5 6 2 2 3 5 3 4 2 3 2 6 6 [7] 6 4 3 4 5 6 6 3 5 4 5 2 2 2 3 3 2 2 6 6 [93] 6 4 2 5 5 5 4 # calcul du nombre de,...,6 dans #l échantillon simulé : > table(de) DE 2 3 4 5 6 2 7 7 9 23 2 # représentation de la répartition > plot( table(de)) table(de) 5 5 2 OO lancers 2 3 4 5 6 DE Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 93 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 94 / 47 Autour des lois de probabilités Construire une fonction càdlàg constante par morceau Autour des lois de probabilités Eemple : loi binomiale La fonction stepfun retourne un objet de type function qui défini une fonction constante par morceau et continue à droite. La syntae est F=stepfun(, z) où le vecteur contient les points de discontinuité de la fonction, le vecteur z est de la forme c(a, y) où a est la valeur prise par F avant le premier point de discontinuité et y les valeurs de la fonction au points de discontinuités. Pour représenter graphique la fonction F on utilise plot ou lines (pour superposer) : avec l argument vertical=false > plot(f, vertical=false) ou lines(f, vertical=false) Application : les fonctions de répartition des lois discrètes On trace la fonction de répartition de la loi binomiale B(, /2) points.discont = : F. points.discont = pbinom( points.discont,,.3) F = stepfun ( points.discont, c (,F. points.discont) ) plot(f, vertical =FALSE, col=4,main=" f c t rep l o i binomiale ", ylab="f") f()..2.4.6.8. 2 4 6 8 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 95 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 96 / 47

Outils graphiques en statistique Les données Island Outils graphiques en statistique islands data: area (sq. miles) 6 Outils graphiques en statistique Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 97 / 47 Asia Africa North America South America Antarctica Europe Australia Greenland New Guinea Borneo Madagascar Baffin Sumatra Honshu Britain Victoria Ellesmere Celebes New Zealand (S) Java New Zealand (N) Newfoundland Cuba Luzon Iceland Mindanao Ireland Novaya Zemlya Hokkaido Hispaniola Sakhalin Moluccas Tasmania Celon Banks Devon Tierra del Fuego Southampton Melville Ael Heiberg Spitsbergen New Britain Taiwan Kyushu Timor Prince of Wales Hainan Vancouver 5 5 Africa Antarctica Asia 56 55 6988 Australia Ael Heiberg Baffin 2968 6 84 Banks Borneo Britain 23 28 84 Celebes Celon Cuba 73 25 43 Devon Ellesmere Europe 2 82 3745 Greenland Hainan Hispaniola 84 3 3 Hokkaido Honshu Iceland 3 89 4 Ireland Java Kyushu 33 49 4 Luzon Madagascar Melville 42 227 6 Mindanao Moluccas New Britain 36 29 5 New Guinea New Zealand (N) New Zealand (S) 36 44 58 Newfoundland North America Novaya Zemlya 43 939 32 Prince of Wales Sakhalin South America 3 29 6795 Southampton Spitsbergen Sumatra 6 5 83 Taiwan Tasmania Tierra del Fuego 4 26 9 Timor Vancouver Victoria 3 2 82 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 98 / 47 Outils graphiques en statistique Statistique descriptive sur les données islands Questions : Outils graphiques en statistique > mean() [] 3.73462 > var() [] 9.34685 > quantile(,c (.25,.5,.75)) 25% 5% 75%.79474 2.9966 4.32647 Q mediane Q3 >boplot() Construction du boplot : 2 4 6 8 2 boplot data : sqrt(islands) Les points représentent les valeurs aberrantes. Elles sont définies comme les observations en dehors de l intervalle I =[Q.5(Q 3 Q ), Q 3 +.5(Q 3 Q )]. Comment représenter graphiquement l échantillon d une variable continue discrète qualitative? Comment représenter un tableau de données numériques? Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 99 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 / 47

Histogramme Outils graphiques en statistique Estimation de la distribution d une variable continue hist( sqrt(islands), breaks = 2) hist( sqrt(islands), breaks = c (4 :5, 3:5, 7,, 4))..2.4.6 equidistant breaks 2 4 6 8 4 sqrt(islands)..5..5 9 NON - equidistant breaks 5 32 2 3 2 2 4 6 8 4 sqrt(islands) Outils graphiques en statistique Estimation de la densité pour des lois continues On compare sur des données simulées suivant la loi gaussienne deu estimateurs de la densité (hist / density) avec la densité théorique de la loi..2.4 Histogram of dat -3-2 - 2 3 4 dat density.default( = dat) par(mfrow=c (,2)) =rnorm() y=density() plot(y) hist(, proba=t) lines(y) z=seq( min( ),ma( ),. ) #superpose densité théorique lines(z,dnorm(z,,), lty=2) les options Frequency 5 5 WRONG histogram L argument breaks fie le nombre ou les bornes des classes. On peut aussi utiliser nclass pour fier le nombre de classes. 2 4 6 8 4 sqrt(islands)..2.4-4 -2 2 4 N = Bandwidth =.279 Remarque sur la fonction hist proba =T :l aireendessousdelacourbeest égale à. Par défaut proba =F :l aireest égale au nombre d observations. Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 2 / 47 Variables qualitatives Outils graphiques en statistique Outils graphiques en statistique Représentation graphique d une variable quantitative On relève pendant un mois la méteo à Cental Park. La variable est à valeurs dans {clear, partly.cloudy, cloudy }. > central. park. cloud [] partly.cloudy partly.cloudy partly.cloudy clear [5] partly.cloudy partly.cloudy clear cloudy [9] partly.cloudy clear cloudy partly.cloudy [3] cloudy cloudy clear partly. cloudy [7] partly. cloudy clear clear clear Pour résumer l information : on calcule la répartition (ou la fréquence) des modalités dans l échantillon. > table(central.park.cloud) central.park. cloud clear partly. cloudy cloudy 9 tab=table(central.park.cloud) pie(tab) barplot(tab) Comment ordonner les modalités? en général, on les classe suivant l ordre croissant des effectifs. barplot( sort(tab)) partly.cloudy pie(tab) clear 4 8 clear partly.cloudy cloudy modalités ordonnés par effectif croissant cloudy 4 8 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 3 / 47 cloudy clear partly.cloudy Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 4 / 47

2 4 6 8 2 4 6 nd d appels par jour 2 4 6 8 2 4 6 nd d appels par jour 2 4 6 8 2 4 6 nd d appels par jour Outils graphiques en statistique Remarque sur le choi de la plage des ordonnées (ylim) On relève le salaire de 3 personnes > sales John Jack Peter 45 44 46 Représentation graphique pie( sales ) barplot(sales) Jack John Peter 2 3 4 John Jack Peter Modification de l ae des ordonnés pour améliorer la lisibilité du graphique : barplot(sales,ylim=c (4,47),pd=F) 43 44 45 46 47 John Jack Peter Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 5 / 47 Variables discrètes Outils graphiques en statistique On relève N le nombre d appels téléphoniques reçus par un central pendant un mois. > N [] 6 6 3 6 8 9 9 etc > t = table(n) N 2 3 4 5 6 7 8 9 2 3 4 5 6 7 2 4 3 7 6 5 25 8 23 8 25 9 6 9 4 2 > nb d'appels 5 5 Représentation de la distribution et comparaison avec la densité de la loi de Poisson de paramètre la moyenne empirique de l échantillon (points en rouge). J= 2 : 7 plot( table(n)/ length(n), ylab="") points(j, dpois(j,mean(n))) table(n)/length(n)..4.8.2 N Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 6 / 47 jours 2 3 4 5 6 7 8 9 3 5 7 Outils graphiques en statistique La fonction barplot pour des variables quantitatives Outils graphiques en statistique Comparaison de 2 variables quantitatives indépendantes >barplot( t / length(n)) Attention : Les labels des barres ne coincident pas avec la coordonnée sur l ae des abscisses. Illustration : on veut ajouter sur graphique précédent la densité de la loi de Poisson de paramètre égal à la moyenne empirique de l échantillon (points en rouge), on obtient J= 2 : 7 # GRAPHIQUE FAUX barplot( table(n)/ length(n)) points(j, dpois(j,mean(n))) fréquence..2.4.6.8..2 GRAPHIQUE FAUX fréquence..2.4.6.8..2 # GRAPHIQUE CORRIGÉ br = barplot( table(n)/ length(n)) points(br,dpois(j,mean(n))) fréquence..2.4.6.8..2 GRAPHIQUE CORRIGÉ On compare le nombre d appels par mois de deu standards 5 5 2 5 5 2 25 2 5 8 2 7 5 5 boplot(n,n2, col=c ("green","orange")) t=table(n2) t = as. integer( names( t ))+.3 plot( table(n ), col=" g r e e n ", lwd =2, l a b=" ", y l a b=" " ) lines(t, t, col=" o r a n g e ", t y p e="h", lwd =2) qqplot(n,n2) abline (,) N2 4 6 8 2 4 6 comparaison des quantiles Pour les variables aléatoires continues, on compare les estimations de la densité : histogrammes, estimateur à noyau. N Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 7 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 8 / 47

Outils graphiques en statistique Outils graphiques en statistique grade B+ AC C+B- B F D prev Anne PHILIPPE (U. Nantes) 4 2 2 8 4 6 2 8 B Logiciel R 4 4 2 B- C+ 3 2 3 C 3 3 5 4 3 26 septembre 22 D 2 9 3 4 F 2 7 2 > table(grades) grade prev A AB+ A 5 3 A3 B+ 2 2 B B C+ C D F > plot(table(grades)) F A B+ B- C F D A AB+ B BC+ C D F 5 C B- C+ 2 B B+ A A- 4 table(grades) A A AB+ B BC+ C D F 5 4 prev grade B+ B+ AAB+ AF F F F A B A A C D 2 3 4 5 6 7 8 6 Données : pour 22 étudiants, on dispose de la note obtenue cette année (A+...F) et celle de l année précédente Autres graphiques pour résumer la table de contingence Lien entre des variables qualitatives dépendantes A A- B grade B- C F A B+ B- prev C F prev > b a r p l o t ( tab, l a b=" g r a d e ", l e g e n d. t e t=t, c o l=rainbow ( ), b e s i d e=t) > b a r p l o t ( t ( t a b ), l a b=" p r e v ", c o l=rainbow ( ) ) > b a r p l o t ( t ( t a b ), l a b=" p r e v ", l e g e n d. t e t=t, c o l=rainbow ( ), b e s i d e=t) 9 / 47 Anne PHILIPPE (U. Nantes) Outils graphiques en statistique Logiciel R 26 septembre 22 / 47 Outils graphiques en statistique 4 2 6 4 6 4 5 2 weight 5 2 weight 4 8 2 p a i r s (X [, : 3 ] ) Anne PHILIPPE (U. Nantes) 3 6 4 height 2 6 8 2 4 2 weight 4 6 8 2 4 weight La couleur des points est définie par la variable gender La taille des points est proportionnelle à l age des individus. Le type de points est définie par la variable gender Le dégradé de couleurs est défini à partir de la variable age. 3 height 3 height 4 4 age 2 4 4 age 6 8 2 6 8 2 2 5 3 4 3 2 Pour visualiser le lien entre les variables : on utilise la fonction pairs sur les 3 premières colonnes. On peut ajouter en option la couleur des points définies à partir de la variable gender > kid.weights age weight height gender 58 38 38 M 2 3 87 43 M 3 87 5 48 M 4 38 98 6 M 5 82 47 47 F 5 On représente la taille en fonction du poids. 6 Données : pour 5 enfants, on relève les informations suivantes : age / poids / taille /see 5 Utilisation des couleurs, de la taille et du type de marques height Utilisations des couleurs 5 4 8 2 3 plot ( weight, height, c e =ag e /ma ( ag e ) 2, c o l=as. i n t e g e r ( g e n d e r ) ) p l o t ( w e i g h t, h e i g h t, c o l = rainbow ( 5 ) [ ag e ], pch=as. i n t e g e r ( g e n d e r ) ) 5 p a i r s (X [, : 3 ], c o l=x [, 4 ] ) Logiciel R 26 septembre 22 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 2 / 47

gaussian...5. triangular...5. epanechnikov...5. biweight...5. rectangular...5. cosine...5. Inférence statistique Inférence statistique Estimation non paramétrique 7 Inférence statistique Estimation non paramétrique Tests Régression 7 Inférence statistique Estimation non paramétrique Tests Régression Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 3 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 4 / 47 Inférence statistique Estimation non paramétrique Inférence statistique Estimation non paramétrique histogramme : le choi du nombre de classes Précision sur la fonction density Normal Random Variates Soit X,, X n n variables aléatoires i.i.d. suivant la loi de densité f. La fonction density calcule l estimateur de f suivant...2.3.4...2.3.4-4 -2 2 4-4 -2 2 4...2.3.4...2.3.4-4 -2 2 4-4 -2 2 4 On simule un échantillon suivant la loi gaussienne de taille 2 On trace l histogramme pour différentes valeurs du nombre de classes. 3 On compare l histogramme avec la densité théorique de loi gaussienne (courbe en rouge) le choi du noyau kern ˆf n () = n..2.4.6.8...2.4.6.8. nx k= kern bw n..2.4.6.8...2.4.6.8. bw n..2.4.6.8...2.4.6.8. Xk hist(, nclass=***,proba=t) ou hist(,proba = T) par défaut le nombre de classes est optimisé pour des échantillons gaussiens la dimension de la fenêtre bw. Par défaut le paramètre est optimisé pour un échantillon gaussien Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 5 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 6 / 47

Inférence statistique Illustration sur un mélange gaussien Estimation non paramétrique On teste la fonction density sur des données simulées 2 suivant un mélange de lois gaussiennes : f () = p e 2 ( 5)2 + 3 p e 4 2 4 2 2 (+5)2 same bandwidth, 6 different kernels bandwidths =. bandwidths =..2.4.6.8. 5 5 N = 5 Bandwidth = 2.96 2. Simulation des données w=rbinom(5,,/4) sample = w*rnorm(5,5) +(-w) * rnorm(5,-5)...2.3.4..4.8 5 5 N = 5 Bandwidth =. bandwidths = 2 5 5 N = 5 Bandwidth = 2 y Inférence statistique Estimation non paramétrique Fonction de répartition empirique (ecdf) La fonction de répartition empirique est définie par ˆF n (t) = nx ] t] (X i ) n!! F (t) n p.s. i= C est un estimateur de la fonction de répartition...5..5..2.4.6.8 5 5 N = 5 Bandwidth = bandwidths = 3 5 5 5 5 N = 5 Bandwidth = 3 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 7 / 47 > = rnorm () >Fn=e c d f ( ) >plot(fn, col=" g r e e n " ) > z=seq( min(),ma(),.) > lines(z,pnorm(z), col=,lwd=2) c(:(n ))/n..2.4.6.8. 3 2 2 3 sort() Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 8 / 47 Inférence statistique Estimation non paramétrique Estimation de la moyenne : comportement asymptotique. Soit X,...,X n une suite de variables aléatoires iid, si E X < alors n=5 #loi gaussienne =rnorm(n,,) y=cumsum()/ (:n) plot(y, type= l ) S n = n # loi de Cauchy ou Student( ddl) c=rt(n,) yc=cumsum(c)/ (:n) plot(yc, type= l ) nx X i! E(X ) i= yc..5..5-2 2 3 4 evolution de Sn en fonction de n : cas gausien 2 3 4 5 Inde evolution de Sn en fonction de n : cas cauchy 2 3 4 5 Inférence statistique 7 Inférence statistique Estimation non paramétrique Tests Régression Tests Inde Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 9 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 2 / 47

Inférence statistique Les fonctions pour les tests statistiques classiques : Tests Inférence statistique Tests Eemple : Test de Student t.test() t.test(,mu=5,alt="two.sided") t.test(,y,alt="less", conf=.95) #student var. tet(,y) # comparaison variance cor.test(,y) # non correlation chisq. test (,y) #indépendance Bo. t e s t (z, lag = ) #non correlation shapiro. test () #normalité ks. test (,"pnorm") #normalité K S ks. test (, y) # même distribution X,...,X n iid N (, ) et Y,...,Y m iid E() Test H : E(X )=E(Y ) vs H : E(X ) 6= E(Y ) > = rnorm (,,) > y = rep (2,) > t.test(,y) Welch Two Sample t test data : and y t =.278, df = 78.446, p value =.8278 alternative hypothesis : true difference in means is not equal to 95 percent confidence i n t e r v a l :.264892.2268 sample estimates : mean of :.954427 mean of y :.987369 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 2 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 22 / 47 Inférence statistique Tests Inférence statistique Tests Test d ajustement Validité de l algorithme On construit un générateur de nombres aléatoires suivant la loi normale en utilisant le Théorème Central Limite appliqué à des variables aléatoires iid suivant la loi uniforme sur (, ). U =,...,U n iid suivant la loi uniforme La générateur s écrit Méthode de simulation non eacte... r n 2 (Ū n 2 ) ) X N(, ) Ū n = n simu< function(taille,size) { y = matri( runif(taille size ),ncol=size ) ( apply(y,,mean) / 2) sqrt(taille/ 2) } nx i= U i Pour différentes valeurs de n =, 5, On teste la normalité à l aide de deu procédures de test, le test de Kolmogorov et celui de Shapiro. 2 On compare la fonction de répartition empirique et la fonction de répartition théorique. 3 On compare l estimation de la densité par un histogramme et la densité théorique. X = simu(,n) test=ks. test (X,"pnorm",,)$p.value test2 = shapiro. test (X)$p.value plot( sort(x),(: size )/ size, type="s", col=" o r a n g e " ) lines( seq ( 3,3,.),pnorm( seq ( 3,3,.)),col=" r e d " ) title( paste("n=",n," et pvalue(ks)=", floor( c (test) )/ )) hist(x, col=" o r a n g e ", l i m=c ( 3,3), proba=t,main="") lines( seq ( 3,3,.),dnorm( seq ( 3,3,.)),col=" r e d " ) title( paste("pvalue(shapiro)=", floor( c (test2) )/ )) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 23 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 24 / 47

23 39 49 35 23 49.5 23 23 35 35 49 49 Inférence statistique Tests Inférence statistique Régression Les résultats n= et pvalue(ks)= n= 5 et pvalue(ks)=. n= et pvalue(ks)=.8 (:size)/size..8.5.5.5..5 (:size)/size..8 2 2 3 (:size)/size..8 3 2 2 7 Inférence statistique Estimation non paramétrique Tests Régression sort(x) sort(x) sort(x) pvalue(shapiro)= pvalue(shapiro)=.3 pvalue(shapiro)=.8...4..3 3 2 2 3 3 2 2 3 3 2 2 3 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 25 / 47 X X X Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 26 / 47 Inférence statistique Régression Inférence statistique Régression Régression linéaire Visualisation : plot.lm Le modèle le plus simple y = a + b + Pour réaliser une régression linéaire, par la méthode des moindres carrés, on utilise la fonction lm. Sur les données cars Standardized residuals -2-2 3 Residuals vs Leverage Cook's distance..2.4.6.8. Residuals -2 2 4 Residuals vs Fitted 2 4 6 8 Leverage lm(cars$dist ~ cars$speed) Fitted values lm(cars$dist ~ cars$speed) > lm( cars$ dist~ cars$ speed) Call : lm( formula = cars$ dist ~ cars$ speed) Coefficients : (Intercept) cars$ speed 7.579 3.932 > plot(cars$ speed, cars$ dist) > abline(reg, col=3,lwd = 2 ) cars$dist 2 4 6 8 2 5 5 2 25 cars$speed Standardized residuals -2-2 3 Normal Q-Q -2-2 Theoretical Quantiles lm(cars$dist ~ cars$speed) Standardized residuals..5..5 Scale-Location 2 4 6 8 Fitted values lm(cars$dist ~ cars$speed) Remarque : Si les données sont disponibles sous la forme d une liste on peut utiliser la syntae > fit = lm( dist ~ speed, cars ) Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 27 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 28 / 47

Inférence statistique Régression Inférence statistique Régression Etension Régression non paramétrique Régression multiple lm(v v + v2 + v3) Régression linéaire généralisée glm etc Méthodes non paramétriques >data(cars) >attach(cars) >plot(speed, dist) >lines(ksmooth(speed, dist, "normal", bandwidth=2), col=2) >lines(ksmooth(speed, dist, "normal", bandwidth=5), col=3) >lines(ksmooth(speed, dist, "normal", bandwidth=), col=4) dist 2 4 6 8 2 5 5 2 25 speed Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 29 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 3 / 47 Inférence statistique Régression Séries Chronologiques Polynômes Locau 8 Séries Chronologiques dist 2 4 6 8 2 >data(cars) >cars. lo = loess ( dist ~ speed, cars ) >p = predict(cars.lo) >plot(cars) >lines( seq (5, 3, ),p$ fit, col=3) 5 5 2 25 speed Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 3 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 32 / 47

Séries Chronologiques Séries Chronologiques Eemple > data(usaccdeaths) > USAccDeaths L objet série chronologique est une liste qui contient les valeurs observées, la fréquence des observations, la date de la première observation la date de la dernière, etc... Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 973 97 86 8928 937 7 826 37 744 973 9938 96 8927 974 775 698 838 8422 874 952 2 9823 8743 929 87 868 975 862 736 824 787 9387 9556 93 962 8285 8466 86 834 976 777 746 7767 7925 8623 8945 78 979 837 8488 7874 8647 977 7792 6957 7726 86 889 9299 625 932 834 885 8265 8796 978 7836 6892 779 892 95 9434 484 9827 9 97 8633 924 > plot (USAccDeaths) USAccDeaths 7 8 9 973 974 975 976 977 978 979 Time Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 33 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 34 / 47 Séries Chronologiques Pour créer une série chronologique, on utilise la fonction ts >bruit. blanc=ts( rnorm (), frequency =, start = c (), end=c ()) >plot(bruit.blanc) >acf ( bruit. blanc, type=" correlation ") #ou type=" covariance" ou type=" partial" Series Bruit.Blanc Filtre Séries Chronologiques Premier eemple de filtre : (I L p ) d, on utilise la fonction diff > diff(, lag=p, differences=d) Bruit.Blanc -2-2 ACF -.2..2.4.6.8. La fonction filter permet d appliquer des filtres linéaires : y= f i l t e r (, s i d e s=, method = c o n v o l u t i o n, f i l t e r =c (2,3)) # y [ i ] = 2 [ i ] + 3 [ i ] y= f i l t e r (, s i d e s= 2, method = c o n v o l u t i o n, f i l t e r =c (2,3,4)) # y [ i ] = 2 [ i ] + 3 [ i ] +4] [ i +] y= f i l t e r (, method = r e c u r c i v e, f i l t e r =c (2,3)) #y [ i ] = [ i ] + 2 y [ i ] + 3 y [ i 2] Ces fonctions permettent en particulier de créer un générateur de processus ARMA. 2 4 6 8 Time 5 5 2 Lag Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 35 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 36 / 47

Séries Chronologiques Étude préliminaire de la série USAccDeaths Séries Chronologiques modélisation et prévision AR { } periodogram = function(traj) n = length(traj) freq = :(n %/% 2)/ (n) periodogram = Mod( fft(traj))[2:(n %/% 2 + )]^ 2/ (2 pi n) plot(freq, periodogram, type = "l") >acf (USAccDeaths) >pacf (USAccDeaths) >periodogram ( USAccDeaths ) ACF.4.2.6. Series USAccDeaths..5..5 Lag Partial ACF.4..4 Series USAccDeaths.2.6..4 Lag La fonction ar permet d estimer les paramètres d un modèle AR A p (L)X [t] =e[t] Si l ordre p n est pas précisé, le meilleur modèle AR pour le critère AIC est sélectionné. >data(lh) >ar ( lh ) Call :ar( = lh) Coefficients : 2 3.6534.636.2269 Order selected 3 sigma^2 estimated as.959 periodogram 5...2.3.4.5 freq Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 37 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 38 / 47 Séries Chronologiques Séries Chronologiques Autour des modèles ARMA >ar ( lh, aic = FALSE, order. ma = 4) # on fie p=4 Call : ar( = lh, aic = FALSE, order. ma = 4) Coefficients : 2 3 4.6767.57.294.28 Order selected 4 sigma^2 estimated as.983 ATTENTION doit être une série chronologique (=ts()) ARMAacf pour le calcul des covariances théorique d un modèle ARMA ARMAtoMA pour le développement en MA infinie d un modèle ARMA arima.sim pour simuler des trajectoires d un modèle ARMA ou ARIMA Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 39 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 4 / 47

Séries Chronologiques Modèle ARMA : Estimation Séries Chronologiques modélisation et prévision SARIMA La fonction ar permet d estimer les paramètres d un processus AR. Pour les modèles ARMA d ordre (p,q) X [t] = a[]x [t ]+... + a[p]x [t p]+ e[t]+ b[]e[t ]+... + b[q]e[t q] on utilise la fonction arima, la syntae est out=arima(,order=c(p,,q)) la sortie out est une liste contenant : out$coef : estimation des coefficients, out$resid : estimation des résidus e[t] ATTENTION doit être une série chronologique (=ts()) Plus généralement, la fonction arima permet d estimer les paramètres d un modèle SARIMA A p (L) P (L s )Y [t] = Q (L s )B q (L)e[t] avec Y [t] =(I L) d (I L s ) D X [t] la syntae est la suivante : out=arima(, order=c (p,d,q ), seasonal=list( order=c (P,D,Q),period=s)) la sortie est une liste contenant : out$coef : estimation des coefficients, out$aic : critère AIC, out$resid : estimation des résidus e[t] option : include.mean=f ou T Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 4 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 42 / 47 Eemple Séries Chronologiques Séries Chronologiques Prévision pour des modèles SARIMA data(usaccdeaths) a = c (USAccDeaths) USAcc= ts(a[:6], frequency=2, start=c (973,)) fit = arima(usacc, order=c (,,), seasonal=list( order=c (,,))) Call : arima( = USAcc, order = c (,, ), seasonal = list( order = c (,, ))) Coefficients : ma sma.4343.449 Appro standard errors : ma sma.368.22 sigma^2 estimated 4276: log likelihood = 34.73, aic = 687.46 Pour prévoir à l horizon h, on utilise la fonction predict >out=arima (... ) > p=predict(out,h) p$ pred #contient les prévisions p$ se #erreurs de prévision ( écart type ) Eemple : p = predict(fit, n.ahead=2) plot(usaccdeaths, col=" o r a n g e " ) lines(p$ pred, col=" r e d 3 " ) lines(p$ pred+.96 p$se, col=" b l u e 2 " ) lines(p$ pred.96 p$se, col=" b l u e 2 " ) USAccDeaths 7 8 9 973 974 975 976 977 978 979 Time Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 43 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 44 / 47

Séries Chronologiques Plus généralement : la fonction predict Lissage eponentiel Séries Chronologiques > methods( predict) [] "predict.ar" "predict.arima" [3] "predict. loess" "predict.ppr" [5] "predict.smooth. spline" "predict.smooth. spline. fit" [7] "predict.glm" "predict.lm" [9] "predict.mlm" La méthode de lissage de Holt & Winter est disponible sous R. Les fonctions s appelle HoltWinters et predict.holtwinters. Eemple : sur la série data(co2) data(co2) m= HoltWinters(co2) #lissage p = predict(m, 5, p r e d i c t i o n. i n t e r v a l = TRUE) # prevision plot(m, p) cette fonction peut aussi être utilisée pour des modèles multiplicatifs le lissage simple si l on impose les coefficients. Observed / Fitted 32 33 34 35 36 37 Holt Winters filtering 96 97 98 99 2 Time Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 45 / 47 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 46 / 47 La librairie forecast Séries Chronologiques Cette librarie développée par Rob J Hyndman contient des méthodes pour l analyse et la prévision de séries temporelles univariée le lissage eponentiel, Holt Winter,... 2 Modèles BATS (Eponential smoothing state space model with Bo-Co transformation, ARMA errors, Trend and Seasonal components) 3 modélisation automatique ARIMA. 4 modélisation automatique SARIMA. Par défaut cette librarie utilise le traitement parallèle pour accélérer les calculs dans la sélection automatique des modèles. Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 22 47 / 47