Header Image - Laufen zwischen Langenfeld, Hilden und Solingen

Stefan

Einstieg in die Laufdatenanalyse

Einstieg in die Laufdatenanalyse

Ein Lauf mit der Garmin Fenix 3 Laufuhr produziert schon für kleine Laufeinheiten eine relativ große Datenmenge die im Garmin  *.fit Format auf der Uhr abgespeichert wird. In der Regel hat der User seine Laufuhr mit dem Handy gekoppelt oder überträgt per WLAN diese Daten an sein zuvor eingerichtetes Garmin-Connect Konto. Sind die Daten übertragen kann, man sich dazu Auswertungen in seinem Konto anschauen. Der Pace-Graph sieht in Garmin Connect dann z.B.  so aus:2016-01-02 Run Garmin Connect

2016-01-02 Run Garmin Connect croped

Hier sticht im ersten Moment der sehr „volatile“ Verlauf der Zeitreihe ins Auge. Da der Autor selber diese Strecke gelaufen ist, kann er die „spikes“ mit z.B. 3:07 min/km sicher ausschließen d.h. dies sind ausschließlich GPS-Messfehler. Diese spikes haben unangenehme Eigenschaften:

  • Das Minimum und Maximum der Zeitreihe besteht i.d.R nur aus Messfehlern.
  • Liegt ein spike in einem kurzen Laufsegment, wird der Mittelwert stark verzerrt.
  • Die spikes verstellen den Blick aufs Ganze da man kaum Trends, die Wirkung von Anstiegen etc. ausmachen kann.
  • Die Skalierung der Ordinate fällt durch die spikes ungünstig aus.

Daneben gibt es noch eine weitere Sicht in Garmin Connect auf den Lauf.

  • die Skalierung der Achsen ist nicht immer befriedigend
  • Die Wahl des Zeichenmodus – gefüllte Fläche, Linie Punkte –  ist vorgegeben
  • Die Daten können nur über Zeit oder Distanz auf der Abszisse gezeichnet werden. Insbesondere wird  jede andere multivariate Betrachtung nicht unterstützt.

Zusammenfassend kann man für die Grafiken festhalten:

  1. Lokal kommt es zu großen Verzerrungen im Tempo
  2. Die Sicht auf die Laufdaten ist vielfach unbefriedigend
  3. Ein kausaler Zusammenhang zwischen Tempo und den anderen Messgrößen kann grafisch kaum abgeleitet werden. Das sind aber die Größen, an denen der Läufer arbeiten kann, um seine Pace zu verbessern.

Das ganze Prozedere von Lauf bis abschließender Analyse wirft die Frage auf, wer Eigentümer und Besitzer der Daten ist. Für viele Läufer dürfte der Besitz d.h. die Verfügung über das Eigentum sehr eingeschränkt sein. Man hat eigentlich nur eine voreingestellte Sicht auf die Daten, kann aber nicht mit ihnen arbeiten. Der Autor hat bis jetzt noch kein frei zugängliches Tool wie z.B. gps-babel gefunden, dass sämtliche Felder des Fenix3 fit-file ausließt. Deshalb wurde hier der „harte“ Weg beschritten, der aber Programmierkenntnisse voraussetzt. Dazu beschafft man sich ein Garmin SDK, spielt dieses in eine Entwicklungsumgebung ein und erstellt sich per Programm die nötigen Dateien aus dem fit Format. Diese kann man dann z.B. mit GNU R auswerten.

Die Zeitreihe Tempo zu diesem Lauf weißt folgende Autokorrelationen auf:

2016-01-02 Run SpeedAutoCorrelation

Es zeigt sich also ein signifikanter positiver Zusammenhang für die ersten ca. 10 Lags, der auch zu erwarten war. Danach ist kein signifikanter Einfluss mehr erkennbar. Als Einstieg in die multivariate Datenanalyse bietet sich häufig ein Scatterplot an.

2016-01-02 Scatter

Auf der Hauptdiagonalen befinden sich die Histogramme zu den Variablen, im oberen Dreieck die Scatterplots und im unteren Dreieck die Korrelationen. Uns interessiert hier zunächst der Zusammenhang zwischen Speed und den anderen Variablen. Im Scatterplot sind das die erste Zeile und erste Spalte. Demnach ist der Zusammenhang zwischen Speed und (stride length, heart rate, stance time %) am stärksten und mit dem fachlich erwarteten Vorzeichen ausgeprägt.

  • stride length: Die Schrittlänge wird bei Garmin über Schrittfrequenz  und zurückgelegten Weg ermittelt. Sie ist deshalb mit den selben Fehlern des GPS Signals behaftet aus denen die Geschwindigkeit ermittelt wird. Die hohe Korrelation könnte auf diesem Fehler-Zusammenhang beruhen.
  • heart rate wird über den Brustgurt gemessen. Ist dieser am Anfang des Laufs nicht feucht, kann es zu größeren Fehlen kommen. Der Autor hält deshalb den Brustgurt vorher kurz unter warmes Wasser.
  • stance time % wird über die Erschütterung gemessen. Je länger man auf dem Boden bleibt, desto schlechter die Pace.

Für diese Daten wird nun folgendes linear homogene Modell (d.h. ohne Konstante) in R angesetzt:


lm(formula = speed ~ 0 + time + time2 + heart_rate + heart_rate_lag1 +    heart_rate2 + vertical_climb_plus + vertical_climb_minus +     Cadence + stance_time_percent + vertical_oscillation, data = rundata,   weights = w)

Um den spikes entgegen zu wirken wird ein IRLS (vgl. https://en.wikipedia.org/wiki/Iteratively_reweighted_least_squares) Ansatz mit reziproken Gewichten zur Nachbildung der L1-Norm gewählt.

Independent Variable Estimate Std. Error t value Pr(>|t|) signif
time -1,38E-003 1,85E-004 -7,438 4,12E-013 ***
time2 3,43E-007 5,40E-008 6,346 4,74E-010 ***
heart_rate 1,80E-001 1,93E-002 9,332 < 2e-16 ***
heart_rate_lag1 -1,03E-002 2,57E-003 -3,985 7,69E-005 ***
heart_rate2 -3,14E-004 7,81E-005 -4,018 6,70E-005 ***
vertical_climb_plus -1,20E-003 1,36E-004 -8,777 < 2e-16 ***
vertical_climb_minus -2,38E-004 1,13E-004 -2,111 0,0352 *
cadence 4,66E-002 6,62E-003 7,048 5,66E-012 ***
stance_time_percent -3,13E-001 2,87E-002 -10,924 < 2e-16 ***
vertical_oscillation -2,20E-003 7,89E-003 -0,278 0,7808

und eine hochsignifikante Regression:
Residual standard error: 0.855 on 532 degrees of freedom
Multiple R-squared: 0.9984, Adjusted R-squared: 0.9984
F-statistic: 3.345e+04 on 10 and 532 DF, p-value: < 2.2e-16

Die Zeit geht mit 2 Termen (time, time2=time*time) ein. Hier wird eine nach oben offene Parabel im Wertebereich [-1.4; -0.2] km/h geschätzt mit Minimum auf dem letzten Drittel des Laufs. Die Herzfrequenz geht mit 3 Termen ein (heart_rate, heart_rate2, heart_rate_lag1). Bezüglich des quadratischen Teils (heart_rate, heart_rate2) zeigt sich ein erwartungsgemäß degressiver Verlauf d.h. abnehmender Grenznutzen des sich „quälen“. Die Variable heart_rate_lag1 hat ein negatives Vorzeichen d.h. je niedriger die Herzfrequenz in der Vorperiode desto höher die aktuelle Geschwindigkeit. Die Variablen zum Anstieg gemessen in Höhenmeter/Zeit haben das erwartete Vorzeichen. Hier fällt auf, dass der Tempoverlust beim Anstieg größer ausfällt als der Tempogewinn bei „downhill“ bzw. dieser nur mäßig signifikant ist . Eine Erklärung hierfür könnte sein, dass man sich beim Bergablauf ausruht. Die Schrittfrequenz hat erwartungsgemäß einen positiven Einfluss aufs Tempo. Die Verweildauer auf dem Boden hat erwartungsgemäß einen negativen Einfluss aufs Tempo.  Die Hebung des Oberkörpers (vertical_oscillation) hat hier einen negativen, aber nicht signifikanten Einfluss. Das Vorzeichen entspricht hier der fachlichen Theorie, aber wahrscheinlich ist dieser Zusammenhang eher über eine Querschnittsstudie  – Vergleich mehrer Läufer –  und über längere Distanzen nachweisbar. Die Gegenüberstellung von Rohdaten und Modellprognose führt zu folgender Grafik:2016-01-02 Run ModelPrediction

Die Modellprognose verläuft hier schon deutlich ruhiger und realistischer. Die spikes sind erfolgreich eliminiert worden.

Jahresstatistik 2015

Das Jahr neigt sich dem Ende zu und man fragt sich unweigerlich, was man geschafft hat. Deshalb hier ein kleiner Überblick in Zahlen über die in strava erfassten Leistungen unseres LT. Abgerufen wurden diesen Daten am Donnerstag 31.12.2015 um 21:20.

Die Erfassungsmethoden

  • ob Handy, GPS-Uhr oder
  • manuelle Eingabe

führen jedoch zu mehr oder weniger kleinen Fehlern die sich auch nicht unbedingt ausgleichen und somit zu einer Verzerrung beitragen.

  • manuelle Eingabe: es gab teilweise bei strava Probleme (bugs) mit der Eingabe. Ferner sind Höhenmeter nicht erfasst. Des weiteren dauert es eine gewisse Zeit, bis reale Trends im täglichen Sport erkannt werden und sich in der Eingabe niederschlagen.
  • Handy und nicht barometrische Höhenmessung: strava nimmt hier die Koordinaten (Längen- und Breitengrad) und ermittelt über ein weltweites digitales Höhenmodell die Höhe zu gegebenen Koordinaten. Dies führt bei Tunneldurchfahrten aber auch bei schlechtem GPS-Signal in Schluchten und Wäldern zu einer deutlichen Überschätzung der Höhenmeter.
  • GPS-Uhr und Signal: Von der Tendenz her können für zeitlich kurze Abläufe (wenige Messwerte) bei niedriger Geschwindigkeit (hoher Rauschanteil) nur sehr unsicher Geschwindigkeiten ermittelt werden. Dies gilt insbesondere für kurze Laufsegmente. Auf längere Sicht – mehr Messwerte – gleichen sich diese Fehler zum Teil aus, es kommt aber dennoch zur einer systematischen Überschätzung, da der aufgezeichnete GPS-Track um den wahren Pfad mäandriert, also zu lang ist. Unsere Einschätzungen gehen dahin, dass selbst bei hochwertigem GPS-Sensor (Garmin Fenix 3) dies ca. 1-5 s/km für den Pace-Mittelwert für eine Einheit ≥ 10km ausmachen könnte. Bei weniger gutem GPS-Sensor ist der Fehler noch größer sein. Ein weiteres Fehlermoment macht sich beim Start der Aktivität bemerkbar. Hat man dem GPS-Sensor nicht genug Zeit für die initiale Positionsbestimmung gelassen und ist diese deshalb sehr ungenau, führen die folgenden Signale zu einer schrittweisen Korrektur des initialen Fehlers in der aufgezeichneten Aktivität. Dies führt mit hoher Wahrscheinlichkeit zu einer Überschätzung der Weglänge und des Tempos.
  • Schwimmuhr: Hier ist von der Tendenz  beim „Pool-Schwimmen“ ebenfalls mit einer sporadischen Überschätzung zu rechnen, d.h. es wird eine Bahn zu viel gezählt. Vermutlich hängt dies mit den Bewegungen bei der Wende zusammen. Beim Freiwasserschwimmen empfiehlt sich, den GPS-Sensor unter der Badehaube zu tragen. Wie beim Laufen kommt es hier zur einer Überschätzung des zurück gelegten Wegs.

Was ist denn nun die Konsequenz aus diesen zahlreichen Fehlermöglichkeiten und Einwendungen? Jede hier diskutierte Messmethode hat ihre Fehler, und sehr wahrscheinlich fallen diese bei GPS gestützter Auswertung noch am geringsten aus. Für eine exakte Messung sind derzeit abgemessene Strecke und Chip / Zielfoto unschlagbar. Das machen wir auch gerne bei Wettkämpfen, aber ungern bei unseren wöchentlichen Läufen. Wir haben so die Freiheit, den Weg auch mal zu variieren und  Pausen zu machen  und kennen dennoch unser Leistungsvermögen in guter Näherung.

Hier unsere Läufe 2015: Die Namen habe ich mal zur Sicherheit weggelassen und einfach Buchstaben für die Sportler/innen vergeben.

Laufstatistik für 2015 a b c d e f g Summe pro Kopf
Distanz [km] 3.219,70 1.837,00 1.375,10 1.076,70 813,90 400,00 426,20 9.148,60 1.306,94
Zeit [hh:mm:ss] 279:41:00 163:50:00 130:53:00 104:37:00 73:01:00 36:00:00 38:06:00 826:08:00 118:01:09
Höhenmeter [Hm] 11.866 7.654 805 212 1.919 100 880 23.436 3.348
Läufe [Anzahl] 254 151 113 93 88 40 52 791 113
Pace [min/km] 00:05:13 00:05:21 00:05:43 00:05:50 00:05:23 00:05:24 00:05:22 00:05:25
Vertikal climb [min/HM] 00:01:25 00:01:17 00:09:45 00:29:37 00:02:17 00:21:36 00:02:36 00:02:07
Lauflänge [km] 12,68 12,17 12,17 11,58 9,25 10,00 8,20 11,57

Unser mittleres Tempo ist also 5:25 min/km. Eine genauere Betrachtung zeigt, dass wir hier eine ausgesprochene Saisonfigur haben. Der vermutlich einfachste Ansatz zur Temposteigerung besteht darin, der „Winterdepression“  mit Elan entgegenzutreten. Daneben könnte man die Lauflänge reduzieren und die Frequenz erhöhen, was aber organisatorisch/terminlich schwierig ist. Und natürlich wirken Höhenmeter nicht positiv auf das mittlere Tempo. Die technischen Entwicklungen der Laufuhren gibt weitere Ansatzpunkte zur Temposteigerung, in dem man gezielt an den Messgrößen Cadence, stance_time, und vertical_oscillation arbeitet um eine effizienteren Lauf [kJ/km]  zu realisieren.

Unsere Radfahrten 2015:

Radstatistik für 2015 h i j k Summe pro Kopf
Distanz [km] 12.722,40 10.252,90 1.735,30 1.189,10 25.899,70 6.474,93
Zeit [hh:mm:ss] 525:50:00 435:55:00 99:48:00 72:49:00 1134:22:00 283:35:30
Höhenmeter [m] 108.467 59.616 21.082   189.165 63.055
Radfahrten 242 212 159 42 655 163,75
 
Längste Radfahrt 317,20 169,50 12,70 120,00 317,20
Größter Anstieg 2.602 324 112   2.602
Tour-Länge [km] 52,57 48,36 10,91 28,31 39,54
v [km/h] 24,19 23,52 17,39 16,33 22,83
Steigung % 0,85% 0,58% 1,21% 0,97%
vertical Climb [m/h] 206,28 136,76 211,24 166,76

Beim Radfahren haben wir offensichtlich ein sehr weit gespreiztes Feld, sowohl hinsichtlich km Leistung als auch Tempo. Dies hängt einerseits mit den persönlichen Interessen/Schwerpunkten als auch mit der technischen Ausstattung zusammen. Letzteres könnte im lowspeed Bereich massiv das Tempo erhöhen in der oberen Hälfte dürfte der Fortschritt eher marginal und sehr teuer werden.

Zum Schluss noch das Schwimmen:

 Schwimmstatistik für 2015 l m Summe pro Kopf
Distanz [m] 109.113 23.430 132.543,00 66.271,50
Zeit [hh:mm:ss] 43:19:00 25:17:00 68:36:00 34:18:00
Schwimmeinheiten 69 33 102 51
   
Pace [min/km] 00:23:49 01:04:45 12:25:18
Einheitenlänge [km] 1,58 0,71 1,30

Das Schwimmen ist eher ein „Stiefkind“ des LT’s, obwohl es ein guter Ausgleich zu den anderen Sportarten ist, die zum überwiegenden Teil die Beine beanspruchen. Hier könnte uns insbesondere eine personelle Verstärkung helfen indem es z.B. durch einen weiteren Personenkreis im LT getragen wird.

Im Folgenden ein Versuch diese 3 Sportarten ins „Laufen“ umzurechnen. Ausgangspunkt ist hier die Relation der sportartspezifischen Marathondistanz zum klassischen Laufmarathon:

Sportart Distanz LT-Pappelalle [km] Lauf-Multiplikator Laufdistanz-Äquivalent [km] Anzahl Personen pro Kopf [km]
Schwimmen (Marathon = 10 km) 132,54 4,22 559,27 2 279,63
Radfahren (Marathon = 205 km) 25.899,70 0,21 5.330,92 4 1.332,73
Laufen (Marathon = 42,195 km) 9.148,60 1,00 9.148,60 7 1.306,94
Summe 15.038,78 2.919,30

Hätte jeder von uns die durchschnittliche km-Leistung in den Sportarten erbracht, ergäbe sich eine Laufleistung von ca.

2.900 km/Jahr oder 56 km/Woche.

Das ist schon eine überraschend große Zahl! Geht man von den 2 wöchentlichen Terminen a 12 km aus, steuern die anderen Sportarten demnach erheblich zum Gesamtumfang bei.

Erstellung Webseite Lauftreff Pappelallee

Oben rechts unter „Wann und Wo“ finden Interessierte eine Karte zu unserer Standardrunde mit Zeiten.
5:00-6:00 min/km ist unser übliches Tempo und wir freuen uns auf weitere Läufer/innen.

In einem Jahr schaffen wir ungefähr 1000k-3000k pro Läufer/in. Unsere Läufe dokumentieren wir derzeit in einem strava Lauf Club, siehe unten. Dazu benötigt man ein Smartphone (mit gps) oder – noch besser – eine Laufuhr. Begehrt sind hier die Auszeichnungen für strava Segmente insbesondere KOM/QOM. Wir stellen uns auch gerne den strava challenges.

Im Jahresablauf nehmen wir an Laufwettkämpfen – derzeit im Bereich von 5k-50k – teil. Bei uns hat es bisher bei keinem zu „Ruhm und Ehre“ bei Laufwettkämpfen gereicht. Wir sind ausgesprochene Altersklassen und Quantils-Läufer d.h. wenn schon nicht erster Platz oder Top-Ten Platzierung, dann ist für uns ein Platzierung in den oberen 10%-50% der Altersklasse schon ein gutes Ergebnis, was den Aufwand/Schweiß rechtfertigt. Zur Wettkampfsaison im Frühjahr/Herbst intensivieren wir unser Lauftraining. Das findet dann entweder im Rahmen der Standardrunde statt, oder – sofern sich Mitstreiter finden – in verlängerten Läufen z.B. in die nahe gelegene Ohligser Heide.

Neben dem Laufen haben einige von uns ein Faible fürs Radfahren, insbesondere Rennrad. Unsere Touren gehen ins Bergische Land, Sauerland, an den Rhein und in die Eifel. Im Urlaub darf es dann gerne mal höher hinaus gehen: Alpen, Kanarische Inseln etc.

„Last but not Least“ gehen einige von uns auch gerne schwimmen. Im Sommer ist der Hitdorfer-Badesee beliebt. Wer im Winter auch das Freie beim Schwimmen liebt, ist in der Römer Therme in Dormagen warm (29C!) aufgehoben. Wie kommt man dahin? Laufen und oder per Rad, fertig ist der Triathlon.