Nehmen wir an, Sie befinden sich in einem Kundenbetreuungszentrum und möchten die Wahrscheinlichkeitsverteilung der Anzahl der Anrufe professional Minute oder mit anderen Worten wissen, dass Sie die Frage beantworten möchten: Wie hoch ist die Wahrscheinlichkeit, Null, eins, zwei zu erhalten, zwei, zwei , Usw., Anrufe professional Minute? Sie benötigen diese Verteilung, um die Wahrscheinlichkeit vorherzusagen, dass eine unterschiedliche Anzahl von Anrufen erhalten, basierend darauf, wie viele Mitarbeiter benötigt werden, ob eine Erweiterung erforderlich ist oder nicht, usw.

Um unsere Entscheidung „Daten informiert“ zu lassen, beginnen wir damit, Daten zu sammeln, aus denen wir versuchen, diese Verteilung zu schließen, oder mit anderen Worten, wir möchten von den Beispieldaten auf die unsichtbaren Daten verallgemeinern, die auch als Bevölkerung in statistischer Bevölkerung bezeichnet werden Bedingungen. Dies ist die Essenz statistischer Schlussfolgerung.

Aus den gesammelten Daten können wir die relative Häufigkeit jedes Werts von Aufrufen professional Minute berechnen. Wenn beispielsweise die gesammelten Daten im Laufe der Zeit ungefähr so ​​aussehen: 2, 2, 3, 5, 4, 5, 5, 3, 6, 3, 4,… usw. Diese Daten werden erhalten, indem die Anzahl der empfangenen Anrufe gezählt werden jede Minute. Um die relative Frequenz jedes Werts zu berechnen, können Sie die Anzahl der Vorkommen jedes Werts zählen, der durch die Gesamtzahl der Vorkommen geteilt wird. Auf diese Weise erhalten Sie in der folgenden Abbildung so etwas wie die graue Kurve, die dem Histogramm der Daten in diesem Beispiel entspricht.

Bild vom Autor erzeugt

Eine andere Möglichkeit besteht darin, anzunehmen, dass jeder Datenpunkt aus unseren Daten eine Realisierung einer zufälligen Variablen (x) ist, die einer bestimmten Wahrscheinlichkeitsverteilung folgt. Diese Wahrscheinlichkeitsverteilung stellt alle möglichen Werte dar, die generiert werden, wenn wir diese Daten lange in die Zukunft sammeln, oder mit anderen Worten, wir können sagen, dass sie die Inhabitants darstellt, aus der unsere Stichprobendaten gesammelt wurden. Darüber hinaus können wir davon ausgehen, dass alle Datenpunkte aus derselben Wahrscheinlichkeitsverteilung stammen, dh die Datenpunkte sind identisch verteilt. Darüber hinaus gehen wir davon aus, dass die Datenpunkte unabhängig sind, dh der Wert eines Datenpunkts in der Stichprobe wird von den Werten der anderen Datenpunkte nicht beeinflusst. Die Annahme der Independence and Similar Distribution (IID) der Stichprobendatenpunkte ermöglicht es uns, mit unserem statistischen Inferenzproblem systematisch und unkompliziert mit unserem statistischen Inferenzproblem fortzufahren. In formaler Begriffen gehen wir davon aus, dass ein generatives probabilistisches Modell für die Generierung der IID -Daten verantwortlich ist, wie unten gezeigt.

Bild vom Autor erzeugt

In diesem speziellen Beispiel wird angenommen, dass eine Poisson -Verteilung mit dem Mittelwert λ = 5 die Daten generiert hat, wie in der blauen Kurve in der folgenden Abbildung gezeigt. Mit anderen Worten, wir nehmen hier an, dass wir den wahren Wert von λ kennen, der im Allgemeinen nicht bekannt ist und aus den Daten geschätzt werden muss.

Bild vom Autor erzeugt

Im Gegensatz zu der vorherigen Methode, bei der wir die relative Häufigkeit jedes Wertes von Aufrufen professional Minute berechnen mussten Ziel zu finden, was λ ist. Ein weiterer Vorteil dieses generativen Modellansatzes besteht darin, dass er in Bezug auf die Verallgemeinerung von Stichprobe zu Bevölkerung besser ist. Es kann gesagt werden, dass die angenommene Wahrscheinlichkeitsverteilung die Daten auf elegante Weise zusammengefasst haben, die dem Razor -Prinzip des Occam folgt.

Bevor wir weiter übergehen, wie wir diesen Parameter λ finden möchten, zeigen wir einige Python Zuerst der Code, mit dem die obige Abbildung generiert wurde.

# Import the Python libraries that we are going to want on this article
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import math
from scipy import stats

# Poisson distribution instance
lambda_ = 5
sample_size = 1000
data_poisson = stats.poisson.rvs(lambda_,dimension= sample_size) # generate knowledge

# Plot the information histogram vs the PMF
x1 = np.arange(data_poisson.min(), data_poisson.max(), 1)
fig1, ax = plt.subplots()
plt.bar(x1, stats.poisson.pmf(x1,lambda_),
        label="Possion distribution (PMF)",coloration = BLUE2,linewidth=3.0,width=0.3,zorder=2)
ax.hist(data_poisson, bins=x1.dimension, density=True, label="Knowledge histogram",coloration = GRAY9, width=1,zorder=1,align='left')

ax.set_title("Knowledge histogram vs. Poisson true distribution", fontsize=14, loc="left")
ax.set_xlabel('Knowledge worth')
ax.set_ylabel('Chance')
ax.legend()
plt.savefig("Possion_hist_PMF.png", format="png", dpi=800)

In unserem Drawback geht es jetzt darum, den Wert des unbekannten Parameters λ unter Verwendung der von uns gesammelten Daten zu schätzen. Hier werden wir die verwenden Momente Methode (Mama) Ansatz, der im Titel dieses Artikels erscheint.

Zunächst müssen wir definieren, was im Second einer zufälligen Variablen gemeint ist. Mathematisch ist der KTH -Second einer diskreten Zufallsvariablen (x) wie folgt definiert:

Nehmen Sie den ersten Second E (x) als Beispiel, das auch der Mittelwert der Zufallsvariablen ist, und unter der Annahme, dass wir unsere Daten sammeln, die als n IID -Realisierungen der Zufallsvariablen X modelliert werden. Eine vernünftige Schätzung von μ ist die Stichprobenmittelwert, der wie folgt definiert ist:

Um eine MOM -Schätzung eines Modellparameters zu erhalten, der die Wahrscheinlichkeitsverteilung der zufälligen Variablen X parametrisiert, schreiben wir zunächst den unbekannten Parameter als Funktion eines oder mehrerer KTH -Momente der Zufallsvariablen, und dann ersetzen wir die KTH Second mit seiner Stichprobenschätzung. Je unbekannter Parameter wir in unseren Modellen haben, desto mehr Momente brauchen wir.

In unserem Poisson -Modellbeispiel ist dies sehr einfach, wie unten gezeigt.

Im nächsten Teil testen wir unseren MOM -Schätzer auf die simulierten Daten, die wir zuvor hatten. Der Python -Code zum Erhalten des Schätzers und zur Aufteilung der entsprechenden Wahrscheinlichkeitsverteilung unter Verwendung des geschätzten Parameters ist unten dargestellt.

# Methodology of moments estimator utilizing the information (Poisson Dist)
lambda_hat = sum(data_poisson) / len(data_poisson)

# Plot the MoM estimated PMF vs the true PMF
x1 = np.arange(data_poisson.min(), data_poisson.max(), 1)
fig2, ax = plt.subplots()
plt.bar(x1, stats.poisson.pmf(x1,lambda_hat),
        label="Estimated PMF",coloration = ORANGE1,linewidth=3.0,width=0.3)
plt.bar(x1+0.3, stats.poisson.pmf(x1,lambda_),
        label="True PMF",coloration = BLUE2,linewidth=3.0,width=0.3)

ax.set_title("Estimated Poisson distribution vs. true distribution", fontsize=14, loc="left")
ax.set_xlabel('Knowledge worth')
ax.set_ylabel('Chance')
ax.legend()
#ax.grid()
plt.savefig("Possion_true_vs_est.png", format="png", dpi=800)

Die folgende Abbildung zeigt die geschätzte Verteilung im Vergleich zur wahren Verteilung. Die Verteilungen sind ziemlich eng, was darauf hinweist, dass der MOM -Schätzer ein vernünftiger Schätzer für unser Drawback ist. Das Ersetzen der Erwartungen durch Durchschnittswerte im MOM -Schätzer impliziert in der Tat, dass der Schätzer nach dem Gesetz großer Zahlen ein konsistenter Schätzer ist, was eine gute Rechtfertigung für die Verwendung eines solchen Schätzers darstellt.

Bild vom Autor erzeugt

Ein weiteres Beispiel für die MOM -Schätzung ist unten dargestellt, vorausgesetzt, die IID -Daten werden durch eine Normalverteilung mit mittlerer μ und Varianz σ² erzeugt, wie unten gezeigt.

Bild vom Autor erzeugt

In diesem speziellen Beispiel wird angenommen, dass eine Gaußsche (normale) Verteilung mit dem Mittelwert μ = 10 und σ = 2 die Daten generiert hat. Das Histogramm der generierten Datenprobe (Stichprobengröße = 1000) ist in der folgenden Abbildung grau dargestellt, während die wahre Verteilung in der blauen Kurve dargestellt ist.

Bild vom Autor erzeugt

Der Python -Code, der verwendet wurde, um die obige Abbildung zu generieren, ist unten dargestellt.

# Regular distribution instance
mu = 10
sigma = 2
sample_size = 1000
data_normal = stats.norm.rvs(loc=mu, scale=sigma ,dimension= sample_size) # generate knowledge

# Plot the information histogram vs the PDF
x2 = np.linspace(data_normal.min(), data_normal.max(), sample_size)
fig3, ax = plt.subplots()
ax.hist(data_normal, bins=50, density=True, label="Knowledge histogram",coloration = GRAY9)
ax.plot(x2, stats.norm(loc=mu, scale=sigma).pdf(x2),
        label="Regular distribution (PDF)",coloration = BLUE2,linewidth=3.0)

ax.set_title("Knowledge histogram vs. true distribution", fontsize=14, loc="left")
ax.set_xlabel('Knowledge worth')
ax.set_ylabel('Chance')
ax.legend()
ax.grid()

plt.savefig("Normal_hist_PMF.png", format="png", dpi=800)

Jetzt möchten wir den MOM -Schätzer verwenden, um eine Schätzung der Modellparameter, dh, μ und σ², wie unten gezeigt zu finden.

Um diesen Schätzer anhand unserer Stichprobendaten zu testen, zeichnen wir die Verteilung mit den geschätzten Parametern (orange) in der folgenden Abbildung im Vergleich zur tatsächlichen Verteilung (blau) dar. Auch hier kann gezeigt werden, dass die Verteilungen ziemlich nahe sind. Um diesen Schätzer zu quantifizieren, müssen wir ihn natürlich auf mehreren Realisierungen der Daten testen und Eigenschaften wie Verzerrungen, Varianz usw. beobachten. So wichtige Aspekte wurden in einem früheren Artikel erörtert.

Bild vom Autor erzeugt

Der Python -Code, mit dem die Modellparameter mit MOM geschätzt und die obige Abbildung geschätzt wurden, ist unten dargestellt.

# Methodology of moments estimator utilizing the information (Regular Dist)
mu_hat = sum(data_normal) / len(data_normal) # MoM imply estimator
var_hat = sum(pow(x-mu_hat,2) for x in data_normal) / len(data_normal) # variance
sigma_hat = math.sqrt(var_hat)  # MoM customary deviation estimator

# Plot the MoM estimated PDF vs the true PDF
x2 = np.linspace(data_normal.min(), data_normal.max(), sample_size)
fig4, ax = plt.subplots()
ax.plot(x2, stats.norm(loc=mu_hat, scale=sigma_hat).pdf(x2),
        label="Estimated PDF",coloration = ORANGE1,linewidth=3.0)
ax.plot(x2, stats.norm(loc=mu, scale=sigma).pdf(x2),
        label="True PDF",coloration = BLUE2,linewidth=3.0)

ax.set_title("Estimated Regular distribution vs. true distribution", fontsize=14, loc="left")
ax.set_xlabel('Knowledge worth')
ax.set_ylabel('Chance')
ax.legend()
ax.grid()
plt.savefig("Normal_true_vs_est.png", format="png", dpi=800)

Eine weitere nützliche Wahrscheinlichkeitsverteilung ist die Gamma -Verteilung. Ein Beispiel für die Anwendung dieser Verteilung im wirklichen Leben wurde in einem früheren diskutiert Artikel. In diesem Artikel leiten wir jedoch den MOM -Schätzer der Gamma -Verteilungsparameter α und β ab, wie unten gezeigt, unter der Annahme, dass die Daten IID sind.

Bild vom Autor erzeugt

In diesem speziellen Beispiel wird angenommen, dass eine Gamma -Verteilung mit α = 6 und β = 0,5 die Daten generiert hat. Das Histogramm der generierten Datenprobe (Stichprobengröße = 1000) ist in der folgenden Abbildung grau dargestellt, während die wahre Verteilung in der blauen Kurve dargestellt ist.

Bild vom Autor erzeugt

Der Python -Code, der verwendet wurde, um die obige Abbildung zu generieren, ist unten dargestellt.

# Gamma distribution instance
alpha_ = 6 # form parameter
scale_ = 2 # scale paramter (lamda) = 1/beta in gamma dist.
sample_size = 1000
data_gamma = stats.gamma.rvs(alpha_,loc=0, scale=scale_ ,dimension= sample_size) # generate knowledge

# Plot the information histogram vs the PDF
x3 = np.linspace(data_gamma.min(), data_gamma.max(), sample_size)
fig5, ax = plt.subplots()
ax.hist(data_gamma, bins=50, density=True, label="Knowledge histogram",coloration = GRAY9)
ax.plot(x3, stats.gamma(alpha_,loc=0, scale=scale_).pdf(x3),
        label="Gamma distribution (PDF)",coloration = BLUE2,linewidth=3.0)

ax.set_title("Knowledge histogram vs. true distribution", fontsize=14, loc="left")
ax.set_xlabel('Knowledge worth')
ax.set_ylabel('Chance')
ax.legend()
ax.grid()
plt.savefig("Gamma_hist_PMF.png", format="png", dpi=800)

Jetzt möchten wir den MOM -Schätzer verwenden, um eine Schätzung der Modellparameter, dh α und β, zu finden, wie nachstehend gezeigt.

Um diesen Schätzer anhand unserer Stichprobendaten zu testen, zeichnen wir die Verteilung mit den geschätzten Parametern (orange) in der folgenden Abbildung im Vergleich zur tatsächlichen Verteilung (blau) dar. Auch hier kann gezeigt werden, dass die Verteilungen ziemlich nahe sind.

Bild vom Autor erzeugt

Der Python -Code, mit dem die Modellparameter mit MOM geschätzt und die obige Abbildung geschätzt wurden, ist unten dargestellt.

# Methodology of moments estimator utilizing the information (Gamma Dist)
sample_mean = data_gamma.imply()
sample_var = data_gamma.var()
scale_hat = sample_var/sample_mean #scale is the same as 1/beta in gamma dist.
alpha_hat = sample_mean**2/sample_var

# Plot the MoM estimated PDF vs the true PDF
x4 = np.linspace(data_gamma.min(), data_gamma.max(), sample_size)
fig6, ax = plt.subplots()

ax.plot(x4, stats.gamma(alpha_hat,loc=0, scale=scale_hat).pdf(x4),
        label="Estimated PDF",coloration = ORANGE1,linewidth=3.0)
ax.plot(x4, stats.gamma(alpha_,loc=0, scale=scale_).pdf(x4),
        label="True PDF",coloration = BLUE2,linewidth=3.0)

ax.set_title("Estimated Gamma distribution vs. true distribution", fontsize=14, loc="left")
ax.set_xlabel('Knowledge worth')
ax.set_ylabel('Chance')
ax.legend()
ax.grid()
plt.savefig("Gamma_true_vs_est.png", format="png", dpi=800)

Beachten Sie, dass wir die folgenden äquivalenten Möglichkeiten zum Schreiben der Varianz verwendet haben, wenn die Schätzer in den Fällen von Gaußschen und Gamma -Verteilungen abgeleitet wurden.

Abschluss

In diesem Artikel haben wir verschiedene Beispiele für die Methode des Momente Schätzer und ihre Anwendungen in verschiedenen Problemen in der Datenwissenschaft untersucht. Darüber hinaus wird auch ein detaillierter Python -Code gezeigt, mit dem die Schätzer von Grund auf und um die verschiedenen Abbildungen zu zeichnen. Ich hoffe, dass Sie diesen Artikel hilfreich finden.


Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert