Académique Documents
Professionnel Documents
Culture Documents
L’analyse univariée a pour but de décrire et mesurer la répartition des valeurs que peut
prendre une variable.
On appelle la répartition des valeurs d’un variable sa distribution , que l’on peut
approximativement voir comme son «histogramme en continu».
Voilà une distribution d’une variable réelle (courbe noire), superposée à son histogramme :
Vous pouvez voir avec cet exemple, que la courbe suit les variations de hauteur des colonnes
de l’histogramme, tout en lissant les aspérités.
C’est de cette courbe que l’on parle lorsqu’on évoque la distribution de la variable. (Il serait
plus rigoureux de parler de courbe de densité de probabilité.)
distribution(V ) ≡ P (V = Vx ), ∀Vx ∈ ΩV
La forme d’une distribution donne beaucoup d’informations sur les valeurs d’une variable dans
une population :
La densité de probabilité comme son nom l’indique, représente des probabilités: celles
d’obtenir, pour un individu dans la population, une certaine valeur de la variable.
Le point délicat est qu’une variable continue (i.e. définie sur un intervalle de R ), peut prendre
une infinité de valeurs possibles, et que la probabilité d’obtenir exactement, c’est à dire avec
une précision infinie, une valeur est infinitésimale, en fait carrément nulle.
Il faut alors considérer la probabilité d’obtenir une valeur, non pas de façon exacte , mais dans
un intervalle de valeur. Par exemple, dans le graphique ci-dessous, de s’interroger sur la
probabilité , pour un individu tiré au hasard dans la population , d’avoir une valeur de Variable
1 dans l’intervalle [25; 30] .
Cela pourrait s’écrire P (25 ≤ V1 ≤ 30) et serait égal à l’intégrale de la fonction de densité
notée fV 1 entre les bornes 25 et 30 de l’intervalle de V1 :
30
25
L’aire totale sous la courbe vaut 1 (cela revient à considérer la somme de toutes les
probabilités d’avoir une valeur particulière X dans l’intervalle de valeur de V1 ) et par
approximation , la valeur de la probabilité d’obtenir une certaine valeur se lit comme la
proportion d’aire sous la courbe comprise entre deux bornes proche de la valeur.
## [1] 0.3126056
Le principe est assez simple : on approxime l’aire sous la courbe de densité par une somme
de Riemann à pas constant.
On note:
f la fonction dont on cherche à approcher l’aire sous la courbe. On suppose que c’est
une fonction continue et définie partout.
[a; b] le segment sur lequel on veut intégrer f
on découpe [a; b] en n “tranches” de taille égale, on notes les bornes de ces tranches xi ,
avec n0 = a, < x1 < ⋯ < xi < ⋯ < xn−1 < xn = b . Chaque tranche a une largeur,
qu’on note δ, on l’appelle le pas d’intégration . Il est constant.
dans chaque tranche [xi−1 ; xi ] , on considère une valeur ti , i ∈ {1, … , n} , pour laquelle
on connaîtf (ti ), la valeur de f en ce point.
i=1
qu’on peut reformuler ainsi : l’intégrale est approchée par la somme des aires des “tranches”
rectangulaire, de largeur δ = xi − xi−1 et de hauteur f (ti ) .
Notre pas d’intégration est constant , on peut le sortir de la somme , et simplement calculer la
somme des valeurs de densité dans le segment [a; b] !
la fonction density() de R retourne un objet avec plusieurs attributs :
l’attribut x du résultat est la coordonnées des points où la densité est estimée. par
défaut , il y a 512 points.
l’attribut y , les valeurs des densités calculées en chaque point de x
On peut donc facilement approcher la probabilité d’avoir un individu dont la variable est
contenue entre deux valeurs.
data(mpg)
## [1] 0.08375649
3. On calcule la somme des valeurs de densité entre deux bornes b1 et b2
## 0.2562939
4. On peut normaliser par une constante d’intégration. Comme on approxime une probabilité
par des valeurs discrètes, on fait obligatoirement une erreur , car il faudrait que δ tende
b
vers 0 pour que (limite de) la somme de Riemann soit égale à l’intégrale ∫
a
f (t)dt .
On peut évaluer cette erreur en calculant la somme de Riemann sur toute l’étendue de la
variable.
Cette valeur s’approche de 1, sa valeur théorique qui serait la probabilité de la
variable calculée sur tout son univers.
## [1] 1.000938
## [1] 0.2560537
On pourrait vérifier que cette erreur est d’autant plus importante que le pas d’intégration est
important.
Parfois certaines distributions ressemblent à des distributions bien connues : on appelle ces
distributions des lois.
Ce sont des distributions de probabilités que l’on peut formaliser par une équation et dont les
statisticiens ont pu dériver des caractéristiques par le calcul.
La plus connue est la distribution Gaussienne, on dit aussi distribution normale du nom de
la loi de probabilité qu’elle suit : la loi normale.
μ la moyenne, i.e. la valeur moyenne qu’auront les valeurs tirées de cette distribution
σ l’écart type, qui représente leur écartement par rapport à cette moyenne
Voici la distribution d’une population dont la variable V1 suit une loi normale de moyenne 0 et
d’écart-type 1, qu’on note N (0, 1)
xx <- data.frame(value=rnorm(8000))
theme_light()+
plot1
Voici un histogramme de la même population
theme_light()+
plot1
Comme son nom l’indique, la loi uniforme vaut partout la même valeur entre deux bornes a et
b , autrement dit , la probabilité d’obtenir une certaine valeur v ∈ [a; b] est constante.
La forme de sa distribution est théoriquement une fonction en créneau, qui vaut 1 partout sur
[a; b] mais en pratique quand on échantillonne (i.e. génère) des valeurs suivant cette loi,
même un grand nombre de fois comme ici, la distribution, qui devrait être plate, est courbée
aux extrémités. Cela est dû à la façon dont R estime la densité numériquement, biaisée aux
extrémités de l’intervalle
La loi log-normale est comme son nom l’indique, le résultat d’un logarithme appliqué à une
variable suivant une loi normale.
Notez comme la distribution est «tirée vers la droite». On
parle de «queue de distribution».
Cette longue queue (“fat tail” in english) indique une grande inégalité dans la population:
quelques individus, peu nombreux mais aux valeurs de variable très élevées, et une vaste
majorité d’individus dont la valeur de la variable est faible qui constitue le pic de la distribution.
Cette loi modélise par exemple l’effet d’un «grand nombre de petits facteurs considérés
comme indépendants».
Wikipedia nous apprend qu’elle modélise des phénomènes réels tels que la répartition de
97% des salaires du monde, celle de la la longueur et le poids de spécimen d’animaux, la
durée des parties d’échecs, etc.
2.3 Histogramme d’une distribution réelle
Les distribution de données empiriques ont rarement des formes aussi régulière et identifiable
que celles des lois. Voici par exemple l’histogramme de la hauteur des arbres à Paris, selon
les données disponibles sur [https://opendata.paris.fr/]
Cet histogramme n’est pas très informatif en l’état : si on le lit naïvement, il semblerait que
tous les arbres aient une valeur nulle ou quasi-nulle pour leur hauteur en mètres et la
circonférences de leur tronc en centimètres.
Pourquoi ?
Parce que le logiciel qui trace l’histogramme (R) fait du mieux qu’il peut pour tracer les
colonnes de l’histogramme correspondant aux valeurs :
la hauteur des colonnes doit correspondre à l’effectif (le nombre) d’individus (ici des
arbres) par valeur de la variable
l’échelle de l’axes x doit «faire tenir» l’étendue des valeurs (xmax − xmin ),sur une
quantité de pixels limitée.
Ce qui se produit ici est que certains individus ont des hauteurs ou des circonférences
renseignées à des valeurs totalement irréalistes, comme nous l’indique les bornes du dernier
décile (i.e. les 10% des valeurs les plus élevées ) :
## 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
## 0 0 4 5 6 8 10 11 15 16 881818
10% des arbres ont une hauteur comprise entre 12 et 881818 mètres: il y a donc quelques
arbres, au moins un, dont la hauteur est clairement defectueuse, on peut supposer qu’il s’agit
d’une erreur de saisie ou d’ encodage des données (les plus hauts arbres font autour de
120m). On constate aussi qu’au moins 10% des données ont une hauteur nulle.
En affichant l’histogramme de cette variable, R a donc du afficher une colonne aux alentours
de la valeur 881818, dont la hauteur est vraisemblablement très faible (1 ou 2 individus), en
tout cas si faible qu’on ne la distingue pas : son épaisseur est dans le trait de l’axe des x
Nous allons donc filtrer les données, pour ne conserver que les arbres dont la hauteur est
comprise entre 1 et 60 mètres, ce qui me semble correct comme intervalle pour des hauteurs
d’arbres parisiens, mais qui pourrait être discuté. De même , on écarte les arbres dont le tronc
excède 2500 cm :
On voit ici comme la représentation graphique des variables nous renseigne à deux niveaux :
elle nous indique la présence de valeurs aberrantes lors de son affichage “brut,” et une fois
filtrée, elle nous montre comment la population varie dans les valeurs de ses variables.
hist(x)
Supposons que nous ayons un fichier au format CSV , voici comment le transformer en
dataframe et en tirer un histogramme :
## [7] "Densité.d.habitants..hab.km2."
theme_light()
plt1
2.4.2 Histogramme et variable qualitative
x <- sample(month.name, 2500, replace=T) # month.name est la liste des noms de mois.
barplot(tx , las=2)
Nous allons maintenant voir comment décrire la forme de la répartition de ces valeurs avec
des mesures statistiques. La première d’entre elles est la tendance
2.5 La Tendance
Les distributions de variables dans les données du monde réel sont rarement constantes ou
uniformes. Elles exhibent ce qu’on appelle une tendance, c’est-à-dire une valeur autour de
laquelle se retrouvent la majorité des individus.
Si la forme de la distribution est suffisamment régulière, cette tendance peut servir de résumé
statistique de la variable de la population.
2.5.1 Moyenne(s)
n
1
x̄ = ∑ xi
n
i=0
Lorsque des poids pi sont affectés aux individus, la moyenne pondérée s’écrit :
n
1
x̄ = ∑ p i xi
n
∑ pi
i=0 i=0
Inconvénients :
Pour y remédier :
n
x̄geom =
n ∏ xi
⎷
i=0
Elle a l’avantage d’être moins sensible à la présence de valeurs extrêmes que la moyenne
algébrique.
La moyenne quadratique (par fois appelée RMS pour Root Mean Square in english) est
définie ainsi:
Elle s’écrit :
n
1
2
x̄quad = ∑ x
i
⎷ n
i=0
Moyenne glissante
Ce n’est pas une moyenne comme les autres, au sens où elle ne résume pas
toute une série de valeurs
Par exemple, pour une moyenne glissante sur une fenêtre de taille 10, la
valeur en chaque points xi à la position i dans la série temporelle (on
suppose que i > 5 ) vaut la moyenne des de xi et des 10 valeurs
environnantes, 5 en avant , 5 en arrière :
j=i+5
1
x̄ = ∑ xj
11
j=i−5
2.5.2 Mode
Le mode d’une variable est la valeur la plus fréquente ( d’effectif maximum) d’une variable.
Si la variable est quantitative et continue, il faut découper l’étendue de la variable (la
différence entre la valeur maximum et minimum) en intervalle égaux , puis réaliser une
classification des individus dans ces intervalles et un comptage des effectifs de chaque
classe.
Dans ce cas, le mode est la moyenne des valeurs min et max des bornes de la classe
de plus grand effectif.
Par définition le mode est unique, mais on peut appeler modes les valeurs
des autres pics d’une distribution
On parle de distribution bi-modale ou tri-
modale lorsqu’une distribution présente deux ou trois pics.
Les valeurs
modales d’une distribution sont les valeurs correspondant à) ces pics.
Voici
l’histogramme d’une variable dont la distribution est trimodale:
Avantages :
Inconvénients :
le mode ne dépends pas de toutes les observations : la modification d’une seule valeur
n’entraîne pas une modification du mode. Cet inconvénient explique sa robustesse aux
valeurs extrêmes
2.5.3 Médiane
La médiane est la valeur qui partage une série de valeurs en deux sous-ensembles d’égal
effectif
Comme en géométrie, la médiane est la valeur de la variable qui est la plus proche de toutes
les autres.
3. si n impair, la valeur médiane est V [rg] . Si n est pair, la valeur médiane est entre deux
valeurs et est égale à la moyenne de V[
n
2
] et V[
n
2
− 1]
Dans cet algo , on suppose qu’on compte les cellules d’un tableau à partir de 0, comme en python. En R, où on
Avantages :
Inconvénient :
Comme le mode, la médiane ne dépend pas de toutes les observations : la modification d’une
seule valeur n’entraine pas une modification de la médiane.
Notons que la robustesse de la médiane est bien utile dans le cas de distribution
particulièrement asymétriques, où la moyenne est dégradée par les valeurs extrêmes, à droite
(valeurs très élevées) ou à gauche (valeurs très faibles).
Prenons un exemple avec les revenus mensuels en équivalent temps plein en France en 2016
: le revenu mensuel net moyen est de 2 238 €, le revenu mensuel net médian est de 1 789 € :
selon l’[https://www.insee.fr/fr/statistiques/4277680?sommaire=4318291]
Supposons qu’on cherche à évaluer si un salaire mensuel net équivalent temps plein de
2000€ est un bon salaire en France, sans définir trop rigoureusement ce qui signifie «bon».
2000€ est inférieur à la moyenne du pays, on peut le considérer comme trop bas pour
être «bon».
2000€ est supérieur au salaire médian, il est supérieur à (au moins) la moitié des salaires
du pays, et on peut logiquement le considérer comme un «bon» salaire.
Cette double interprétation est due au fait que certains salaires très élevés, mais d’effectifs
peu nombreux, tirent la distribution du salaire vers la droite, et avec eux, la moyenne.
De manière générale , quand les distributions ne sont pas trop «biscornues» (déformées,
asymétriques), la médiane est un bon choix par défaut.
Également, observer l’écart numérique entre médiane et moyenne peut être une bonne
heuristique pour évaluer rapidement l’asymétrie d’une distribution.
Si la distribution n’a pas de longue queue (on dit aussi traîne) , la moyenne et la médiane
sont adaptées.
Si la distribution exhibe plusieurs modes , il faut réaliser une classification puis calculer
médiane et moyenne pour chaque classe.
Le mode est privilégié pour les variables nominales c’est-à-dire des variables
qualitatives dont les modalités ne sont pas ordonnées, et si on désire considérer «le cas
le plus fréquent».
theme_light()
plot1
Dans ce cas tout se passe bien : la distribution ne présente qu’un seul pic, et est symétrique :
médiane et moyenne sont confondues, ce sont deux bons résumés de la tendance de cette
variable, et on peut choisir l’une ou l’autre.
Parfois une variable peut être bimodale, c’est-à-dire lorsque la population est regroupée
autour de deux tendances, dans deux intervalles de valeurs majoritaires.
Voici un exemple:
Que choisir dans un tel cas : moyenne ou médiane ?
… Ni l’une ni l’autre , on voit qu’elles sont peu informatives. Il faudrait dans ce cas établir un
seuil et raisonner sur les deux sous-populations.
2.6 La Dispersion
La dispersion désigne la façon dont les valeurs des variables des individus d’une population
s’écartent de leur tendance.
Dans cet exemple, on voit que les distributions dont l’écart-type est important ont beaucoup
d’individus éloignées de leur moyenne (qui vaut 0).
Cet autre exemple montre un nuage de points formées par deux variables, échantillonnées
selon une loi normale N (0, 1) , de moyenne 0 , et d’écart type 1 (nous allons voir dans un
instant ce que signifie l’écart-type)
coord_equal()+theme_light()
plot1
Dans ce dernier exemple, la dispersion quantifie à quel point les individus s’écartent de la
tendance centrale de X et de celle de Y , ici le point (0,0).
n
1
2
var(X) = ∑ (xi − x̄)
n
i=1
Avec :
X une variable
xi les valeurs de la variables pour les individus de la population
x̄ la moyenne de X
n l’effectif de la population
Les fonctions pour calculer la variance et l’écart-type d’une variable sont var et sd :
xx <- iris$Sepal.Width
var(xx)
## [1] 0.1899794
sd(xx)
## [1] 0.4358663
⚠ Variance et écart type n’ont d’intérêt que pour qualifier des distributions unimodales, et (à
peu près) symétriques , c’est-à-dire d’une allure proche de la distributions Gaussienne.
Si c’est le cas , alors la valeur de l’écart-type nous rend bien des services , puisque qu’il nous
donne la largeur de la tranche autour de la moyenne qui prend un certaine proportion de la
population, en rouge et bleu dans l’image ci-dessous:
2
L’intervalle [−σ; σ] contient environ 3
de l’effectif
2.6.2 Quantiles
Nous avons vu que la médiane d’une variable sépare une population en deux classes d’égal
effectif selon la valeur de cette variable (quantitative).
En pratique, toutes les valeurs de n ∈ N ne sont pas utilisées. Les cas les plus courants sont
:
2.6.2.1 Quartiles
Les quartiles d’une variable X sont trois valeurs, Q1 , Q2 , Q3 qui séparent la population en
quatre classes d’égal effectif selon leur valeur de la variable :
Les déciles sont les 9 quantiles Q1 , Q2 , … , Q9 qui séparent une population selon la valeur
d’une variable quantitative en 10 classes d’égal effectif.
Avantages :
les quantiles sont peu sensibles aux distributions aplaties et aux valeurs extrêmes,
(puisque seuls les quantiles des extrémités de l’étendue de la variable sont concernés, et
ne perturbent pas les autres)
L’écart inter-quantile est plus robuste que l’écart-type aux valeurs extrêmes (pour cette
même raison: les valeurs extrêmes de la variables ne sont pas prises en compte dans
son calcul)
Inconvénients :
leur calcul peut s’avérer délicat pour les variables quantitatives discrètes
les écarts inter-quantiles négligent l’influence des valeurs extrêmes sur la distribution,
entraînant un risque de “passer à côté” d’individus ou évènements critiques.
Les écarts inter-quantiles sont partiaux : l’écart inter-quartile néglige 50% de la population
!
boxplot(iris$Sepal.Width ~ iris$Species)
Les extrémités des moustaches vont jusqu’à la plus grande (resp. la plus petite ) valeur
inférieure (resp. supérieure) à 1.5 fois l’écart interquartile
Les valeurs qui dépassent les moustaches sont affichées sous formes de points
plot1
On peut voir un boxplot comme un résumé de distribution “vue du dessus,” comme dans
l’exemple ci-dessous où sont alignés (à quelques pixels près) un histogramme et un boxplot
de la même variable:
σx
CV (X) =
x̄
Comme l’écart type est une sorte de “quantité d’écart à la moyenne,” il est parfois difficile
d’interpréter directement sa valeur numérique, qui dépend des unités de la variables. Ici
pour le CV le fait de diviser par la moyenne normalise en quelque sorte cette mesure et
permet d’avoir une mesure un peu plus absolue de la dispersion de la variable, quelle
que soit son unité et son intervalle de valeurs.
Cela permet par exemple de comparer la dispersion de variables quantitatives entre elles
!
Interpréter la dispersion d’une seule variable est un exercice un peu vain: tenter de décider si
la dispersion des valeurs d’une variable d’une population autour de sa moyenne est «notable»
n’a pas beaucoup de sens si nous n’avons pas une valeur de référence qui nous permette de
qualifier la dispersion calculée par comparaison.
Or, il n’existe pas de telle valeur de
référence. Nous ne pouvons pas donner de règle générale de la forme «si l’écart type
σtutu > 5 , vous avez un problème !»
En revanche il est beaucoup plus aisé et pertinent de comparer la dispersion d’une variable
avec celle d’une autre.
Prenons un exemple :
moyenne écart-type
Commune A 390€ σA = 30
Commune B 152€ σB = 8
σB
CVB = = 0.052631
x¯B
Si nous avions des données réelles, nous aurions pu (et même dû, puisque c’est la première
chose à faire) répondre également par comparaison visuelle des distributions de la variable.
Pour avoir des données à tracer, j’ai échantillonné 1000 individus (c’est beaucoup pour un
nombre d’association, mais ça permet d’avoir des distributions graphiquement plus lisses)
selon des lois normales aux caractéristiques (moyenne et écart type) des communes.
hist(A, probability = T)
lines(density(A), col="red")
hist(B, probability = T)
lines(density(B), col="red")
C’est paradoxal : les distributions ont la même allure, alors que leur coefficient de variations
sont différents. Pourquoi?
Parce que pour comparer visuellement la dispersion de deux variables, il faut une échelle
commune , pour que les écarts en x et en y soit comparables.
Cette remarque est valable que les deux distributions soient représentées sur des graphiques
juxtaposés ou non.
Recommencçons l’affichage en fixant l’échelle pour les deux distributions:
par(mfrow=c(1, 2))
lines(density(A), col="red")
lines(density(B), col="red")
On retrouve alors que la distribution de la commune B est beaucoup plus piquée que la
distribution de la commune A : les valeurs sont resserrées autour de la moyenne et s’en
écartent peu, en tout cas beaucoup moins que dans la distribution de la commune A.
Les
aides de la commune B sont donc plus homogènes.
2.7 La Forme
La forme d’une distribution est décrite par deux caractéristiques : sa symétrie (ou son
asymétrie) et son applatissement.
2.7.1 Asymétrie
L’asymétrie d’une distribution est positive si les valeurs les plus fréquentes (i.e. celles du pic)
sont à gauche et la queue de distribution (due à quelques valeurs très élevées
surreprésentées) est à droite .
L’asymétrie est négative si les valeurs les plus fréquentes (i.e. celles du pic) sont à droite et
la queue de distribution (due à des valeurs très faibles surreprésentées) est à gauche
2.7.1.1 les Coefficients d’asymétrie de Pearson
Il existe deux mesures simples pour estimer l’asymétrie (skewness in english) d’une
distribution d’une variable :
x̄ − mode(X)
C1 =
σx
et sa version “normalisée”
3(x̄ − mediane(X))
C2 =
σx
Au passage :
library(moments)
skewness(iris$Sepal.Length)
## [1] 0.3117531
une courbe de distribution piquée indique peu de variations dans les valeurs, une distribution
relativement homogène, avec beaucoup de valeurs égales ou proches de la moyenne.
Au passage :
Il existe néanmoins des distributions à kurtosis élevé, sans pour autant que leur variance (ou
écart-type ) le soit. Par exemple ,la distribution de Laplace :
2.7.2.3 Calculer le kurtosis avec R
library(moments)
kurtosis(iris$Sepal.Length)
## [1] 2.426432
les distributions dont les formes sont particulièrement irrégulières sont délicates à
appréhender (et représenter). Parfois, il est possible d’améliorer les choses en utilisant des
transformations mathématiques.
x ↦ x
2
pour une distribution asymétrique à gauche ou x ↦ x
3
si très asymétrique .
(Élever des choses au carré amplifie les petites valeurs))
Cela permet de repérer les valeurs extrêmes (< 2σ ou > 2σ ) , du moins si la distribution
n’est pas trop irrégulière.
C’est utile pour comparer des individus selon un grand nombre de variables
Cela permet aussi de comparer des variables définies sur des intervalles de valeurs très
différentes
Les indicateurs traditionnels sont plus efficaces lorsque la variabilité des valeurs est moindre,
et leur distribution plus symétrique.
e.g. Considérer la population moyenne des villes de France a-t’elle du sens ?
Pour mieux voir la distribution et les écarts, on trace la taille des villes en fonction de leur
rang
Lorsqu’on rencontre des distributions aussi piquée, on peut chercher à appliquer une
transformation monotone, bijective et inversible qui “aplatisse” la distribution.
Cela aura aussi pour conséquence de mesurer façon plus robuste la tendance, dispersion et
forme de la distribution (puisqu’elle sera moins éparpillée)
Ici, on choisit le logarithme décimal, qu’on va appliquer sur les ordonnées du graphique grâce
à la fonction scale_y_log10()
Cette transformation fait apparaître une régularité “linéaire” qu’il sera facile d’ajuster par une
régression linéaire.