Comprenez attentivement la distribution exponentielle et dessinez en Python

introduction

La ** distribution exponentielle ** apparaît toujours lors de l'étude des statistiques, mais comme la formule de la distribution de probabilité dans l'exemple ne m'est pas venue à l'esprit, j'ai pensé essayer de la comprendre attentivement à partir de la dérivation de la distribution de probabilité. Je dessine également en Python pour saisir l'image.

référence

Pour comprendre la distribution exponentielle et dessiner la distribution, je me suis référé à ce qui suit.

Comprendre la distribution exponentielle

Qu'est-ce qu'une distribution exponentielle

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


La distribution exponentielle est une distribution de probabilité qui représente la probabilité que l'intervalle entre les événements qui se produisent en moyenne de $ \ lambda $ fois par unité de temps soit de $ x $ unité de temps **. La fonction de densité de probabilité est donnée comme ci-dessus.

La distribution exponentielle est utilisée dans les exemples suivants.

--Intervalles en cas de catastrophe --Intervalle auquel des pannes accidentelles du système avec des temps de panne constants se produisent ―― L'intervalle entre l'arrivée d'un client et l'arrivée du client suivant dans le magasin

Il a également la propriété que la valeur attendue est $ \ frac {1} {\ lambda} $ et la distribution est $ \ frac {1} {\ lambda ^ 2} $.

Forme de distribution exponentielle

Maintenant, dessinons la distribution. Prenons les trois exemples suivants et tracez la «distribution de probabilité de l'intervalle de temps jusqu'à ce que le prochain client visite le magasin».

--Un magasin avec une moyenne de 5 personnes par heure ($ \ lambda = 5 ) --Un magasin avec une moyenne de 10 personnes par heure ( \ lambda = 10 $)

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

** Plus la valeur de $ \ lambda $ est petite, plus la diminution est lente, mais le fait est qu'elle diminue toujours de manière monotone quelle que soit la valeur de $ \ lambda $. ** En termes d'intervalles, un magasin avec une moyenne de 15 clients arrivera plus tôt qu'un magasin avec une moyenne de 5 clients en une heure **. Tu peux voir.

Ce qui est encore plus important, c'est que plus la valeur de ** $ \ lambda $ est proche de $ x = 0 $, plus la densité de probabilité ** est élevée. N'est-il pas étrange que le prochain client soit le plus susceptible de venir bientôt? Certaines personnes peuvent se sentir mal à l'aise, mais cela est dû à la propriété ** mémorabilité ** de la distribution exponentielle. ** Cela ne signifie pas que quelque chose s'est produit une fois et est susceptible de se reproduire, mais il est considéré comme un événement complètement aléatoire, il est donc plus probable qu'il se produise plus tôt que s'il ne se produit pas pendant une longue période. Cela signifie que ce sera le cas. ** (Je ne me souviens pas si l'événement précédent s'est produit ou non dans le sens où il est complètement oublié)

Fonction de distribution cumulative de distribution exponentielle

Je pense que ce que nous voulons en savoir plus sur notre sentiment quotidien, c'est la probabilité que le prochain client arrive dans exactement 10 minutes, plutôt que la probabilité qu'il vienne dans ** 10 minutes **. Par conséquent, considérez la probabilité que l'intervalle d'occurrence d'événement soit compris entre $ x $ unité de temps. Vous devez ajouter les probabilités, c'est-à-dire les intégrer.

{\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}}

Cette fonction de distribution cumulative est également dessinée en considérant les trois exemples suivants.

--Un magasin avec une moyenne de 5 personnes par heure ($ \ lambda = 5 ) --Un magasin avec une moyenne de 10 personnes par heure ( \ lambda = 10 $)

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

Vous pouvez voir que le graphique augmente de manière monotone avec 1 comme valeur maximale.

Calculons la probabilité en donnant un exemple concret. ex) Probabilité que le prochain client arrive au magasin dans les 5 minutes dans un magasin où une moyenne de 10 personnes visite en une heure

{\begin{eqnarray}

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

\end{eqnarray}}

Les points suivants sont sur le graphique.

ダウンロード (5).png

Dérivation de la distribution exponentielle

Considérons maintenant la dérivation de la distribution exponentielle.

図3.png

On considère que la situation où l'événement ne se produit pas se poursuit jusqu'au moment $ x $, et l'événement se produit pour la première fois dans l'intervalle entre $ x $ et $ x + Δx . ( Δx $ est un intervalle d'une minute) À ce moment, la probabilité qu'un événement se produise pour la première fois dans l'intervalle entre $ x $ et $ x + Δx $ peut être exprimée par l'équation suivante.


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

De la définition de la fonction de densité de probabilité en premier lieu, on peut voir que $ f (x) Δx $ représente la probabilité qu'un événement se produise entre $ Δx $. Sur le côté droit, la probabilité qu'un événement ne se produise pas de $ x $ ($ (1-F (x)) $) et la probabilité qu'un événement se produise entre $ x $ et $ x + Δx $ ($ \ lambdaΔx $) Sont multipliés.

En raison de l'absence de mémoire, la probabilité qu'un événement se produise par $ x $ et la probabilité qu'un événement se produise entre $ x $ et $ x + Δx $ sont indépendantes et peuvent être multipliées telles quelles.

Ensuite, j'écrirai ci-dessous d'où vient $ \ lambdaΔx $. Puisque l'intervalle de minutes $ Δx $ divise une unité de temps en $ n $ parties égales ($ n $ est suffisamment grand), ce qui suit est vrai.


Δx ・ n=1

Puisque nous considérons les événements qui se produisent en moyenne $ \ lambda $ fois par unité de temps cette fois, la probabilité que des événements se produisent dans chaque section minute en utilisant la formule ci-dessus est la suivante.


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

Vous savez maintenant ce que signifie $ \ lambdaΔx $. Développons la formule donnée au début.

{\begin{eqnarray}


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

\end{eqnarray}}

Dans le développement des 2e à 3e lignes, les deux côtés sont différenciés par $ x $.

$ f '(x) = - \ lambda f (x) $ se présente sous la forme d'une équation différentielle, mais c'est facilement une fonction exponentielle étant donné que c'est une fonction dont la forme ne change pas même si elle est différenciée. Je comprends.


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

Puisque $ C $ est une constante, cela peut être n'importe quoi, mais si vous l'intégrez, ce doit être une fonction de distribution cumulative. Par conséquent, il y a forcément une contrainte que $ \ int_0 ^ ∞ f (x) = 1 $. Utilisez cette contrainte pour déterminer la valeur de la constante $ C $.

{\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}}


En raison de la restriction de $ \ int_0 ^ ∞f (x) = 1 $

{\begin{eqnarray}

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

\end{eqnarray}}

De ce qui précède, nous avons pu dériver $ f (x) = \ lambda \ mathrm {e} ^ {- \ lambda x} $.

Estimation la plus probable des paramètres de distribution exponentielle

Considérons ensuite l'estimation la plus probable des paramètres de la distribution exponentielle. ** Quelle est l'estimation la plus probable? Lorsque la fonction de densité de probabilité qui suit un certain paramètre $ \ theta $ est $ f (x; \ theta) $, la fonction de vraisemblance $ L (\ theta; x) = f (x; \ theta) L'estimation $ \ theta = \ hat \ theta $ qui maximise $ est appelée l'estimation la plus probable. ** **

Supposons que $ x_1, x_2, \ cdots, x_n $ soit généré lorsqu'un nombre aléatoire est généré qui suit la distribution exponentielle de $ \ lambda = \ theta $ indépendamment. Considérez l'estimation la plus probable de $ \ lambda = \ theta $ à ce moment.


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

Cette fois, $ x_1, x_2, \ cdots, x_n $ et $ n $ sont donnés, et comme ils sont tous générés indépendamment, la fonction de vraisemblance peut être exprimée comme suit.


\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*}


L'application de ce qui précède à la distribution exponentielle donne ce qui suit.


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

\end{eqnarray*}

Vous pouvez trouver $ \ theta $ qui maximise la fonction de vraisemblance ci-dessus, mais vous pouvez obtenir le même résultat en le convertissant en fonction logarithmique et en le remplaçant par une tâche qui trouve la valeur maximale. Conversion en fonction de degré.


\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*}

Mettez $ l (\ theta) = \ log (L (\ theta; x_1, x_2, \ cdots, x_n)) $ et différenciez $ l (\ theta) $ par $ \ 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*}}

A partir de là, définissez $ \ frac {\ partial l (\ theta)} {\ partial \ theta} = 0 $ et résolvez pour $ \ 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*}}

Nous constatons ici que l'estimation la plus probable des paramètres de distribution exponentielle est $ \ frac {n} {x_1 + x_2 + \ cdots, + x_n} $.

Appliquons cette estimation la plus probable à un exemple concret. Supposons que vous mesuriez les intervalles auxquels les clients visitent un magasin cinq fois.

--Durée de l'ouverture à la première visite: 20 minutes ――Temps entre la première visite et la deuxième visite: 15 minutes ―― Temps entre la visite de la deuxième personne et la visite de la troisième personne: 20 minutes ―― Temps entre la visite de la troisième personne et la visite de la quatrième personne: 15 minutes ――Temps de la 4e à la 5e visite: 20 minutes

En supposant que l'intervalle de visite en magasin suit la distribution exponentielle, l'estimation la plus probable du paramètre $ \ lambda $ obtenue à partir des données ci-dessus est la suivante.


{\begin{eqnarray*}

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

\\

\end{eqnarray*}}

L'estimation la plus probable à partir des données fournies montre que l'intervalle de visite client est considéré comme suivant la distribution exponentielle lorsque le nombre moyen de visites par unité de temps (1 heure) est de 3,33 $.

Next J'ai eu une idée approximative de la fonction exponentielle. J'aimerais continuer à publier des articles sur les statistiques à l'avenir.

Recommended Posts

Comprenez attentivement la distribution exponentielle et dessinez en Python
Comprendre attentivement la distribution de Poisson et dessiner en Python
Tracer et comprendre la distribution normale multivariée en Python
Trouvons un graphique de la distribution de Poisson et de la distribution cumulative de Poisson en Python et Java, respectivement.
Faites correspondre la distribution de chaque groupe en Python
À propos de la différence entre "==" et "is" en python
Dessinez des graphiques dans Julia ... Laissez les graphiques à Python
Distribution logistique en Python
Dessiner un graphique avec python
traitement (python) Diagramme les coordonnées de la liste Spécifiez le nombre de fois dans draw ()
Notez que je comprends l'algorithme des moindres carrés. Et je l'ai écrit en Python.
Le mémo Python le plus simple au Japon (classes et objets)
Recevez le formulaire en Python et faites diverses choses
Calculer et dessiner des diagrammes Boronoi bornés (fermés) en Python
Trouvez la matrice Hermite et ses valeurs uniques en Python
Vérifiez la nature atrophique de la distribution de probabilité en Python
[Apprentissage automatique] "Détection d'anomalies et détection de changement" Dessinons la figure du chapitre 1 en Python.
Dessiner une forme d'onde mp3 en Python
Trouver des erreurs en Python
Écrire une distribution bêta en Python
Apprenez à connaître les packages et les modules Python
Dessinez le disque de Poancare en Python
Générer une distribution U en Python
Dessiner "Dessiner une fougère par programme" en Python
Pile et file d'attente en Python
Dessiner la fonction Yin en python
Unittest et CI en Python
Je comprends Python en japonais!
Dessinez un cœur en Python
Sortie "Dessiner fougère par programmation" dans le processus de dessin en Python
Obtenez le type MIME en Python et déterminez le format de fichier
En Python, les éléments de la liste sont triés et sortis sous forme d'éléments et de multiples.
Distribution de Poisson et tracé de distribution cumulative de Poisson via sqlite en Python et Java
[Comprendre au plus court] Principes de base de Python pour l'analyse des données
Manipulez le presse-papiers en Python et collez le tableau dans Excel
J'ai essayé de programmer le test du chi carré en Python et Java.
[Python] Afficher le temps écoulé en heures, minutes et secondes (00:00:00)
Obtenez la date et l'heure actuelles en Python, en tenant compte du décalage horaire
[Astuces] Problèmes et solutions dans le développement de python + kivy
Déterminez le format de la date et de l'heure avec Python et convertissez-le en Unixtime
L'histoire de Python et l'histoire de NaN
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Comptez bien le nombre de caractères thaïlandais et arabes en Python
Obtenir l'API arXiv en Python
Différence entre list () et [] en Python
Différence entre == et est en python
Afficher les photos en Python et html
Algorithme de tri et implémentation en Python
Python dans le navigateur: la recommandation de Brython
Enregistrez le fichier binaire en Python
Frappez l'API Sesami en Python
Dessinez des nœuds de manière interactive avec Plotly (Python)
[Python / matplotlib] Comprendre et utiliser FuncAnimation
Implémentation de distribution normale mixte en python
Nouvelle grammaire et fonctionnalités Python non mentionnées dans le livre d'introduction
Essayez de transcrire la fonction de masse stochastique de la distribution binomiale en Python
Obtenez le chemin du bureau en Python
Dessinez une matrice de diagramme de dispersion avec python
À propos de Python et Cython dtype
Obtenez le chemin du script en Python