Statistiques Descriptives avecr R

Présentation de R

  • R est un langage de programmation et un logiciel de calcul scientifique.

  • R est orienté pour l’analyse de données et pour les modèles statistiques.

  • R est un langage interprété ne nécessitant pas un compilateur.

  • R est à typage dynamique: Les variables peuvent être crées automatiquement par R lors de la première affectation.

Exercise 1  

Code
# Créer les variables a, b et c
a = 10 
b = 5 
c = 3 

# Afficher les valeurs des variables
print(a)
[1] 10
Code
print(b)
[1] 5
Code
print(c)
[1] 3
Code
# Afficher a+b
print(a+b)
[1] 15
Code
# Affecter 2a-b à une nouvelle variable d
d = 2*a-b

# Afficher d
print(d)
[1] 15

Structure des données

L’objet de base de R est le vecteur: Tout est d’abord vecteur sous R.

Code
length(a)
[1] 1

Vector comme objet de base

Manipulation de base

Sous R, l’objet de base de le Vecteur, c’est à dire un tableau de données de même type.

Code
# Ajoutons 7 au vecteur a
a[2] = 20

print(a)
[1] 10 20

Accéder aux éléments d’un vecteur par []

Code
# Lire
a[1]
[1] 10
Code
# Modifier (muter)
a[1] = 0
print(a)
[1]  0 20

Saisir les éléments d’un vecteur

  • Uitilisation de c (pour concatenate)
Code
# Exemple
x = c(1.50, 1.49, 1.75, 1.67, 1.90)

Fonctions usuelles

Code
# Longueur de x
length(x)
[1] 5
Code
# La somme
sum(x)
[1] 8.31
Code
# La amoyenne
mean(x)
[1] 1.662
Code
# Multiplication par un réel
2*x
[1] 3.00 2.98 3.50 3.34 3.80
Code
# Maximum
max(x)
[1] 1.9
Code
# Minimum
min(x)
[1] 1.49

Fonction vectorisée

Les fonctions de base de R sont vectorisées: Pour un vecteur \(x=\left(x_1,\cdots,x_n\right)\), \(f(x)=\left(f(x_1),\cdots,f(x_n)\right)\).

Code
cos(x)
[1]  0.07073720  0.08070845 -0.17824606 -0.09904104 -0.32328957

Exemple de manipulation d’un jeu de données

Nous considérons le jeu de données iris déjà disponible sous R.

Code
# Afficher les premières lignes
head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
Code
# Afficher les dimensions
dim(iris)
[1] 150   5
Code
# Nombre de lignes (individus)
nrow(iris)
[1] 150
Code
# Nombre de colonnes (variables)
ncol(iris)
[1] 5
Code
# Les noms des variables
names(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

Sélectionner des colonnes

Code
# Sélectionner la conne j
iris[,1]
  [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
 [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
 [37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
 [55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
 [73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
 [91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
[109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
[127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
[145] 6.7 6.7 6.3 6.5 6.2 5.9
Code
# On peut aussi utiliser les noms
iris[, "Sepal.Length"]
  [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
 [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
 [37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
 [55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
 [73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
 [91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
[109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
[127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
[145] 6.7 6.7 6.3 6.5 6.2 5.9
Code
# Avec $
iris$Sepal.Length
  [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
 [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
 [37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
 [55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
 [73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
 [91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
[109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
[127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
[145] 6.7 6.7 6.3 6.5 6.2 5.9
Code
# Sélectionner les colonnes 1 et 2
iris[, c(1, 2)]
    Sepal.Length Sepal.Width
1            5.1         3.5
2            4.9         3.0
3            4.7         3.2
4            4.6         3.1
5            5.0         3.6
6            5.4         3.9
7            4.6         3.4
8            5.0         3.4
9            4.4         2.9
10           4.9         3.1
11           5.4         3.7
12           4.8         3.4
13           4.8         3.0
14           4.3         3.0
15           5.8         4.0
16           5.7         4.4
17           5.4         3.9
18           5.1         3.5
19           5.7         3.8
20           5.1         3.8
21           5.4         3.4
22           5.1         3.7
23           4.6         3.6
24           5.1         3.3
25           4.8         3.4
26           5.0         3.0
27           5.0         3.4
28           5.2         3.5
29           5.2         3.4
30           4.7         3.2
31           4.8         3.1
32           5.4         3.4
33           5.2         4.1
34           5.5         4.2
35           4.9         3.1
36           5.0         3.2
37           5.5         3.5
38           4.9         3.6
39           4.4         3.0
40           5.1         3.4
41           5.0         3.5
42           4.5         2.3
43           4.4         3.2
44           5.0         3.5
45           5.1         3.8
46           4.8         3.0
47           5.1         3.8
48           4.6         3.2
49           5.3         3.7
50           5.0         3.3
51           7.0         3.2
52           6.4         3.2
53           6.9         3.1
54           5.5         2.3
55           6.5         2.8
56           5.7         2.8
57           6.3         3.3
58           4.9         2.4
59           6.6         2.9
60           5.2         2.7
61           5.0         2.0
62           5.9         3.0
63           6.0         2.2
64           6.1         2.9
65           5.6         2.9
66           6.7         3.1
67           5.6         3.0
68           5.8         2.7
69           6.2         2.2
70           5.6         2.5
71           5.9         3.2
72           6.1         2.8
73           6.3         2.5
74           6.1         2.8
75           6.4         2.9
76           6.6         3.0
77           6.8         2.8
78           6.7         3.0
79           6.0         2.9
80           5.7         2.6
81           5.5         2.4
82           5.5         2.4
83           5.8         2.7
84           6.0         2.7
85           5.4         3.0
86           6.0         3.4
87           6.7         3.1
88           6.3         2.3
89           5.6         3.0
90           5.5         2.5
91           5.5         2.6
92           6.1         3.0
93           5.8         2.6
94           5.0         2.3
95           5.6         2.7
96           5.7         3.0
97           5.7         2.9
98           6.2         2.9
99           5.1         2.5
100          5.7         2.8
101          6.3         3.3
102          5.8         2.7
103          7.1         3.0
104          6.3         2.9
105          6.5         3.0
106          7.6         3.0
107          4.9         2.5
108          7.3         2.9
109          6.7         2.5
110          7.2         3.6
111          6.5         3.2
112          6.4         2.7
113          6.8         3.0
114          5.7         2.5
115          5.8         2.8
116          6.4         3.2
117          6.5         3.0
118          7.7         3.8
119          7.7         2.6
120          6.0         2.2
121          6.9         3.2
122          5.6         2.8
123          7.7         2.8
124          6.3         2.7
125          6.7         3.3
126          7.2         3.2
127          6.2         2.8
128          6.1         3.0
129          6.4         2.8
130          7.2         3.0
131          7.4         2.8
132          7.9         3.8
133          6.4         2.8
134          6.3         2.8
135          6.1         2.6
136          7.7         3.0
137          6.3         3.4
138          6.4         3.1
139          6.0         3.0
140          6.9         3.1
141          6.7         3.1
142          6.9         3.1
143          5.8         2.7
144          6.8         3.2
145          6.7         3.3
146          6.7         3.0
147          6.3         2.5
148          6.5         3.0
149          6.2         3.4
150          5.9         3.0

Statistiques descriptives univariées

Variable continue

Statistiqes

Code
# Moyenne
mean(iris$Sepal.Length)
[1] 5.843333
Code
# Variance
var(iris$Sepal.Length)
[1] 0.6856935
Code
# Écart-type
sd(iris$Sepal.Length)
[1] 0.8280661
Code
# Médiane
median(iris$Sepal.Length)
[1] 5.8
Code
# Les quartiles
quantile(iris$Sepal.Length)
  0%  25%  50%  75% 100% 
 4.3  5.1  5.8  6.4  7.9 
Code
# Étendu
max(iris$Sepal.Length) - min(iris$Sepal.Length)
[1] 3.6

Graphiques

Code
# Histogramme
hist(iris$Sepal.Length, breaks = c(4, 5, 5.5, 6, 6.5, 7, 8), col="purple")

Code
# Boîte à moustaches
boxplot(iris$Sepal.Length, col="steelblue", border = "coral")

Variable qualitative

Tableau Statistique

Code
# Tableau des effectif
table(iris$Species)

    setosa versicolor  virginica 
        50         50         50 
Code
# Les frequences
n = nrow(iris)
table(iris$Species)/n

    setosa versicolor  virginica 
 0.3333333  0.3333333  0.3333333 
Code
# Mode
tab = table(iris$Species)
which.max(tab)
setosa 
     1 

Graphiques

Code
# Diagramme à barres
tab = table(iris$Species)
barplot(tab, col="red", border = FALSE)

Code
# Diagramme circulaire (pie chart)
pie(tab)

Statistiques descriptives bivariées

Deux variables quantitatives

Coefficient de corrélation

Code
cor(iris$Sepal.Length, iris$Sepal.Width)
[1] -0.1175698
Code
# Nuqge de points
plot(iris$Sepal.Length, iris$Sepal.Width, col=iris$Species, pch=20)

Variable quantitative vs Variable qualitative

Code
# Moyennes par espèces
tapply(iris$Sepal.Length, iris$Species, mean)
    setosa versicolor  virginica 
     5.006      5.936      6.588 
Code
# Variance
tapply(iris$Sepal.Length, iris$Species, var)
    setosa versicolor  virginica 
 0.1242490  0.2664327  0.4043429 
Code
boxplot(iris$Sepal.Length ~ iris$Species, col = "coral")

Code
n = nrow(iris)

tss = (n-1)*var(iris$Sepal.Length)

variancesIntra = tapply(iris$Sepal.Length, iris$Species, var)
effectifs = tapply(iris$Sepal.Length, iris$Species, length)

wss = sum(variancesIntra * (effectifs - 1))

bss = tss - wss

eta2 = bss/tss

cat("Rapport des corrélations: ", eta2, "\n")
Rapport des corrélations:  0.6187057 

Variable qualitative vs Variable qualitative

Code
eff = matrix(c(45, 70, 60, 30, 25, 50), nrow=2)
colnames(eff) = c("Pop", "Rock", "Classic")
rownames(eff) = c("H", "F")
eff
  Pop Rock Classic
H  45   60      25
F  70   30      50
Code
chi2 = chisq.test(eff)$statistic
chi2
X-squared 
 22.45411 
Code
V = sqrt((chi2)/(sum(eff)*min(3-1, 2-1)))
V
X-squared 
0.2831841