Ich möchte die Schätzung der kleinsten Quadrate für gegebene Daten berechnen.Warum unterscheidet sich das Ergebnis der numpulösen Fehlerquadrate von der Verwendung der direkten Formel?
Es gibt einige Möglichkeiten, dies zu tun, ist eine numpy der kleinsten Quadrate zu verwenden:
import numpy
np.linalg.lstsq(X,y)[0]
wobei X eine Matrix ist und y ein Vektor der Dimension kompatibel (Typ float64). Zweiter Weg ist das Ergebnis direkt nach der Formel zu berechnen:
import numpy
numpy.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
Mein Problem: Es gibt Fälle, in denen die verschiedenen Formeln geben radikal unterschiedliche Ergebnisse (obwohl es keinen Unterschied sein kann). Manchmal werden die Koeffizienten mit einer Formel extrem groß, während sich die andere viel besser verhält. Die Formeln sind die gleichen, warum können die Ergebnisse so stark voneinander abweichen? Ist das eine Art von Rundungsfehler und wie minimiere ich es?
Hast du einen Intercept zu deinem X hinzugefügt? – gobrewers14