Vous êtes sur la page 1sur 11

Université Paris Nanterre - UFR SEGMI

Licence L3 MIASHS 2021-2022


Statistique S6 P. Bertail - A. Mollié

TD 1 - Statistiques descriptives univariées et bivariées

Démarrage de

Lancer å la fenêtre RGui s’ouvre ainsi qu’une fenêtre R Console :


ä les commandes tapées (après le symbole > ) dans cette fenêtre (en rouge) sont exécutées et le(s)
résultat(s) de l’exécution s’affiche(nt) en bleu foncé mais ne sont pas sauvegardés automatiquement.
ä Pour sauvegarder des commandes dans un fichier "script" :
* dans le menu Fichier de RGui sélectionner Nouveau script
å une nouvelle fenêtre Sans titre - Editeur R s’affiche
dans cette fenêtre vous pouvez
– soit taper vos propres commandes
– soit copier/coller les commandes (en bleu) du TD
ä On rend active l’une ou l’autre des deux fenêtres en positionnant le curseur de la souris dessus ou en
utilisant le menu Fenêtres
le menu affiché dans RGui change selon la fenêtre active.
ä On exécute les commandes tapées dans la fenêtre Sans titre - Editeur R
– soit avec le menu Edition en sélectionnant l’une des deux actions
Exécuter tout ou Exécuter la ligne ou sélection
– soit en sélectionnant la ou les lignes de commandes dans la fenêtre Editeur R et en tapant les
touches combinées Ctrl+R

å dans la fenêtre R Console la(es) commande(s) s’affiche(nt) en rouge et le(s) résultat(s)


(et/ou les erreurs) de l’exécution en bleu foncé

Exercice 1 Variable quantitative continue


On a observé les durées de vie (en heures) suivantes de 30 composants électroniques :
0.1 ; 7.4 ; 1.0 ; 7.9 ; 2.1 ; 1.8 ; 17.9 ; 9.3 ; 6.5 ; 3.3 ; 5.6 ; 7.7 ; 0.1 ; 24.3 ; 8.1 ;
19.3 ; 11.9 ; 1.6 ; 2.7 ; 0.5 ; 5.8 ; 42.5 ; 5.1 ; 2.0 ; 0.2 ; 15.0 ; 3.5 ; 6.4 ; 0.6 ; 3.3

Vérifier que : i xi = 223.5 et i x2i = 4016.23.


P P
(a)
(b) Calculer les moyenne x, variance s2x et écart-type sx observés des durées de vie.
(c) Proposer d’autres résumés numériques : médiane mx , quartiles q0,25 x x
et q0,75 observés.
(d) Définir la variable "durée de vie" centrée réduite et calculer ses valeurs observées.
(e) Représenter graphiquement la distribution observée des durées de vie.

1. Lire les données avec : définir un vecteur numérique


X <- c( 0.1, 7.4, 1.0, 7.9, 2.1, 1.8, 17.9, 9.3, 6.5, 3.3, 5.6, 7.7, 0.1, 24.3,
8.1, 19.3, 11.9, 1.6, 2.7, 0.5, 5.8, 42.5, 5.1, 2.0, 0.2, 15.0, 3.5,
6.4, 0.6, 3.3 )
X
str(X)
length(X)
class(X)

1
2. Calculer la somme et la somme des carrés des valeurs observées
sum(X)
sum(X^2)
3. Calculer les moyenne, variance et écart-type sans biais des valeurs observées
mean(X)
var(X)
sd(X)
4. Calculer les variance et écart-type biaisés des valeurs observées
n <- length(X)
(n-1)*var(X)/n
sd(X)*sqrt((n-1)/n)
5. Autres résumés numériques : minimum, maximum et quantiles observés
summary(X)
min(X); max(X); median(X)
quantile(X)
quantile(X, type=4) # calcul avec la fct de répartition observée
sort(X)
1:n/n # proportion de valeurs inférieures
6. Variable centrée réduite
(X-mean(X))/sd(X); scale(X)
7. Représentations graphiques å une troisième fenêtre R Graphics s’ouvre automatiquement à
l’exécution des commandes graphiques
# Histogramme
hist(X)
hist(X, freq=FALSE, main="Histogramme des durées de vie", ylab="fréquences observées")
par(mfrow=c(2,2))
hist(X, freq=FALSE, main="Histogramme des durées de vie", ylab="fréquences observées",
ylim=c(0,0.12))
# Densités de lois usuelles
curve(dunif(x,min=0,max=50), add=TRUE, col="cyan")
curve(dnorm(x,mean=mean(X),sd=sd(X)), add=TRUE, col="red")
curve(dexp(x,rate=1/mean(X)), add=TRUE, col="blue")
curve(dchisq(x,df=mean(X)), add=TRUE, col="violet")
curve(dgamma(x,shape=mean(X)^2/var(X),rate=mean(X)/var(X)), add=TRUE, col="green")
# Boîte à moustaches
boxplot(X, main="Boîte à moustaches des durées de vie")
# Fonction de répartition observée
plot(sort(X),1:n/n, main="Fonction de répartition observée")
# Fonctions de répartition de lois usuelles
curve(pnorm(x,mean=mean(X),sd=sd(X)), add=TRUE, col="red")
curve(punif(x,min=0,max=50), add=TRUE, col="cyan")
curve(pexp(x,rate=1/mean(X)), add=TRUE, col="blue")
curve(pchisq(x,df=mean(X)), add=TRUE, col="violet")
curve(pgamma(x,shape=mean(X)^2/var(X),rate=mean(X)/var(X)), add=TRUE, col="green")
# Droite de Henry
qqnorm(scale(X))
abline(0,1, col="red",lty=2)
# Ouvrir une nouvelle fenêtre graphique
x11()

2
8. Fonction : calcul de la variance observée (biaisée)
# fonction variance observée : var_obs(x)
var_obs <- function(x) var(x)*(length(x)-1)/length(x)
var_obs(X)
9. Liste des objets créés et suppression
ls()
rm(n,X)
ls()

Les données sont les réalisations (x1 , . . . , xn ) d’un échantillon de taille n d’une v.a. quantitative X de
moyenne µ et de variance σ 2 .
Une estimation ponctuelle de
P
xi
– la moyenne µ est donnée par la moyenne observée x = i (estimation sans biais) ;
n
i (xi − x)
P 2 P 2
x
– la variance σ est donnée par la variance observée sx =
2 2 = i i − x2 (estimation
n n
(xi − x)2
P
n
biaisée) ou par la variance observée sans biais sbx = i2 = s2 .
n−1 n−1 x
On considère la population des composants électroniques.
La moyenne µ des durées de vie des composants électroniques est estimée à x = 7, 45 (heures) ;
la variance σ 2 des durées de vie des composants électroniques est estimée à sb2x = 81, 07431 et
l’écart-type σ à sbx = 9, 004127 (heures).

Sauvegardes avec
ä Pour le fichier des commandes
* dans la fenêtre Sans titre - Editeur R menu Fichier sélectionner Sauver ou Sauver sous...
choisir le dossier adéquat et donner un nom au fichier ; par défaut le fichier a l’extension .R
å le nom du fichier apparaît dans le nom de la fenêtre nom du fichier - Editeur R
ä Pour le(s) graphique(s)

* dans la fenêtre R Graphics menu Fichier sélectionner Sauver sous


choisir le type de fichier, en général PDF... , le dossier adéquat et donner un nom au fichier

ä Pour le contenu de la fenêtre R Console : commandes et résultats

* dans la fenêtre R Console menu Fichier sélectionner Sauver dans le fichier...


choisir le dossier adéquat et donner un nom au fichier (extension par défaut .txt)
Ce fichier est un document texte qui peut être ouvert et modifié avec un logiciel de traitement
de texte classique (Bloc-notes ou LibreOffice Writer ou WordPad par exemple).

Effacer les objets


ä Pour supprimer tous les objets
* dans la fenêtre R Console menu Misc sélectionner Effacer tous les objets et confirmer
ä Pour effacer les résultats
* dans la fenêtre R Console menu Edition sélectionner Effacer la console et confirmer

3
Exercice 2 Variable qualitative dichotomique
On a observé sur 20 lancers d’une pièce, les résultats suivants :
pile ; face ; pile ; face ; pile ; face ; face ; face ; face ; pile ; pile ; face ; pile ; face ; face ; pile ; pile ; face ; pile ; face

(a) Calculer les effectifs et fréquences observées de piles et de faces.


(b) Représenter graphiquement la distribution observée des résultats des lancers.
(c) On note X la variable qui représente le résultat d’un lancer : sa valeur observée x = 1 si le résultat
est pile et x = 0 si le résultat est face. Calculer les effectifs n1 et n0 , et fréquences f1 et f0 observés
correspondants. Que valent la moyenne et la variance observées de X ?

1. Lire les données avec : définir un vecteur caractère


res <- c( "pile", "face", "pile", "face", "pile", "face", "face", "face", "face",
"pile", "pile", "face", "pile", "face", "face", "pile", "pile", "face",
"pile", "face" )
res
str(res)
length(res)
class(res)
summary(res)
2. Calculer les effectifs et fréquences observées de pile et face
table(res)
addmargins(table(res))
prop.table(table(res))
3. Représentations graphiques
# Diagramme en tuyaux d’orgues (en barres)
barplot(table(res), main="Diagramme en barres des lancers", ylab="effectif observé")
barplot(prop.table(table(res)), main="Diagramme des lancers", ylab="fréquence observée")
# Diagramme circulaire (camembert)
pie(table(res), main="Diagramme circulaire des lancers")
4. Transformation en facteur à deux niveaux : face et pile (ordre alphabétique)
as.factor(res)
class(as.factor(res))
mode(as.factor(res))
levels(as.factor(res))
str(as.factor(res))
affiche les niveaux d’un facteur sous forme de caractère ; cependant, il les stocke sous forme d’entiers
(ici 1="face" et 2="pile").
summary(as.factor(res))
table(as.factor(res))
5. Codage numérique d’un facteur
as.numeric(as.factor(res))
X <- as.numeric(as.factor(res))-1
table(X)
sum(X); sum(X^2)
mean(X); 1-mean(X)
var(X)
var(X)*(length(X)-1)/length(X) ; var_obs(X)
mean(X)*(1-mean(X))
ls()
rm(res,X)

4
Les données sont les réalisations (x1 , . . . , xn ) d’un échantillon de taille n d’une v.a. qualitative X à
deux modalités, pile et face, de proportions respectives p et 1 − p.
Une estimation ponctuelle sans biais de la proportion de piles p est donnée par la fréquence observée de
n1
piles f = = x et celle de la proportion de faces 1−p par la fréquence observée de faces 1−f = 1−x.
n
On estime la proportion de piles à f = 0, 45 et celle de faces à 1 − f = 0, 55.

Exercice 3 Variable qualitative


Les nombres de nouveaux cas de coronavirus (COVID-19) par jour en France entre le lundi 23 novembre et
le dimanche 20 décembre 2020 ont été
jour lundi mardi mercredi jeudi vendredi samedi dimanche
effectif 14931 42483 62556 58263 52760 57015 45138

(a) Calculer le nombre total de nouveaux cas de COVID-19 pendant la période étudiée.
(b) Calculer les fréquences observées de nouveaux cas par jour de la semaine.
(c) Représenter graphiquement la distribution observée des nouveaux cas de COVID-19 selon le jour de
la semaine.

1. Lire les données avec


effectif <- c( 14931, 42483, 62556, 58263, 52760, 57015, 45138 )
names(effectif) <- c("lundi", "mardi", "mercredi", "jeudi", "vendredi",
"samedi", "dimanche")
effectif
2. Calculer le nombre total de nouveaux cas
(n <- sum(effectif) )
3. Calculer les fréquences observées par jour
freq <- effectif/n
freq*100
4. Représentations graphiques
# Diagramme en tuyaux d’orgues (en barres)
barplot(effectif, cex.names=0.9, main="Cas de COVID-19", ylab="effectif observé")
barplot(freq, cex.names=0.9, ylim=c(0,0.2), main="Cas de COVID-19",
ylab="fréquence observée")
# loi uniforme discrète
puni <- rep(1/length(effectif),length(effectif))
mat <- matrix(c(freq,puni),nc=7, byrow=TRUE)
colnames(mat) <- names(effectif)
barplot(mat, beside=TRUE, cex.names=0.9)
barplot(mat, beside=TRUE, col=c("gray","red"), cex.names=0.9, ylim=c(0,0.2),
main="Cas de COVID-19", ylab="fréquence observée")
ls()
rm(effectif, freq, mat, n, puni)

Les données sont les réalisations (x1 , . . . , xn ) d’un échantillon de taille n d’une v.a. qualitative X à
k = 7 modalités, de proportions respectives p1 , . . . , pk avec j pj = 1.
P
nj
Une estimation ponctuelle sans biais de la proportion pj est donnée par la fréquence observée fj = .
n
On considère la population des nouveaux cas de COVID-19 en France fin 2020.
On estime la proportion de nouveaux cas, le lundi à f1 = 0, 04482, le mardi à f2 = 0, 12752, le mercredi
à f3 = 0, 18777, le jeudi à f4 = 0, 17489, le vendredi à f5 = 0, 15837, le samedi à f6 = 0, 17114 et le
dimanche à f7 = 0, 13549.

5
Exercice 4 Variable quantitative discrète
Les nombres de clients entrant dans un supermarché pendant 40 périodes consécutives de 1 minute sont les
suivants : 3 7 7 7 9 7 1 4 7 6 7 6 4 10 5 8 5 4 4 4
5 5 4 2 0 8 6 9 8 2 6 4 5 6 4 8 4 4 13 8
(a) Calculer les résumés numériques observés des nombres de clients par minute : moyenne x, variance s2x ,
x
écart-type sx , médiane mx , quartiles q0,25 x .
et q0,75
(b) Représenter graphiquement la distribution observée des nombres de clients par minute.

1. Lire les données avec


X <- c(3, 7, 7, 7, 9, 7, 1, 4, 7, 6, 7, 6, 4, 10, 5, 8, 5, 4, 4, 4, 5, 5, 4, 2,
0, 8, 6, 9, 8, 2, 6, 4, 5, 6, 4, 8, 4, 4, 13, 8)
str(X)
2. Calcul des résumés numériques
c(summary(X), var.=var(X), e.t.=sd(X))
var_obs(X); sqrt(var_obs(X))
3. Distributions des effectifs et des fréquences observées
table(X)
prop.table(table(X))
4. Représentation graphique
# Diagramme en bâtons
plot(table(X))
plot(prop.table(table(X)), ylab="fréquence observée")
points((0:max(X))+0.05,dpois(0:max(X),lambda=mean(X)), col="red", type="h")
ls()
rm(X)

6
Exercice 5 Couple de variables quantitative/qualitative
Pour étudier les taux de contamination des sols par la substance toxique PCB (biphenil polychlorinaté), 24
échantillons de sols ont été prélevés : 14 proviennent de régions rurales et 10 de régions urbaines. Le taux
de PCB contenu dans ces échantillons (mesurés en 10−4 g par kg de sol) sont :
région rurale 3,5 1 1,6 12 8,1 5,3 23 8,2 1,8 9,8 1,5 9,7 9 15
région urbainee 24 11 107 18 29 49 94 12 16 22

(a) Estimer le taux de PCB moyen des régions rurales et celui des régions urbaines.
(b) Estimer la variance des taux de PCB des régions rurales et celle des régions urbaines.
(c) Représenter graphiquement les distributions observées pour les régions rurales et urbaines.

1. Lire les données avec


X <- c(3.5, 1, 1.6, 12, 8.1, 5.3, 23, 8.2, 1.8, 9.8, 1.5, 9.7, 9, 15,
24, 11, 107, 18, 29, 49, 94, 12, 16, 22)
str(X)
région <- c(rep("rurale",14),rep("urbaine",10))
str(région)
région <- as.factor(région)
addmargins(table(région))
2. Calcul des effectifs, moyennes, variances et écarts-types observés par région
tapply(X,région,length)
tapply(X,région,mean)
tapply(X,région,var)
tapply(X,région,sd)
tapply(X,région,var_obs) # calcul avec la fct var_obs
sqrt(tapply(X,région,var_obs))
3. Autres résumés numériques par région
tapply(X,région,summary)
4. Représentations graphiques
# Histogrammes
par(mfrow=c(2,2))
hist(X[région=="rurale"], main="Régions rurales", xlab="taux de PCB")
hist(X[région=="urbaine"], main="Régions urbaines", xlab="taux de PCB")
hist(X[région=="rurale"], freq=FALSE, main="Régions rurales", ylim=c(0,0.1),
xlab="taux de PCB", ylab="fréquence observée")
hist(X[région=="urbaine"], freq=FALSE, main="Régions urbaines", ylim=c(0,0.1),
xlab="taux de PCB", ylab="fréquence observée")
par(mfrow=c(1,2))
# Boîtes à moustaches
boxplot(X ~ région, ylab="taux de PCB")
stripchart(X ~ région, vertical=TRUE, xlab="région", ylab="taux de PCB", pch=4)
ls()
rm(région, X)
Les données sont les réalisations de deux échantillons indépendants d’un caractère quantitatif X :
– (x11 , . . . , xn1 1 ) de taille n1 de la v.a. quantitative X1 de moyenne µ1 et de variance σ12 ;
– (x12 , . . . , xn2 2 ) de taille n2 de la v.a. quantitative X2 de moyenne µ2 et de variance σ22 .
La moyenne µ1 des taux de PCB des régions rurales est estimée à x1 = 7, 821429 (10−4 g/kg) et
la moyenne µ2 des taux de PCB des régions urbaines est estimée à x2 = 38, 2 (10−4 g/kg) ;
la variance σ12 des taux de PCB des régions rurales est estimée à sb21 = 38, 07104 et
la variance σ22 des taux de PCB des régions urbaines est estimée à sb22 = 1204, 4 .

7
Exercice 6 Couple de variables quantitatives
Les données suivantes concernent le temps de travail X en dizaine d’heures et la production industrielle Y
en milliers de tonnes de 12 entreprises. On note Xi le temps de travail et Yi la production de l’entreprise
n°i, i = 1, ..., 12.
entreprise n°i 1 2 3 4 5 6 7 8 9 10 11 12
xi 110 112 120 129 143 150 152 160 162 180 180 182
yi 6 8 12 19 19 25 30 35 36 38 44 43

(a) Vérifier que : xi = 1780 x2i = 271 506 yi = 315 yi2 = 10 241 xi yi = 50 492.
P P P P P

(b) Calculer le temps de travail moyen observé x et la production industrielle moyenne observée y des 12
entreprises. Calculer la variance observée des temps de travail s2x et celle des productions industrielles
y3 − ȳ
s2y . Calculer la production industrielle centrée et réduite z3 = de l’entreprise n◦ 3.
sy
(c) Estimer le temps de travail moyen et la production industrielle moyenne des entreprises.
(d) Estimer la variance et l’écart-type des temps de travail et des productions industrielles des entreprises.
(e) Représenter le nuage de points du couple (x, y). Déterminer le barycentre G = (x, y) du nuage de
points et le représenter.
(f) Calculer la covariance observée cov(x, y) et le cœfficient de corrélation observé r(x, y) entre le temps
de travail et la production.
(g) Construire la matrice de covariance observée des 2 caractères temps de travail et production puis la
matrice de corrélation observée.

1. Lire les données avec


X <- c(110, 112, 120, 129, 143, 150, 152, 160, 162, 180, 180, 182)
Y <- c(6, 8, 12, 19, 19, 25, 30, 35, 36, 38, 44, 43)
length(X); length(Y)
2. Moyennes, variances et écarts-types observés
sum(X); sum(X^2)
sum(Y); sum(Y^2)
sum(X*Y)
mean(X); var(X); sd(X)
mean(Y); var(Y); sd(Y)
# fonction var_obs
var_obs <- function(x) var(x)*(length(x)-1)/length(x)
var_obs(X); var_obs(Y)
# variable centrée-réduite
Z <- (Y-mean(Y))/sqrt(var_obs(Y))
Z[3]; scale(Y)[3]
3. Représentation graphique
# Nuage de points
par(mfrow=c(1,1))
plot(X,Y)
plot(X,Y, xlab="temps de travail (en 10xh)", ylab="production (en kt)")
points(mean(X),mean(Y), col="red", pch=16)
grid()
abline(h=mean(Y), col="red", lty=2)
abline(v=mean(X), col="red", lty=2)
text(mean(X),mean(Y), bquote(G), pos=3, col="red")
# identifier les individus
names(X) <- 1:length(X)
text(X,Y, names(X), pos=3, cex=0.75)

8
4. Covariance et cœfficient de corrélation observés entre temps de travail et production
cov(X,Y); cov(X,Y)*(length(X)-1)/length(X)
cor(X,Y)
5. Création d’un tableau de données : dataframe
don <- data.frame(TRAV=X, PROD=Y)
don
don$TRAV; don$PROD
summary(don)
var(don)
var(don)*(length(don$TRAV)-1)/length(don$TRAV)
cor(don)
pairs(don)
ls()
rm(don, X,Y,Z)

Les données sont les réalisations de deux échantillons appariés de même taille n :
– (x1 , . . . , xn ) de la v.a. quantitative X de moyenne µX et de variance σX
2 ;

– (y1 , . . . , yn ) de la v.a. quantitative Y de moyenne µY et de variance σY2 .

Une estimation ponctuelle de


– la covariance cov(X, Y ) entre X etPY est donnée par
i (xi − x)(yi − y)
P
xi yi
la covariance observée cov(x, y) = = i − x y (estimation biaisée)
n n
(xi − x)(yi − y)
P
n
ou la covariance observée sans biais cdov(x, y) = i = cov(x, y) ;
n−1 n−1
– du cœfficient de corrélation linéaire ρ(X, Y ) entre X et Y est donnée par
cov(x, y) cd
ov(x, y)
le cœfficient de corrélation observé r(x, y) = = (estimation biaisée)
sx sy sbx sby
−1 ≤ r(x, y) ≤ 1.

On considère la population des entreprises.


Le temps de travail moyen µX est estimé à x = 148, 3333 dizaines d’heures et la production industrielle
moyenne µY à y = 26, 25 milliers de tonnes.
La variance des temps de travail σX 2 est estimée à s2 = 622, 7222 estimation biaisée, ou à s
x b2x = 679, 3333
estimation sans biais, et l’écart-type σX est estimé par sx = 24, 9544 ou sbx = 26, 06402 dizaines
d’heures ;
la variance des productions industrielles σY2 est estimée à s2y = 164, 3542 estimation biaisée, ou à
sb2y = 179, 2955 estimation sans biais, et l’écart-type σY est estimé par sy = 12, 82007 ou sby = 13, 39013
milliers de tonnes.
La covariance entre le temps de travail et la production est estimée à cov(x, y) = 313, 9167 estimation
biaisée, ou à cd
ov(x, y) = 342, 4545 estimation sans biais ;
le cœfficient de corrélation linéaire ρ(X, Y ) entre le temps de travail et la production est estimé à
r(x, y) = 0, 9812436 .

9
Exercice 7 Variables quantitatives
On souhaite étudier la relation entre le PIB par habitant (en milliers de dollars PPA (Parité de Pouvoir
d’Achat)) et chacune des variables :
– la consommation d’énergie par habitant (en Tonnes d’Équivalent Pétrole TEP)
– le taux de mortalité infantile (nombre de décès d’enfants de moins d’un an pour 1000 naissances
vivantes)
– l’espérance de vie à la naissance (en années)
– la densité de population (en nombre d’habitants par km2 )
relevés en 2011 pour 30 pays 1 et figurant dans le tableau suivant

n° Pays Code PIB/hab Cons. énergie Mort. infantile Esp. vie Dens. pop.
1 Afrique du Sud ZA 11,0 2,795 43,2 49,3 40,0
2 Algérie DZ 7,2 1,108 25,8 74,5 14,9
3 Australie AU 40,8 5,296 4,6 81,8 2,8
4 Belgique BE 37,6 5,349 4,3 79,5 341,9
5 Brésil BR 11,8 1,371 21,2 72,5 24,2
6 Bulgarie BG 13,5 2,615 16,7 73,6 63,5
7 Canada CA 40,5 7,426 5,6 81,4 3,4
8 Chili CL 16,1 1,877 7,3 77,7 22,5
9 Chine CN 8,4 2,029 16,1 74,7 140,0
10 Corée du Sud KR 31,7 5,175 4,2 79,0 496,1
11 Côte d’Ivoire CI 1,6 0,579 64,8 56,8 68,1
12 Égypte EG 6,5 0,978 25,2 72,7 83,6
13 Équateur EC 8,3 0,849 19,6 75,7 53,7
14 Estonie EE 20,2 4,140 7,1 73,3 28,2
15 États-Unis US 48,1 7,032 6,1 78,4 32,6
16 Finlande FI 38,3 6,359 3,4 79,3 15,6
17 France FR 35,0 3,843 3,3 81,2 120,3
18 Haïti HT 1,2 0,320 54,0 62,2 353,2
19 Inde IN 3,7 0,614 47,6 66,8 366,6
20 Iran IR 12,2 2,813 42,3 70,1 47,9
21 Japon JP 34,3 3,584 2,8 82,2 337,1
22 Norvège NO 53,3 5,681 3,5 80,2 14,5
23 Nouvelle Zélande NZ 27,9 4,124 4,8 80,6 16,1
24 Pays-Bas NL 42,3 4,638 4,6 79,7 402,9
25 Pologne PL 20,1 2,629 6,5 76,0 122,9
26 Portugal PT 23,2 2,187 4,7 78,5 116,7
27 Royaume-Uni GB 35,9 2,997 4,6 80,0 257,5
28 Slovénie SI 29,1 3,531 4,2 77,3 98,5
29 Tunisie TN 9,5 0,890 25,9 75,0 78,6
30 Turquie TR 14,6 1,539 23,9 72,5 102,2
somme 683,9 94,368 507,9 2 242,5 3 866,1
P
x
Pi i2
somme des carrés x 22 205,2 416,125 17 370,2 169 270,4 1 079 889,0
Pi i
somme des produits i x i yi 2 952,518 5 701,5 53 388,9 91 824,9

(a) Calculer la moyenne et la variance observées de chaque variable.


(b) Calculer les covariance et cœfficient de corrélation observés entre le PIB et chacune des autres variables.
(c) Interpréter ces résultats avec les nuages de points correspondants.
1. Source : Banque mondiale ; statistiques-mondiales.com, février 2015

10
1. Lire les données avec du fichier Pays-PIB.csv : tableau de données dataframe
# afficher le répertoire courant
getwd()
# modifier le répertoire courant
setwd("nom répertoire courant ")
getwd()
données <- read.csv2("Pays-PIB.csv", encoding="UTF-8")
données
str(données)
class(données)
summary(données)
attach(données)
2. Calculer les moyennes et variances observées
# fonction variance observée : var_obs(x)
var_obs <- function(x) var(x)*(length(x)-1)/length(x)
mean(PIB); var(PIB); var_obs(PIB)
mean(Conso); var(Conso); var_obs(Conso)
mean(Mort); var(Mort); var_obs(Mort)
mean(Esp); var(Esp); var_obs(Esp)
mean(Dens); var(Dens); var_obs(Dens)
3. Calculer les covariances et cœfficients de corrélation linéaires observés
# fonction covariance observée : cov_obs(x,y)
cov_obs <- function(x,y) cov(x,y)*(length(x)-1)/length(x)
cov(PIB,Conso); cov_obs(PIB,Conso)
cov(PIB,Mort); cov_obs(PIB,Mort)
cov(PIB,Esp); cov_obs(PIB,Esp)
cov(PIB,Dens); cov_obs(PIB,Dens)
cor(PIB,Conso); cor(PIB,Mort); cor(PIB,Esp); cor(PIB,Dens)
# Matrice de corrélation observée
cor(données[,3:7])
4. Tracer les nuages de points en fonction du PIB/hab
par(mfrow=c(2,2))
plot(PIB,Conso)
plot(PIB,Mort)
plot(PIB,Esp)
plot(PIB,Dens)
par(mfrow=c(1,1))
plot(PIB,Conso, xlab="PIB/hab (en milliers $ PPA)",ylab="Conso énergie (en TEP)",
pch=16, col="blue", xlim=c(0,60), ylim=c(0,8), xaxt="n",yaxt="n",
xaxs="i",yaxs="i", cex=1.25)
axis(side=1, seq(0,60,10),cex.axis=1)
axis(side=1, seq(0,60,1),labels=FALSE,tcl=-0.3,cex.axis=1, lwd.ticks=1)
axis(side=2, seq(0,8,1),las=2,cex.axis=1, lwd.ticks=1, cex.lab=1 )
axis(side=2, seq(0,8,0.1),labels=FALSE, cex.axis=1,lwd.ticks=1,tcl=-0.3 )
text(PIB,Conso, Code, pos=3, cex=0.7)
mtext(bquote(paste("coefficient de corrélation observé : ",
r==.(round(cor(PIB,Conso),5)))), line=1)
grid()
5. Tracer tous les nuages de points des couples de variables
pairs(données[,3:7])
detach(données)
ls() ; rm(données)

11

Vous aimerez peut-être aussi