Die Regressionsanalyse wurde bereits in Das Thema der linearen Regression erwähnt.
Lassen Sie uns nun den Code schreiben und eine Regressionsanalyse durchführen. np.polyfit und np.polyval /reference/generated/numpy.polyval.html#numpy.polyval) kann verwendet werden, um eine Regressionsanalyse von zwei Variablen mit einer Gleichung n-ter Ordnung durchzuführen.
Für Details ist es besser, auf das Dokument über den obigen Link zu verweisen, aber es ist wie folgt.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
z = np.polyfit(x, y, 3)
p = np.poly1d(z)
p30 = np.poly1d(np.polyfit(x, y, 30))
xp = np.linspace(-2, 6, 100)
plt.plot(x, y, '.', xp, p(xp), '-', xp, p30(xp), '*')
plt.ylim(-2,2)
plt.show()
plt.savefig('image.png')
In diesem Moment Für lineare Gleichungen gilt p [0]: Tilt und p [1]: Section. Für die Gleichung N-ter Ordnung gilt p [0] * t ** (N-1) + p [1] * t ** (N-2) + ... + p [N-2] * t + p [N-1] ] ist.
In Bezug auf die Methode der kleinsten Quadrate die ich zuvor erwähnt habe, die Datenzeichenfolgen {(x_1, y_1), (x_2, y_2), ... (x_n ,, Bestimmen Sie das Modell, das die Summe der quadratischen Residuen für y_n)} minimiert. Zu diesem Zeitpunkt wird angenommen, dass die Streuung der Fehlerverteilung der beobachteten Werte konstant ist.
Die Regressionsanalyse mit m Modellen mit unabhängigen Variablen lautet Multiple Regressionsanalyse 88% 86% E6% 9E% 90).
z = ax + by + c
Ich möchte die Formel finden.
x = [9.83, -9.97, -3.91, -3.94, -13.67, -14.04, 4.81, 7.65, 5.50, -3.34]
y = [-5.50, -13.53, -1.23, 6.07, 1.94, 2.79, -5.43, 15.57, 7.26, 1.34]
z = [635.99, 163.78, 86.94, 245.35, 1132.88, 1239.55, 214.01, 67.94, -1.48, 104.18]
import numpy as np
from scipy import linalg as LA
N = len(x)
G = np.array([x, y, np.ones(N)]).T
result = LA.solve(G.T.dot(G), G.T.dot(z))
print(result)
Dies [ -30.02043308 3.55275314 322.33397214] Kann erhalten werden
z = -30.0x + 3.55y + 322
Wird erhalten, und dies ist die Lösung.
2013 Mathematics Study Group Materialien für Programmierer http://nineties.github.io/math-seminar/
Recommended Posts