Prozentuale Verbesserung

Hintergrund:

Ich habe ein Python Script (Programm) geschrieben um mein Kopfrechnen zu trainieren. Alle Informationen werden gespeichert. So kann ich derzeit auswerten wie lange eine Aufgabe oder eine Sitzung im Durchschnitt gebraucht hat (es gibt verschieden Typen von Sitzungen). Auch richtige und falsche Antworten kann ich zahlenmäßig darstellen und dazu eine Fehlerquote angeben die ich mit jeder neuen Sitzung natürlich reduzieren will…

Problem:

Ich sehe also wo ich stehe aber ich sehe nicht um wieviel ich mich in den verschieden Bereichen verbessert habe (seitdem ich trainiere). Nehmen wir mal die Fehlerquote … angenommen sei eine Folge:

18%, 17%, 12%, 19%, 15%, 16%, …, 9%

Schaue ich nur auf den ersten und den letzten Wert kann ich erkennen dass ich mich um 50% verbessert habe (Fehlerquote halbiert). Allerdings sind in der Folge Ausreißer drin; wer sagt den daß die 9% nicht auch nur ein Ausreißer ist?

Frage:

Wie gibt man zuverlässig an um wieviel Prozent man sich verbessert hat? (idealerweise anwendbar für verschiedene Zahlenreihen dieser Art)

Schon mal ein großes „DANKE SCHÖN“ im Vorraus.

Anhang:

Mein Python Script für jeden der mal probieren will:
http://code.activestate.com/recipes/578111-learning-
to-calculate/?in=user-4174477

Hallo Sonnentrinker,

da gibt Dir am besten einer Auskunft, der sich mit statistischen Auswertungen auskennt. Darin habe ich keine Erfahrungen.
Eine kleine Hilfe kann es aber bereits sein, dass Du über einen gewissen Zeitraum, den man willkürlich festlegen kann (z.B. ein Vierteljahr oder einen Monat), die Ergebnisse notierst und dann einfach den arithmetischen Mittelwert berechnest. Dazu müsstest Du alle n Ergebnisse addieren und dann durch n dividieren. Das wäre dann innerhalb des Zeitraums deine durchschnittliche Leistung in %. Die Zahl setzt Du dann ins Verhältnis zur Anfangszahl und hättest dann zumindest eine Aussage, wie der Wert in dem entsprechenden Zeitraum nach oben oder nach unten gegangen ist.
In Deinem Beispiel: (18 + 17 + 12 + 19 + 15 + 16 + 9)/7 = 15,14
Dann: 15,14*100/18 = 84,11.
Das würde heißen, dass sich Deine Fehlerquote um etwa 16 % (100 - 84) verbessert hat.
Aber wie gesagt, die Statistiker rechnen mit anderen Modellen, bei denen beispielsweise Ausreißer rausgerechnet werden oder anders gewichtet einfließen.
Ich hoffe, ich konnte Dir dennoch ein wenig weiterhelfen.

Viele Grüße
funnyjonny

Hallo,
ich weiß nicht, ob ich der richtige Ansprechpartner für dein Problem bin, da das relativ wenig mit Schulmathematik zu tunhat.
Ich versucht’s trotzdem mal.
Aber ohne Gewär, dass das die beste und professionellste Lösung ist.

Ich habe mir folgendes überlegt:
wenn man die Veränderung der Durchschnittewerte betrachtet, schaltet man Ausreißer aus.
Also:
zuerst:
18
dann 17,5 (Mittelwert von 18 und 17)
dann 15,67 ((Mittelwert von 18 und 17 und 12)
usw.
allerdings werden dann die Tendenzen mit zunehmeder Gesamtzahl immer kleiner, d.h. es lässt sich immer schwieriger ein Trend erkennen.

Vielleicht besser:
Betrachte immer den Duchschnittewert der letzten 5, 10 oder 20 Messeungen. Dann sind es immer gleich viele beim Mittelwert. Wenn du allerdings z.B. bei 10 Betrachtungen 8 „Ausreißer“ hast, verfälscht das den Trend. Es dürfen somit nicht zu wenig betrachtete Werte sein.
Ich denke vielleicht 15 - 20 wären OK.

Diese Mittelwerte ließen sich doch gut vergleiche, um einen Trend abzugeben.

Mehr fällt mir im Moment nicht dazu ein.
Ich hoffe, ich konnte etwas weiterhelfen.
Gruß Frank

Mhhh, durchschnittliche Fehlerquote ins Verhältnis setzen zum ersten Wert. Das probier ich auf jeden Fall mal aus.

Danke.

Hallo Sonnentrinker,

ich habe zwar keine Ahnung vom Programmieren, aber ich hoffe, ich kann dir mit dem mathematischen Teil weiterhelfen :smile: Um zu erkennen, ob deine 50% ein Ausreißer sind, musst du ja erstmal einen Vergleichswert haben. Dafür gibt es meiner Meinung nach zwei Möglichkeiten. Entweder du bildest den Mittelwert der prozentualen Veränderungen und vergleichst den mit der aktuellen prozentualen Veränderung,also deine 50% im Vergleich zu [(18%-17%)/18% + (18%- 12%)/18% + … + (18% - 16%)/18%]/ 5, oder du bildest ein sogenanntes gewichtetes Mittel, dabei würden dann die letzten Ergebnisse mehr zählen als die älteren Ergebnisse. Falls in den vorherigen Ergebnissen ein Trend war, würdest du sehen ob deine 50% ein Aureißer sind oder voll im Trend sind sozusagen. Das gewichtete Mittel hier wäre dann
{ 1 * [(18%-17%)/18%] + 2 * [(18%- 12%)/18%] + 3 * [(18% - 19%)/18%] + 4 * [18% - 15%]/18] + 5*[(18% - 16%)/18%] / (1 +2 + 3 + 4 + 5)

Ich hoffe, das hilft dir ein wenig weiter :smile:
Viel Spaß beim Programmieren :smile:

Zuverlässig lässt sich das sicher nicht bestimmen, aber eine etwas laienhafte Antwort ( wie ich es machen würde ) wäre die Folgende:
Zeichne Dir den Graphen Deiner Folge in ein Koordinatensystem ein, zeichne dann nach bestem Wissen und Gewissen eine monoton fallende Ausgleichskurve, wobei offensichtliche Ausreißer natürlich unberücksichtigt bleiben und dem ersten und letzten Punkt Deiner Folge keineswegs eine Sonderstellung an Bedeutung beizumessen ist. Lies dann den Kurvenpunkt über dem letzten Folgenpunkt ab. Fertig.
Gruß Max

Zeichne Dir den Graphen Deiner Folge in ein Koordinatensystem
ein, zeichne dann nach bestem Wissen und Gewissen …

Ja, das ist natürlich ein Weg aber keiner der komfortabel ist, weil man jedesmal für alle möglichen Daten diese Graphen aktualisieren oder gar neu zeichnen müßte. Es sollen auch andere, die das Programm vielleicht verwenden erkennen können um wieiviel sie sich verbessert haben (ohne Aufwand).

Trotzdem Danke.

Hört sich gut an.
Es zeigt mir aber auch daß ich mich mit Papier und Bleistift nochmal hinsetzen muss um diese Ansätze besser zu verstehen. Danke für die Rechenbeispiele, die bringen mich ganz bestimmt weiter.

Danke. Ich schau mir alle vorgebrachten Vorschläge an.

Hallo,

gegen einmalige Ausreißer hilft, die Werte zu mitteln. Also z.B. aus dem Wert selber und den direkten Nachbarn ein gewichtetes Mittel wie
x_n ( neu ) = 1/4 * x_{n-1} + 1/2 * x_n + 1/4 * x_{n+1}
zu nehmen ( soweit Werte vorhanden ).

Einfach ein paar Kombinationen durchprobieren, damit der Glättungseffekt zu beobachten ist.

MfG
G. Aust

Bitte bitte :smile: Die Formeln sind eigentlich nicht sooo kompliziert, nur hier wahrscheinlich schlecht zu lesen. Falls du noch Fragen zu einer allgemeinen Formel für dein Programm hast, kannst du gerne fragen :smile:

Viel Erfolg!

Hallo.

Meiner Meinung nach ist vieles eine Frage des Standpunktes. Zu allererst: Ausreisser sind prinzipiell immer möglich - auch der Beginn könnte ggf. einer sein.

Nehmen wir an, dass die 18% in Deinem Beispiel als Startpunkt angenommen werden kann.

Möglich sind aus meiner Sicht zwei Ansätze:

  1. Du gehst davon aus, dass eine kontinuierliche Verbesserung eintritt (zB 1% pro Wiederholung) und berechnest die Abweichung pro Schritt - entweder absolut oder relativ - je nach dem, ob insgesamt etwas positives oder negatives heraus kommt, siehst Du, wie Du Dich entwickelt hast.
  2. Du berechnest in jedem Schritt die relative Abweichung vom Startwert und bildest über alle Werte einen Mittelwert. Positiv: Ausreisser wirken sich nicht so stark aus - nachteilig: die Erfolgskurve ist nicht so steil. Alternativ kannst Du eine gewisse „Eingewöhnungsphase“ annehmen und erst nach einigen Iterationen mit der Berechung beginnen.

Ich hoffe, das sind einige Denkanstösse für Dich.

Viele Grüsse,
Michael

Nehmen wir mal die Fehlerquote … angenommen sei
eine Folge:

18%, 17%, 12%, 19%, 15%, 16%, …, 9%

Schaue ich nur auf den ersten und den letzten Wert kann ich
erkennen dass ich mich um 50% verbessert habe (Fehlerquote
halbiert). Allerdings sind in der Folge Ausreißer drin; wer
sagt den daß die 9% nicht auch nur ein Ausreißer ist?

Frage:

Wie gibt man zuverlässig an um wieviel Prozent man sich
verbessert hat? (idealerweise anwendbar für verschiedene
Zahlenreihen dieser Art)

Schon mal ein großes „DANKE SCHÖN“ im Vorraus.

Anhang:

Mein Python Script für jeden der mal probieren will:
http://code.activestate.com/recipes/578111-learning-
to-calculate/?in=user-4174477

Hallo Sonnentrinker,

entschuldige die späte Antwort. Ich kann Dir zu Deinem Problem ein Stichwort nennen: „Lineare Regression“. Das ist nicht so ganz einfach zu verstehen / beschreiben.
Unter diesem Stichwort kannst Du allerdings sicher im Internet Beschreibungen oder sogar Programme finden, die Dir helfen. Da ich zur Zeit viel Arbeit habe, kann ich hier leider keine ausführliche Beschreibung geben - die im Netz vorhandenen sind wahrscheinlich auch vielfach besser, als es meine wäre…

Viele Grüße

Tja, ich habe schon befürchtet daß ich diesen Weg gehen muss, weil ich das vorher schonmal gesehen habe aber nicht in einem verständlichen Text beschrieben.

Jetzt hatte ich allerdings mit meiner Suche Glück:
http://www.faes.de/Basis/Basis-Statistik/Basis-Stati…

Ich habe das ausprobiert und weil es die Ergebnisse lieferte wie ich sie mir vorgestellt hatte habe ich auch gleich ein Python Rezept geschrieben und veröffentlicht:
http://code.activestate.com/recipes/578129-simple-li…

Der letzte schritt ist nun das noch in meinem Mathe Training Programm einzubauen…