2012-04-12 16 views
1

Ich hatte Schwierigkeiten, MATLAB dazu zu bringen, die Steigung und den Schnittpunkt einer Regressionslinie der kleinsten Quadrate auf der Grundlage eines 2-D-Streudiagramms zu enthüllen. Das scheint einfacher zu sein, als es sich herausstellt, aber alle vorhandenen Werkzeuge, die MATLAB für die Regression bereitstellt, gehen eher davon aus, dass ich etwas Komplizierteres mache, als ich tun möchte. Ich sollte es von einer Einrichtung wie lsline bekommen können, aber die IDE spielt schwer mit dem Quellcode zu bekommen. Kennt jemand einen schnellen und schmutzigen Weg, dies zu tun?Wie erhalten Sie die Steigung und den Achsenabschnitt einer Regressionslinie der kleinsten Quadrate in MATLAB?

Antwort

1

Versuchen Sie nur, die Regression visuell vom Streudiagramm zu schätzen? Wenn nicht, können Sie die polyfit() Funktion verwenden, um Ihre Schätzungen zu erhalten. Oder noch besser, schreiben Sie einfach Ihre eigene Funktion. Wenn Sie eine Spalte mit 1en erstellen und dann Ihre unabhängigen Achsenvariablen in benachbarte Spalten platzieren und diese Matrix X aufrufen und Ihre abhängige Variable in einem Spaltenvektor namens Y speichern, berechnen Sie einfach beta = (X'*X)\(X'*Y). Der erste Eintrag von beta gibt den Achsenabschnitt an, und die folgenden Einträge geben die Koeffizienten Ihrer Regressionsvariablen an.

+0

Ich habe die Quelldaten zu arbeiten - das Problem, das ich mit meinen üblichen Quellen habe, ist, dass sie davon ausgehen, dass ich den Wert des Vektors b in der Startgleichung A * x = b kenne. Wenn ich wüsste, dass es ziemlich einfach wäre, die Pseudoinverse von A zu berechnen und sie zu verwenden, um die Schätzung der kleinsten Quadrate zu erhalten. Aber bis ich weiß, was b ist (oder Y, in deinem Beispiel), bin ich mir nicht sicher, wie ich das machen würde. – estanford

+2

'Y' ist nur der Vektor der abhängigen Variablen (was auch immer Sie auf die Y-Achse Ihres Streudiagramms setzen). Wenn Sie die Quelldaten haben, sollte es in diesen Daten implizit sein, was "Y" ist. Der Teil, den Leute normalerweise vergessen, besteht darin, die 'A'-Matrix durch eine Spalte von Einsen zu erweitern, was es erlaubt, den Abfangterm zusammen mit den anderen Koeffizienten zu berechnen. – ely

+0

Sie können eine einfachere Formel verwenden, um 'beta' zu berechnen:' beta = X \ Y'. MATLAB löst dieses Problem automatisch im Sinne des kleinsten Quadrats. – m7913d

Verwandte Themen