Dérivation de la plage de quadrants de la distribution normale standard Méthode de calcul exacte de la valeur numérique du "tableau de distribution normale standard" qui est souvent jointe à l'annexe du livre de statistiques
Pour le moment, si le premier quadrant est $ Q_1 $ et le troisième quadrant est $ Q_3
Et si vous faites la différence entre ces deux formules,
\begin{align}
\int_{-\infty}^{Q_3} f(x) \ dx-\int_{-\infty}^{Q_1} f(x) \ dx&=\int_{Q_1}^{Q_3} f(x) \ dx \\
&=\frac{1}{2}
\end{align}
Ici, puisqu'il s'agit d'une distribution normale standard, la moyenne $ \ mu = 0 $ est valable. En utilisant la constante c,
Parce qu'il peut être exprimé comme
\begin{align}
\int_{Q_1}^{Q_3} f(x) \ dx&=\int_{-c}^{c} f(x) \ dx\\ &=\frac{1}{2}
\end{align}
Sera. Ici, en utilisant la fonction d'erreur erf $ (x) $,
\begin{align}
\int_{-c}^{c} exp\left(-\frac{x^2}{2}\right) \ dx&=\left[\frac{\pi}{2} erf\left(\frac{x}{\sqrt{2}}\right)\right]_{-c}^{c}\\
&= \sqrt{2\pi} erf\left(\frac{c}{\sqrt{2}}\right)
\end{align}
(Merci à Wolfram Alpha), donc l'équation suivante est valable.
Ici, je voudrais trouver c inclus dans la fonction d'erreur, mais les approches d'analyse telles que l'intégration partielle sont complètement incommodes. C'est là que vous vous retrouvez coincé dans le marais de l'intégration. Quel type de politique devriez-vous demander?
Cette fois, nous utiliserons Numpy comme module. Heureusement, numpy a déjà une fonction d'erreur intégrée, donc c'est vraiment facile à utiliser. (Il semble que Scipy puisse faire de même.)
Je vais également visualiser la fonction plus tard, donc j'inclurai également matplotlib.
import numpy as np
import matplotlib.pyplot as plt
Maintenant, à partir d'ici, je voudrais trouver $ c $ pour lequel l'équation suivante est valable.
Au fait, cette fonction d'erreur
fig = plt.figure(figsize = (6, 4))
ax = fig.add_subplot(111)
x=np.linspace(-2.0,2.0,2000000)
y=np.erf(x/np.sqrt(2))
ax.set_xlabel("x", fontsize = 14)
ax.set_ylabel("erf(x)", fontsize = 14)
plt.plot(x, y, ls="-", label="erf(x)", color="red")
plt.title("Error function")
plt.legend()
plt.show()
<Résultat de sortie>
C'est une forme générale comme la fonction sigmoïde, et elle augmente de manière monotone dans un sens étroit.
Donc, résolvez c avec l'approche suivante. ① Puisqu'il s'agit d'une distribution normale standard, la plage de c à partir des caractéristiques de l'écart type (USE OF STANDARD DEVIATION) [-1,1] Ensuite, augmentez de 10 $ ^ {-6} $ selon l'ordre de la table de distribution. ② $ erf (\ frac {c} {\ sqrt {2}}) <\ frac {1} {2} Tant qu'il est inférieur à $, exécutez le calcul et augmentez la valeur intégrée, et $ erf (\ frac) {c} {\ sqrt {2}}) ≒ \ frac {1} {2} Trouvez la valeur de dernière minute c qui est $.
Codez ceci de la même manière que lors de la programmation de la fonction d'erreur.
for c in np.arange(-1.000000,1.000000):
while np.erf(c/np.sqrt(2)) < 1/2:
c=c+0.000001
break
print(c)
<Résultat de sortie> 0.6744900000064764
Quand j'essaye de le visualiser,
fig = plt.figure(figsize = (6, 4))
ax = fig.add_subplot(111)
x=np.linspace(-1.0,1.0,1000000)
y=np.erf(x/np.sqrt(2))
ax.set_xlabel("c", fontsize = 14)
ax.set_ylabel("erf score", fontsize = 14)
plt.plot(x, y, ls="-", label="erf(c/√2)")
ax.axhline(0.5, ls = "-.", color = "green", label="erf score = 1/2")
plt.title("Error function")
plt.legend()
plt.show()
<Résultat de sortie> La valeur de c à l'intersection des deux lignes correspond au résultat de sortie précédent de 0,67449 ...
D'après le résultat du programme, $ c = 0,674490 $ ..., donc la plage de quadrants est
\begin{align}
c-(-c)&=2c \\
&= 2*(0.674490...) \\
&≒ 1.349
\end{align}
Par conséquent, la plage de quadrants de la distribution normale standard est de 1,349 $.
Recommended Posts