Documentation du code de SPIP et de ses plugins

Librairie Mathématique & Statistique

ezmath_statistique.php

Ce fichier contient les fonctions de statistique descriptive.

Seules les séries quantitatives sont prises en compte (valeurs numériques).

Table of Contents

Functions

serie_statistiques()  : null|array<string|int, mixed>
Renvoie, pour une série quantitative donnée, la liste des indicateurs de position, de dispersion et de forme.
serie_mode()  : null|array<string|int, mixed>
Calcule le mode d'une série de valeurs.
serie_moyenne()  : null|float
Calcule la moyenne arithmétique d'une série de valeurs.
serie_moyenne_geometrique()  : null|float
Calcule la moyenne géométrique d'une série de valeurs.
serie_moyenne_harmonique()  : null|float
Calcule la moyenne harmonique d'une série de valeurs.
serie_moyenne_ponderee()  : null|float
Calcule la moyenne d'une série de valeurs pondérée par une liste de poids.
serie_mediane()  : null|float
Calcule la médiane d'une série de valeurs.
serie_centile()  : null|float
Calcule le p-ième centile d'une série de valeurs.
serie_quantiles()  : null|array<string|int, mixed>
Calcule les quantiles d'une série de valeurs pour un ordre donné.
serie_quartiles()  : null|array<string|int, mixed>
Calcule les quartiles d'une série de valeurs, c'est-à-dire les 3 quantiles d'ordre 4, nommés Q₁, Q₂ et Q₃.
serie_etendue()  : null|float
Calcule l'étendue d'une série de valeurs.
serie_interquartile()  : null|float
Calcule la distance interquartile.
serie_variance()  : null|float
Calcule la variance d'une série de valeurs.
serie_ecart_type()  : null|float
Calcule l'écart type d'une série de valeurs.
serie_moment()  : null|float
Calcule le moment à l'origine ou centré d'ordre `p`, pour `p` supérieur à 1.
serie_asymetrie_fisher()  : null|float
Calcule le coefficient d'asymétrie de Fisher à partir du moment centré d'ordre 3.
serie_asymetrie_yule()  : null|float
Calcule le coefficient d'asymétrie de Yule à partir des quartiles.
serie_asymetrie_pearson()  : null|float
Calcule le coefficient d'asymétrie de Pearson à partir de la médiane (asymétrie de médiane).
serie_kurtosis_pearson()  : null|float
Calcule le coefficient d'aplatissement - kurtosis - de Pearson à partir du moment centré d'ordre 4.
serie_kurtosis_fisher()  : null|float
Calcule le coefficient d'aplatissement - kurtosis - de Fisher qui normalise le coefficient d'aplatissement de Pearson.
serie_autocorrelation_geary()  : null|float
Calcule l'indice de Geary qui mesure l'autocorrélation spatiale qui exprime la corrélation des observations adjacentes d'un même phénomène.

Functions

serie_statistiques()

Renvoie, pour une série quantitative donnée, la liste des indicateurs de position, de dispersion et de forme.

serie_statistiques(array<string|int, mixed> $serie[, bool $correction_bessel = false ]) : null|array<string|int, mixed>

L'indice de Geary n'est pas renvoyé (requiert des données autres que la série elle-même).

Parameters
$serie : array<string|int, mixed>

Tableau représentant la série

$correction_bessel : bool = false

Indique si la correction de Bessel doit être appliquée sur la variance et l'écart-type (défaut false, aucune correction)

Return values
null|array<string|int, mixed>

Liste des indicateurs statistiques (position, dispersion et forme) ou null si erreur (série vide). Chaque indicateur vaut null s'il n'est pas calculable sur la série fournie.

serie_mode()

Calcule le mode d'une série de valeurs.

serie_mode(array<string|int, mixed> $serie) : null|array<string|int, mixed>

Le mode est la valeur distincte correspondant à l’effectif le plus élevé. Il n'est pas nécessairement unique.

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

Return values
null|array<string|int, mixed>

Tableau des modes même si la série ne possède qu'un seul mode ou null si erreur (série vide).

serie_moyenne()

Calcule la moyenne arithmétique d'une série de valeurs.

serie_moyenne(array<string|int, mixed> $serie) : null|float

∑⟮xᵢ⟯ µ = ----- où xᵢ désigne la ième valeur de la série et n l'effectif de la série n

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

Return values
null|float

Valeur de la moyenne ou null si erreur (série vide).

serie_moyenne_geometrique()

Calcule la moyenne géométrique d'une série de valeurs.

serie_moyenne_geometrique(array<string|int, mixed> $serie) : null|float

La moyenne géométrique n'est définie que sur des valeurs positives ou nulles.

G = ⁿ√∏⟮xᵢ⟯ où xᵢ désigne la ième valeur de la série et n l'effectif de la série

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

Tags
note

Le calcul passe par la somme des logarithmes - G = exp(∑ln⟮xᵢ⟯/n) - et non par le produit direct des valeurs qui dépasserait très vite la capacité des flottants (INF) sur des séries un peu longues.

Return values
null|float

Valeur de la moyenne ou null si erreur (série vide ou contenant une valeur négative).

serie_moyenne_harmonique()

Calcule la moyenne harmonique d'une série de valeurs.

serie_moyenne_harmonique(array<string|int, mixed> $serie) : null|float

n H = ------- où xᵢ désigne la ième valeur de la série et n l'effectif de la série ∑(1/xᵢ)

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

Return values
null|float

Valeur de la moyenne ou null si erreur (série vide, contenant une valeur nulle ou dont la somme des inverses est nulle).

serie_moyenne_ponderee()

Calcule la moyenne d'une série de valeurs pondérée par une liste de poids.

serie_moyenne_ponderee(array<string|int, mixed> $serie, array<string|int, mixed> $poids) : null|float

∑⟮wᵢxᵢ⟯ P = ------ où xᵢ désigne la ième valeur de la série et wᵢ le ième poids ∑⟮wᵢ⟯

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

$poids : array<string|int, mixed>

Tableau des poids de même taille que la série.

Return values
null|float

Valeur de la moyenne ou null si erreur (série vide ou liste de poids invalide).

serie_mediane()

Calcule la médiane d'une série de valeurs.

serie_mediane(array<string|int, mixed> $serie) : null|float

n+1

  • si n est impair : M = --- ème valeur de la série 2 n n
  • si n est pair : M = la moitié de la somme de la - ème et de la -+1 ème valeurs de la série 2 2.
Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

Return values
null|float

Valeur de la médiane ou null si erreur (série vide).

serie_centile()

Calcule le p-ième centile d'une série de valeurs.

serie_centile(array<string|int, mixed> $serie, float $p) : null|float

La méthode utilisée correspond au type 6 de la fonction quantile() du langage R, recommandée par le NIST. p(n+1)

  1. Le rang k est calculé de la façon suivante : k = ------ 100
  2. La valeur k est ensuite séparée en deux valeurs, sa partie entière (e) et sa partie décimale (d). Le centile est ensuite déterminé selon la règle suivante (avec xᵢ la ième valeur observée dans la série ordonnée) :
    • si e = 0 alors le centile est v₁ (la première valeur observée)
    • si e >= n alors le centile est vₙ (la dernière valeur observée)
    • sinon le centile se calcule par interpolation linéaire et est égale à : vₑ + d*(vₑ₊₁ - vₑ).
Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

$p : float

Le centile à calculer, non nécessairement entier (ex: 33.33 pour le premier tercile).

Tags
note

Le type 6 n'est pas le type par défaut de la fonction quantile() de R qui utilise le type 7 : les valeurs renvoyées ici peuvent donc différer de celles de R si ce dernier est appelé sans préciser type = 6.

Return values
null|float

Valeur du p-ième centile ou null si erreur (série vide)

serie_quantiles()

Calcule les quantiles d'une série de valeurs pour un ordre donné.

serie_quantiles(array<string|int, mixed> $serie, int $ordre) : null|array<string|int, mixed>

Les ordres les plus utilisés sont :

  • 2 : médiane
  • 4 : quartiles
  • 5 : quintiles
  • 10 : déciles
  • 100 : centiles.
Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

$ordre : int

Valeur de l'ordre

Return values
null|array<string|int, mixed>

Tableau des ($ordre-1) quantiles pour l'ordre choisi ou null si erreur (série vide).

serie_quartiles()

Calcule les quartiles d'une série de valeurs, c'est-à-dire les 3 quantiles d'ordre 4, nommés Q₁, Q₂ et Q₃.

serie_quartiles(array<string|int, mixed> $serie) : null|array<string|int, mixed>
Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

Return values
null|array<string|int, mixed>

Tableau des 3 quartiles ou null si erreur (série vide).

serie_etendue()

Calcule l'étendue d'une série de valeurs.

serie_etendue(array<string|int, mixed> $serie) : null|float

E = max(x) - min(x) où x est la variable représentée par la série de valeurs

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

Return values
null|float

Valeur de l'étendu de la série ou null si erreur (série vide).

serie_interquartile()

Calcule la distance interquartile.

serie_interquartile(array<string|int, mixed> $serie) : null|float

IQ = Q₃ - Q₁

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

Return values
null|float

Distance interquartile ou null si erreur (série vide)

serie_variance()

Calcule la variance d'une série de valeurs.

serie_variance(array<string|int, mixed> $serie[, bool $correction_bessel = false ]) : null|float

Le calcul dépend du contexte choisi, à savoir, de tenir compte ou pas de la correction de Bessel pour les échantillons. Ce contexte se règle via le paramètre $correction_bessel (défaut false, aucune correction).

  ∑⟮xᵢ - μ⟯²

σ² = --------- où xᵢ désigne la ième valeur de la série, μ la moyenne arithmétique et ν les degrés de liberté ν qui coincide avec l'effectif de la série, n, ou avec n-1 (correction de Bessel)

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

$correction_bessel : bool = false

Indique si la correction de Bessel doit être appliquée ou pas (défaut)

Return values
null|float

Variance (corrigée ou non) ou null si erreur (série vide ou réduite à un élément si Bessel)

serie_ecart_type()

Calcule l'écart type d'une série de valeurs.

serie_ecart_type(array<string|int, mixed> $serie[, bool $correction_bessel = false ]) : null|float

Le calcul dépend du contexte comme pour la variance.

σ = √⟮σ²⟯ où σ² désigne la variance corrigée ou non.

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

$correction_bessel : bool = false

Indique si la correction de Bessel doit être appliquée ou pas (défaut)

Return values
null|float

Ecart type (corrigé ou non) ou null si erreur (série vide ou réduite à un élément si Bessel)

serie_moment()

Calcule le moment à l'origine ou centré d'ordre `p`, pour `p` supérieur à 1.

serie_moment(array<string|int, mixed> $serie, int $ordre[, null|bool $centre = true ]) : null|float
  • Moment à l'origine : ∑⟮xᵢ⟯ᴾ m'ₚ = ------- où xᵢ désigne la ième valeur de la série et p l'ordre n
  • Moment centré : ∑⟮xᵢ - µ⟯ᴾ m'ₚ = --------- où xᵢ désigne la ième valeur de la série, µ la moyenne arithmétique et p l'ordre n
Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

$ordre : int

Valeur de d'ordre du moment (puissance)

$centre : null|bool = true

Indique si on veut le moment à l'origine ou le moment centré (défaut)

Tags
note

Le moment m'₁ correspond à la moyenne µ et le moment centré m₂ à la variance (non corrigée).

Return values
null|float

Moment centré ou pas d'ordre p ou null si erreur (série vide)

serie_asymetrie_fisher()

Calcule le coefficient d'asymétrie de Fisher à partir du moment centré d'ordre 3.

serie_asymetrie_fisher(array<string|int, mixed> $serie) : null|float

m₃ γ₁ = ---- où m₃ est le moment centré d'ordre 3 et σ l'écart type de la série de valeurs. σ³

L'interprétation du coefficient est le suivant:

  • γ₁ = 0 pour une distribution symétrique,
  • γ₁ > 0 pour une distribution asymétrique à gauche,
  • γ₁ < 0 pour une distribution asymétrique à droite.
Parameters
$serie : array<string|int, mixed>
Return values
null|float

serie_asymetrie_yule()

Calcule le coefficient d'asymétrie de Yule à partir des quartiles.

serie_asymetrie_yule(array<string|int, mixed> $serie) : null|float

(Q₃ + Q₁ - 2Q₂ ) Yₖ = ----------------- où Qᵢ désigne chacun des 3 quartiles. (Q₃ - Q₁)

L'interprétation est la même que pour le coefficient de Fisher sachant que -1 ≤ Yₖ ≤ 1.

Parameters
$serie : array<string|int, mixed>
Return values
null|float

serie_asymetrie_pearson()

Calcule le coefficient d'asymétrie de Pearson à partir de la médiane (asymétrie de médiane).

serie_asymetrie_pearson(array<string|int, mixed> $serie) : null|float

3(µ - M) Sₖ = -------- où µ désigne la moyenne arithmétique, M la médiane et σ l'écart type. σ

L'interprétation est la même que pour le coefficient de Fisher sachant que -3 ≤ Sₖ ≤ 3.

Parameters
$serie : array<string|int, mixed>
Return values
null|float

serie_kurtosis_pearson()

Calcule le coefficient d'aplatissement - kurtosis - de Pearson à partir du moment centré d'ordre 4.

serie_kurtosis_pearson(array<string|int, mixed> $serie) : null|float

m₄ β₂ = ---- où m₄ désigne le moment centré d'ordre 4 et σ l'écart type. σ⁴

Le coefficient β₂ >= 1 et oscille autour de 3 pour une distribution normale. C'est pourquoi on utilise souvent le coefficient de Fisher.

Parameters
$serie : array<string|int, mixed>
Return values
null|float

serie_kurtosis_fisher()

Calcule le coefficient d'aplatissement - kurtosis - de Fisher qui normalise le coefficient d'aplatissement de Pearson.

serie_kurtosis_fisher(array<string|int, mixed> $serie) : null|float

γ₂ = β₂ - 3

L'interprétation du coefficient est le suivant:

  • γ₂ = 0 kurtosis normale (mésokurtique), la distribution a une forme similaire à une distribution normale
  • γ₂ > 0 kurtosis positif (leptokurtique), la distribution est plus concentrée au centre avec des queues épaisses
  • γ₂ < 0 kurtosis négatif (platykurtique), la distribution est plus aplatie avec des queues fines
Parameters
$serie : array<string|int, mixed>
Return values
null|float

serie_autocorrelation_geary()

Calcule l'indice de Geary qui mesure l'autocorrélation spatiale qui exprime la corrélation des observations adjacentes d'un même phénomène.

serie_autocorrelation_geary(array<string|int, mixed> $serie, array<string|int, mixed> $ponderation) : null|float

(N-1) ∑ ∑wᵢⱼ⟮xᵢ - xⱼ⟯² i j C = --------------------- où N désigne le nombre de valeurs de la série x, (wᵢⱼ) la matrice de pondération spatiale 2W∑⟮xᵢ - µ⟯² et W la somme des wᵢⱼ

La valeur de l'indice de Geary s'étend de 0 à 2 :

  • = 1 : signifie qu'aucune autocorrélation spatiale n'est présente dans les mesures effectuées.
  • < 1 : signifie une autocorrélation spatiale positive (valeurs similaires sont proches les unes des autres).
  • 1 : signifie une autocorrélation spatiale négative (valeurs dissimilaires sont proches les unes des autres).

Parameters
$serie : array<string|int, mixed>

Tableau des valeurs de la série.

$ponderation : array<string|int, mixed>

Matrice de pondération spatiale

Return values
null|float

Indice ou null si erreur (série ou coordonnées vides ou incohérents, série constante ou pondération toute nulle)


        
On this page

Search results