Effectuer des tests Runs pour le caractère aléatoire en Python

王林
Libérer: 2023-09-15 16:25:02
avant
1343 Les gens l'ont consulté

Effectuer des tests Runs pour le caractère aléatoire en Python

Présentation

Le concept d'aléatoire joue un rôle essentiel dans différents domaines tels que l'insight, la cryptographie et la simulation. Déterminer si une séquence d'informations est véritablement irrégulière ou affiche une conception de base est fondamental dans de nombreuses applications. Un test mesurable couramment utilisé à cette fin est un test d’exécution du caractère aléatoire. Dans cet article, nous approfondissons l'exécution de tests de caractère aléatoire et expliquons comment le faire à l'aide de Python, un langage de programmation flexible largement utilisé pour l'analyse statistique. En tirant parti de la puissance de Python et du module scipy.stats, des tests en cours d'exécution peuvent être appliqués efficacement pour évaluer le caractère aléatoire d'un ensemble de données donné.

Comprendre l'inspection en cours

Le test Runs est un test non paramétrique qui examine le regroupement de valeurs dans un ensemble de données pour déterminer si elles sont irrégulières ou si elles présentent un modèle valide. Il repose sur le concept de « runs », qui sont des événements consécutifs dont la valeur dépasse ou descend en dessous d'un certain seuil. En analysant le nombre d'exécutions au sein d'un groupe, nous pouvons évaluer le caractère aléatoire de l'information.

Le soupçon fondamental des tests de longueur d'exécution est que dans des groupements véritablement aléatoires, le nombre d'exécutions aura tendance à se produire après une propagation spécifique. Si le nombre de séquences consultées s'écarte considérablement de l'écart attendu, cela indique une proximité ou un biais intentionnel dans l'information.

Équation statistique du test Z

La mesure du test Z peut être utilisée dans les tests théoriques pour déterminer combien de points d'information manquants il y a dans une moyenne de population ou combien d'écarts types il y a dans une moyenne de test. Il est généralement utilisé lorsque l’écart type de la population est connu. L’équation mesurée par Z−test est :

Z = (X − µ) / (σ / √n)

Où :

(Où)

Z est la valeur mesurée du test Z−,

X est la moyenne du test,

μ est la moyenne globale,

σ est l’écart type de la population, et

n est la taille du test.

Cette formule nous permet de convertir une moyenne de test en un score Z, ce qui permet de déterminer la probabilité d'obtenir une telle moyenne de test si l'hypothèse nulle est vraie. En comparant la mesure du test Z à la valeur critique de la distribution normale standard, nous pouvons prendre la décision d'accepter ou de rejeter l'hypothèse nulle.

Implémentation des tests Runs en Python

Algorithme

Étape 1 : Entrez la séquence d'informations.

Étape 2 : Facteur d'initialisation : num_runs = 1, n = longueur de la séquence de messages.

Étape 3 : Exécutez les nombres à travers la séquence d'informations en comparant les éléments séquentiels.

Étape 4 : Utilisez Expected_runs pour calculer le score attendu.

Étape 5 : Utilisez std_deviation pour calculer l'écart type.

La traduction chinoise de

Exemple

est :

Exemple

def run_test(data):
    n = len(data)
    num_runs = 1  

    for i in range(1, n):
        if data[i] != data[i - 1]:
            num_runs += 1

    expected_runs = (2 * n - 1) / 3
    std_deviation = ((16 * n - 29) / 90) ** 0.5

    z_score = (num_runs - expected_runs) / std_deviation

    return num_runs, expected_runs, std_deviation, z_score

if __name__ == "__main__":
    
    data = [12, 10, 8, 9, 7, 5, 4, 6, 8, 10]

    num_runs, expected_runs, std_deviation, z_score = run_test(data)

    print("Data:", data)
    print("Number of Runs:", num_runs)
    print("Expected Runs:", expected_runs)
    print("Standard Deviation:", std_deviation)
    print("Z-Score:", z_score)
    print("Conclusion:")
    
    
    if abs(z_score) <= 1.96:
        print("The Run Test result is not statistically significant.")
    else:
        print("The Run Test result is statistically significant.")
Copier après la connexion

Sortie

Data: [12, 10, 8, 9, 7, 5, 4, 6, 8, 10]
Number of Runs: 10
Expected Runs: 6.333333333333333
Standard Deviation: 1.2064640713902572
Z-Score: 3.039184301975457
Conclusion:
The Run Test result is statistically significant.
Copier après la connexion

Restrictions et remarques

Bien que le Runs Test of Randomness puisse être un outil précieux de facto, il existe des limites et des considérations à prendre en compte lors de la réalisation du Runs Test de Python. Voici quelques points clés à vérifier lors de l’exécution des tests Runs :

  • Estimation d'échantillon : L'exécution de tests nécessite une estimation de test suffisamment grande pour fournir des résultats fiables. Si l’ensemble de données est trop petit, le test risque de ne pas être suffisamment sensible pour identifier avec précision les écarts par rapport au caractère aléatoire. Une mesure de test d'au moins 20 est recommandée pour obtenir des résultats fiables.

  • Hypothèse d'autonomie : Exécutez le test pour accepter que les percepts de l'ensemble de données sont indépendants les uns des autres. Si l’information n’est pas autonome ou présente une certaine forme d’autocorrélation, les résultats du test en cours peuvent être unilatéraux ou douteux. De cette manière, il est important de garantir la liberté d’information sur les tests d’application récents.

  • Détermination du seuil : Les tests en cours incluent la caractérisation des seuils pour identifier les valeurs courantes au-dessus et en dessous de la limite. Le choix des bords peut complètement affecter les résultats du test. Les bords d'ajustement doivent être choisis en fonction de la nature des informations analysées. Les marges ne doivent pas être trop extrêmes ni trop lâches, car cela pourrait conduire à des conclusions trompeuses.

  • Interprétation des résultats : Bien que l'exécution du test fournisse certaines connaissances sur le caractère aléatoire de l'ensemble de données, il est crucial d'interpréter les résultats avec prudence. Ce test ne prouve pas de manière concluante le caractère aléatoire ou non-aléatoire, mais étudie plutôt dans quelle mesure le caractère aléatoire prend son essor. Notez que la valeur p− suggère un écart par rapport au caractère aléatoire, mais elle ne fournit pas d'informations sur la nature de l'information ou sur la conception spécifique.

  • Comparaison avec le volume de livraison attendu : Le test d'exécution compare le nombre d'exécutions observé à la dispersion attendue en fonction du caractère aléatoire. Dans tous les cas, il convient de noter que la dispersion attendue peut varier en fonction des caractéristiques de l'information et des variations spécifiques des tests utilisés. Il est donc crucial de prendre en compte les rendements attendus appropriés lors de l’interprétation des résultats.

Conclusion

L'exécution de tests de caractère aléatoire peut être un outil important pour évaluer le caractère aléatoire d'une séquence de données. En analysant le nombre d'exécutions dans l'ensemble de données, nous avons pu déterminer si les informations présentaient des tendances ou des écarts sous-jacents. Python, avec son environnement de bibliothèque riche, fournit une plate-forme utile pour effectuer des tests statistiques (tels que l'exécution de tests). Dans cet article, nous avons exploré le concept d'exécution de tests et décrit les étapes pour le faire en Python à l'aide du module scipy.stats. Gardez à l’esprit que les tests statistiques ne constituent pas une preuve concluante du caractère aléatoire ou non du hasard, mais ils constituent un outil important pour analyser les informations.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!