Verstehen Sie die Exponentialverteilung sorgfältig und zeichnen Sie in Python

Einführung

Es ist die ** Exponentialverteilung **, die beim Studium der Statistik immer auftaucht, aber da mir die Formel der Wahrscheinlichkeitsverteilung im Beispiel nicht in den Sinn kam, habe ich darüber nachgedacht, sie aus der Ableitung der Wahrscheinlichkeitsverteilung sorgfältig zu verstehen. Ich zeichne auch in Python, um das Bild zu erfassen.

Referenz

Um die Exponentialverteilung zu verstehen und die Verteilung zu zeichnen, habe ich mich auf Folgendes bezogen.

Die Exponentialverteilung verstehen

Was ist eine Exponentialverteilung?

\begin{equation}
f(x)=
    \left\{
    \begin{aligned}
          &\lambda \mathrm{e}^{-\lambda x} &(x\geq0) \\
          &0 &(x<0)\\
    \end{aligned}
    \right.
\end{equation}


Die Exponentialverteilung ist eine Wahrscheinlichkeitsverteilung, die die Wahrscheinlichkeit darstellt, dass das Intervall zwischen Ereignissen, die durchschnittlich $ \ lambda $ mal pro Zeiteinheit auftreten, $ x $ Zeiteinheit ** beträgt. Die Wahrscheinlichkeitsdichtefunktion ist wie oben angegeben.

Die Exponentialverteilung wird in den folgenden Beispielen verwendet.

Es hat auch die Eigenschaft, dass der erwartete Wert $ \ frac {1} {\ lambda} $ und die Verteilung $ \ frac {1} {\ lambda ^ 2} $ ist.

Form der Exponentialverteilung

Zeichnen wir nun die Verteilung. Betrachten Sie die folgenden drei Beispiele und zeichnen Sie die "Wahrscheinlichkeitsverteilung des Zeitintervalls bis zum nächsten Kundenbesuch im Geschäft".

import numpy as np
import matplotlib.pyplot as plt

def exp_dist(lambda_, x):
    
    return lambda_ * np.exp(- lambda_*x) 

x =  np.arange(0, 1, 0.01)
y1= [exp_dist(5,i) for i in x]
y2= [exp_dist(10,i) for i in x]
y3= [exp_dist(15,i) for i in x]

plt.plot(x, y1, color="red"
                ,alpha=0.5, label="exp_dist λ= %d" % 5)

plt.plot(x, y2, color="green"
                ,alpha=0.5, label="exp_dist λ= %d" % 10)

plt.plot(x, y3, color="blue"
                ,alpha=0.5, label="exp_dist λ= %d" % 15)

plt.legend()
plt.show()

ダウンロード (3).png

** Je kleiner der Wert von $ \ lambda $ ist, desto langsamer ist die Abnahme, aber der Punkt ist, dass er unabhängig vom Wert von $ \ lambda $ immer monoton abnimmt. ** In Bezug auf die Intervalle kommt ein Geschäft mit durchschnittlich 15 Kunden früher als ein Geschäft mit durchschnittlich 5 Kunden in einer Stunde **. Du kannst sehen.

Noch wichtiger ist, dass die Wahrscheinlichkeitsdichte ** umso höher ist, je näher der Wert von ** $ \ lambda $ an $ x = 0 $ liegt. Ist es nicht seltsam, dass der nächste Kunde höchstwahrscheinlich bald kommt? Einige Menschen fühlen sich möglicherweise unwohl, aber dies liegt an der Eigenschaft ** Einprägsamkeit ** der Exponentialverteilung. ** Dies bedeutet nicht, dass etwas einmal passiert ist und wahrscheinlich erneut passiert, aber es wird als völlig zufälliges Ereignis angesehen. Daher ist es wahrscheinlicher, dass es früher auftritt, als wenn es für längere Zeit nicht auftritt. Es bedeutet, dass es sein wird. ** (Ich erinnere mich nicht, ob das vorherige Ereignis vollständig vergessen wurde oder nicht)

Kumulative Verteilungsfunktion der Exponentialverteilung

Ich denke, was wir mehr über unser tägliches Gefühl wissen wollen, ist die Wahrscheinlichkeit, dass der nächste Kunde in genau 10 Minuten kommt, und nicht die Wahrscheinlichkeit, dass er innerhalb von ** 10 Minuten ** kommt. Berücksichtigen Sie daher die Wahrscheinlichkeit, dass das Ereignisintervall innerhalb von $ x $ Zeiteinheit liegt. Sie müssen die Wahrscheinlichkeiten hinzufügen, dh integrieren.

{\begin{eqnarray}

F(x) &=& \int_0^x f(x) dx \\
     &=& \int_0^x \lambda \mathrm{e}^{-\lambda x} dx \\
     &=& \lambda\int_0^x \mathrm{e}^{-\lambda x} dx \\
     &=& \lambda\left[\frac{1}{-\lambda}\mathrm{e}^{-\lambda x}\right]^x_0 \\
     &=& -\mathrm{e}^{-\lambda x} - (-1) \\
     &=& 1 - \mathrm{e}^{-\lambda x} \\


\end{eqnarray}}

Diese kumulative Verteilungsfunktion wird auch anhand der folgenden drei Beispiele gezeichnet.

def cum_exp_dist(lambda_, x):
    
    return 1 - np.exp(-lambda_ * x)

x =  np.arange(0, 1, 0.01)
y1= [cum_exp_dist(5,i) for i in x]
y2= [cum_exp_dist(10,i) for i in x]
y3= [cum_exp_dist(15,i) for i in x]

plt.plot(x, y1, color="red"
                ,alpha=0.5, label="cum_exp_dist λ= %d" % 5)

plt.plot(x, y2, color="green"
                ,alpha=0.5, label="cum_exp_dist λ= %d" % 10)

plt.plot(x, y3, color="blue"
                ,alpha=0.5, label="cum_exp_dist λ= %d" % 15)

plt.legend()
plt.show()

ダウンロード (4).png

Sie können sehen, dass der Graph monoton mit 1 als Maximalwert zunimmt.

Berechnen wir die Wahrscheinlichkeit anhand eines konkreten Beispiels. ex) Wahrscheinlichkeit, dass der nächste Kunde innerhalb von 5 Minuten in ein Geschäft kommt, in dem durchschnittlich 10 Personen in einer Stunde zu Besuch sind

{\begin{eqnarray}

F(x)  &=& 1 - \mathrm{e}^{-Zehn·\frac{1}{12}} \\
      &=& 0.565

\end{eqnarray}}

Die folgenden Punkte sind in der Grafik dargestellt.

ダウンロード (5).png

Ableitung der Exponentialverteilung

Betrachten wir nun die Ableitung der Exponentialverteilung.

図3.png

Es wird angenommen, dass die Situation, in der das Ereignis nicht auftritt, bis zum Zeitpunkt $ x $ andauert und das Ereignis zum ersten Mal zwischen $ x $ und $ x + Δx $ auftritt. ($ Δx $ ist ein Minutenintervall) Zu diesem Zeitpunkt kann die Wahrscheinlichkeit, dass ein Ereignis zum ersten Mal in dem Intervall zwischen $ x $ und $ x + Δx $ auftritt, durch die folgende Gleichung ausgedrückt werden.


f(x)Δx = (1 - F(x))・\lambdaΔx

Aus der Definition der Wahrscheinlichkeitsdichtefunktion in erster Linie ist ersichtlich, dass $ f (x) Δx $ die Wahrscheinlichkeit darstellt, dass ein Ereignis zwischen $ Δx $ auftritt. Auf der rechten Seite die Wahrscheinlichkeit, dass ein Ereignis nicht auftritt, um $ x $ ($ (1-F (x)) $) und die Wahrscheinlichkeit, dass ein Ereignis zwischen $ x $ und $ x + Δx $ ($ \ lambdaΔx $) auftritt Sind multipliziert.

Aufgrund der Speicherlosigkeit sind die Wahrscheinlichkeit, dass ein Ereignis auftritt, um $ x $ und die Wahrscheinlichkeit, dass ein Ereignis zwischen $ x $ und $ x + Δx $ auftritt, unabhängig und können unverändert multipliziert werden.

Dann werde ich unten schreiben, woher $ \ lambdaΔx $ kommt. Da das Minutenintervall $ Δx $ eine Zeiteinheit in $ n $ gleiche Teile teilt ($ n $ ist ausreichend groß), gilt Folgendes.


Δx ・ n=1

Da wir Ereignisse berücksichtigen, die dieses Mal durchschnittlich $ \ lambda $ mal pro Zeiteinheit auftreten, ist die Wahrscheinlichkeit, dass Ereignisse in jedem Minutenabschnitt unter Verwendung der obigen Formel auftreten, wie folgt.


p = \frac{\lambda}{n} = \lambdaΔx

Jetzt wissen Sie, was $ \ lambdaΔx $ bedeutet. Erweitern wir die am Anfang angegebene Formel.

{\begin{eqnarray}


f(x)Δx &=& (1 - F(x))・\lambdaΔx \\
   f(x)&=& \lambda - \lambda F(x) \\
   f'(x)&=& -\lambda f(x)

\end{eqnarray}}

Bei der Erweiterung der 2. bis 3. Zeile werden beide Seiten durch $ x $ unterschieden.

$ f '(x) = - \ lambda f (x) $ liegt in Form einer Differentialgleichung vor, ist jedoch leicht eine Exponentialfunktion, wenn man bedenkt, dass es sich um eine Funktion handelt, deren Form sich nicht ändert, selbst wenn sie differenziert ist. Ich verstehe.


f(x) =C ・\mathrm{e}^{-\lambda x}

Da $ C $ eine Konstante ist, kann es alles sein, aber wenn Sie es integrieren, muss es eine kumulative Verteilungsfunktion sein. Daher gibt es unvermeidlich eine Einschränkung, dass $ \ int_0 ^ ∞ f (x) = 1 $. Verwenden Sie diese Einschränkung, um den Wert der Konstanten $ C $ zu bestimmen.

{\begin{eqnarray}

\int_0^∞f(x) &=& \int_0^∞ C ・\mathrm{e}^{-\lambda x} \\
     &=& C\int_0^∞ \mathrm{e}^{-\lambda x} \\
     &=& C\left[\frac{1}{-\lambda}\mathrm{e}^{-\lambda x}\right]^∞_0 \\
   &=& C\left[\frac{1}{-\lambda}\mathrm{e}^{-\lambda x}\right]^∞_0 \\
   &=& -C(\frac{1}{-\lambda})\\
   &=& \frac{C}{\lambda}\\
        \\
1 &=& \frac{C}{\lambda}

\end{eqnarray}}


Aufgrund der Einschränkung von $ \ int_0 ^ ∞f (x) = 1 $

{\begin{eqnarray}

1 &=& \frac{C}{\lambda} \\
C &=& \lambda \\

\end{eqnarray}}

Aus dem Obigen konnten wir $ f (x) = \ lambda \ mathrm {e} ^ {- \ lambda x} $ ableiten.

Höchstwahrscheinlich Schätzung der Exponentialverteilungsparameter

Als nächstes betrachten wir die wahrscheinlichste Schätzung der Parameter der Exponentialverteilung. ** Was ist die wahrscheinlichste Schätzung? Wenn die Wahrscheinlichkeitsdichtefunktion, die einem bestimmten Parameter $ \ theta $ folgt, $ f (x; \ theta) $ ist, ist die Wahrscheinlichkeitsfunktion $ L (\ theta; x) = f (x; \ theta) Die Schätzung, die $ $ \ theta = \ hat \ theta $ maximiert, wird als wahrscheinlichste Schätzung bezeichnet. ** ** **

Angenommen, $ x_1, x_2, \ cdots, x_n $ wird ausgegeben, wenn eine Zufallszahl generiert wird, die unabhängig voneinander der Exponentialverteilung von $ \ lambda = \ theta $ folgt. Betrachten Sie die wahrscheinlichste Schätzung von $ \ lambda = \ theta $ zu diesem Zeitpunkt.


L(\theta ; x) = \theta \mathrm{e}^{-\theta x}

Dieses Mal werden $ x_1, x_2, \ cdots, x_n $ und $ n $ angegeben, und da sie alle unabhängig voneinander erzeugt werden, kann die Wahrscheinlichkeitsfunktion wie folgt ausgedrückt werden.


\begin{eqnarray*}L(\theta ;x_1,x_2,\cdots,x_n)=
L(\theta ;x_1)×L(\theta ;x_2)×\cdots ×L(\theta ;x_n)
\end{eqnarray*}


Wenn Sie das Obige auf die Exponentialverteilung anwenden, erhalten Sie Folgendes.


\begin{eqnarray*}L(\mu,\sigma ;x_1,x_2,\cdots,x_n)=
\displaystyle\prod_{k=1}\theta\mathrm{e}^{-\theta x}

\end{eqnarray*}

Sie können $ \ theta $ finden, das die obige Wahrscheinlichkeitsfunktion maximiert, aber Sie können das gleiche Ergebnis erzielen, indem Sie es in eine logarithmische Funktion konvertieren und durch eine Aufgabe ersetzen, die den Maximalwert findet. In eine Gradfunktion konvertieren.


\begin{eqnarray*}
\log(L(\mu,\sigma ;x_1,x_2,\cdots,x_n))&=&
\log(n\theta) + \log( \mathrm{e}^{-\theta (x_1 + x_2 + \cdots, + x_n)}) \\
&=& n\log(\theta) -\theta (x_1 + x_2 + \cdots, + x_n) \\

\end{eqnarray*}

Setzen Sie $ l (\ theta) = \ log (L (\ theta; x_1, x_2, \ cdots, x_n)) $ und differenzieren Sie $ l (\ theta) $ durch $ \ theta $.


{\begin{eqnarray*}
\frac{\partial l(\theta)}{\partial\theta}&=&\frac{\partial}{\partial\theta}(n\log(\theta) -\theta (x_1 + x_2 + \cdots, + x_n)) \\
&=&Hmm ·\frac{1}{\theta} - (x_1 + x_2 + \cdots, + x_n)

\end{eqnarray*}}

Von hier aus setzen Sie $ \ frac {\ Partial L (\ Theta)} {\ Partial \ Theta} = 0 $ und lösen nach $ \ Theta $.


{\begin{eqnarray*}

Hmm ·\frac{1}{\theta} - (x_1 + x_2 + \cdots, + x_n) &=& 0 \\
Hmm ·\frac{1}{\theta} &=& (x_1 + x_2 + \cdots, + x_n)\\
\theta &=& \frac{n}{x_1 + x_2 + \cdots, + x_n} \\

\end{eqnarray*}}

Hier finden wir, dass die wahrscheinlichste Schätzung des Exponentialverteilungsparameters $ \ frac {n} {x_1 + x_2 + \ cdots, + x_n} $ ist.

Wenden wir diese wahrscheinlichste Schätzung auf ein konkretes Beispiel an. Angenommen, Sie messen die Intervalle, in denen Kunden fünf Mal ein Geschäft besuchen.

Unter der Annahme, dass das Ladenbesuchsintervall der Exponentialverteilung folgt, ist die wahrscheinlichste Schätzung des aus den obigen Daten erhaltenen Parameters $ \ lambda $ wie folgt.


{\begin{eqnarray*}

\frac{5}{\frac{1}{3} + \frac{1}{4} + \frac{1}{3} + \frac{1}{4} + \frac{1}{3}}
\fallingdotseq 3.33

\\

\end{eqnarray*}}

Die wahrscheinlichste Schätzung aus den angegebenen Daten zeigt, dass das Kundenbesuchsintervall der Exponentialverteilung folgt, wenn die durchschnittliche Anzahl der Besuche pro Zeiteinheit (1 Stunde) 3,33 USD beträgt.

Next Ich habe eine ungefähre Vorstellung von der Exponentialfunktion. Ich möchte auch in Zukunft statistische Artikel veröffentlichen.

Recommended Posts

Verstehen Sie die Exponentialverteilung sorgfältig und zeichnen Sie in Python
Verstehe die Poisson-Distribution sorgfältig und zeichne in Python
Zeichnen und verstehen Sie die multivariate Normalverteilung in Python
Zeichnen wir ein Diagramm der Poisson-Verteilung und der kumulativen Poisson-Verteilung in Python bzw. Java.
Passen Sie die Verteilung jeder Gruppe in Python an
Über den Unterschied zwischen "==" und "is" in Python
Zeichnen Sie Diagramme in Julia ... Überlassen Sie die Diagramme Python
Logistische Verteilung in Python
Zeichnen Sie ein Diagramm mit Python
Verarbeitung (Python) Diagramm der Koordinaten der Liste Geben Sie an, wie oft in draw ()
Beachten Sie, dass ich den Algorithmus der kleinsten Quadrate verstehe. Und ich habe es in Python geschrieben.
Das einfachste Python-Memo in Japan (Klassen und Objekte)
Erhalten Sie das Formular in Python und führen Sie verschiedene Aktionen aus
Berechnen und zeichnen Sie begrenzte (geschlossene) Boronoi-Diagramme in Python
Finden Sie die Hermite-Matrix und ihre eindeutigen Werte in Python
Überprüfen Sie die atrophische Natur der Wahrscheinlichkeitsverteilung in Python
[Maschinelles Lernen] "Erkennung von Abnormalitäten und Erkennung von Änderungen" Zeichnen wir die Abbildung von Kapitel 1 in Python.
Zeichnen Sie MP3-Wellenformen in Python
Finde Fehler in Python
Schreiben Sie die Beta-Distribution in Python
Lernen Sie Python-Pakete und -Module kennen
Zeichnen Sie die Festplatte von Poancare in Python
Generieren Sie eine U-Verteilung in Python
Zeichnen Sie "Farn programmgesteuert zeichnen" in Python
Stapel und Warteschlange in Python
Zeichne die Yin-Funktion in Python
Unittest und CI in Python
Ich verstehe Python auf Japanisch!
Zeichne ein Herz in Python
Geben Sie "Farn programmgesteuert zeichnen" in den Zeichenprozess in Python ein
Holen Sie sich den MIME-Typ in Python und bestimmen Sie das Dateiformat
In Python werden die Elemente in der Liste sortiert und als Elemente und Vielfache ausgegeben.
Poisson-Verteilung und kumulative Poisson-Verteilung über SQLite in Python und Java
[In kürzester Zeit verstehen] Python-Grundlagen für die Datenanalyse
Bearbeiten Sie die Zwischenablage in Python und fügen Sie die Tabelle in Excel ein
Ich habe versucht, den Chi-Quadrat-Test in Python und Java zu programmieren.
[Python] Zeigt die verstrichene Zeit in Stunden, Minuten und Sekunden an (00:00:00)
Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit in Python unter Berücksichtigung des Zeitunterschieds
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
Bestimmen Sie das Datums- und Uhrzeitformat mit Python und konvertieren Sie es in Unixtime
Die Geschichte von Python und die Geschichte von NaN
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Zählen Sie die Anzahl der thailändischen und arabischen Zeichen in Python gut
Abrufen der arXiv-API in Python
Unterschied zwischen list () und [] in Python
Unterschied zwischen == und ist in Python
Zeigen Sie Fotos in Python und HTML an
Sortieralgorithmus und Implementierung in Python
Python im Browser: Brythons Empfehlung
Speichern Sie die Binärdatei in Python
Klicken Sie in Python auf die Sesami-API
Zeichnen Sie Knoten interaktiv mit Plotly (Python)
[Python / matplotlib] FuncAnimation verstehen und verwenden
Implementierung einer gemischten Normalverteilung in Python
Neue Python-Grammatik und Funktionen, die im Einführungsbuch nicht erwähnt werden
Versuchen Sie, die stochastische Massenfunktion der Binomialverteilung in Python zu transkribieren
Holen Sie sich den Desktop-Pfad in Python
Zeichnen Sie eine Streudiagrammmatrix mit Python
Über Python und Cython dtype
Holen Sie sich den Skriptpfad in Python