Least-Squares-Regression von Matrizen mit Numpy

Wenn diese beantwortet wurde irgendwo konnte ich nicht finden, fühlen Sie sich frei, um forum Ohrfeige mich.

Ich bin auf der Suche um zu berechnen, least squares linear regression aus einer N mal M matrix und eine Reihe von bekannten, Boden-Wahrheit-Lösungen in einem N-1-matrix. Von dort, würde ich mag, um die Steigung, Achsenabschnitt und der Restwert bei jeder regression. Die grundlegende Idee, ich kenne den tatsächlichen Wert, soll vorhergesagt werden für jede Probe in eine Reihe von N, und ich möchte, um zu bestimmen, welcher Satz von vorhergesagten Werten in einer Spalte von M ist am präzisesten mit Hilfe der Residuen.

Ich nicht beschreiben Matrizen gut, also hier ist eine Zeichnung:

(N,M) matrix with predicted values for each row N
 in each column of M...

##NOTE: Values of M and N are not actually 4 and 3, just examples
   4 columns in "M"
  [1, 1.1, 0.8, 1.3]
  [2, 1.9, 2.2, 1.7]  3 rows in "N"
  [3, 3.1, 2.8, 3.3]


(1,N) matrix with actual values of N


  [1]
  [2]   Actual value of each sample N, in a single column
  [3]  

Also nochmal, um der Klarheit Willen, ich bin auf der Suche, um die Berechnung der lstsq regression zwischen jede Spalte der (N,M) - matrix und (1,N) - matrix.

Beispielsweise die regression zwischen

[1]   and [1]
[2]       [2]
[3]       [3]

dann die regression zwischen

[1]   and  [1.1]
[2]        [1.9]
[3]        [3.1]

und so weiter, die Ausgabe der Steigung, Achsenabschnitt und der standard-Fehler (Durchschnittliche Restlaufzeit) für jede regression berechnet.

So weit in die numpy/scipy Dokumentation und um den 'net, ich habe nur festgestellt, Beispiele computing eine Spalte zu einem Zeitpunkt. Ich hatte gedacht, numpy hatte die Fähigkeit zum berechnen von Regressionen auf jede Spalte in eine Reihe mit den standard -

np.linalg.lstsq(arrayA,arrayB)

Aber, dass den Fehler zurück

ValueError: array dimensions must agree except for d_0

Muss ich teilen Sie die Spalten in Ihre eigenen arrays, dann berechnen Sie ein zu einer Zeit?
Gibt es einen parameter oder eine matrix-operation, die ich verwenden muss, um numpy Berechnung der Regressionen auf jede Spalte unabhängig?

Ich fühle mich wie es sollte einfacher sein? Ich sah es überall, und ich kann nicht scheinen, um herauszufinden jemand etwas ähnliches macht.

Sie sagen, dass Ihre Matrizen sind (N,M) (1,N). Lstsq erwartet (N, M) und (N), haben Sie versucht, mit der transpose der arrayB? Ich bekomme eine etwas andere Ausnahme von Ihnen, obwohl (LinAlgError: Unverträgliche Dimensionen), ich bin mit Python2.7, mit numpy1.6

InformationsquelleAutor jelegans | 2012-07-10

Schreibe einen Kommentar