pmf (fonction de masse de probabilité) et rvs (variables aléatoires) de scipy.stats. Je vais.#Import de la bibliothèque de calculs numériques
import numpy as np
import scipy as sp
import pandas as pd
from pandas import Series, DataFrame
#Importer la bibliothèque de visualisation
import matplotlib.pyplot as plt
import matplotlib as mpl
import seaborn as sns
%matplotlib inline
#Module d'affichage japonais de matplotlib
!pip install japanize-matplotlib
import japanize_matplotlib
x = np.array([0,0,1,1,0,1,0,0])
#Calculer la distribution de probabilité
p = len(x[x==1]) / len(x)
pmf_bernoulli = sp.stats.bernoulli.pmf(x, p)
#Visualisation
plt.vlines(x, 0, pmf_bernoulli,
colors='blue', lw=50)
plt.xticks([0,1])
plt.xlim([0 - 0.5, 1 + 0.5])
plt.grid(True)

| Deux types d'événements | probabilité |
|---|---|
| 0 | 0.625 |
| 1 | 0.375 |
binom.pmf pour trouver la probabilité qu'une pièce avec une probabilité p de 50% apparaisse 5 fois et 2 d'entre elles apparaissent.sp.stats.binom.pmf(n=5, p=0.5, k=2)

binom.rvs pour générer un nombre pseudo aléatoire qui suit une distribution binomiale. Faire.binom.pmf, calculez la distribution de probabilité du nombre de fois où le tableau apparaît lorsque vous lancez une pièce avec une probabilité p de 20% qui apparaît 10 fois, et comparez-la avec l'histogramme des nombres pseudo aléatoires.#Générer un nombre pseudo aléatoire
np.random.seed(1)
rvs_binom = sp.stats.binom.rvs(n=10, p=0.2, size=10000)
#Obtenir une distribution de probabilité
m = np.arange(0, 10+1, 1)
pmf_binom = sp.stats.binom.pmf(n=10, p=0.2, k=m)
#Visualisation
sns.distplot(rvs_binom, bins=m,
kde=False, norm_hist=True, label='rvs')
plt.plot(m, pmf_binom, label='pmf')
plt.xticks(m)
plt.legend()
plt.grid()

| Nombre de fois où le tableau apparaît | probabilité |
|---|---|
| 0 | 0.107374182 |
| 1 | 0.268435456 |
| 2 | 0.301989888 |
| 3 | 0.201326592 |
| 4 | 0.088080384 |
| 5 | 0.026424115 |
| 6 | 0.005505024 |
| 7 | 0.000786432 |
| 8 | 0.000073728 |
| 9 | 0.000004096 |
| 10 | 0.000000102 |
poisson.pmf pour trouver la probabilité qu'une moyenne de 5 occurrences se produise seulement 2 fois dans une période donnée.sp.stats.poisson.pmf(k=2, mu=5)

poisson.rvs est utilisé pour générer un nombre pseudo-aléatoire qui suit la distribution de Poisson.poisson.pmf, calculez la distribution de probabilité lorsque la probabilité d'occurrence p est de 20%, et comparez-la avec l'histogramme des nombres pseudo aléatoires.#Générer un nombre pseudo aléatoire
np.random.seed(1)
rvs_poisson = sp.stats.poisson.rvs(mu=2, size=10000)
#Obtenir une distribution de probabilité
m = np.arange(0, 10+1, 1)
pmf_poisson = sp.stats.poisson.pmf(mu=2, k=m)
#Visualisation
sns.distplot(rvs_poisson, bins=m,
kde=False, norm_hist=True, label='rvs')
plt.plot(m, pmf_poisson, label='pmf')
plt.xticks(m)
plt.legend()
plt.grid()

| Nombre d'occurrences | probabilité |
|---|---|
| 0 | 0.135335283 |
| 1 | 0.270670566 |
| 2 | 0.270670566 |
| 3 | 0.180447044 |
| 4 | 0.090223522 |
| 5 | 0.036089409 |
| 6 | 0.012029803 |
| 7 | 0.003437087 |
| 8 | 0.000859272 |
| 9 | 0.000190949 |
| 10 | 0.000038190 |
#Spécifiez les paramètres
n = 100000000
p = 0.00000002
#Calculer la distribution de probabilité de la distribution binomiale
num = np.arange(0, 10+1, 1)
pmf_binom_2 = sp.stats.binom.pmf(n=n, p=p, k=num)
#Visualisation
plt.plot(m, pmf_poisson,
color='lightgray', lw=10, label='poisson')
plt.plot(m, pmf_binom_2,
color='black', linestyle='dotted', label='binomial')
plt.xticks(num)
plt.legend()
plt.grid()

geom.pmf dans scipy.stats pour obtenir la probabilité de lancer un dé une seule fois et d'obtenir un" 1 ".%precision 3
sp.stats.geom.pmf(k=1, p=1/6)

#Spécifiez le nombre d'essais
num = np.arange(1, 11, 1)
#Calculer la distribution de probabilité
prob = []
for i in num:
value = sp.stats.geom.pmf(k=i, p=1/6)
prob.append(value)
#Visualisation
plt.bar(num, prob)
plt.xticks(num)
plt.xlabel('Nombre de fois jusqu'à ce que 1 apparaisse pour la première fois')
plt.ylabel('probabilité')
plt.show()

| Nombre d'essais | probabilité | une formule |
|---|---|---|
| 1 | 0.167 | ⅙ |
| 2 | 0.139 | ⅚ ・ ⅙ |
| 3 | 0.116 | ⅚ ・ ⅚ ・ ⅙ |
| 4 | 0.096 | ⅚ ・ ⅚ ・ ⅚ ・ ⅙ |
| 5 | 0.080 | ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅙ |
| 6 | 0.067 | ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅙ |
| 7 | 0.056 | ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅙ |
| 8 | 0.047 | ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅙ |
| 9 | 0.039 | ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅙ |
| 10 | 0.032 | ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅚ ・ ⅙ |
#Spécifiez tous les événements
num = np.arange(1, 7, 1)
#Calculer la distribution de probabilité
prob = []
for i in num:
value = 1 / len(num)
prob.append(value)
#Visualisation
plt.bar(num, prob)
plt.xticks(num)
plt.xlabel('Yeux de dés')
plt.ylabel('probabilité')
plt.show()

| Yeux de dés | probabilité |
|---|---|
| 1 | 0.167 |
| 2 | 0.167 |
| 3 | 0.167 |
| 4 | 0.167 |
| 5 | 0.167 |
| 6 | 0.167 |
#Spécifiez les paramètres
M = 20 #Nombre total
n = 7 #Nombre de visites
N = 12 #Nombre de sélections
#Créer une variable stochastique
k = np.arange(0, n+1)
#Créer un modèle
hgeom = sp.stats.hypergeom(M, n, N)
#Calculer la distribution de probabilité
pmf_hgeom = hgeom.pmf(k)
#Visualisation
plt.bar(k, pmf_hgeom)
plt.xticks(k)
plt.xlabel('Nombre de visites')
plt.ylabel('probabilité')
plt.show()

| Nombre de visites | probabilité |
|---|---|
| 0 | 0.00010 |
| 1 | 0.00433 |
| 2 | 0.04768 |
| 3 | 0.19866 |
| 4 | 0.35759 |
| 5 | 0.28607 |
| 6 | 0.09536 |
| 7 | 0.01022 |
#Spécifiez les paramètres
N = 12 #Nombre d'essais
p = 0.5 #Probabilité de succès
k = 3 #Nombre de succès
#Calculer la distribution de probabilité
pmf_nbinom = sp.stats.nbinom.pmf(range(N), k, p)
#Visualisation
plt.bar(range(N), pmf_nbinom)
plt.xlabel('Nombre de pannes')
plt.ylabel('probabilité')
plt.xticks(range(N))
plt.show()

| Nombre de pannes | probabilité |
|---|---|
| 0 | 0.125 |
| 1 | 0.188 |
| 2 | 0.188 |
| 3 | 0.156 |
| 4 | 0.117 |
| 5 | 0.082 |
| 6 | 0.055 |
| 7 | 0.035 |
| 8 | 0.022 |
| 9 | 0.013 |
| 10 | 0.008 |
| 11 | 0.005 |
Nous avons examiné la distribution de probabilité discrète, mais nous la résumerons dans une liste avec une conscience de ce que sera la variable de probabilité et, en un mot, ce qu'il faut mettre sur l'axe des x.
| Types de distribution de probabilité | Variable probabiliste | Paramètres | |
|---|---|---|---|
| ⑴ | Distribution de Bernoulli | Événement 0, 1 | Probabilité d'occurrence p |
| ⑵ | Distribution binaire | Nombre d'essais | Probabilité d'occurrence p,Nombre d'occurrences k,Nombre d'essais n |
| ⑶ | Distribution de Poisson | Nombre d'essais | Nombre moyen d'occurrences mu |
| ⑷ | Distribution géométrique | Nombre d'essais | Probabilité de succès p,Nombre d'essais k |
| ⑸ | Distribution uniforme discrète | Type d'événement | ※scipy.La distribution uniforme des atats est de type continu uniquement |
| ⑹ | Distribution super géométrique | Nombre de succès | Nombre total M,Nombre de succès dans l'ensemble n,Nombre de sélections N |
| ⑺ | Distribution binomiale négative | Nombre de pannes | Probabilité de succès p,Nombre de succès k,Nombre d'essais N |
Recommended Posts