Sign in Join
Wiki copytemporary

Functions for descriptive statistics/fr

English · Français

La statistique descriptive a pour but de caractériser des données empirique à l'aide de paramètres sommatifs (et aussi avec des tables et des graphiques).

Fonctions standard définies dans l'unité math

L'unité math de la RTL fournit une pléthore de routines pour la statistique descriptive.

Ces fonctions attendent un tableau de taille prédéfinie (p.ex. array[1..100] of float) ou un tableau ouvert à base 0 (p.ex. array of extended) avec l'appel sous-jacent à la procédure SetLength.

Fonctions standard défines dans d'autres unités

Fonctions personnalisées

Certaines fonctions ne sont pas définies dans la RTL. La section ci-dessous donne du code source de certaines mesures communément utilisées dans la centralité et la dispersion. Si ce n'est pas spécifié autrement, le code est fourni sous licence BSD. Ensemble avec les autres codes statistiques utiles

Avec d'autres codes statistiques utiles, des versions étendues et rigoureusement testées de ces fonctions sont également disponibles dans le projet QUANTUM SALIS.

Médiane

Le terme médiane dénote les quantile de 50% d'un échantillon, i.e. la valeur séparant la moitié la plus élevée d'une donnée de la moitié la moins élevée. Elle peut être calculée avec :

pascal
type
  TExtArray = array of Extended;

function SortExtArray(const data: TExtArray): TExtArray;
{ Based on Shell Sort - avoiding recursion allows for sorting of very
  large arrays, too }
var
  data2: TExtArray;
  arrayLength, i, j, k: longint;
  h: extended;
begin
  arrayLength := high(data);
  data2 := copy(data, 0, arrayLength + 1);
  k := arrayLength div 2;
  while k > 0 do
  begin
    for i := 0 to arrayLength - k do
    begin
      j := i;
      while (j >= 0) and (data2[j] > data2[j + k]) do
      begin
        h := data2[j];
        data2[j] := data2[j + k];
        data2[j + k] := h;
        if j > k then
          dec(j, k)
        else
          j := 0;
      end;
    end;
    k := k div 2
  end;
  result := data2;
end;       

function median(const data: TExtArray): extended;
var
  centralElement: integer;
  sortedData: TExtArray;
begin
  sortedData := SortExtArray(data);
  centralElement := length(sortedData) div 2;
  if odd(length(sortedData)) then
    result := sortedData[centralElement]
  else
    result := (sortedData[centralElement - 1] + sortedData[centralElement]) / 2;
end;

Bien sûr, la fonction SortExtArray peut être remplacée par un autre algorithme de tri, p.ex. QuickSort. Le tri Shell présente ici l'avantage de pouvoir trier des vecteurs même très larges sur des machines ayant peu de mémoire (bien qu'avec une vitesse plus réduite que le tri QuickSort).

Erreur type

L'erreur type de la moyenne (SEM en anglais) est la mesure qui estime avec quelle précision la vraie moyenne de la population peut être connue.

Le calcul de l'erreur type est simple :

pascal
  function sem(const data: array of Extended): real;
  begin
    sem := stddev(data) / sqrt(length(data));
  end;

Coefficient de variation

Le coefficient de variation, aussi connu comme l'écart type realtif, est une mesure de la dispersionqui est normalisée par rapport à la moyenne des données.

Il peut être calculé avec :

pascal
function cv(const data: array of Extended): extended;
{ calculates the coefficient of variation (CV or CoV) of a vector of extended }
begin
  result := stddev(data) / mean(data);
end;

From the Free Pascal wiki, page "Functions for descriptive statistics/fr", as it stood on 2020-02-16 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 3, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.