Difference between revisions of "Functions for descriptive statistics/fr"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
Line 36: Line 36:
 
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 :
 
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 :
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
type
 
type
 
   TExtArray = array of Extended;
 
   TExtArray = array of Extended;
Line 94: Line 94:
 
Le calcul de l'erreur type est simple :
 
Le calcul de l'erreur type est simple :
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
   function sem(const data: array of Extended): real;
 
   function sem(const data: array of Extended): real;
 
   begin
 
   begin
Line 107: Line 107:
 
Il peut être calculé avec :  
 
Il peut être calculé avec :  
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
function cv(const data: array of Extended): extended;
 
function cv(const data: array of Extended): extended;
 
{ calculates the coefficient of variation (CV or CoV) of a vector of extended }
 
{ calculates the coefficient of variation (CV or CoV) of a vector of extended }
Line 114: Line 114:
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br/>
 

Latest revision as of 05:22, 16 February 2020

English (en) français (fr)

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.

  • mean : Retourne la valeur moyenne d'un tableau.
  • stddev : Retourne l'écart moyen type (échantillon) d'un tableau.
  • popnstddev : Retourne l'écart moyen type (population) d'un tableau.
  • meanandstddev : Retourne la moyenne et l'écart moyen type d'un tableau.
  • momentskewkurtosis : Retourne le 4 permiers moments d'un tableau.
  • variance : Retourne la variance (échantillon) d'un tableau.
  • popnvariance : Retourne la variance (population) d'un tableau.
  • totalvariance : Retourne la variance d'un tableau.
  • sumofsquares : Retourne la somme des carrés d'un tableau.
  • sum : Retourne la somme des valeurs d'un tableau.
  • sumsandsquares : Retourne la somme et la somme des carrés des valeurs d'un tableau.

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

  • length : Donne la longueur d'un tableau.

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 :

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 :

  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 :

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;