_EZMATH_RAYON_TERRE_KM
Rayon de la terre en kilomètre selon l'UGGI.
public
mixed
_EZMATH_RAYON_TERRE_KM
= 6371.009
Rayon de la terre en kilomètre selon l'UGGI.
public
mixed
_EZMATH_RAYON_TERRE_KM
= 6371.009
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.
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
Tableau des valeurs de la série.
Indice ou null si erreur (série vide)
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
Tableau des valeurs de la série.
Indice ou null si erreur (série vide)
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
Tableau des valeurs de la série.
Indice ou null si erreur (série vide)
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
Tableau des valeurs de la série.
Indice ou null si erreur (série vide, réduite à un élément ou d'écart type nul)
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
Tableau des valeurs de la série.
Indice ou null si erreur (série vide ou de distance interquartile nulle)
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 :
equivalence)progression_arithmetique)progression_geometrique)Les méthodes statistiques disponibles sont :
quantile)standard)moyenne_emboitee)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.
Tableau des valeurs de la série.
Identifiant de la méthode de discrétisation (par défaut, égales étendues)
Nombre de classes de la discrétisation (défaut 5 sauf pour les moyennes emboitées)
Opération mathématique à appliquer à la valeur décrite sous forme de tableau :
fonction : fonction mathématique PHP à appliquerparametre : le parametre éventuel de la fonction PHP autre que la valeur (null sinon)inverser : indique si on doit inverser la valeur transforméeTableau des classes et de la série discrétisée, à savoir :
serie_classe : la série avec les index conservé et les valeurs remplacées par l'index de la classe d'appartenanceclasses : La liste des classes avec pour chaque classe,binf et bsup, les bornes de l'intervalleeffectif et frequence, le nombre d'éléments et la fréquencecentre, la valeur centrale de la classeetendue 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 moyenneetendue_ponderee_theorique, l'étendue pondérée par le centre de la classe, valant null
pour une classe centrée sur zéroserie, le tableau des éléménts de la série inclus dans la classequalite : les indicateurs de la qualité de la discrétisation (TAI, I, et R)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>
Tableau des valeurs de la série.
Nombre de classes de la discrétisation (défaut 5)
Tableau des classes, à savoir :
binf : borne inférieure de l'intervallebsup : borne supérieure de l'intervalleConstruit, 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>
Tableau des valeurs de la série.
Nombre de classes de la discrétisation (défaut 5)
Tableau des classes, à savoir :
binf : borne inférieure de l'intervallebsup : borne supérieure de l'intervalleConstruit, 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.
Tableau des valeurs de la série.
Nombre de classes de la discrétisation (défaut 5)
Tableau des classes, à savoir :
binf : borne inférieure de l'intervallebsup : borne supérieure de l'intervalle
Le tableau est vide en cas d'erreur, notamment si la série n'est pas strictement positive.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>
Tableau des valeurs de la série.
Nombre de classes de la discrétisation (défaut 5)
Tableau des classes, à savoir :
binf : borne inférieure de l'intervallebsup : borne supérieure de l'intervalleConstruit, 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>
Tableau des valeurs de la série.
Nombre de classes de la discrétisation (défaut 5)
Coefficient appliqué à l'écart-type pour adapter les classes (défaut 1)
Tableau des classes, à savoir :
binf : borne inférieure de l'intervallebsup : borne supérieure de l'intervalleConstruit, 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.
Tableau des valeurs de la série.
Nombre de classes de la discrétisation (défaut 5)
Tableau des classes, à savoir :
binf : borne inférieure de l'intervallebsup : borne supérieure de l'intervalleConstruit, 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>
Tableau des valeurs de la série.
Nombre de classes de la discrétisation (défaut 5)
Tableau des classes, à savoir :
binf : borne inférieure de l'intervallebsup : borne supérieure de l'intervalleConstruit, 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.
Tableau des valeurs de la série.
Nombre de classes de la discrétisation (défaut 4), puissance de 2
Tableau des classes, à savoir :
binf : borne inférieure de l'intervallebsup : 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).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>
Tableau des valeurs de la série.
Nombre de classes de la discrétisation (défaut 5)
Tableau des classes, à savoir :
binf : borne inférieure de l'intervallebsup : borne supérieure de l'intervalleDé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 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.
Tableau des valeurs de la série.
Nombre de classes à construire, au plus égal au nombre de valeurs de la série
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.
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
Tableau des valeurs de la série.
Les classes issues de la discrétisation
moyenne (défaut) si μₖ est la moyenne arithmétique, centre si μₖ est le centre de la classe
Indice ou null si erreur (série vide)
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
Tableau des valeurs de la série.
Les classes issues de la discrétisation
Indice ou null si erreur (série vide)
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.
Tableau des valeurs de la série.
Les classes issues de la discrétisation.
Si non vide, fournit la probabilité pᵢ à utiliser pour chaque classe. Si vide, la probabilité correspond à la fréquence de chaque classe
Indice ou null si erreur (série vide)
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
Les classes issues de la discrétisation
Indice ou null si erreur (aucune classe, classe vide ou classe centrée sur zéro)
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 :
Les classes issues de la discrétisation
Matrice de pondération spatiale
Indice ou null si erreur (série vide)
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
Tableau des valeurs de la série.
Les classes issues de la discrétisation
Les sommes SSW et SSB ou tableau vide sinon (série vide)
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.
Tableau des valeurs de la série.
Nombre de classes souhaité
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)
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
Valeur numérique à localiser
Tableau des classes. L'intervalle est défini par les index binf et bsup.
Borne incluse dans l'intervalle, l'autre étant excluse. Vaut binf (défaut) ou bsup.
Index de la classe ou null si non trouvée
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>
Tableau des valeurs de la série.
Valeur permettant de construire les deux séries de part et d'autre
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.
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é.
Tableau des valeurs de la série.
Série transtypée ou non si le type n'est pas valide.
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.
Tableau des valeurs de la série.
Opération mathématique à appliquer à la valeur décrite sous forme de tableau :
fonction : fonction mathématique PHP à appliquerparametre : le parametre éventuel de la fonction PHP autre que la valeur (null sinon)inverser : indique si on doit inverser la valeur transforméeIndique si l'on veut appliquer la réciproque de la fonction décrite dans $transformation (défaut false).
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.
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
Valeurs entière ou décimale à transformer.
Opération mathématique à appliquer à la valeur décrite sous forme de tableau :
fonction : fonction mathématique PHP à appliquerparametre : le parametre éventuel de la fonction PHP autre que la valeur (null sinon)inverser : indique si on doit inverser la valeur transforméeIndique si l'on veut appliquer la réciproque de la fonction décrite dans $transformation (défaut false).
Valeur transformée ou non si la fonction n'est pas valide.
Calcule l'exponentielle pour une base donnée.
expa(float $num[, null|float $base = M_E ]) : float
La valeur pour laquelle on calcule l'exponentielle
La base optionnelle à utiliser (par défaut, e)
Valeur calculée
Vérifie qu'un point est bien un couple (latitude, longitude) exploitable et renvoie ses coordonnées réindexées de zéro et transtypées en réels.
sphere_point_valider(array<string|int, mixed> $point) : null|array<string|int, mixed>
Les bornes retenues sont celles du système géodésique mondial : la latitude appartient à [-90, 90] et la longitude à [-180, 180]. Les fonctions trigonométriques étant périodiques, des coordonnées hors de ces bornes produiraient un résultat d'apparence plausible : les refuser est le seul moyen de signaler une donnée aberrante plutôt que de la cartographier silencieusement.
Coordonnées du point exprimé en (latitude, longitude), en degrés décimaux
Couple (latitude, longitude) réindexé de zéro ou null si le point n'est pas un couple de
valeurs numériques comprises dans les bornes géographiques
Calcule la distance euclidienne entre deux points connus par leur coordonnées cartésiennes dans un espace à n dimensions.
distance_euclidienne(array<string|int, mixed> $point_p, array<string|int, mixed> $point_q) : null|float
d(p,q) = √∑(pᵢ - qᵢ)² où pᵢ et qᵢ désignent les ième coordonnées des points p et q.
Coordonnées du premier point
Coordonnées du deuxième point
Valeur de la distance euclidienne ou null si erreur (point vide ou points exprimés dans des espaces de dimensions différentes)
Calcule la distance géodésique en utilisant la formule d'Haversine qui permet de déterminer la distance du grand cercle entre deux points d'une sphère, à partir de leurs longitudes et latitudes.
sphere_distance_haversine(array<string|int, mixed> $point1, array<string|int, mixed> $point2) : null|float
Latitude et longitude sont exprimés en degrés (non sexagésimaux). √a φ₂-φ₁ λ₂-λ₁ d(p₁,p₂) = 2r.arctan(------) avec a = sin²(-----) + cos(φ₁).cos(φ₂).sin²(-----) √(1-a) 2 2 où r est le rayon de la terre, soit 6371,009 km φ₁ et φ₂ sont les latitudes des points p₁ et p₂ λ₁ et λ₂ sont les longitudes des points p₁ et p₂
Cette formule est plus précise grâce à l'utilisation de la fonction arctangente que celle classique avec l'arcsinus.
Coordonnées du premier point exprimé en (latitude, longitude)
Coordonnées du deuxième point exprimé en (latitude, longitude)
Distance en kilomètres ou null si un point n'est pas un couple (latitude, longitude)
valide, au sens de sphere_point_valider()
Calcule la distance entre deux points d'une sphère en utilisant la loi des sinus à partir de leurs longitudes et latitudes.
sphere_distance_loi_sinus(array<string|int, mixed> $point1, array<string|int, mixed> $point2) : null|float
Latitude et longitude sont exprimés en degrés (non sexagésimaux).
d(p₁,p₂) = r.arccos(cos_β) avec cos_β = sin(φ₁).sin(φ₂) + cos(φ₁).cos(φ₂).cos(λ₂-λ₁), β étant appelé l'angle central où r est le rayon de la terre, soit 6371,009 km φ₁ et φ₂ sont les latitudes des points p₁ et p₂ λ₁ et λ₂ sont les longitudes des points p₁ et p₂
Coordonnées du premier point exprimé en (latitude, longitude)
Coordonnées du deuxième point exprimé en (latitude, longitude)
Distance en kilomètres ou null si un point n'est pas un couple (latitude, longitude)
valide, au sens de sphere_point_valider()
Calcule la distance euclidienne entre deux points d'une sphère, à partir de leurs longitudes et latitudes.
sphere_distance_euclidienne(array<string|int, mixed> $point1, array<string|int, mixed> $point2) : null|float
Latitude et longitude sont exprimés en degrés (non sexagésimaux).
Les coordonnées sphériques (φ,λ) sont converties en coordonnées cartésiennes (x,y,z) de la façon suivante:
La distance obtenue est celle de la corde, c'est-à-dire du segment qui traverse la sphère, et non celle de l'arc parcouru à sa surface : elle sous-estime donc toujours la distance géodésique, d'autant plus que les points sont éloignés. L'écart reste négligeable à l'échelle régionale - de l'ordre du dixième de pour mille sur quelques centaines de kilomètres - mais atteint 10% d'un pôle à l'équateur.
Coordonnées du premier point exprimé en (latitude, longitude)
Coordonnées du deuxième point exprimé en (latitude, longitude)
Distance en kilomètres ou null si un point n'est pas un couple (latitude, longitude)
valide, au sens de sphere_point_valider()
Calcule la matrice de pondération spatiale d'une liste de coordonnées exprimés en (latitude, longitude).
matrice_ponderation_spatiale(array<string|int, mixed> $coordonnees[, null|string $f_distance = 'sphere_distance_haversine' ]) : array<string|int, mixed>
Latitude et longitude sont exprimés en degrés (non sexagésimaux).
Chaque unité spatiale est pondérée par l'inverse de sa distance aux autres : plus deux unités sont proches, plus leur pondération est forte. La diagonale est nulle, une unité n'étant pas sa propre voisine. La matrice obtenue alimente notamment le calcul de l'indice d'autocorrélation spatiale de Geary.
Coordonnées des points exprimés en (latitude, longitude), indexées par l'identifiant de l'unité spatiale, numérique ou non
Fonction de calcul de la distance entre points. Par défaut méthode d'Haversine
Matrice carrée des pondérations, indexée dans les deux dimensions par les identifiants fournis, ou tableau vide si la fonction de distance est inconnue ou si une distance n'est pas calculable
Effectue le produit de deux matrices compatibles.
matrice_multiplier(array<string|int, mixed> $matrice1, array<string|int, mixed> $matrice2) : array<string|int, mixed>
Le produit n'est défini que si les matrices sont compatibles, à savoir la première d'ordre m × n et la seconde d'ordre n × p, le résultat étant alors d'ordre m × p.
Le produit hérite des identifiants des matrices d'origine : ses lignes portent les clés de lignes de la première matrice et ses colonnes les clés de colonnes de la seconde.
Matrice de gauche, d'ordre m × n
Matrice de droite, d'ordre n × p
La matrice produit ou tableau vide si les matrices sont mal formées ou incompatibles
Transpose une matrice, c'est-à-dire échange ses lignes et ses colonnes : la transposée d'une matrice d'ordre m × n est d'ordre n × m.
matrice_transposer(array<string|int, mixed> $matrice) : array<string|int, mixed>
Les clés sont elles aussi échangées : les clés de colonnes de la matrice deviennent les clés de lignes de sa transposée, et réciproquement. Transposer une matrice symétrique - une matrice de pondération spatiale, par exemple - restitue donc exactement la matrice de départ, identifiants compris.
Matrice à transposer
La matrice transposée ou tableau vide si la matrice est mal formée
Détermine les dimensions d'une matrice et vérifie au passage qu'elle est correctement formée, c'est-à-dire que toutes ses lignes comptent le même nombre de colonnes.
matrice_dimensionner(array<string|int, mixed> $matrice) : array<string|int, mixed>
Tableau de lignes, chaque ligne étant elle-même un tableau de valeurs
Dimensions de la matrice, à savoir :
rows : nombre de lignescols : nombre de colonnes, ramené à zéro si la matrice est mal formée, ce qui permet
aux fonctions appelantes d'identifier l'erreurRenvoie, 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).
Tableau représentant la série
Indique si la correction de Bessel doit être appliquée sur la variance et
l'écart-type (défaut false, aucune correction)
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.
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.
Tableau des valeurs de la série.
Tableau des modes même si la série ne possède qu'un seul mode ou null si erreur (série vide).
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
Tableau des valeurs de la série.
Valeur de la moyenne ou null si erreur (série vide).
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
Tableau des valeurs de la série.
Valeur de la moyenne ou null si erreur (série vide ou contenant une valeur négative).
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ᵢ)
Tableau des valeurs de la série.
Valeur de la moyenne ou null si erreur (série vide, contenant une valeur nulle ou dont la
somme des inverses est nulle).
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ᵢ⟯
Tableau des valeurs de la série.
Tableau des poids de même taille que la série.
Valeur de la moyenne ou null si erreur (série vide ou liste de poids invalide).
Calcule la médiane d'une série de valeurs.
serie_mediane(array<string|int, mixed> $serie) : null|float
n+1
Tableau des valeurs de la série.
Valeur de la médiane ou null si erreur (série vide).
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)
Tableau des valeurs de la série.
Le centile à calculer, non nécessairement entier (ex: 33.33 pour le premier tercile).
Valeur du p-ième centile ou null si erreur (série vide)
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 :
Tableau des valeurs de la série.
Valeur de l'ordre
Tableau des ($ordre-1) quantiles pour l'ordre choisi ou null si erreur (série vide).
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>
Tableau des valeurs de la série.
Tableau des 3 quartiles ou null si erreur (série vide).
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
Tableau des valeurs de la série.
Valeur de l'étendu de la série ou null si erreur (série vide).
Calcule la distance interquartile.
serie_interquartile(array<string|int, mixed> $serie) : null|float
IQ = Q₃ - Q₁
Tableau des valeurs de la série.
Distance interquartile ou null si erreur (série vide)
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)
Tableau des valeurs de la série.
Indique si la correction de Bessel doit être appliquée ou pas (défaut)
Variance (corrigée ou non) ou null si erreur (série vide ou réduite à un élément si Bessel)
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.
Tableau des valeurs de la série.
Indique si la correction de Bessel doit être appliquée ou pas (défaut)
Ecart type (corrigé ou non) ou null si erreur (série vide ou réduite à un élément si Bessel)
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
Tableau des valeurs de la série.
Valeur de d'ordre du moment (puissance)
Indique si on veut le moment à l'origine ou le moment centré (défaut)
Moment centré ou pas d'ordre p ou null si erreur (série vide)
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:
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.
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.
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.
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:
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 une autocorrélation spatiale négative (valeurs dissimilaires sont proches les unes des autres).
Tableau des valeurs de la série.
Matrice de pondération spatiale
Indice ou null si erreur (série ou coordonnées vides ou incohérents, série constante ou pondération toute nulle)