In der linearen Regression, die bereits mehrmals vorkam, wurde die theoretische Formel der Linie, die zur Verteilung der Daten passt, nach der Methode der minimalen Quadrate erhalten. In vielen der verschiedenen bisher aufgetretenen Analysen wird eine Normalverteilung angenommen, beispielsweise in der linearen Regression (http://qiita.com/ynakayama/items/e41f592ad7fe02f23c1c).
Die Methode der kleinsten Quadrate, die als unverzichtbare Methode zur Anpassung bezeichnet werden kann, ermöglicht es, verschiedene Informationen aus den in der theoretischen Formel enthaltenen Konstanten zu erhalten, indem die aufgetragenen Daten an die theoretische Formel angepasst werden. Beispielsweise wird es in verschiedenen Situationen verwendet, z. B. wenn Sie die Steigung einer geraden Linie ermitteln möchten, die zu jedem Punkt passt, oder wenn Sie die Statistik einer Verteilung ermitteln möchten, die eine Normalverteilung annimmt.
** Normalverteilung **, auch als ** Gaußsche Verteilung ** bekannt, ist eine Wahrscheinlichkeitsverteilung für kontinuierliche Variablen, die die Verteilung von Daten darstellt, in denen sich Peaks nahe dem Mittelwert ansammeln. Ich habe es auch in Frühere Artikel erklärt. Das Ermitteln der Funktion der Näherungskurve (Anpassungskurve) für die Normalverteilung wird als Gaußsche Anpassung bezeichnet. Wie üblich kann die Gaußsche Anpassung leicht erreicht werden, indem die leistungsstarken mathematischen Funktionen von SciPy vollständig genutzt werden.
Suchen Sie zunächst eine Stichprobe, die nahe an der Normalverteilung liegt. Generieren Sie 500 Daten mit einem Durchschnitt von 100 wie folgt:
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
import pylab as plb
#Erhalten Sie eine Probe, die einer Normalverteilung nahe kommt
#Der Durchschnitt liegt bei 100, die Standardabweichung bei 1 und die Anzahl der Proben bei 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
# ...
Die Anpassung erfordert nur eine Methode.
param = norm.fit(sample)
print (param)
# => (99.92158820017579, 1.0339291481971331)
Nachdem Sie die Parameter haben, können Sie sie zeichnen.
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 ")
Es ging gut.
Es ist keine Zeit, Beispiele für die Analyse technischer Probleme mit der Methode der kleinsten Quadrate aufzulisten. Es ist auch wichtig, ein gutes Verständnis der Wahrscheinlichkeitsverteilungen und -tests zu haben, da der Datenanalyseprozess ruiniert wird, wenn die Annahmen in einem Modell schwanken, das eine Normalverteilung annimmt.