So verwenden sie die exponentialverteilung in python


Die Exponentialverteilung ist eine Wahrscheinlichkeitsverteilung, mit der die Zeit modelliert wird, die wir warten müssen, bis ein bestimmtes Ereignis eintritt.

Wenn eine Zufallsvariable X einer Exponentialverteilung folgt, kann die kumulative Verteilungsfunktion von X geschrieben werden:

F (x; λ) = 1 – e -λx

Gold:

  • λ: der Geschwindigkeitsparameter (berechnet als λ = 1/μ)
  • e: Eine Konstante, die ungefähr 2,718 entspricht

In diesem Tutorial wird erklärt, wie Sie die Exponentialverteilung in Python verwenden.

So generieren Sie eine Exponentialverteilung

Sie können die Funktion expon.rvs(scale, size) aus der SciPy-Bibliothek in Python verwenden, um Zufallswerte aus einer Exponentialverteilung mit einem bestimmten Ratenparameter und einer bestimmten Stichprobengröße zu generieren:

 from scipy. stats import expo

#generate random values from exponential distribution with rate=40 and sample size=10
expon. rvs (scale= 40 , size= 10 )

array([116.5368323 , 67.23514699, 12.00399043, 40.74580584,
        34.60922432, 2.68266663, 22.70459831, 97.66661811,
         6.64272914, 46.15547298])

Hinweis : Die vollständige Dokumentation der SciPy-Bibliothek finden Sie hier .

So berechnen Sie Wahrscheinlichkeiten mithilfe einer Exponentialverteilung

Nehmen wir an, dass die durchschnittliche Anzahl der Minuten zwischen den Ausbrüchen eines bestimmten Geysirs 40 Minuten beträgt. Wie wahrscheinlich ist es, dass wir weniger als 50 Minuten auf einen Ausbruch warten müssen?

Um dieses Problem zu lösen, müssen wir zunächst den Geschwindigkeitsparameter berechnen:

  • λ = 1/µ
  • λ = 1/40
  • λ = 0,025

Wir können λ = 0,025 und x = 50 in die CDF-Formel einsetzen:

  • P(X ≤ x) = 1 – e -λx
  • P(X ≤ 50) = 1 – e -0,025(50)
  • P(X ≤ 50) = 0,7135

Die Wahrscheinlichkeit, dass wir weniger als 50 Minuten auf den nächsten Ausbruch warten müssen, beträgt 0,7135 .

Wir können die Funktion expon.cdf() von SciPy verwenden, um dieses Problem in Python zu lösen:

 from scipy. stats import expo

#calculate probability that x is less than 50 when mean rate is 40
expon. cdf (x=50, scale=40)

0.7134952031398099

Die Wahrscheinlichkeit, dass wir weniger als 50 Minuten auf den nächsten Ausbruch warten müssen, beträgt 0,7135 .

Dies entspricht dem von uns manuell berechneten Wert.

So zeichnen Sie eine Exponentialverteilung auf

Sie können die folgende Syntax verwenden, um eine Exponentialverteilung mit einem bestimmten Ratenparameter darzustellen:

 from scipy. stats import expo
import matplotlib. pyplot as plt

#generate exponential distribution with sample size 10000
x = expon. rvs (scale= 40 ,size= 10000 )

#create plot of exponential distribution
plt. hist (x, density= True , edgecolor=' black ')

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere gängige Distributionen in Python verwenden:

So verwenden Sie die Poisson-Verteilung in Python
So verwenden Sie die t-Verteilung in Python
So verwenden Sie eine einheitliche Verteilung in Python

Einen Kommentar hinzufügen

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