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).
numpy und linear fit
Ja: http://www.scipy.org/Cookbook/LinearRegression
bzw, du suchst vermutlich eher sowas: http://www.scipy.org/Cookbook/FittingData
bzw, du suchst vermutlich eher sowas: http://www.scipy.org/Cookbook/FittingData
-
- 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)
ich hab mich aber erinnert, dass es für das problem eine einfache analytische lösung gibt:
sum(x*y)/sum(x**2)
Richtig: Das erklärt alles. Wozu sonstige Routinen?ichbinsisyphos hat geschrieben:sum(x*y)/sum(x**2)
-
- User
- Beiträge: 120
- Registriert: Montag 4. Juni 2007, 19:19
bevor ich da eine beleidigung annehmen muss, frag ich lieber nach. würdens sich bitte erklären?CM hat geschrieben:Richtig: Das erklärt alles. Wozu sonstige Routinen?ichbinsisyphos hat geschrieben:sum(x*y)/sum(x**2)
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.
-
- 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 ...
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 ...