Poly TP
Poly TP
Poly TP
Analyse de Données en R
Auteur :
Mohamed GOUSKIR
m.gouskir@usms.ma
Avant propos v
Introduction 1
1 Initiation à R 3
1. Les premiers pas sous R . . . . . . . . . . . . . . . . . . . . . 3
2. Simulation aléatoire . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Descriptions empiriques . . . . . . . . . . . . . . . . . . . . . 5
4. Lecture de données contenues dans un fichier . . . . . . . . . . 6
5. Questions et exercices . . . . . . . . . . . . . . . . . . . . . . . 7
6. Premiers pas dans Rcmdr . . . . . . . . . . . . . . . . . . . . 8
iii
Table des matières
5 Classification automatique 29
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1. Traitements réalisés . . . . . . . . . . . . . . . . . . . . . . . . 29
2. Classification Hiérarchique Ascendante . . . . . . . . . . . . . 29
2.1. DONNÉES . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2. La procédure hclust() de R . . . . . . . . . . . . . . . 30
2.3. Découpage en classes . . . . . . . . . . . . . . . . . . . 31
3. K-means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Bibliographie 33
iv
Avant propos
v
INTRODUCTION
L’apprentissage de ce logiciel R est sans doute plus délicat que les logiciels
commerciaux mais permet à tous de disposer d’un outil gratuit, très perfor-
mant, en perpétuelle évolution, exploitable dans toutes les circonstances et
permettant à l’utilisateur une totale liberté dans ses choix d’analyse.
http ://www.r-project.org
1
INTRODUCTION
– Lancez le logiciel R.
2
TP 1
INITIATION À R
3
TP 1. INITIATION À R
help(demo)
demo(graphics)
4. Graphique :
x = runif(50, 0, 2)
y = runif(50, 0, 2)
plot(x, y, main=”Titre”, xlab=”abscisse”,
ylab=”ordonnée”,col=”darkred”)
abline(h=.6,v=.6)
text(.6,.6, ”placer un commentaire”)
colors()
4
TP 1. INITIATION À R
2. Simulation aléatoire
Dans les approches de modélisation, il est souvent utile de générer artifi-
ciellement des nombres (pseudo-)aléatoires.
3. Descriptions empiriques
1. Statistique d’ordre :
x = rnorm(10) (Echantillon i.i.d.)
y = sort(x) (Statistique d’ordre)
2. Fonction de répartition empirique :
x = rnorm(100)
n=length(x)
plot(sort(x), 1 :n/n, type=”s”, ylim=c(0,1), xlab=””, ylab=””)
?pnorm
curve(pnorm(x,0,1), add=T, col=”blue”)
3. Histogramme :
x = rnorm(100)
hist(x, breaks=20)
5
TP 1. INITIATION À R
1. Les jeux de données sont généralement stockés dans des fichiers externes.
La commande read. Table permet de lire ce type de données. Pour tester
cette commande
— Placez le fichier, contenant les données, dans votre répertoire de tra-
vail
6
TP 1. INITIATION À R
5. Questions et exercices
2. Commenter les boxplots. Laquelle des trois séries de données (a) est
la plus dipersée ? (b) contient le plus grand nombre d’outliers (valeurs
aberrantes) ?
10.1 12.2 9.3 12.4 13.7 10.8 11.6 10.1 11.2 11.3
12.2 12.6 11.5 9.2 14.2 11.1 13.3 11.8 7.1 10.5
a. Quelle est approximativement la valeur de la charge que les trois
quarts des câbles peuvent supporter ?
7
TP 1. INITIATION À R
Vous verrez s’afficher une fenêtre similaire a celle de la figure ??. Nous
voulons maintenant travailler avec les données. La première chose à faire est
donc de dire à R dans quel répertoire se trouve le fichier des données que
vous avez préparé ci-dessus. Cliquez dans Rcmdr sur le menu Données − >
Importer des données − > depuis un fichier texte ..... donnez un nom
au tableau à importer (par exemple Data) et vérifiez que la case Noms de
variables dans le fichier est cochée (c’est comme ça qu’on a préparé les
données, la première ligne contient les noms des colonne).
8
TP 2
Introduction
9
TP 2. RÉGRESSION LINÉAIRE ET ANALYSE DE VARIANCE
10
TP 2. RÉGRESSION LINÉAIRE ET ANALYSE DE VARIANCE
11
TP 2. RÉGRESSION LINÉAIRE ET ANALYSE DE VARIANCE
init.h ⋏ 2).
f1=g1[1 :4]
f2=g2[1 :4]
LinReg1=lm(f2 ∼ f1+I(f1 ⋏ 2))
summary(LinReg1)
♦ Quelles sont les valeurs estimées des paramètres a, b et c ?
♦ Que vaut le coefficient de détermination ?
b. On cherche ensuite un ajustement par une fonction f qui s’écrit
comme f (x) = ax2 + bx + c + dexp(x/20).
LinReg2=lm(f2 ∼ f1+I(f1 ⋏ 2)+I(exp(f1/20)))
summary(LinReg2)
♦ Quelles sont les valeurs estimées des paramètres a, b, c et d ?
♦ Que vaut le coefficient de détermination ?
Nous allons effectuer une analyse de variance à un facteur sur les données
de qualité d’air de New York contenues dans airquality.
12
TP 2. RÉGRESSION LINÉAIRE ET ANALYSE DE VARIANCE
13
TP 2. RÉGRESSION LINÉAIRE ET ANALYSE DE VARIANCE
14
TP 3
ANALYSE EN COMPOSANTES PRINCIPALES
Introduction
Traitements à réaliser
— Réaliser une ACP sur un fichier de données.
— Afficher les valeurs propres. Construire le graphiques éboulis des valeurs
propres.
— Construire le cercle de corrélations.
— Projeter les observations dans le premier plan factoriel.
— Positionner des variables illustratives quantitatives dans le cercle des
corrélations.
— Positionner les modalités d’une variable illustrative catégorielle.
— Positionner des observations illustratives.
Individus actifs (Données disponibles)
1. Fichier de données
Importation, statistiques descriptives et graphiques
library(xlsReadWrite)
- changement de répertoire
setwd(”lien du fichier”)
- chargement des données dans la première feuille de calcul
- première colonne = label des observations
- les données sont dans la première feuille
15
TP 3. ANALYSE EN COMPOSANTES PRINCIPALES
2. Procédure PRINCOMP
16
TP 3. ANALYSE EN COMPOSANTES PRINCIPALES
- obtenir les variances associées aux axes c.-à-d. les valeurs propres
val.propres < − acp.autos$sdev2̂
print(val.propres)
- scree plot (graphique des éboulis des valeurs propres)
plot(1 :6,val.propres,type=”b”,ylab=”Valeurs propres”,
xlab=”Composante”,main=”Scree plot”)
- intervalle de confiance des val.propres à 95%
val.basse < −val.propres * exp(-1.96 * sqrt(2.0/(n-1)))
val.haute < − val.propres * exp(+1.96 * sqrt(2.0/(n-1)))
- affichage sous forme de tableau
tableau < − cbind(val.basse,val.propres,val.haute)
colnames(tableau) < − c(”B.Inf.”,”Val.”,”B.Sup”)
print(tableau,digits=3)
- corrélation variables-facteurs
c1 < − acp.autos$loadings[,1]*acp.autos$sdev[1]
17
TP 3. ANALYSE EN COMPOSANTES PRINCIPALES
c2 < − acp.autos$loadings[,2]*acp.autos$sdev[2]
- affichage
correlation < − cbind(c1,c2)
print(correlation,digits=2)
- carrés de la corrélation (cosinus)
print(correlation2̂,digits=2)
- cumul carrés de la corrélation
print(t(apply(correlation2̂,1,cumsum)),digits=2)
- *** cercle des corrélations - variables actives ***
plot(c1,c2,xlim=c(-1,+1),ylim=c(-1,+1),type=”n”)
abline(h=0,v=0)
text(c1,c2,labels=colnames(autos.actifs),cex=0.5)
symbols(0,0,circles=1,inches=F,add=T)
Déterminer les individus qui pèsent le plus dans la définition d’une com-
posante
- contributions à une composante - calcul pour les 2 premières composantes
18
TP 3. ANALYSE EN COMPOSANTES PRINCIPALES
19
TP 3. ANALYSE EN COMPOSANTES PRINCIPALES
20
TP 4
ANALYSE FACTORIELLE DES CORRESPONDANCES
Introduction
21
TP 4. ANALYSE FACTORIELLE DES CORRESPONDANCES
Les mêmes calculs ont été reproduits dans Tanagra. D’autres packages de
R peuvent réaliser également une AFC, nous avons choisi FactorMineR pour
sa simplicité et son adéquation avec les sorties usuelles des logiciels qui font
référence (et que l’on retrouve dans notre ouvrage ci-dessus).
1.2. But :
22
TP 4. ANALYSE FACTORIELLE DES CORRESPONDANCES
print(media)
#profil ligne
prof.ligne < − t(apply(media,1,profil)) print(round(prof.ligne,1))
#profil colonne
prof.colonne < −apply(media,2,profil)
print(round(prof.colonne,1))
#charger le package
library(FactoMineR)
#lancer l’AFC
media.afc < − CA(media,ncp=2,graph=FALSE)
23
TP 4. ANALYSE FACTORIELLE DES CORRESPONDANCES
#graphique
plot(media.afc,cex=0.75)
24
TP 4. ANALYSE FACTORIELLE DES CORRESPONDANCES
Les mêmes calculs ont été reproduits dans Tanagra. D’autres packages de
R peuvent réaliser également une AFCM (ou ACM –Analyse des correspon-
dances multiples), nous avons choisi FactorMineR pour sa simplicité et son
adéquation avec les sorties usuelles des logiciels qui font référence (et que l’on
retrouve dans notre ouvrage ci-dessus).
2.2. But :
25
TP 4. ANALYSE FACTORIELLE DES CORRESPONDANCES
Figure 4.1 – chien : Label des observations, Taille ... Agressivite : Variables actives et
Fonction :Variable illustrative qualitative
#charger le package
library(FactoMineR)
#lancer l’ACM
#voir l’aide pour plus de détails sur les options
#notamment -¿ ind. supplémentaires, var. quanti. supplémentaires
canines.acm < − MCA(canines,ncp=2,quali.sup=c(7),graph=F)
print(canines.acm)
#scree plot
plot(canines.acm$eig[,1],type=”b”,main=”Scree plot”)
26
TP 4. ANALYSE FACTORIELLE DES CORRESPONDANCES
#graphique associé
plot(individus[,1],individus[,2],main=”Projection des observations”,
xlab=”Comp.1”,ylab=”Comp.2”,type=”n”)
abline(h=0,v=0)
text(individus[,1],individus[,2],labels=rownames(individus),cex=0.75)
#graphique associé
plot(modalites[,1],modalites[,2], main=”Projection des modalités”,
xlab=”Comp.1”, ylab=”Comp.2”,type=”n”)
abline(h=0,v=0)
text(modalites[,1],modalites[,2], labels=rownames(modalites), cex=0.75)
27
TP 4. ANALYSE FACTORIELLE DES CORRESPONDANCES
c.-à-d. chaque point modalité est au barycentre des individus possédant cette
modalité
#composantes principales réduites pour les individus
#graphique
plot(c(f1etoile,g1),c(f2etoile,g2), type=”n”, main=”Représentation
barycentrique de type (a)”)
abline(h=0,v=0)
text(f1etoile,f2etoile,labels=names(f1etoile),cex=0.5)
text(g1,g2,labels=names(g1),cex=0.5,col=”red”)
Conclusion
28
TP 5
CLASSIFICATION AUTOMATIQUE
Introduction
1. Traitements réalisés
2.1. DONNÉES
29
TP 5. CLASSIFICATION AUTOMATIQUE
30
TP 5. CLASSIFICATION AUTOMATIQUE
3. K-means
31
TP 5. CLASSIFICATION AUTOMATIQUE
32
Bibliographie
33