Hallo,
es geht drum dass ich bspw. eine Serie vn Punkten habe wie
x=[2,7,4,9,11,0,7,3]
könnten bspw. die messwerte einer bestimmten Größe zu den Zeitpunkten 1s,2s,...,8sekunden sein.
und mich würde interessieren wie ich eine Gerade dergestalt berechnen kann die möglichst nahe bei den Punkten liegt.
sprich: ich will letztlich rechnerisch rausfinden ob die Werte im Verlauf (mehr oder minder konstant) ansteigen, wie ungefähr die Steigung der Gerade ist.
und wie gut die Gerade ist (denn bspw. bei der Messreihe (8,-8,8,-8,8,-8) würde sich die gerade bei y=0 befinden, also horizontal.mit steigung 0. was ja unsinn wäre, weil es ja wild hin und her schwankt)
geht mir im prinzip um lineare regression, wie ich so eine gerade bestimme, insbesondere deren Steigung.
Und wie ich rechnerisch bestimme ob die messwerte wirklich halbwegs linear steigen oder ob die eigentlich wild hin und her schwanken und die gerade gar nix aussagt.
Rein von der Aufgabe her ginge es drum eine Gerade zu finden sodass das Maximum der Abstände der Messpunkte von der Gerade minimal ist (alle punkte so nah wie möglich an der geraden)
Aber wie berechnet man das als Einzeiler?
Weil brauche das als konkrete Formel mit input=Datenwerte und Output=Gerade, bzw. deren Steigung sowie ne kennzahl über deren "Qualität"
Wie macht man sowas?
Edit: Ich sollte vielleicht ergänzen:
letztlich geht es mir um Preise in einem Tradingchart.
Sagen wir, alle 5 Minuten gibt es dort einen neuen preis.
Und ich will, indem ich bspw. die letzten 6 Werte nehme, eine gut passende Gerade "anlege", grob aussagen ob es gerade stark aufwärts geht, abwärts oder einfach nur so vor sich hin dümpelt (steigung ca. 0)
Was mir dabei etwas problematisch vorkommt:
zum bestimmen so einer regressionsgerade braucht man ja eigentlich wertepaare (x,y).
aber bei mir gibt es in dem sinne keine waagrechts x-achse bzw. keinen Ursprung in dem sinne.
wie hoch die werte zu bestimmten zeiten sind, also wie hoch deren x-wert ist, ist ablesbar.
aber ausser dass sich deren "x werte" um 5 minuten unterscheiden, gibt es bei der x-achse in dem sinne keinen Nullpunkt, keinen ursprung.
ich könnte natürlich irgendwie die indizes des array nehmen, in dem die werte gespeichert sind, heißt also die zahlen 1,2,3,4,5,6 als "x-werte" passend zu den entsprechenden y-werten.
Am Ende von Allem habe ich letztlich einfach ein Array, sagen wir bspw. der Länge 5.
Und jedes Arrayelement ist eine Zahl.
Kann sein dass die Zahlen in Richtung aufsteigender Indizes steigen. oder fallen.
Oder gar nix davon.
Mal so als Beispiel:
das 5er Array [1,3,5,7,9] ist offensichtlich aufsteigend geordnet.
hier lässt sich direkt eine gerade konstruieren die durch die entsprechenden Punkte
(1,1) (2,3) (3,5) (4,7) (5,9)
(wobei 1. eintrag=index, 2. eintrag=zahl an dem index)
Die "Steigung" wäre dann +2 (weil: geht man um einen Indexplatz nach oben, erhöht sich der "Funktionswert" um +2)
nur sowas wie y-achsenabschnitt lässt sich hier eher shclecht finden mangels ursprung :-/
hier habe ich die Gerade "erraten" aber bei Punkten, die nicht rein zufällig alle auf einer "Linie" liegen, müsste ich das systmatisch hinkriegen.
Für den Anfang würde mir schon mal eine Formel für die Geradensteigung reichen.
Als Zusatz sozusagen wäre eine berechenbare Kennzahl ideal, anhand der ich ablesen könnte, wie gut die Gerade auf bzw. bei den Punkten liegt.
Gegenbeispiel:
Bei dem Array (5,-5,-5,5,-5,5)
wäre (meine Vermutung) die ideal gerde eine horizontale Linie im Sinne von y=0.
die ist von jedem Punkt um 5 Einheiten entfernt.
Obwohl das für dieses Array/Datenmenge schon die bestmögliche Gerade ist, ist sie doch miserabel in dem Sinne dass sie von jedem Punkt 5 Einheiten (un damit sehr weit weg) ist.
Sprich: hier macht eine Annäherung durch eine gerade keinen Sinn, weils einfach nicht so zum Verlauf passt.
Wie gesagt, wäre neben der Steigung halt gut wenn es eine kennzahl gäbe anhand der ich sehen bzw. ablesenkönnte, wie gut oder schlecht die "perfekte gerade" zum Datensatz passt.
Ob es von jedem Punkt nur "relativ minimal" abweicht.
Oder ob es wie bei den alternierenden Werten oben (wo die gerade durch 0 geht und steigung 0 ha) einfahc nur unsinn ist und gar nix über den Verlauf aussagt.
Mir fehlt nur schlicht und ergreifend eine mehr oder minder kurze Formel um die Steigung eines ideal angepassten Gerade sowie die Kennzahl für dessen Angepasstheit zu bestimmen.
für dieses "wie gut passt es" könnte ich zwar einfach das Minimum der Abweichungen betrachten.
Aber da hätte ich das Problem dass ich nicht weiß welcher Absolutbetrag an Abweichung noch gut ist oder nicht.
Ich meine, wenn sich bspw. alle meine Messwerte so um die 10000 bewegen, dann würde man eine Abweichung um 5 ooder 10 Einheiten sicherlich nicht als schlecht bezeichnen.
Wenn wir aber allerdings wie oben Werte haben, die im einstelligen oder niedrigen 2stelligen Bereich liegen, dann wäre eine Abweichung von mindestens 10 Einheiten eine Katastrophe bzw. würde ausdrücken dass selbst die idela berechnete Gerade miserabel ist und gar nicht an den graph passt.
daher würde es da der reine Minimumwert auch nicht bringen.
Ich würde eigentlich wetten, die leute aus der Hardcorestatistik haben dafür auch eine sehr komplex zu berechnende Zahl entwickelt, anhand derer man das messen kann.
Aber leider kenne ich die nicht :-( ─ densch 11.05.2020 um 10:35