HRV: Verbesserte Schätzung der DFA-alpha1 Werte

, Posted in Features

Bereits im Januar haben wir unser experimentelles Feature zur Schätzung der Aeroben Schwelle anhand von HRV vorgestellt. Seit dieser ersten Implementierung haben wir inzwischen erheblich an der Umsetzung der Methode gearbeitet und können dadurch die ursprünglichen Skepsis, wie hilfreich die ermittelten Werte tatsächlich sind, ad acta legen.

Das grundsätzliche Prinzip: Anhand der exakten RR-Intervalle zwischen den einzelnen Herzschlägen werden mittels nicht-linearer mathematischer Methoden die sogenannten DFA-alpha1 Werte ermittelt. DFA steht dabei für „Detrended fluctuation analysis“ (Trendbereinigte Fluktuationsanalyse) und alpha1 ist der Kurzzeit-Skalierungsexponent. Es ist bekannt, dass sich dieser Wert mit steigender Intensität verändert. Von anfänglichen Werten über 1,0 sinkt der Wert auf etwa 0,75 an der Aeroben Schwelle (nicht zu verwechseln mit der Anaeroben Schwelle oder Laktatschwelle!) und Werten um 0,5 bei hoher Intensität.

Anmerkungen

Bevor wir ein wenig auf die technischen Hintergründe unserer Implementierung eingehen wollen, möchten wir dazu einige Anmerkungen loswerden:

  • Die Analyse von HRV-Daten ist sehr sensibel was einzelne Ausreißer betrifft. Wir möchten Euch eindringlich darauf hinweisen, auf die Qualtität der Eingangsdaten zu achten. Bruce Rogers hat in seiner FAQ-Auflistung einige Empfehlungen diesbezüglich. (Bluetooth sollte anstelle von ANT+ verwendet werden; Bei 3% Artefakten oder mehr sind die Ergebnisse nicht vertrauenswürdig)
  • Das Schätzen der Aeroben Schwelle (oder sogar der Anaeroben Schwelle, siehe DFA a1 and the HRVT2) sollte nur bei expliziten Stufentests in Betracht gezogen werden. Die Regressionslinien, wie sie in Runalyze angezeigt werden können, sind nur in Betracht zu ziehen, wenn die Aktivität einzig und allein einen Stufentest beinhaltet.
  • Das Ganze ist ein brandaktuelles Thema. Wir versuchen trotz unserer bekannten zeitlichen Engpässe bei neuen Erkenntnissen zeitnah zu reagieren. Bitte denkt daran: Aus unserer Sicht bieten wir das Feature als Beta-Feature zur Unterstützung der aktuellen Forschung an.
  • Aus dem eben genannten Grund sind wir noch weit davon entfernt, die Berechnungen für alle existierenden Aktivitäten nachzuholen. Wir können Euch daher noch keine Langzeittrends anzeigen.

Technische Umsetzung

Für die Ermittlung der DFA-alpha1 Werte gibt es drei wichtige Schritte:

  1. Detrending der RR-Intervalle: Da sich die Herzfrequenz im Verlauf einer Aktivität stark verändert, unterliegen auch die RR-Intervalle diesem Langzeittrend. Dieser Trend ist bei der Vorverarbeitung der Daten zu entfernen. Die Methode dazu (siehe Tarvainen et al. 2002) ist in der mathematischen Formulierung sehr simpel – in der tatsächlichen Berechnung sehr aufwändig.
  2. Artefakt-Korrektur: Wie bei allen Messungen können auch beim Erfassen der HRV-Daten Messfehler auftreten. Diese müssen für die weiteren Berechnungen zunächst erkannt und korrigiert oder entfernt werden. Hier gibt es potentiell zahlreiche Methoden unterschiedlichster Komplexität und Qualität.
  3. Segmentweise Berechnung der DFA-alpha1 Werte: DFA ist ein „Standardtool“ der Mathematik. Die Unterschiede zwischen verschiedenen Implementierungen sollten minimal sein.

Runalyze ist als Web-Anwendung primär in PHP geschrieben und dementsprechend haben wir die erste Implementierung des Features im Januar ebenfalls in PHP gemacht. Lasst Euch dazu nur gesagt sein: Komplexere mathematische Methoden in PHP sind ein Graus. Was in bspw. Python, R oder MATLAB mit wenigen Codezeilen und geringer Rechenzeit funktioniert, ist in PHP aufwändig und rechenintensiv. Unsere erste Implementierung verzichtete daher auf das Detrending (1) und verwendete eine simple Methode zur Artefakt-Korrektur (2). Die Ergebnisse waren dementsprechend ungenügend.

Unsere Lösung für das Detrending

Anfang Mai haben wir uns dafür entschieden, die Zeit zu investieren und das Verfahren in R zu implementieren. Mit dem RHRV-Paket steht hier eine Bibliothek zur Verfügung, die für (2) und (3) bereits alles bietet, und das Detrending (1) ist wie erwähnt in wenigen Codezeilen umgesetzt. Das Ergebnis war brauchbar: Die Ergebnisse lagen deutlich dichter an denen der Software Kubios, die gewissermaßen als Gold-Standard für HRV-Auswertungen gilt.

Das einzige Problem: Die Performance. Für das Detrending muss das Inverse einer NxN-Matrix ermittelt werden, wobei N die Anzahl der RR-Intervalle ist. Für 1h Aktivität bei durchschnittlich 150bpm sind das N = 9.000 Werte, was einer Matrix mit 81 Millionen Einträgen entspricht. Das Berechnen der Inversen entspricht dem Lösen eines Linearen Gleichungssystems mit 9.000 Gleichungen. Was kompliziert klingt, schaffen Computer heutzutage ziemlich schnell. Bei einer 3h Aktivität reden wir aber schon über den 9-fachen Aufwand – und bei einer Web-Anwendung wie Runalyze sind Antwortzeiten von > 1s bereits sehr störend, von den hier anfangs notwendigen > 30s ganz zu schweigen.

Die Lösung: Wir ermitteln das Detrending ebenfalls segmentweise (mit gewisser Überschneidung). In unseren Tests hat sich gezeigt, dass der Bias (also der systematische Fehler, den wir hiermit begehen) in vernachlässigbarer Größenordnung ist. Ein weiterer Vorteil: Die NxN-Matrix und ihre Inverse sind zunächst unabhängig von den RR-Intervallen selbst, wir müssen also für zahlreiche Segmente der Länge N nur einmal die Inverse berechnen. Außerdem haben wir einige Methoden des RHRV-Pakets selbst implementiert, um zu einer noch besseren Performance zu gelangen.

Unsere bisherige Lösung für die Artefakt-Korrektur

Als wir uns nun fast am Ziel wähnten, mussten wir bei Bruce Vergleich zwischen Runalyze und Kubios (und HRV-Logger) feststellen, dass unsere Artefakt-Korrektur (2) ungenügend ist. Das RHRV-Paket bietet die Methode FilterNIHR, welche relativ ähnlich wie das von Kubios verwendete Verfahren (siehe Lipponen & Tarvainen 2019) zeitabhängige Grenzwerte verwendet. Leider werden dabei die Grenzwerte intern auf einen fixen Bereich eingeschränkt, was für HRV-Daten in Ruhe sinnvoll sein mag, für Aktivitätsdaten aber ungenügend ist.

Hier sehen wir ein Beispiel einer 3h-Radfahr ohne Filterung (rot) und mit der RHRV-Filterung (schwarz). Zunächst ist festzustellen, dass der Anteil an Artefakten ungemein hoch ist, wobei das in der Darstellung auch der Länge der Aktivität geschuldet ist: Von 25.003 Datenpunkten erkennt FilterNIHR 1.350 Artefakte (5,4%). Wir sehen in schwarz aber, dass weitere offensichtliche Artefakte nicht erkannt wurden.

Herzfrequenz aus den RR-Intervallen für eine 3h-Radfahrt: Rohes Signal (rot) und nach RHRV-Filterung (schwarz)

Daher mussten wir unseren aufwändig gewonnen Performancegewinn teilweise wieder herschenken und auch hier die rechenintensivere Implementierung wählen, wie sie von Kubios und Lipponen & Tarvainen vorgestellt wird. Das Ergebnis sind 1.485 erkannte Artefakte (5,9%). Es bleiben dennoch einige Artefakte unerkannt:

Herzfrequenz aus den RR-Intervallen für eine 3h-Radfahrt: Rohes Signal (rot) und nach Filterung nach Lipponen & Tarvainen (schwarz)

Wenn wir nun beide Verfahren kombinieren, also zunächst das von Lipponen & Tarvainen und anschließend erneut FilterNIHR anwenden, werden 1.516 Artefakte (6,1%) erkannt. Auf den ersten Blick ist nur noch ein nicht erkanntes Artefakt übrig:

Herzfrequenz aus den RR-Intervallen für eine 3h-Radfahrt: Rohes Signal (rot) und nach Filterung nach Lipponen & Tarvainen und FilterNIHR (schwarz)

Auch diese kombinierte Methode schafft es also noch nicht ganz, wirklich alle Artefakte korrekt zu erfassen. Den Effekt sehen wir auch in den resultierenden DFA-alpha1 Werten (bei 120s Fensterbreite und 115s Überlappung). Bei etwa 1:05:00 kommt ein Bereich, in dem DFA-alpha1 wild zwischen Werten bei etwa 1 und etwa 2 springt. Im Diagramm sind diese Werte leicht transparent, weil die Segmente in diesem Fall aufgrund des hohen SDNN von ca. 43ms den eingestellten Grenzwert von 10ms überschreitet.

Resultierende DFA-alpha1 Werte für die Beispielaktivität. Aus dem nicht erkannten Artefakt bei 1:05:00 entstehen hier fehlerhafte Werte.

Wir arbeiten daran, die Methode noch weiter zu verfeinern, um auch diesen Artefakt zu erkennen. Bis dahin solltet Ihr – wie ohnehin immer – auf möglichst gute Eingangsdaten achten. Je weniger Artefakte in den Daten vorliegen, desto niedriger ist die Wahrscheinlichkeit, dass einzelne Artefakte nicht erkannt werden. In diesem gezeigten Beispiel würden wir ohnehin aufgrund des Gesamtanteils an Artefakten von 6,1% den Ergebnissen eher nicht trauen.

Literatur

  • Gronwald, T., Rogers, B., Hoos, O.: Fractal Correlation Properties of Heart Rate Variability: A New Biomarker for Intensity Distribution in Endurance Exercise and Training Prescription?, Frontiers in Physiology, 11, p. 1152, 2020. doi:10.3389/fphys.2020.550572
  • Rogers, B., Giles, D., Draper, N., Hoos, O., Gronwald, T.: A new detection method defining the aerobic threshold for endurance exercise and training prescription based on fractal correlation properties of heart rate variability, Frontiers in Physiology, 2020. doi:10.3389/fphys.2020.596567
  • Rogers, B.; Giles, D.; Draper, N.; Mourot, L.; Gronwald, T.: Influence of Artefact Correction and Recording Device Type on the Practical Application of a Non-Linear Heart Rate Variability Biomarker for Aerobic Threshold Determination. Sensors 2021, 21, 821. doi.org/10.3390/s21030821
  • Rogers, B.; Giles, D.; Draper, N.; Mourot, L.; Gronwald, T.: Detection of the Anaerobic Threshold in Endurance Sports: Validation of a New Method Using Correlation Properties of Heart Rate Variability. J. Funct. Morphol. Kinesiol. 2021, 6, 38. doi.org/10.3390/jfmk6020038

Außerdem gibt es zahlreiche Informationen zu dem Thema im Blog von Bruce Rogers.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Starte jetzt deine Analyse

Erstelle dein kostenloses Konto und beginne mit der Analyse deiner Aktivitäten.

Du kannst dich auch via Facebook oder Google registrieren.

Fragen?

Hast du noch Fragen? Wir sind für ich da. Stelle deine Frage im Forum oder in der Facebook Community.

Hilfe benötigt?

Hast du Probleme mit deinem Account?
Kontaktiere unseren Support.