numpy und linear fit

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ichbinsisyphos
User
Beiträge: 120
Registriert: Montag 4. Juni 2007, 19:19

Hallo,

ist es möglich mit numpy einen linearen fit zu erstellen, der durch den Ursprung geht?

Scheint mir eine sehr wichtige Funktion zu sein, finde darüber aber nichts.

Keine Ahnung ob es noch andere Fit-Funktion gibt, ich benutz zur Zeit immer polyfit(x,f(x),1).
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

ichbinsisyphos
User
Beiträge: 120
Registriert: Montag 4. Juni 2007, 19:19

ja, danke für die antwort.

ich hab mich aber erinnert, dass es für das problem eine einfache analytische lösung gibt:

sum(x*y)/sum(x**2) :lol:
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

ichbinsisyphos hat geschrieben:sum(x*y)/sum(x**2)
Richtig: Das erklärt alles. Wozu sonstige Routinen?
ichbinsisyphos
User
Beiträge: 120
Registriert: Montag 4. Juni 2007, 19:19

CM hat geschrieben:
ichbinsisyphos hat geschrieben:sum(x*y)/sum(x**2)
Richtig: Das erklärt alles. Wozu sonstige Routinen?
bevor ich da eine beleidigung annehmen muss, frag ich lieber nach. würdens sich bitte erklären?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Das war nicht als Beleidigung gemeint, tut mir leid. Aber: Das ist keine Fitroutine - auch wenn man sich denken kann, was Du gemeint hast. Ein anderer Nutzer des Forums mag über den Thread stolpern und dann doch nicht weiter wissen.
ichbinsisyphos
User
Beiträge: 120
Registriert: Montag 4. Juni 2007, 19:19

aso, nein, das ist keine eigentliche fitroutine.

wenn man eine gerade durch die werte legt, die den quadratischen fehler minimiert und zusätzlich einschränkt mit der bedingung das die gerade durch den ursprung geht, dann gibts eine analytische lösung.

fit ist also hier nicht nötig. was vermutlich auch der grund ist, wieso dieser spezialfall in den fit-funktionen nicht vorkommt.


herleitung ist ungefähr:

geradengleichung durch ursprung mit steigung m: y=m*x
summe über die quadratischen Fehler E = sum((m*x_i-y_i)**2) = minimal
=> dE/dm = 0 = 2*sum((m*x_i - y_i)*x_i)
=> m = sum(x*y)/sum(x**2)

es sei denn ich hab etwas übersehen ...
Antworten