[PYTHON] Testen Sie die Eignung der Verteilung

Letztes Mal Ich habe verschiedene Dinge über Hadoop unter der Voraussetzung erklärt, dass die Bevölkerung vollständig befragt wird, aber als ich einige Annahmen über die Verteilung der Populationen getroffen habe. Eine Konformitätsprüfung ist erforderlich.

Was Sie durch den Test sehen können

Lassen Sie uns darüber nachdenken, was anhand des Tests beurteilt werden kann.

  1. Verhältnis-Test

Test des Unterschieds im Verhältnis → Gibt es einen Unterschied im Bevölkerungsverhältnis zwischen zwei verschiedenen Populationen? Dies wird dadurch bestimmt, ob das Populationsverhältnis P gleich einem bestimmten Wert P_0 ist.

  1. Test des Durchschnittswertes

Test der Differenz im Mittelwert → Gibt es einen Unterschied im Populationsmittel zwischen zwei verschiedenen Populationen? Dies wird dadurch bestimmt, ob der Durchschnittswert μ der Population einem bestimmten Wert μ_0 entspricht.

  1. Varianztest

Test des Varianzunterschieds → Gibt es einen Varianzunterschied zwischen zwei verschiedenen Normalpopulationen? Dies wird dadurch bestimmt, ob die Varianz σ ^ 2 der Normalbevölkerung gleich einem bestimmten Wert σ ^ 2_0 ist.

  1. Konformitätsprüfung

Können wir sagen, dass die beobachteten Daten mit einer bestimmten Verteilung übereinstimmen? Ob die Wahrscheinlichkeitsverteilungen der beiden Populationen unterschiedlich sind.

Poisson-Verteilung

Die Poisson-Verteilung ist wie zuvor in Hypothesentest und Wahrscheinlichkeitsverteilung erläutert.

Wenn die möglichen Werte der stochastischen Variablen diskret und unendlich sind, ist es die Wahrscheinlichkeit, dass ein Ereignis, das durchschnittlich λ-mal pro Zeiteinheit auftritt, X-mal pro Zeiteinheit auftritt.

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

Prüfung der Verteilungseignung

Berücksichtigen Sie die Anzahl der Beobachtungen terminalspezifischer Informationen in einer bestimmten Positionsinformation. Angenommen, Sie haben 100 Einheiten untersucht, um festzustellen, ob jede terminalspezifische Information in einem bestimmten Bereich beobachtet wird, und folgen Sie der nachstehenden Tabelle für jede terminalspezifische Information.

Anzahl der Beobachtungen Anzahl der Terminals
0 43
1 31
2 14
3 8
4 3
5 1

Man kann sagen, dass diese Anzahl von Beobachtungen der Poisson-Verteilung folgt oder bei einem Signifikanzniveau (= P-Wert) von 5% getestet wird.

λ = unbekannte Population (geschätzt aus Daten) X = Klasse k

Daher wird der Stichprobenmittelwert als Schätzwert der unbekannten Population λ der Poisson-Verteilung verwendet.

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

Daher ist die erwartete Frequenz

Klasse k Beobachtungsfrequenz Erwartete Frequenz
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

Die auf diese Weise erhaltenen Werte werden mit der Tabelle der Chi-Quadrat-Verteilung verglichen.

Der Freiheitsgrad beträgt 7 -1 -1 = 5, da die Anzahl unbekannter Populationen von der Anzahl der Klassen -1 abgezogen wird. Wenn k = 3 und höher zusammengefasst sind und die Anzahl der Klassen 4 beträgt, ist 4-1 -1 = 2. Ich werde. Wenn Sie sich die Spalte mit einem P-Wert von 0,05 und einem Freiheitsgrad von 2 ansehen, heißt es 5,99146, liegt also innerhalb dieses Werts und die Nullhypothese wird nicht zurückgewiesen. Mit anderen Worten, es stellt sich heraus, dass ** nicht gesagt werden kann, dass es nicht der Poisson-Verteilung folgt **.

Poissonverteilung und extreme Begrenzung

Simulieren wir, dass wenn n gegen unendlich geht, während λ der Normalverteilung mit den Parametern n und p = λ / n konstant gehalten wird, es sich der Poisson-Verteilung annähert.

Früher habe ich die Simulation der Zentralpolbegrenzung auf Brute-Force-Weise simuliert, aber es ist einfacher.

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

Wenn N = 100 ist, wird beobachtet, dass es nahe an einer Normalverteilung liegt.

Recommended Posts

Testen Sie die Eignung der Verteilung
Testen Sie, ob die beobachteten Daten der Poisson-Verteilung folgen (Test der Eignung der Poisson-Verteilung durch Python)
Testen Sie die Version des Argparse-Moduls
Verteilung und Test
Passen Sie die Verteilung jeder Gruppe in Python an
[Python] Testen Sie die Mondmatagi des relativen Deltas
Test der Differenz zwischen den Durchschnittswerten der Zähldaten gemäß der Poisson-Verteilung
Der Beginn von cif2cell
Die Bedeutung des Selbst
der Zen von Python
Die Geschichte von sys.path.append ()
Schritte zur Berechnung der Wahrscheinlichkeit einer Normalverteilung
Lassen Sie uns die medizinische Kollapshypothese des neuen Koronavirus testen
Überprüfung der Normalverteilung
Die Geschichte, ein Ring-Fit-Abenteuer kaufen zu wollen
Überprüfen Sie den Linux-Verteilungstyp und die Version
Überprüfen Sie die atrophische Natur der Wahrscheinlichkeitsverteilung in Python
Zusammenfassung der Testmethode
Rache der Typen: Rache der Typen
Richten Sie die Version von chromedriver_binary aus
Verteilung der Eigenwerte der Laplace-Matrix
10. Zählen der Anzahl der Zeilen
Die Geschichte des Baus von Zabbix 4.4
Auf dem Weg zum Ruhestand von Python2
Für die Prüfung G-Test 2020 # 2
Vergleichen Sie die Schriftarten von Jupyter-Themen
Holen Sie sich die Anzahl der Ziffern
Erläutern Sie den Code von Tensorflow_in_ROS
Zusammenfassung der Linux-Verteilungstypen
Verwenden Sie die Clustering-Ergebnisse erneut
EM der gemischten Gaußschen Verteilung
GoPiGo3 des alten Mannes
Berechnen Sie die Anzahl der Änderungen
Ändern Sie das Thema von Jupyter
Die Popularität von Programmiersprachen
Ändern Sie den Stil von matplotlib
Visualisieren Sie die Flugbahn von Hayabusa 2
Über die Komponenten von Luigi
Verknüpfte Komponenten des Diagramms
Filtern Sie die Ausgabe von tracemalloc
Über die Funktionen von Python
Hypothesentest und Wahrscheinlichkeitsverteilung
Simulation des Inhalts der Brieftasche
Die Kraft der Pandas: Python
Messen Sie die Testabdeckung von Push-Python-Code auf GitHub.
Versuchen Sie, die stochastische Massenfunktion der Binomialverteilung in Python zu transkribieren
Installieren und verwalten Sie mehrere Umgebungen derselben Distribution in WSL
Führen Sie einen Anwendungstest für Migrationsdateien mit Django + PostgreSQL (Evil Edition) durch.
Wenn die Genauigkeit des PCR-Tests schlecht ist, warum nicht den Test wiederholen?
Leiten Sie den Quadrantenbereich der Standardnormalverteilung von Anfang an sorgfältig ab