Analyse de données
e-mail : [Link]@[Link]
Université de Thiès, UFR SES
Département de Management des Organisations
Licence Deuxième année M.I.O. Année universitaire 2023-2024
Fatou Néné Diop
TD1 : Statistique descriptive sur R
1 Utilisation de RStudio et R :
1. Créer un répertoire de travail nommé par exemple TD1Stat dans Documents.
2. Ouvrir RStudio et sélectionner ce répertoire de travail dans
Session -> Set Working Directory -> Choose Directory.
3. Créer avec
File -> New File -> Rscript
un fichier texte à enregistrer sous le nom par exemple codeTD1 (auquel RStudio mettra l’extension
.R). C’est dans ce fichier texte que vous taperez les instructions R. Pour les exécuter dans R (fenêtre
en bas à gauche) utiliser le bouton Run.
4. Entrez, exécutez les commandes suivantes :
a=c(1,2,3) mean(a)
Les deux structures de données principales dans R sont les vector (structure unidimensionnelle qui
permet de représenter une variable statistique et les [Link] (structure bidimensionnelle qui permet
de représenter (une ou) plusieurs variables statistiques mesurées sur les mêmes personnes. A la fin de
chaque exercice, penser à nettoyer la mémoire (balayette en haut à gauche).
2 Variable qualitative nominale :
On s’intéresse à la variable état-civil notée X et à la série statistique des valeurs prises par X sur 20
personnes. La codification est : célibataire (C), divorcé(D), marié (M), veuf (V). En langage R :
1. Création du vector X dans R :
X=c(’M’,’M’,’D’,’C’,’C’,’M’,’C’,’C’,’C’,’M’,’C’,’M’,’V’,’M’,’V’,’D’,’C’,’C’,’C’,’M’)
2. Vérification X
3. Tableau statistique : T1=table(X)
4. T1
5. Effectifs et fréquences :
[Link](Eff=c(T1),Freq=c(T1)/sum(c(T1)))
6. Diagramme en secteurs : pie(T1)
7. Plus gros : pie(T1,radius=1)
8. Diagramme en barres : barplot(T1)
9. Mieux : barplot(T1, ylim=c(0,max(T1)+1))
1
3 Variable qualitative ordinale :
On interroge 50 personnes sur leur dernier diplôme obtenu (variable Y ). La codification est : sans di-
plôme (Sd), primaire (P), secondaire (S), Supérieur non-universitaire (Su), Universitaire (U). Les résultats
sont donnés dans le fichier [Link]. En langage R :
1. Importer le fichier de données [Link] (cliquer dessus : import data set). R crée un dataframe
appelé ordinale.
2. Pour rendre accessible les variables dans le [Link] ordinale, on l’attache : attach(ordinale)
3. Vérification : Y
4. Tableau statistique : T2=table(Y)
5. T2
6. V2=c(T2)
7. Effectifs, fréquences et fréquences cumulées :
[Link](Eff=V2,EffCum=cumsum(V2),Freq=V2/sum(V2),FreqCum=cumsum(V2/sum(V2)))
8. Diagramme en secteurs : pie(T2)
9. Diagramme en barres des effectifs : barplot(T2)
10. Diagramme en barres des effectifs cumulés : barplot(cumsum(T2))
11. Penser à détacher le [Link] : detach(ordinale)
4 Variable quantitative discrète :
Un quartier est composé de 50 ménages et la variable Z représente le nombre de personnes par ménage.
Il y a 5 ménages composés de 1 personnes, 9 ménages composés de 2 personnes, 15 ménanes composés
de 3 personnes, 10 ménages composés de 4 personnes, 6 ménages composés de 5 personnes et 2 ménages
composés de 6 personnes. En langage R :
1. Création du vector Z :
Z=c(rep(1,5),rep(2,9),rep(3,15),rep(4,10),rep(5,6),rep(6,3),rep(8,2))
2. Vérification : Z
3. Tableau statistique : T4=table(Z)
4. Effectifs, fréquences et fréquences cumulées :
V4=c(T4)
[Link](Eff=V4,EffCum=cumsum(V4),Freq=V4/sum(V4),FreqCum=cumsum(V4/sum(V4)))
5. Diagramme des effectifs en bâtonnets : plot(T4)
6. Fonction de répartition : plot(ecdf(Z))
7. Mieux :
8. Effectifs, fréquences et fréquences cumulées :
plot(ecdf(Z),xlab="",ylab="",main="",frame=0)
5 Variable quantitative continue :
On mesure la taille en centimètres de 50 élèves d’une classe, on note S la variable :
152 152 152 153 153 154 154 154 155 155
156 156 156 156 157 157 157 158 158 159
159 160 160 160 161 160 160 161 162 162
163 164 164 164 164 165 166 167 168 168
168 169 170 171 171 171 171 156 162 169
2
1. Importer le fichier de données [Link] et attacher le dataframe créé.
2. Vérifiation : S
3. Tableau statistique
T5=table(cut(S, breaks=c(151,155,159,163,167,171)))
4. T5
5. T5c=c(T5)
6. Effectifs, fréquences et fréquences cumulées
[Link](Eff=T5c,EffCum=cumsum(T5c),Freq=T5c/sum(T5c),FreqCum=cumsum(T5c/sum(T5c)))
7. Histogramme des fréquences :
hist(S,breaks=c(151,155,159,163,167,171),probability=TRUE)
8. Ajout des graduations de l’axe (Ox) : axis(1, c(151,155,159,163,167,171))
9. Graphe de la fonction des fréquences cumulées :
y=c(0,cumsum(T5c/sum(T5c)))
x=c(151,155,159,163,167,171)
plot(x,y,type="b",xlab="",ylab="",xaxt = "n")
axis(1, c(151,155,159,163,167,171))
6 •
On charge des données déjà présentes dans R, nommées anscombe et on représente les nuages de points
avec les instructions suivantes. Quel est, à votre avis, le couple pxi ; yi q qui a le plus grand cœfficient de
corrélation linéaire ? le plus petit ? Le vérifier.
data(anscombe)
attach(anscombe)
par(mfrow=c(2,2))
plot(x1,y1)
plot(x2,y2)
plot(x3,y3)
plot(x4,y4)
7 Régression linéaire simple et liaison entre deux variables quan-
titatives
On mesure la taille et le poids de 20 individus.
1. Importer le fichier [Link] et l’attacher.
2. Moyennes : mean(taille) ;mean(poids)
3. Variances (corrigées) : var(taille) ; var(poids)
4. Régression linéaire (on donne le nom m à la sortie) :
m=lm(poids ~ taille)
5. Un résumé des sorties de la fonction lm : summary(m)
6. Liste des noms des sorties de la fonction lm : names(m)
7. Ordonnée à l’origine et pente de la droite de régresion :
a=m$coefficients[1];b=m$coefficients[2]
8. Tracé du nuage de point : plot(taille,poids)
9. Tracé de la droite : abline(a,b)
3
8 Liaison entre deux variables qualitatives
Les données proviennent d’une société d’assurance automobile. Les deux variables retenues pour l’ana-
lyse sont :
— Le mode de réglement : annuel, mensuel, semestriel ou trimestriel ;
— La situation maritale : célibataire, concubin, divorcé, marié ou veuf.
En langage R :
1. Création du tableau de contingence :
M = matrix(c(209, 1483, 41, 320, 60, 34, 151, 1, 70, 10,
535,2448, 33, 897, 135, 77, 245, 4, 139, 9), byrow = T, ncol = 5)
colnames(M) = c("celibataire", "concubin", "divorce", "marie","veuf")
rownames(M) = c("annuel", "mensuel", "semestriel", "trimestriel")
2. Vérification : M
3. Profils lignes profLignes = [Link](M, 1)
4. Profils colonnes profCol = [Link](M, 2)
5. Calcul du χ2 et sortie dans res : res=[Link](M)
6. Liste des noms des sorties de la fonction [Link] : names(res)
7. Effectifs théoriques :
res$expected
8. Valeur du χ2 :
chi2=res$statistic
9 Liaison entre une variable quantitative et une variable quali-
tative
Dans une étude sur l’épuisement professionnel, dans le secteur de l’éducation, on a fait remplir un
questionnaire à des enseignants de collège dans 4 pays européens : A, B, C et D. Ensuite, on a attribué
à chaque enseignant interrogé un score représentant son niveau global de stress et d’épuisement. Les
résultats sont dans le fichier [Link].
1. Boîtes à moustaches :
boxplot(Stress~Pays)
2. Calcul des effectifs :
nA=length(which(Pays=="A"))
nB=length(which(Pays=="B"))
nC=length(which(Pays=="C"))
nD=length(which(Pays=="D"))
n=nA+nB+nC+nD
3. Calcul des moyennes :
moyglobale=mean(Stress)
moyA=mean(Stress[Pays=="A"])
moyB=mean(Stress[Pays=="B"])
moyC=mean(Stress[Pays=="C"])
moyD=mean(Stress[Pays=="D"])
4. Calcul de SCF, SCR et SCT et R2 :
moy=c(moyA,moyB,moyC,moyD)
n=c(nA,nB,nC,nD)
SCF=sum(n*(moy-moyglobale)^2)
SCR=SCT-SCF
R2=SCF/SCT
4
5. R calcule tout cela quand on fait une analyse de la variance :
summary(aov(Stress~Pays))
[Link](aov(Stress~Pays))