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.
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
# ...
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 ")
Ç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.