[PYTHON] Tester l'adéquation de la distribution

La dernière fois J'ai expliqué diverses choses sur Hadoop en partant du principe que la population sera étudiée complètement, mais quand j'ai fait des hypothèses sur la répartition des populations. Un test de conformité est requis.

Ce que vous pouvez voir par le test

Pensons à ce qui peut être jugé par le test.

  1. Test de rapport

Test de différence de ratio → Y a-t-il une différence de ratio de population entre deux populations différentes? Ceci est déterminé par le fait que le rapport de population P est égal à une certaine valeur P_0.

  1. Test de valeur moyenne

Test de différence de valeur moyenne → Y a-t-il une différence de moyenne de population entre deux populations différentes? Ceci est déterminé par le fait que la valeur moyenne μ de la population est égale à une certaine valeur μ_0.

  1. Test de variance

Test de différence de variance → Y a-t-il une différence de variance entre deux populations normales différentes? Ceci est déterminé par le fait que la variance σ ^ 2 de la population normale est égale à une certaine valeur σ ^ 2_0.

  1. Test de conformité

Peut-on dire que les données observées sont cohérentes avec une distribution particulière? Si les distributions de probabilité des deux populations sont différentes.

Distribution de Poisson

La distribution de Poisson est comme expliqué précédemment dans Test d'hypothèse et distribution de probabilité.

Si les valeurs possibles de la variable stochastique sont discrètes et infinies, c'est la probabilité qu'un événement qui se produit λ fois en moyenne par unité de temps se produise X fois par unité de temps.

{P(X = k) = \frac {{\lambda}^xe^{-\lambda}} {k!} \\
pourtant\\
\lambda \gt 0
}

Test d'aptitude à la distribution

Considérez le nombre d'observations d'informations spécifiques au terminal dans une certaine information de position. Supposons que vous ayez étudié 100 unités pour voir si chaque information spécifique au terminal est observée dans une zone spécifique, et suivez le tableau ci-dessous pour chaque information spécifique au terminal.

Nombre d'observations Nombre de terminaux
0 43
1 31
2 14
3 8
4 3
5 1

Si ce nombre d'observations suit la distribution de Poisson est testé au niveau de signification (= valeur P) de 5%.

λ = population inconnue (estimée à partir des données) X = classe k

Par conséquent, la moyenne de l'échantillon est utilisée comme une estimation de la population inconnue λ de la distribution de Poisson.

\hat{\lambda} = \frac 1 {100} (0 x 43 + 1 x 31 + 2 x 14 + ... ) = 1

Par conséquent, la fréquence attendue est

Classe k Fréquence d'observation Fréquence attendue
0 43 36.8
1 31 36.8
2 14 18.4
3 8 6.13
4 3 1.53
5 1 0.307
6 0 0.0330
\chi^2 = \frac {(43-36.8)^2} {36.8} + \frac {(31-36.8)^2} {36.8} + ... = 5.011

Les valeurs ainsi obtenues sont comparées au Table of chi-square distribution.

Le degré de liberté est 7-1 -1 = 5 car le nombre de populations inconnues est soustrait du nombre de classes -1. Si k = 3 et plus sont regroupés et que le nombre de classes est 4, alors 4-1 -1 = 2. Je vais. Si vous regardez la colonne avec une valeur P de 0,05 et un degré de liberté de 2, elle indique 5,99146, elle est donc comprise dans cette valeur et l'hypothèse nulle n'est pas rejetée. En d'autres termes, il s'avère que ** on ne peut pas dire qu'il ne suit pas la distribution de Poisson **.

Distribution de Poisson et limitation extrême

Simulons que si n est approché de l'infini tout en gardant λ de la distribution normale avec les paramètres n et p = λ / n constants, il se rapprochera de la distribution de Poisson.

J'avais l'habitude de faire la simulation de la qualification du pôle central de manière brutale, mais c'est plus facile à faire.

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

M = 1000
for N in [10,30,50,100]:
    data = [np.average(np.random.poisson(3, N)) for i in range(M)]
    hist, key = np.histogram(data, bins=np.arange(1,5,0.1), density=True)
    ax.plot(hist, label=str(N))

plt.legend(loc='best')
plt.show()
plt.savefig("image.png ")

image.png

Lorsque N = 100, on observe qu'elle est proche d'une distribution normale.

Recommended Posts

Tester l'adéquation de la distribution
Tester si les données observées suivent la distribution de Poisson (Test de l'adéquation de la distribution de Poisson par Python)
Tester la version du module argparse
Distribution et test
Faites correspondre la distribution de chaque groupe en Python
[Python] Teste le matagi lunaire du delta relatif
Test de la différence entre les valeurs moyennes des données de comptage selon la distribution de Poisson
Le début de cif2cell
Le sens de soi
le zen de Python
L'histoire de sys.path.append ()
Étapes pour calculer la probabilité d'une distribution normale
Testons l'hypothèse d'effondrement médical du nouveau virus corona
Vérification de la distribution normale
L'histoire de vouloir acheter une aventure en forme de bague
Vérifiez le type et la version de la distribution Linux
Vérifiez la nature atrophique de la distribution de probabilité en Python
Résumé de la méthode d'essai
La vengeance des types: la vengeance des types
Comprendre la signification des formules de distribution normale complexes et bizarres
Aligner la version de chromedriver_binary
Distribution des valeurs propres de la matrice laplacienne
10. Compter le nombre de lignes
L'histoire de la construction de Zabbix 4.4
Vers la retraite de Python2
Pour se préparer au test G 2020 # 2
Comparez les polices de jupyter-themes
Obtenez le nombre de chiffres
Expliquez le code de Tensorflow_in_ROS
Résumé des types de distribution Linux
Réutiliser les résultats du clustering
EM de distribution gaussienne mixte
GoPiGo3 du vieil homme
Calculez le nombre de changements
Changer le thème de Jupyter
La popularité des langages de programmation
Changer le style de matplotlib
Visualisez la trajectoire de Hayabusa 2
À propos des composants de Luigi
Composants liés du graphique
Filtrer la sortie de tracemalloc
À propos des fonctionnalités de Python
Test d'hypothèse et distribution de probabilité
Simulation du contenu du portefeuille
Le pouvoir des pandas: Python
Mesurez la couverture de test du code python poussé sur GitHub.
Essayez de transcrire la fonction de masse stochastique de la distribution binomiale en Python
Installer et gérer plusieurs environnements de la même distribution sur WSL
Effectuer un test d'application de fichier de migration avec Django + PostgreSQL (Evil Edition)
Si la précision du test PCR est mauvaise, pourquoi ne pas répéter le test?
Dérivez soigneusement la plage de quadrants de la distribution normale standard depuis le début