Quand je voulais superposer l'histogramme et la fonction de densité de probabilité, je ne pouvais pas les superposer proprement au début, donc je laisserai une note de la solution à ce moment-là.
Les nombres aléatoires générés par numpy.random ont une zone d'histogramme supérieure à 1 en fonction du nombre de générations.
-Histogramme normalisé --Aligner la zone de la fonction de densité de probabilité avec l'histogramme
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
n = 2000 #Le nombre de données
data = np.random.randn(n)
plt.hist(data, range=(-3, 3), bins=60, alpha=0.5, density=True)
#Largeur de classe 0.1 Nombre total de données 2000,Un histogramme avec l'axe vertical comme densité de fréquence relative
x = np.linspace(-3, 3, 61)
#0.Générer une séquence de nombres par incréments de 1
plt.plot(x, norm.pdf(x), c='r')
La zone a été définie sur 1 en définissant l'axe vertical sur la densité de fréquence relative au lieu de la fréquence.
Largeur de classe w,Classe n,Fréquence D_Zone d'origine S comme n\\
S=\sum_{n}D_nw\\
Fréquence relative\\D_n^R=\frac{D_n}{\sum_{n}D_n}\\
Fréquence de densité relative\\
\begin{aligned}
D_n^{'}&=\frac{D_n^R}{w}\\
&={\frac{D_n}{\sum_{n}D_n}} \times {\frac{1}{w}}\\
&=\frac{D_n}{S}\\
\end{aligned}\\
Zone S de l'histogramme utilisant la fréquence de densité relative^{'}\\
\begin{aligned}
S^{'}&=D_n^{'}\\
&=\frac{\sum_{n}D_n}{S}\\
&=\frac{S}{S}\\
&=1
\end{aligned}
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
n = 2000 #Le nombre de données
data = np.random.randn(n)
plt.hist(data, range=(-3, 3), bins=60, alpha=0.5)
#Largeur de classe 0.1 Nombre total de données 2000,Un histogramme avec l'axe vertical comme densité de fréquence relative
x = np.linspace(-3, 3, 61)
#0.Générer une séquence de nombres par incréments de 1
plt.plot(x, n*0.1*norm.pdf(x), c='r')
#0.1 est la largeur de la classe
La zone a été ajustée en multipliant la fonction de densité de probabilité par la zone de l'histogramme.
Fonction de densité de probabilité f(x),Nombre total de données dans l'histogramme n,Soit la largeur de la classe w.\\
f(x)Satisfait l'équation suivante\\
\begin{aligned}
\int f(x) dx = 1
\end{aligned}\\
N des deux côtés\En multipliant par les fois w, l'aire de l'histogramme n\Peut être des fois w.\\
Par conséquent, la fonction de densité de probabilité f après conversion^{'}(x)Est\\
f^{'}(x)=n\times w \times f(x)
Recommended Posts