hi,
ich bin grad bei der planung eines statistik tools was die Zugriffe auf einer Webseite loggt, auswertet und eine Prognose für die nächsten Tage erstellt ... die Prognose ist das einzig spannende daran der Rest is ja einfach
Nehmen wir mal an wir haben folgende Werte (ich nehm jetzt mal nur 3 Werte, die auch noch recht klein sind, später werdens mehr aber bei mehr werden die Rechnungen unten noch unübersichtlicher ):
Tag (x): 1 | 2 | 3
Zugriffe (y): 10 | 13 | 16
Hab auch absichtlich punkte genommen die auf einer linie liegen weils so einfacher nachzuvollziehen ist.
Jetzt hab ich en bissle überlegt ... die einfachste Lösung wäre sicherlich ne lineare Regression durchzuführen also einfach ne Linie die möglichst nah an allen Punkten dranliegt ...
Ziel ist es also eine Funktion zu kriegen in der Form y =a+b*(x+1) ... auf die x+1 komm ich später nochmal
b und a wären dann:
b = ((3*(x1*y1+x2*y2+x3*y3)-(x1+x2+x3)*(y1+y2+y3))/(3*(x1^2+x2^2+x3^2)-(x1+x2+x3)^2)
a = ((y1+y2+y3)/3)-b*((x1+x2+x3)/3)
die 3 mal bzw. durch 3 sind die anzahl der wertepaare ... in dem fall 3 ...
Würde rauskommen bei den Beispielwerten:
b = 3
a = 4
eingesetzt bei y = a+b(x+1) bekommt man folgende Wertetabelle:
1 | 2 | 3 | 4 | 5
10 | 13 | 16 | 19 | 22
Wäre also bei diesen Werten richtig ... aber wie siehts aus wenn man solche Werte hat:
1 | 2 | 3 | 4
10 | 15 | 25 | 40
dann wird diese Methode natürlich enorm ungenau (das wird sie auch schon wenn man die werte nur um 1 nach oben oder unten verändert aber egal) ....
So nächster Ansatz wäre ein Polynom 3. oder 4. Grades durchzuziehen ... was dann schon um einiges genauer wäre aber da fehlt mir grade der richtige denkansatz Hat vielleicht hier jmd ne Idee wie man das halbwegs human hinkriegt ?
mfG
ich bin grad bei der planung eines statistik tools was die Zugriffe auf einer Webseite loggt, auswertet und eine Prognose für die nächsten Tage erstellt ... die Prognose ist das einzig spannende daran der Rest is ja einfach
Nehmen wir mal an wir haben folgende Werte (ich nehm jetzt mal nur 3 Werte, die auch noch recht klein sind, später werdens mehr aber bei mehr werden die Rechnungen unten noch unübersichtlicher ):
Tag (x): 1 | 2 | 3
Zugriffe (y): 10 | 13 | 16
Hab auch absichtlich punkte genommen die auf einer linie liegen weils so einfacher nachzuvollziehen ist.
Jetzt hab ich en bissle überlegt ... die einfachste Lösung wäre sicherlich ne lineare Regression durchzuführen also einfach ne Linie die möglichst nah an allen Punkten dranliegt ...
Ziel ist es also eine Funktion zu kriegen in der Form y =a+b*(x+1) ... auf die x+1 komm ich später nochmal
b und a wären dann:
b = ((3*(x1*y1+x2*y2+x3*y3)-(x1+x2+x3)*(y1+y2+y3))/(3*(x1^2+x2^2+x3^2)-(x1+x2+x3)^2)
a = ((y1+y2+y3)/3)-b*((x1+x2+x3)/3)
die 3 mal bzw. durch 3 sind die anzahl der wertepaare ... in dem fall 3 ...
Würde rauskommen bei den Beispielwerten:
b = 3
a = 4
eingesetzt bei y = a+b(x+1) bekommt man folgende Wertetabelle:
1 | 2 | 3 | 4 | 5
10 | 13 | 16 | 19 | 22
Wäre also bei diesen Werten richtig ... aber wie siehts aus wenn man solche Werte hat:
1 | 2 | 3 | 4
10 | 15 | 25 | 40
dann wird diese Methode natürlich enorm ungenau (das wird sie auch schon wenn man die werte nur um 1 nach oben oder unten verändert aber egal) ....
So nächster Ansatz wäre ein Polynom 3. oder 4. Grades durchzuziehen ... was dann schon um einiges genauer wäre aber da fehlt mir grade der richtige denkansatz Hat vielleicht hier jmd ne Idee wie man das halbwegs human hinkriegt ?
mfG
Kommentar