[PYTHON] Raccord gaussien

Distribution normale et son ajustement

Dans Régression linéaire, qui est déjà apparue plusieurs fois, la formule théorique de la droite qui correspond à la distribution des données a été obtenue par la méthode du carré minimum. Une distribution normale est supposée dans bon nombre des diverses analyses qui ont été publiées jusqu'à présent, comme la régression linéaire (http://qiita.com/ynakayama/items/e41f592ad7fe02f23c1c).

La méthode du carré minimum, qui peut être considérée comme une méthode indispensable pour l'ajustement, peut obtenir diverses informations à partir des constantes contenues dans la formule théorique en ajustant les données tracées à la formule théorique. Par exemple, il est utilisé dans diverses situations, par exemple lorsque vous souhaitez trouver la pente d'une ligne droite qui correspond à chaque point ou lorsque vous souhaitez rechercher les statistiques d'une distribution qui suppose une distribution normale.

La ** distribution normale **, également appelée ** distribution gaussienne **, est une distribution de probabilité pour les variables continues qui représente la distribution des données avec des pics s'accumulant près de la moyenne. J'ai également expliqué dans Articles précédents. Trouver la fonction de la courbe approximative (courbe d'ajustement) pour la distribution normale est appelé ajustement gaussien. Comme d'habitude, l'ajustement gaussien peut être facilement réalisé en utilisant pleinement les puissantes fonctions mathématiques de SciPy.

Obtenez un échantillon proche d'une distribution normale

Commencez par trouver un échantillon proche de la distribution normale. Générez 500 données avec une moyenne de 100 comme suit:

from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import pylab as plb

#Obtenez un échantillon proche d'une distribution normale
#La moyenne est de 100, l'écart type est de 1 et le nombre d'échantillons est de 500.
sample = norm.rvs(loc=100,scale=1,size=500)

print (sample) # =>
#[ 101.02975418   99.95689958  100.8338816    99.32725219  101.50090014
#   99.29039034  101.64895275  100.45222206  100.22525394   98.8036744
#  100.73576941   99.32705948  100.52278215  102.38383015   98.28409264
#   99.22632512  100.84625978   99.69653993  100.9957202    97.97846995
#   99.49731157  100.89595798  101.3705089   101.15367469  100.26415751
#   99.14143516  100.21385338   99.69883406   99.68494407  100.70380005
#  100.73544699  100.3434308    99.50291518   99.61483734  100.92201666
#  100.98639356  100.36362462   98.39298021   98.39137284  101.54821395
#  100.2748115   100.78672853   99.79335862   98.8123562   100.57942641
#  100.03497218   99.98368219  100.45979578   99.32342998   98.08908529
#  ...

Montage et visualisation

L'ajustement ne nécessite qu'une seule méthode.

param = norm.fit(sample)

print (param)
# => (99.92158820017579, 1.0339291481971331)

Maintenant que vous avez les paramètres, vous pouvez les tracer.

x = np.linspace(95,105,100)
pdf_fitted = norm.pdf(x,loc=param[0], scale=param[1])
pdf = norm.pdf(x)
plt.figure
plt.title('Normal distribution')
plt.plot(x, pdf_fitted, 'r-', x,pdf, 'b-')
plt.hist(sample, normed=1, alpha=.3)
plt.show()
plt.savefig("image.png ")

image.png

Ça s'est bien passé.

Il n'y a pas de temps pour lister des exemples d'analyse de problèmes d'ingénierie à l'aide de la méthode des moindres carrés. En outre, il est important d'avoir une bonne compréhension des distributions de probabilité et des tests, car le processus d'analyse des données sera ruiné si les hypothèses fluctuent dans un modèle qui suppose une distribution normale.

Recommended Posts

Raccord gaussien
Raccord Bayes
Processus gaussien