ezmath_discretisation.php
Ce fichier contient les fonctions d'API permettant la discrétisation d'une série de données quantitatives.
Table of Contents
Constants
- _EZMATH_TAI_METHODE = 'moyenne'
- Indique la méthode de calcul du TAI avec la moyenne ou la valeur centrale (défaut `moyenne`).
Functions
- serie_indice_huntsberger() : null|float
- Calcule l'indice de Hunstberger qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée uniquement sur l'effectif.
- serie_indice_brooks() : null|float
- Calcule l'indice de Brooks qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée uniquement sur l'effectif.
- serie_indice_yule() : null|float
- Calcule l'indice de Yule qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée uniquement sur l'effectif.
- serie_indice_scott() : null|float
- Calcule l'indice de Scott qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée sur l'effectif, l'étendue et l'écart type.
- serie_indice_diaconis() : null|float
- Calcule l'indice de Freedman-Diaconis qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée sur l'effectif, l'étendue et la distance interquartile.
- serie_discretisation() : array<string|int, mixed>
- Discrétise une série de valeurs en un nombre de classes donné en appliquant une méthode de discrétisation choisie parmi les méthodes mathématiques ou statistiques classiques et, eventuellement, en transformant mathématiquement la série pour la normaliser.
- classe_equivalence() : array<string|int, mixed>
- Construit, pour une série de valeur, la liste des classes d'égales étendues.
- classe_progression_arithmetique() : array<string|int, mixed>
- Construit, pour une série de valeur, la liste des classes selon une progression arithmétique.
- classe_progression_geometrique() : array<string|int, mixed>
- Construit, pour une série de valeur, la liste des classes selon une progression géométrique.
- classe_quantile() : array<string|int, mixed>
- Construit, pour une série de valeur, la liste des classes basée sur les quantiles (effectifs égaux).
- classe_standard() : array<string|int, mixed>
- Construit, pour une série de valeur, la liste des classes standardisées (moyenne et écart-type).
- classe_standard_k() : array<string|int, mixed>
- Construit, pour une série de valeur, la liste des classes standardisées (moyenne et écart-type) en adaptant l'étendue de chaque classe pour que celles-ci restent incluses dans le domaine de la série.
- classe_standard_cote_z() : array<string|int, mixed>
- Construit, pour une série de valeur, la liste des classes basée la méthode des cotes Z.
- classe_moyenne_emboitee() : array<string|int, mixed>
- Construit, pour une série de valeur, la liste des classes basée sur les moyennes emboîtées.
- classe_jenks() : array<string|int, mixed>
- Construit, pour une série de valeur, la liste des classes basée sur les ruptures naturelles de Jenks.
- serie_ruptures_naturelles() : array<string|int, mixed>
- Détermine les ruptures naturelles d'une série de valeurs par l'algorithme exact de Fisher-Jenks.
- discretisation_indice_tai() : null|float
- Calcule l'indice TAI de Jenks (Tabular Accuracy Index) qui permet d'évaluer l'homogénéité d'une discrétisation.
- discretisation_indice_i() : null|float
- Calcule l'indice I donné par le rapport des variances (ou des sommes carrées) intra et inter classes qui donne une information sur l'homogénéité des classes.
- discretisation_indice_redondance() : null|float
- Calcule l'indice de redondance (dérivé de l'entropie de Shannon) qui mesure le niveau d'information apporté par la discrétisation.
- discretisation_indice_d() : null|float
- Calcule l'indice D de Jenks qui permet d'évaluer la qualité d'une discrétisation.
- discretisation_indice_c() : null|float
- Calcule l'indice C de Geary qui permet d'évaluer la qualité d'une discrétisation.
- discretisation_ssw_ssb() : array<string|int, mixed>
- Calcule la sommes des carrés intra et inter classes qui donne une information sur l'homogénéité des classes.
- classe_nb_constructible() : null|int
- Détermine le nombre de classes réellement constructible pour une série de valeurs donnée.
- classe_trouver() : null|int
- Détermine l'index de la classe (intervalle) dans laquelle se trouve une valeur.
- serie_couper() : array<string|int, mixed>
- Scinde une série de valeurs en deux séries de part et d'autre d'une valeur donnée.
- serie_transtyper() : array<string|int, mixed>
- Transtype les valeurs d'une série dans un type numérique donné.
- serie_transformer() : array<string|int, mixed>
- Transforme les valeurs d'une série en appliquant une fonction donnée à chaque valeur.
- valeur_transformer() : float
- Transforme une valeur entière ou réelle en appliquant une fonction donnée.
- expa() : float
- Calcule l'exponentielle pour une base donnée.
Constants
_EZMATH_TAI_METHODE
Indique la méthode de calcul du TAI avec la moyenne ou la valeur centrale (défaut `moyenne`).
public
mixed
_EZMATH_TAI_METHODE
= 'moyenne'
Correspond au choix de la variable μₖ dans la formule.
Functions
serie_indice_huntsberger()
Calcule l'indice de Hunstberger qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée uniquement sur l'effectif.
serie_indice_huntsberger(array<string|int, mixed> $serie) : null|float
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
Return values
null|float —Indice ou null si erreur (série vide)
serie_indice_brooks()
Calcule l'indice de Brooks qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée uniquement sur l'effectif.
serie_indice_brooks(array<string|int, mixed> $serie) : null|float
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
Return values
null|float —Indice ou null si erreur (série vide)
serie_indice_yule()
Calcule l'indice de Yule qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée uniquement sur l'effectif.
serie_indice_yule(array<string|int, mixed> $serie) : null|float
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
Return values
null|float —Indice ou null si erreur (série vide)
serie_indice_scott()
Calcule l'indice de Scott qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée sur l'effectif, l'étendue et l'écart type.
serie_indice_scott(array<string|int, mixed> $serie) : null|float
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
Return values
null|float —Indice ou null si erreur (série vide, réduite à un élément ou d'écart type nul)
serie_indice_diaconis()
Calcule l'indice de Freedman-Diaconis qui permet de définir le nombre de classes optimale pour la discrétisation d'une série de valeurs en utilisant une formule basée sur l'effectif, l'étendue et la distance interquartile.
serie_indice_diaconis(array<string|int, mixed> $serie) : null|float
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
Return values
null|float —Indice ou null si erreur (série vide ou de distance interquartile nulle)
serie_discretisation()
Discrétise une série de valeurs en un nombre de classes donné en appliquant une méthode de discrétisation choisie parmi les méthodes mathématiques ou statistiques classiques et, eventuellement, en transformant mathématiquement la série pour la normaliser.
serie_discretisation(array<string|int, mixed> $serie[, null|string $methode = 'equivalence' ][, null|int $nb_classes = 5 ][, null|array<string|int, mixed> $transformation = [] ]) : array<string|int, mixed>
Les méthodes mathématiques disponibles sont :
- discrétisation en classes d'égales étendues (
equivalence) - discrétisation selon une progression arithmétique (
progression_arithmetique) - discrétisation selon une progression géométrique (
progression_geometrique)
Les méthodes statistiques disponibles sont :
- discrétisation selon les quantiles (
quantile) - discrétisation selon la moyenne et l'écart-type (
standard) - discrétisation selon les moyennes emboîtées (
moyenne_emboitee) - discrétisation de Jenks basée sur la notion de variance (
jenks)
Pour toutes les méthodes sauf celle de Jenks, les intervalles de classes sont fermés à gauche et ouverts à droite. Dans le cas de la méthode de Jenks, c'est le contraire.
Les transformations mathématiques autorisées sont : puissance, racine, logarithme, box-cox, 1/x et les fonctions inverses.
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $methode : null|string = 'equivalence'
-
Identifiant de la méthode de discrétisation (par défaut, égales étendues)
- $nb_classes : null|int = 5
-
Nombre de classes de la discrétisation (défaut 5 sauf pour les moyennes emboitées)
- $transformation : null|array<string|int, mixed> = []
-
Opération mathématique à appliquer à la valeur décrite sous forme de tableau :
- string
fonction: fonction mathématique PHP à appliquer - float
parametre: le parametre éventuel de la fonction PHP autre que la valeur (null sinon) - bool
inverser: indique si on doit inverser la valeur transformée
- string
Return values
array<string|int, mixed> —Tableau des classes et de la série discrétisée, à savoir :
- index
serie_classe: la série avec les index conservé et les valeurs remplacées par l'index de la classe d'appartenance - index
classes: La liste des classes avec pour chaque classe, binfetbsup, les bornes de l'intervalleeffectifetfrequence, le nombre d'éléments et la fréquencecentre, la valeur centrale de la classeetendueetetendue_ponderee, l'étendue et l'étendue pondérée par la moyenne de la classe, cette dernière valantnullpour une classe vide, qui n'a pas de moyenneetendue_ponderee_theorique, l'étendue pondérée par le centre de la classe, valantnullpour une classe centrée sur zéroserie, le tableau des éléménts de la série inclus dans la classe- index
qualite: les indicateurs de la qualité de la discrétisation (TAI, I, et R)
classe_equivalence()
Construit, pour une série de valeur, la liste des classes d'égales étendues.
classe_equivalence(array<string|int, mixed> $serie[, null|int $nb_classes = 5 ]) : array<string|int, mixed>
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int = 5
-
Nombre de classes de la discrétisation (défaut 5)
Return values
array<string|int, mixed> —Tableau des classes, à savoir :
- index
binf: borne inférieure de l'intervalle - index
bsup: borne supérieure de l'intervalle
classe_progression_arithmetique()
Construit, pour une série de valeur, la liste des classes selon une progression arithmétique.
classe_progression_arithmetique(array<string|int, mixed> $serie[, null|int $nb_classes = 5 ]) : array<string|int, mixed>
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int = 5
-
Nombre de classes de la discrétisation (défaut 5)
Return values
array<string|int, mixed> —Tableau des classes, à savoir :
- index
binf: borne inférieure de l'intervalle - index
bsup: borne supérieure de l'intervalle
classe_progression_geometrique()
Construit, pour une série de valeur, la liste des classes selon une progression géométrique.
classe_progression_geometrique(array<string|int, mixed> $serie[, null|int $nb_classes = 5 ]) : array<string|int, mixed>
La progression reposant sur les logarithmes des valeurs, la série doit être strictement positive.
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int = 5
-
Nombre de classes de la discrétisation (défaut 5)
Return values
array<string|int, mixed> —Tableau des classes, à savoir :
- index
binf: borne inférieure de l'intervalle - index
bsup: borne supérieure de l'intervalle Le tableau est vide en cas d'erreur, notamment si la série n'est pas strictement positive.
classe_quantile()
Construit, pour une série de valeur, la liste des classes basée sur les quantiles (effectifs égaux).
classe_quantile(array<string|int, mixed> $serie[, null|int $nb_classes = 5 ]) : array<string|int, mixed>
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int = 5
-
Nombre de classes de la discrétisation (défaut 5)
Return values
array<string|int, mixed> —Tableau des classes, à savoir :
- index
binf: borne inférieure de l'intervalle - index
bsup: borne supérieure de l'intervalle
classe_standard()
Construit, pour une série de valeur, la liste des classes standardisées (moyenne et écart-type).
classe_standard(array<string|int, mixed> $serie[, null|int $nb_classes = 5 ][, null|float $k = 1 ]) : array<string|int, mixed>
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int = 5
-
Nombre de classes de la discrétisation (défaut 5)
- $k : null|float = 1
-
Coefficient appliqué à l'écart-type pour adapter les classes (défaut 1)
Return values
array<string|int, mixed> —Tableau des classes, à savoir :
- index
binf: borne inférieure de l'intervalle - index
bsup: borne supérieure de l'intervalle
classe_standard_k()
Construit, pour une série de valeur, la liste des classes standardisées (moyenne et écart-type) en adaptant l'étendue de chaque classe pour que celles-ci restent incluses dans le domaine de la série.
classe_standard_k(array<string|int, mixed> $serie[, null|int $nb_classes = 5 ]) : array<string|int, mixed>
Pour cela, on calcule un coefficient d'adaptation de l'écart-type toujours compris entre 0 et 1.
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int = 5
-
Nombre de classes de la discrétisation (défaut 5)
Return values
array<string|int, mixed> —Tableau des classes, à savoir :
- index
binf: borne inférieure de l'intervalle - index
bsup: borne supérieure de l'intervalle
classe_standard_cote_z()
Construit, pour une série de valeur, la liste des classes basée la méthode des cotes Z.
classe_standard_cote_z(array<string|int, mixed> $serie[, null|int $nb_classes = 5 ]) : array<string|int, mixed>
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int = 5
-
Nombre de classes de la discrétisation (défaut 5)
Return values
array<string|int, mixed> —Tableau des classes, à savoir :
- index
binf: borne inférieure de l'intervalle - index
bsup: borne supérieure de l'intervalle
classe_moyenne_emboitee()
Construit, pour une série de valeur, la liste des classes basée sur les moyennes emboîtées.
classe_moyenne_emboitee(array<string|int, mixed> $serie[, null|int $nb_classes = 4 ]) : array<string|int, mixed>
Le nombre de classes doit être une puissance de 2, l'emboîtement étant dyadique par construction.
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int = 4
-
Nombre de classes de la discrétisation (défaut 4), puissance de 2
Return values
array<string|int, mixed> —Tableau des classes, à savoir :
- index
binf: borne inférieure de l'intervalle - index
bsup: borne supérieure de l'intervalle Le tableau peut compter moins de classes que demandé si la série ne se subdivise pas assez, et il est vide en cas d'erreur (série non discrétisable, nombre de classes non puissance de 2).
classe_jenks()
Construit, pour une série de valeur, la liste des classes basée sur les ruptures naturelles de Jenks.
classe_jenks(array<string|int, mixed> $serie[, null|int $nb_classes = 5 ]) : array<string|int, mixed>
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int = 5
-
Nombre de classes de la discrétisation (défaut 5)
Return values
array<string|int, mixed> —Tableau des classes, à savoir :
- index
binf: borne inférieure de l'intervalle - index
bsup: borne supérieure de l'intervalle
serie_ruptures_naturelles()
Détermine les ruptures naturelles d'une série de valeurs par l'algorithme exact de Fisher-Jenks.
serie_ruptures_naturelles(array<string|int, mixed> $serie, int $nb_classes) : array<string|int, mixed>
La méthode cherche la partition de la série en $nb_classes classes qui minimise la somme des carrés des
écarts intra-classes, autrement dit celle qui rend les classes les plus homogènes possible tout en les
séparant au mieux les unes des autres. C'est la définition même de la méthode, et elle admet une solution
exacte obtenue par programmation dynamique - il ne s'agit donc pas d'une heuristique.
Le calcul repose sur deux éléments :
-
Le coût d'un segment, c'est-à-dire la somme des carrés des écarts à sa moyenne, s'obtient en temps constant grâce aux sommes cumulées des valeurs et de leurs carrés :
⟮∑xᵢ⟯²coût⟮i,j⟯ = ∑⟮xᵢ²⟯ - ------ où i et j délimitent le segment et n son effectif n
-
La récurrence : le coût minimal d'une partition des
jpremières valeurs enmclasses se déduit du coût minimal d'une partition enm-1classes, en essayant toutes les positions de début possibles pour la dernière classe.
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : int
-
Nombre de classes à construire, au plus égal au nombre de valeurs de la série
Tags
Return values
array<string|int, mixed> —Liste des $nb_classes+1 bornes successives : le minimum de la série, puis la valeur maximale de
chacune des classes. Les intervalles ainsi décrits sont ouverts à gauche et fermés à droite, ce
qui correspond au mode d'inclusion bsup retenu pour cette méthode.
discretisation_indice_tai()
Calcule l'indice TAI de Jenks (Tabular Accuracy Index) qui permet d'évaluer l'homogénéité d'une discrétisation.
discretisation_indice_tai(array<string|int, mixed> $serie, array<string|int, mixed> $classes[, null|string $methode = _EZMATH_TAI_METHODE ]) : null|float
il mesure l'écart entre les valeurs de la série et les valeurs correspondantes des classes. Il compare les écarts (en valeur absolue) des valeurs à la moyenne de chaque classe aux écarts de ces mêmes valeurs à la moyenne générale de la série (toujours en valeur absolue).
K Nₖ
∑ ∑ |xᵢₖ - μₖ|
k=1 i=1
TAI = 1 - -------------------- où K désigne le nombre de classes, N l'effectif de la série, Nₖ l'effectif de la classe k, N xᵢₖ les valeurs xᵢ de la classe k, xᵢ les valeurs de la série, ∑ |xᵢ - μ| μₖ la moyenne de la classe k et μ la moyenne globale de la série i=1
- TAI ∈ [0, 1]
- TAI proche de 1 : la somme des écarts intra-classes est plus faible que la somme des écarts à la moyenne générale. la discrétisation crée des classes homogènes (satisfaisant à partir de 0,8, excellent à partir de 0,9 et médiocre en dessous de 0,7)
- TAI proche de 0 : la somme des écarts intra-classes est peu différente de la somme des écarts à la moyenne générale. la discrétisation crée des classes peu homogènes
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $classes : array<string|int, mixed>
-
Les classes issues de la discrétisation
- $methode : null|string = _EZMATH_TAI_METHODE
-
moyenne(défaut) si μₖ est la moyenne arithmétique,centresi μₖ est le centre de la classe
Return values
null|float —Indice ou null si erreur (série vide)
discretisation_indice_i()
Calcule l'indice I donné par le rapport des variances (ou des sommes carrées) intra et inter classes qui donne une information sur l'homogénéité des classes.
discretisation_indice_i(array<string|int, mixed> $serie, array<string|int, mixed> $classes) : null|float
σ²(intra) SSW I = --------- = ----- où SSW est la somme des carrés intra-classes et SSB la somme des carrés inter-classes σ²(inter) SSB
- I ∈ [0,+∞[
- Plus I est proche de zéro, plus les groupes sont homogènes : excellent en dessous de 0,1, acceptable entre 0,1 et 0,3 et médiocre au-delà.
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $classes : array<string|int, mixed>
-
Les classes issues de la discrétisation
Return values
null|float —Indice ou null si erreur (série vide)
discretisation_indice_redondance()
Calcule l'indice de redondance (dérivé de l'entropie de Shannon) qui mesure le niveau d'information apporté par la discrétisation.
discretisation_indice_redondance(array<string|int, mixed> $serie, array<string|int, mixed> $classes[, null|array<string|int, mixed> $probabilites = [] ]) : null|float
H K R = 1 - ---- où H = - ∑ pᵢLog₂(pᵢ) et Hₘ = Log₂(K) Hₘ k=1
K désigne le nombre de classes et pᵢ la probabilité d'apparition des éléments dans la classe i. H est l'entropie de Shannon de la discrétisation et Hₘ l'entropie maximale atteignable pour K classes, obtenue lorsque celles-ci sont équiprobables.
La probabilité d'apparition pᵢ est, par défaut, calculée à partir des effectifs de classe. Néanmoins, il est possible de calculer cette probabilité en utilisant d'autres concepts comme la surface couverte par le phénomène.
- R ∈ [0, 1], plus R est proche de zéro, plus l'information est importante (l'entropie se rapproche du max pour le nombre de classes choisi).
- R < 0.2 est généralement considéré comme le signe d'une bonne discrétisation.
- 0.2 ≤ R < 0.5, une certaine perte d'information est inévitable, mais la discrétisation est encore acceptable.
- R ≥ 0.5, une grande partie de l'information est perdue, et la discrétisation est probablement sous-optimale
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $classes : array<string|int, mixed>
-
Les classes issues de la discrétisation.
- $probabilites : null|array<string|int, mixed> = []
-
Si non vide, fournit la probabilité pᵢ à utiliser pour chaque classe. Si vide, la probabilité correspond à la fréquence de chaque classe
Return values
null|float —Indice ou null si erreur (série vide)
discretisation_indice_d()
Calcule l'indice D de Jenks qui permet d'évaluer la qualité d'une discrétisation.
discretisation_indice_d(array<string|int, mixed> $classes) : null|float
Il compare les moyennes des classes observées à des moyennes estimées, attendues, en fonction des limites définies. Cet indice mesure l'écart à l'intérieur de chaque classe : plus la somme des écarts est faible, plus l'indice est faible.
1
D = --- ∑|Epᵢ - εpᵢ| où K désigne le nombre de classes, Epᵢ l'étendue pondérée de la classe i, K et εpᵢ l'étendue théorique pondérée de la classe i
- D proche de 0 : la somme des écarts intra-classes est peu différente de la somme des écarts à la moyenne générale.
- D inférieur à 0,1 : excellent
- D entre 0,1 et 0,25 : acceptable
- D supérieur à 0,25 : médiocre
Parameters
- $classes : array<string|int, mixed>
-
Les classes issues de la discrétisation
Tags
Return values
null|float —Indice ou null si erreur (aucune classe, classe vide ou classe centrée sur zéro)
discretisation_indice_c()
Calcule l'indice C de Geary qui permet d'évaluer la qualité d'une discrétisation.
discretisation_indice_c(array<string|int, mixed> $classes, array<string|int, mixed> $ponderation) : null|float
C'est le même calcul qui est fait sur la série - fonction serie_autocorrelation_geary() - mais en ne l'appliquant que sur les classes et non la série elle-même. L'indice obtenu est à comparer à celui de la série initiale.
Plus l'indice est proche de celui de la série, plus la discrétisation sera considérée proche de la répartition initiale. On peut dire :
- inférieur à 10% d'écart est très bon
- jusqu'à 25% c'est acceptable
- au-delà c'est médiocre, donc à rejeter
Parameters
- $classes : array<string|int, mixed>
-
Les classes issues de la discrétisation
- $ponderation : array<string|int, mixed>
-
Matrice de pondération spatiale
Return values
null|float —Indice ou null si erreur (série vide)
discretisation_ssw_ssb()
Calcule la sommes des carrés intra et inter classes qui donne une information sur l'homogénéité des classes.
discretisation_ssw_ssb(array<string|int, mixed> $serie, array<string|int, mixed> $classes) : array<string|int, mixed>
La somme des carrés intra-classes (SSW) correspond à la dispersion totale des observations autour de leurs moyennes de classe respectives. La somme des carrés inter-classes mesure la dispersion des moyennes des classes par rapport à la moyenne globale, pondérée par la taille des classes.
K Nₖ
SSW = ∑ ∑ (xᵢₖ - μₖ)² où K désigne le nombre de classes, Nₖ l'effectif de la classe k, k=1 i=1 xᵢₖ les valeurs xᵢ de la classe k, μₖ la moyenne de la classe k et μ la moyenne globale de la série K SSB = ∑ Nₖ(μₖ - μ)² k=1
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $classes : array<string|int, mixed>
-
Les classes issues de la discrétisation
Return values
array<string|int, mixed> —Les sommes SSW et SSB ou tableau vide sinon (série vide)
classe_nb_constructible()
Détermine le nombre de classes réellement constructible pour une série de valeurs donnée.
classe_nb_constructible(array<string|int, mixed> $serie, null|int $nb_classes) : null|int
Une série ne peut pas être discrétisée en plus de classes qu'elle ne compte de valeurs distinctes, et une série réduite à une seule valeur distincte (série constante) n'est pas discrétisable du tout : toutes les classes construites seraient de bornes identiques, donc impossibles à départager lors de l'affectation des valeurs.
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $nb_classes : null|int
-
Nombre de classes souhaité
Tags
Return values
null|int —Nombre de classes constructible, au plus égal au nombre de valeurs distinctes de la série, ou
null si la série n'est pas discrétisable (série vide ou constante, nombre de classes invalide)
classe_trouver()
Détermine l'index de la classe (intervalle) dans laquelle se trouve une valeur.
classe_trouver(float|int $valeur, array<string|int, mixed> $classes[, null|string $inclusion = 'binf' ]) : null|int
Parameters
- $valeur : float|int
-
Valeur numérique à localiser
- $classes : array<string|int, mixed>
-
Tableau des classes. L'intervalle est défini par les index
binfetbsup. - $inclusion : null|string = 'binf'
-
Borne incluse dans l'intervalle, l'autre étant excluse. Vaut
binf(défaut) oubsup.
Return values
null|int —Index de la classe ou null si non trouvée
serie_couper()
Scinde une série de valeurs en deux séries de part et d'autre d'une valeur donnée.
serie_couper(array<string|int, mixed> $serie, float|int $valeur_coupe) : array<string|int, mixed>
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $valeur_coupe : float|int
-
Valeur permettant de construire les deux séries de part et d'autre
Return values
array<string|int, mixed> —Tableau des séries résultantes, l'index 0 pour la série à gauche de la valeur de coupe et
l'index 1 pour la série à droite. Renvoie vide si erreur.
serie_transtyper()
Transtype les valeurs d'une série dans un type numérique donné.
serie_transtyper(array<string|int, mixed> $serie, string $type) : array<string|int, mixed>
Si le type choisi n'est pas numérique aucun transtypage est effectué.
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $type : string
Return values
array<string|int, mixed> —Série transtypée ou non si le type n'est pas valide.
serie_transformer()
Transforme les valeurs d'une série en appliquant une fonction donnée à chaque valeur.
serie_transformer(array<string|int, mixed> $serie, array<string|int, mixed> $transformation[, null|bool $reciproque = false ]) : array<string|int, mixed>
La série doit appartenir au domaine de définition de la fonction choisie : le logarithme exige des valeurs
strictement positives, la racine carrée des valeurs positives ou nulles, et l'inversion des valeurs non nulles.
Hors domaine, la transformation produit des valeurs non finies (NAN ou INF) qui, propagées jusqu'aux bornes
de classe, casseraient silencieusement la discrétisation. La série entière est donc rejetée dans ce cas.
Parameters
- $serie : array<string|int, mixed>
-
Tableau des valeurs de la série.
- $transformation : array<string|int, mixed>
-
Opération mathématique à appliquer à la valeur décrite sous forme de tableau :
- string
fonction: fonction mathématique PHP à appliquer - float
parametre: le parametre éventuel de la fonction PHP autre que la valeur (null sinon) - bool
inverser: indique si on doit inverser la valeur transformée
- string
- $reciproque : null|bool = false
-
Indique si l'on veut appliquer la réciproque de la fonction décrite dans $transformation (défaut
false).
Return values
array<string|int, mixed> —Série transformée, non transformée si la fonction n'est pas valide, ou vide si la série sort du domaine de définition de la fonction.
valeur_transformer()
Transforme une valeur entière ou réelle en appliquant une fonction donnée.
valeur_transformer(float|int $valeur, null|array<string|int, mixed> $transformation[, null|bool $reciproque = false ]) : float
Parameters
- $valeur : float|int
-
Valeurs entière ou décimale à transformer.
- $transformation : null|array<string|int, mixed>
-
Opération mathématique à appliquer à la valeur décrite sous forme de tableau :
- string
fonction: fonction mathématique PHP à appliquer - float
parametre: le parametre éventuel de la fonction PHP autre que la valeur (null sinon) - bool
inverser: indique si on doit inverser la valeur transformée
- string
- $reciproque : null|bool = false
-
Indique si l'on veut appliquer la réciproque de la fonction décrite dans $transformation (défaut
false).
Return values
float —Valeur transformée ou non si la fonction n'est pas valide.
expa()
Calcule l'exponentielle pour une base donnée.
expa(float $num[, null|float $base = M_E ]) : float
Parameters
- $num : float
-
La valeur pour laquelle on calcule l'exponentielle
- $base : null|float = M_E
-
La base optionnelle à utiliser (par défaut,
e)
Return values
float —Valeur calculée