S-S-01 — Norme relative à l'échantillonnage aléatoire et à la randomisation

S-02 — Application des normes relatives à l'échantillonnage statistique et à l'incertitude de mesure dans le cadre de la vérification et de la revérification des compteurs d'électricité et de gaz


Catégorie : Méthodes statistiques
Norme : S-S-01 (rév. 1)
Entrée en vigueur : 2008-11-10
Remplace : S-S-01


Table des matières


1.0 Domaine d'application

1.1 La présente norme vise à définir les algorithmes pour l'échantillonnage aléatoire et la randomisation et s'applique partout où elle est mentionnée en référence dans la réglementation ou dans une autre norme visant l'échantillonnage aléatoire ou la randomisation.

1.2 La présente norme est applicable dans les situations suivantes :

  1. échantillonnage d'acceptation d'unités discrètes présentées en lots à l'inspection;
  2. échantillonnage à des fins d'enquête;
  3. audit des résultats du système de management de la qualité; et,
  4. sélection d'unités expérimentales, attribution de traitements aux unités et détermination de l'ordre d'évaluation dans l'exécution d'expériences planifiées.

1.3 La présente norme comporte aussi de l'information qui peut faciliter l'audit ou d'autres vérifications externes des résultats obtenus par échantillonnage aléatoire ou par randomisation lorsque Mesures Canada ou les spécialistes du management de la qualité d'organismes accrédités en font la demande.

1.4 Aucune référence normative n'est applicable à la présente norme. Pour des documents de référence, consulter la bibliographie présentée en annexe.

2.0 Autorité

La présente norme est publiée en vertu de l'article 19 du Règlement sur l'inspection de l'électricité et du gaz.

3.0 Termes, définitions, symboles et abréviations

3.1 Termes et définitions

3.1.1 Lot

Partie définie d'une population (3.1.2) constituée essentiellement dans les mêmes conditions que la population pour ce qui concerne l'échantillonnage (3.1.8).

Nota : Par exemple, le but de l'échantillonnage est de déterminer l'acceptabilité du lot ou d'estimer la valeur moyenne d'une caractéristique particulière.

3.1.2 Population

Totalité des individus pris en considération.

3.1.3 Échantillonnage aléatoire d'échantillons pseudo-indépendants

Échantillonnage (3.1.8) dans lequel un échantillon (3.1.7) de n unités d'échantillonnage (3.1.9) est tiré dans une population (3.1.2) conformément à une table de numéros aléatoires ou à un algorithme informatique conçu de manière que chaque combinaison possible de n unités d'échantillonnage ait une probabilité particulière d'être tirée.

3.1.4 Échantillon aléatoire

Échantillon (3.1.7) sélectionné par échantillonnage aléatoire (3.1.5).

3.1.5 Échantillonnage aléatoire

Échantillonnage (3.1.8) dans lequel un échantillon (3.1.7) de n unités d'échantillonnage (3.1.9) est tiré d'une population (3.1.2) de manière que chaque combinaison possible de n ait une probabilité particulière d'être tirée.

3.1.6 Randomisation

Processus par lequel un ensemble d'individus sont assemblés dans un ordre aléatoire.

Nota : Si, dans une population (3.1.2) composée des nombres naturels 1 à n, des nombres sont tirés successivement un par un au hasard (c.-à-d. de telle façon que tous les nombres ont une chance égale d'être tirés) sans remise jusqu'à épuisement, on dit que les nombres ont été tirés dans un « ordre au hasard ».

Si ces nombres ont été préalablement associés à n objets distincts ou à n traitements distincts qui sont réordonnés dans l'ordre dans lequel les numéros ont été tirés, l'ordre des objets ou traitements est dit être randomisé.

3.1.7 Échantillon

Sous-ensemble d'une population (3.1.2) constitué d'une ou de plusieurs unités d'échantillonnage (3.1.9).

3.1.8 Échantillonnage

Opération consistant à prélever ou à constituer un échantillon (3.1.7).

3.1.9 Unité d'échantillonnage

Une des parties individuelles en une population (3.1.2) est divisée.

3.1.10 Échantillonnage sans remise

Échantillonnage (3.1.8) dans lequel chaque unité d'échantillonnage (3.1.9) est tirée de la population (3.1.2) une seule fois sans être remise dans la population.

3.1.11 Valeur de départ

Valeur numérique ou ensemble de valeurs utilisées pour initialiser l'algorithme d'échantillonnage (3.1.3) d'un échantillon aléatoire pseudo-indépendant ou pour l'établissement d'un point de départ dans une suite de nombres aléatoires.

3.1.12 Échantillon simple aléatoire

Échantillon (3.1.7) sélectionné par échantillonnage simple aléatoire (3.1.13).

3.1.13 Échantillonnage simple aléatoire

Échantillonnage (3.1.8) dans lequel un échantillon (3.1.7) de n unités d'échantillonnage (3.1.9) est tiré dans une population (3.1.2) de manière que toutes les combinaisons possibles de n unités d'échantillonnage aient la même probabilité d'être tirées.

3.2 Symboles et abréviations

Les principaux symboles et abréviations utilisés dans la présente norme sont les suivants :

mod
opérateur modulo (a mod b = a - ba / b⌋)
N
effectif de lot
n
effectif d'échantillon
ni
effectif du ie échantillon
U
variable aléatoire réelle distribuée uniformément sur un intervalle ouvert (0, 1)
xi
la ie valeur de la variable x
z
fonction partie entière de z (retourne la partie entière de la valeur réelle z)

4.0 Algorithmes informatiques pour l'échantillonnage aléatoire d'échantillons pseudo-indépendants

4.1 Aperçu

4.1.1 La présente norme adopte un système particulier d'algorithmes élaboré dans les références bibliographiques [1, 5 et 8]. Les algorithmes ont été conçus pour posséder les propriétés mathématiques et statistiques nécessaires à l'échantillonnage aléatoire, pour être utilisés avec différents langages de programmation sur différentes plates-formes informatiques et pour faciliter la vérification et l'audit des valeurs d'échantillons choisies, ce qui pourrait être nécessaire à des fins de réglementation.

4.1.2 Le système d'algorithmes comprend deux sous-systèmes principaux :

  1. un algorithme d'initialisation facultatif qui produit automatiquement un entier relatif de départ quasi-aléatoire fondé sur le temps écoulé depuis une date de référence; et,
  2. un générateur de nombres aléatoires.

4.1.3 À des fins de vérification ou d'audit, l'algorithme d'initialisation facultatif mentionné en 4.1.2 a) et décrit en 4.2 serait contourné en utilisant une valeur de départ entrée manuellement. Cette valeur doit se trouver à l'intérieur de l'intervalle entier 1 à 2 147 483 398 inclusivement. Une copie de cette valeur d'entrée est enregistrée à des fins de référence. Cependant, pour des besoins courants de contrôle de la qualité et d'applications d'expériences planifiées, il faudra très rarement contourner cette option de production automatique aléatoire d'une valeur de départ qui devrait être l'option par défaut dans la pratique.

Nota : La présentation des étapes de calcul des algorithmes a été laissée, dans le présent paragraphe, dans son format mathématique pour faciliter la programmation.

4.2 Algorithme d'initialisation

4.2.1 L'algorithme d'initialisation comporte :

  1. un algorithme de calcul du temps écoulé à partir d'une date et d'une heure passées établies; et,
  2. un algorithme de génération de nombres aléatoires distribués uniformément, appelé un nombre aléatoire de fois à partir du résultat obtenu en a) ci-dessus, dans le but d'obtenir une valeur de départ aléatoire fondée sur le temps.

4.2.2 L'algorithme suivant détermine le nombre de secondes écoulées depuis le 2000-01-01 à 00:00:00 jusqu'à la date et l'heure actuelles :

  1. saisir la date et l'heure du système informatique comme variable chaîne, enregistrer une copie de cette variable à des fins de référence et décomposer la chaîne en ses composantes de temps (c.-à-d. année, mois, jour, heure, minute et seconde).
  2. calculer le nombre de jours complètement écoulés de depuis le point de référence dans le temps à l'aide des valeurs numériques de l'année y, (quatre chiffres), du mois m1 et du jour d traitées comme suit :

    If m1 < 3 then let m1 = m1 + 12 and let y = y − 1

    de = d + ⌊(153 m1 − 457) ÷ 5⌋ + 365 y + ⌊y ÷ 4⌋ − ⌊y ÷ 100⌋ + ⌊y ÷ 400⌋ − 730 426

    Nota: L'équation pour de peut être légèrement simplifiée pour les jours civils allant jusqu'à 2099 inclusivement en remplaçant les termes suivants ⌊y ÷ 4⌋ par «− 730 441 ».

  3. calculer le nombre total de secondes se écoulées depuis la date de référence à l'aide des valeurs obtenues à l'étape b) et de l'heure (en format de 24 heures « hh:mm:ss ») saisies dans la variable chaîne à l'étape a) conformément à la formule suivante :

    se = 86400 de + 3600 h + 60 m2 + s

    h, m2 et s sont des heures, des minutes et des secondes, respectivement.

    Nota: Certains langages de programmation peuvent avoir des fonctions intégrées pour effectuer directement le calcul de se. Ces fonctions intrinsèques doivent être validées avant d'être utilisées pour s'assurer que les années bissextiles et l'heure avancée sont adéquatement traitées.

  4. La valeur obtenue à l'étape c) devient la valeur de départ d'initialisation pour le générateur de valeur de départ aléatoire et est utilisée pour obtenir la valeur de départ finale. Une copie de cette valeur est enregistrée comme variable séparée à des fins de référence.
  5. Le nombre de fois j que le générateur de nombres aléatoires subséquents doit être appelé est un nombre entier aléatoire entre 1 et 100 inclusivement, selon les deux derniers chiffres significatifs de la valeur obtenue à l'étape c) plus 1, qui peut s'exprimer comme suit :

    j = se − 100 ⌊se ÷ 100⌋ + 1

4.2.3 Le générateur de nombres aléatoires pour l'algorithme de génération automatique de valeurs de départ (fonction d'initialisation) se rend par la relation de récurrence congruente linéaire suivante :

xi + 1 = 40 692 xi mod 2 147 483 399

qui peut être utilisée avec des ordinateurs capables de traiter des nombres entiers de 32 bits en suivant les étapes ci-dessous :

  1. k = ⌊xi ÷ 52 774⌋
  2. xi + 1 = 40 692 (xi − 52 774 k) − 3 791 k
  3. If xi + 1 < 0 then let xi + 1 = xi + 1 + 2 147 483 399

4.2.4 Produire la valeur de départ de l'algorithme d'échantillonnage aléatoire en attribuant le résultat en 4.2.2 c) à xi et en appelant ensuite la formule en 4.2.3 j fois comme en 4.2.2 e), en remplaçant xi par xi, jusqu'à ce que le nombre requis d'appels soit fait.

4.2.5 La valeur finale de xi + 1, obtenue en 4.2.4, est un nombre entier aléatoire se trouvant entre 1 et 2 147 483 398 inclusivement et sert de valeur de départ initiale à l'algorithme d'échantillonnage aléatoire décrit en 4.3 [en particulier, la valeur yi mentionnée en 4.3.6 b)]. Une copie de cette valeur est enregistrée comme variable séparée à titre de référence.

4.3 Algorithme de génération de nombres aléatoires

4.3.1 L'algorithme de génération de nombres aléatoires est constitué :

  1. d'une série de randomisation peuplée avec un algorithme de génération de nombres aléatoires distribués uniformément; et,
  2. d'une combinaison d'algorithmes de génération de nombres aléatoires distribués uniformément.

4.3.2 Créer une série A de 32 éléments comme moyen de randomiser les résultats obtenus avec l'algorithme d'échantillonnage aléatoire.

4.3.3 Le générateur de nombres aléatoires suivant sert à peupler la série de randomisation :

xi + 1 = 40 014 xi mod 2 147 483 563

qui peut être utilisée avec un ordinateur 32 bits en suivant les étapes ci-dessous :

  1. k = ⌊xi ÷ 53 668⌋
  2. xi + 1 = 40 014 (xi − 53 668 k) − 12 211 k
  3. If xi + 1 < 0 then let xi + 1 = xi + 1 + 2 147 483 563

4.3.4 Initialiser la série A en attribuant le résultat de 4.1.3 ou 4.2.5 à xi et en appelant ensuite 40 fois la formule du générateur donnée en 4.3.3 a), en remplaçant xi par xi + 1 à chaque appel, en rejetant les 8 premières valeurs et en attribuant chacune des 32 autres valeurs résultantes de xi + 1 à la série dans l'ordre inverse (c.-à-d. de 32 à 1).

4.3.5 Considérer le 1er élément de la série A (c.-à-d. A[1]) comme valeur de départ d'initialisation k pour la combinaison d'algorithmes de génération de nombres aléatoires.

4.3.6 La combinaison d'algorithmes de génération de nombres aléatoires prend la forme de la combinaison suivante de relations de récurrence congruente linéaire et des étapes de détermination de l'indice de série :

  1. xi + 1 = 40 014 xi mod 2 147 483 563
  2. yi + 1 = 40 692 yi mod 2 147 483 399
  3. J = ⌊32 k ÷ 2 147 483 563⌋ + 1
  4. k = A[J] − yi + 1
  5. A[J] = xi + 1
  6. If k < 1 then let k = k + 2 147 483 562

Nota : Les deux générateurs de nombres aléatoires ci-dessus sont les mêmes que ceux décrits en 4.2.3 et en 4.3.3 (voir ces paragraphes en cas d'application avec un ordinateur de 32 bits).

4.3.7 L'algorithme en 4.3.6 est initialisé en donnant à xi la valeur finale de xi + 1 obtenue en 4.3.4 et en donnant à yi la valeur en 4.2.5. Les valeurs xi + 1 et yi + 1 servent de valeurs subséquentes de xi et de yi pour tous les appels subséquents de l'algorithme. Un indice J aléatoire de la série de randomisation A est calculé au moyen de la valeur de k (initialement en 4.3.5) et la différence entre A[J] et yi + 1, est attribuée à k, alors que l'indice de la série A[J] est actualisé avec la valeur de xi + 1. Enfin, la valeur de k est modifiée au besoin pour produire une valeur positive.

4.3.8 Le résultat de l'algorithme d'échantillonnage aléatoire est la valeur k, qui est un nombre aléatoire entre 1 et 2 147 483 562 inclusivement, échelonné comme une variable réelle U normale uniformément distribuée entre 0 et 1, à l'exception des valeurs d'extrémité, comme suit : U = k ÷ 2 147 483 563.

4.3.9 Le résultat obtenu en 4.3.8 peut être échelonné comme variable L de nombres entiers distribués uniformément sur l'intervalle de 1 à N inclusivement, comme suit : L = ⌊N U⌋ + 1.

4.3.10 Pour produire un échantillon aléatoire, les étapes 4.3.6 à 4.3.9 sont répétées jusqu'à ce que le nombre voulu de valeurs aléatoires soit obtenu.

4.4 Enregistrements à conserver en vue d'un audit

Lorsqu'il faut conserver des enregistrements à des fins d'audit par Mesures Canada ou une autorité responsable, consigner l'identificateur de l'opérateur, l'identificateur du lot, l'effectif du lot, les effectifs des échantillons, le type d'échantillonnage utilisé et les listes des individus du lot et des échantillons.

De plus, en ce qui concerne les algorithmes, consigner la valeur de départ entrée manuellement conformément à 4.1.3 ou, si un générateur de valeurs de départ est utilisé, consigner :

  1. la date et l'heure de l'ordinateur qui seront utilisées pour calculer la valeur de départ initiale;
  2. la valeur de départ initiale selon 4.2.2 d); et,
  3. la valeur de départ finale selon 4.2.5.

5.0 Méthodes d'échantillonnage aléatoire

5.1 Généralités

5.1.1 Le présent article fournit des algorithmes pour l'échantillonnage aléatoire couramment utilisé en métrologie légale.

5.1.2 Dans le présent article, U est définie comme étant une variable réelle aléatoire uniformément distribuée entre 0 et 1, à l'exception des valeurs d'extrémité de l'intervalle, comme celles obtenues avec l'algorithme décrit en 4.

5.2 Échantillonnage simple

Un échantillon aléatoire simple de n unités distinctes d'un lot de N unités est produit sans remise comme suit :

  1. produire une valeur réelle aléatoire U.
  2. fixer une valeur L égale à ⌊N U⌋ + 1.
  3. vérifier que la valeur de L n'a pas été produite auparavant; si elle est distincte, enregistrer la valeur, sinon l'éliminer.
  4. répéter les étapes de a) à c) jusqu'à ce que n valeurs différentes de L soient obtenues.
  5. ou, trier les valeurs en ordre ascendant.

Nota : Si les valeurs résultantes d'un échantillon simple ne sont pas triées, l'échantillon peut être utilisé pour un contrôle par échantillonnage séquentiel en contrôlant chaque unité dans l'ordre choisi.

5.3 Échantillonnage multiple

Des échantillons aléatoires multiples de ni unités distinctes tirées d'un lot de N unités sont produits sans remise comme suit :

  1. produire un échantillon simple de nt unités distinctes tirées d'un lot de N unités sans remise, où nt est le total des effectifs de tous les échantillons ni, en laissant les valeurs dans l'ordre initial des résultats (c.-à-d. non triées).
  2. prendre les premières n1 valeurs résultantes comme premier échantillon, les valeurs résultantes suivantes n2 comme deuxième échantillon, et ainsi de suite.
  3. ou, trier les valeurs de chaque échantillon constitutif en ordre ascendant.

6.0 Révision

La révision 1 vise à mettre à jour la présentation de cette norme pour l'harmoniser avec la norme internationale ISO en cours d'élaboration à laquelle collabore le Canada. La présente norme n'apporte aucun changement important à l'application Internet de Mesures Canada qui a été utilisée pendant plusieurs années.

Alan E. Johnston
Président
Mesures Canada

Annexe A — (Informative)

A. Essais d'application de l'algorithme

A.1 Généralités

La présente annexe fournit aux développeurs de logiciels l'information qui leur permettra de faire l'essai de l'application des algorithmes d'échantillonnage aléatoire présentés dans la norme.

A.2 Essais de calcul de la valeur de départ

En fonction de la date et de l'heure entrées manuellement dans la première colonne du tableau ci-dessous, les valeurs de départ des deuxième et troisième colonnes doivent donner les algorithmes indiqués dans le paragraphe cité en référence.

Essais de calcul de la valeur de départ
Date et heure Valeur de départ 1 4.2.2 c) Valeur de départ 2 4.2.5
2009-01-15 16:16:16 285 351 376 1 774 249 844
2009-07-15 08:08:08 300 960 488 150 009 464
2010-01-15 16:16:16 316 887 376 1 593 377 912
2010-07-15 08:08:08 332 496 488 1 451 476 477

A.3 Essais des algorithmes de génération des nombres aléatoires

L'utilisation des valeurs de départ d'initialisation de x0 = 1 et de y0 = 1, selon le cas, pour chaque générateur de nombres aléatoires et l'appel de chaque générateur 10 000 fois permettent d'obtenir le résultat suivant :

  1. pour xi + 1 = 40 014 xi mod 2 147 483 563 (4.3.3), x10 000 = 1 919 456 777;
  2. pour yi + 1 = 40 692 yi mod 2 147 483 399 (4.2.3), y10 000 = 2 006 618 587; et,
  3. pour la combinaison d'algorithmes avec série de randomisation (4.3.6), A[J] J = 10 000 = 1 701 364 455.

A.4 Essai global d'application étape par étape

En utilisant la date et l'heure d'initialisation de 2009-01-15 16:16:16, on peut obtenir les résultats intermédiaires et finaux des algorithmes suivants :

  1. selon l'étape 4.2.2 b), de = 3 302;
  2. selon l'étape 4.2.2 c), se = 285 351 376;
  3. selon l'étape 4.2.2 e), j = 77;
  4. selon les étapes 4.2.4 et 4.2.5, résultat = 1 774 249 844;
  5. selon l'étape 4.3.4, les 32 valeurs de la série A sont :

    Tableau 2
    J A[J]
    1 1 773 883 525
    2 1 376 260 681
    3 324 244 626
    4 616 012 910
    5 1 753 573 598
    6 238 867 782
    7 591 860 039
    8 64 148 416
    9 12 989 333
    10 1 236 571 744
    11 150 838 841
    12 1 379 547 554
    13 1 594 841 833
    14 363 535 288
    15 643 814 074
    16 1 662 338 174
    17 1 843 118 480
    18 1 301 824 472
    19 2 024 723 015
    20 1 640 100 338
    21 1 715 924 041
    22 1 979 383 646
    23 1 293 133 612
    24 504 407 049
    25 925 629 865
    26 879 056 303
    27 257 361 492
    28 1 402 037 236
    29 1 031 539 864
    30 981 619 081
    31 81 117 341
    32 2 036 123 857
  6. selon l'étape 4.3.5, k = 1 773 883 525;
  7. selon l'étape 4.3.6 a), xi + 1 = 1 548 645 074;
  8. selon l'étape 4.3.6 b), yi + 1 = 1 530 261 067;
  9. selon l'étape 4.3.6 c), J = 27;
  10. selon l'étape 4.3.6 d), k = -1 272 899 575;
  11. selon l'étape 4.3.6 e), A[J] = 1 548 645 074;
  12. selon l'étape 4.3.6 f), k = 874 583 987.

Annexe B — (Informative)

B. Application d'échantillonnage aléatoire sur Internet

B.1 Généralités

B.1.1 Mesures Canada a développé une application en ligne sur Internet qui utilise les algorithmes définis ci-dessus. L'application est conçue pour produire un ou plusieurs échantillons aléatoires pseudo-indépendants sans remise dans un lot fini.

B.1.2 Sous réserve des dispositions du déni de responsabilité associé à cette application, les résultats peuvent être utilisés pour satisfaire aux exigences juridiques applicables à la sélection des échantillons et aux audits prévus en vertu des lois administrées par Mesures Canada.

B.1.3 L'application aidera aussi les développeurs de logiciels, car elle peut être utilisée pour compléter les essais présentés à l'annexe A qui permettent de vérifier si l'utilisation de l'application est adéquate.

B.2 Accès à l'application

B.2.1 L'application peut être accédée à partir du site Web de Mesures Canada.

Annexe C — (Informative)

C. Bibliographie

  • [1] Bays, C. and Durham, S.D. (1976). Improving a Poor Random Number Generator. ACM Transactions on Mathematical Software, Vol. 2, no 1 (mars), pp. 59-64.
  • [2] ISO 3534-1:2006, Statistique — Vocabulaire et symboles — Partie 1 : Probabilité et termes statistiques généraux et termes utilisés en calcul des probabilités.
  • [3] ISO 3534-2:2006, Statistique — Vocabulaire et symboles — Partie 2 : Statistique appliquée.
  • [4] ISO 3534-3:1999, Statistique — Vocabulaire et symboles — Partie 3 : Plans d'expérience.
  • [5] L'Ecuyer, P. (1988). An Efficient and Portable Combined Random Number Generator. Communications of the ACM, Vol. 31, no 6 (juin), pp. 742-749, 774.
  • [6] Marsaglia, G. (2003). Random Number Generators. Journal of Modern Applied Statistical Methods, Vol. 2, no 1 (mai), pp. 2-13.
  • [7] Park, S.K. and Miller, K.W. (1988). Random Number Generators: Good Ones are Hard to Find. Communications of the ACM, Vol. 31, no 10 (octobre), pp. 1192-1201.
  • [8] Press, W.H., Teukolsky, S.A., Vetterling, W.T., and Flannery, B.P. (1992, 2001). Numerical Recipes in Fortran 77: The Art of Scientific Computing, Second Edition (Volume 1 of Fortran Numerical Recipes), Cambridge University Press, Cambridge, R.-U.