Documentation du code de SPIP et de ses plugins

Librairie Mathématique & Statistique

API

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
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,
  • binf et bsup, les bornes de l'intervalle
  • effectif et frequence, le nombre d'éléments et la fréquence
  • centre, la valeur centrale de la classe
  • etendue et etendue_ponderee, l'étendue et l'étendue pondérée par la moyenne de la classe, cette dernière valant null pour une classe vide, qui n'a pas de moyenne
  • etendue_ponderee_theorique, l'étendue pondérée par le centre de la classe, valant null pour une classe centrée sur zéro
  • serie, 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 :

  1. 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

  2. La récurrence : le coût minimal d'une partition des j premières valeurs en m classes se déduit du coût minimal d'une partition en m-1 classes, 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
note

L'algorithme est en O($nb_classes × n²). Il reste immédiat jusqu'à quelques milliers de valeurs, ce qui couvre largement les usages cartographiques courants, mais devient coûteux au-delà.

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, centre si μₖ 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
note

L'indice n'est pas défini si la discrétisation comporte une classe vide, celle-ci n'ayant pas de moyenne observée. Substituer une valeur de repli à son étendue pondérée fausserait l'indice dans le sens le plus trompeur qui soit : il s'améliorerait à mesure que le nombre de classes vides augmente, alors que la discrétisation se dégrade. On renvoie donc une erreur, comme le fait discretisation_indice_redondance() dans la même situation.

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
note

C'est la règle appliquée par le paquet R classInt, référence de la classification choroplèthe, qui refuse une série à valeur unique et bascule sur autant de classes que de valeurs distinctes le cas échéant.

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 binf et bsup.

$inclusion : null|string = 'binf'

Borne incluse dans l'intervalle, l'autre étant excluse. Vaut binf (défaut) ou bsup.

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
$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
$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


        
On this page

Search results