Analyse von EDA-Daten in Python

Luca Stöhr

15/11/2023

Wie analysiere ich elektrodermale Aktivität mit Python? In diesem kurzen Blogbeitrag erkläre ich dir, wie du Python für die Auswertung und Analyse von EDA-Daten einsetzen kannst und welche Bibliotheken nützlich sind.

 

1. Python für Datenanalyse

Python ist eine beliebte Programmiersprache, die viele Bibliotheken zur Datenanalyse und -Verarbeitung bereitstellt. Für die Handhabung von Datenstrukturen wird vor allem die Bibliothek pandas verwendet. Die Bibliotheken numpy und scipy bieten Algorithmen und Funktionen zur Verarbeitung von wissenschaftlichen und technischen Daten.

Zur Visualisierung der Daten und relevanter Ergebnisse kann die Bibliothek matplotlib genutzt werden. Für jeden Schritt im Arbeitsfluss kann in Python ein Werkzeug mit der entsprechenden Funktionalität gefunden werden, um die Arbeit zumindest zu vereinfachen.

 

2. Python für EDA Daten

In einem aktuellen Projekt von MEDtech behandeln wir die Verarbeitung von Messdaten elektrodermaler Aktivität (EDA). Elektrodermale Aktivität ist die Veränderungen der Leitfähigkeit der Haut, welche von der Aktivität der Schweißdrüsen abhängt. Langfristig haben die Temperatur und die Aktivität des Probanden Einfluss.

Kurzfristig kann durch Stress eine Veränderung hervorgerufen werden. Wenn die Leitfähigkeit aufgrund von Stress variiert, ist es möglich eine Häufung lokaler Maxima zu beobachten. Für eine detaillierte Auswertung der Eigenschaften von EDA-Daten gibt es in Python mehrere Bibliotheken, die ich im folgenden kurz erklären möchte.

EDA Bibliotheken

Die Bibliothek pyEDA kann auf Github gefunden werden und bietet die Möglichkeit die EDA-Daten zu filtern und phasische und tonische Anteile der Daten zu unterscheiden. Wenn Messungen über einen längeren Zeitraum erhoben werden, kann der Grundwert wie oben beschrieben aufgrund von z.B. Temperatur stark wandern.

Der phasische Anteil des Signals zeigt diese Schwankungen über längere Zeit. Der tonische Anteil zeigt die lokalen Maxima und strebt an den Grundwert jedes Maximas zu normalisieren. Außerdem bietet die Bibliothek eine Liste mit allen lokalen Maxima.

Dieselben Funktionalitäten bietet die neurokit2 Bibliothek. Daneben bietet diese Bibliothek außerdem die Möglichkeit ein EDA-Signal zu simulieren, was sehr hilfreich ist, um den restlichen Python Code zur Datenanalyse und die Struktur zu testen.

Eine weitere Bibliothek zur Verarbeitung und Analyse von physiologischen Signalen ist pysiology.

 

3. Python Projekt Struktur

Generell sollte ein main.py Skript und ein functions.py Skript geführt werden. Dabei stellt das functions.py Skript die Funktionen zur Verfügung. Das main.py Skript gibt die Struktur vor und gibt die Möglichkeit Variablen anzupassen. Dieses Vorgehen hilft dabei den Code mit dem man alltäglich arbeitet kurz und übersichtlich zu halten.

Die nicht zu verändernden Funktionen sind auf das functions.py Skript ausgelagert. Diese Funktionen sollten im Sinne guter Programmierstandards übersichtlich und zu testen sein. Ein Test-Driven Development Ansatz sorgt dafür, dass die Funktionen klar differenziert werden können und einzeln und unabhängig voneinander getestet werden müssen.

Für ein Projekt dieser Art müssen gespeicherte EDA Daten geladen werden. Dabei muss man womöglich unterscheiden, ob man eine Datei auswerten will oder mehrere Dateien miteinander vergleicht. Wenn man eine Messung gemacht hat, kann man diese Messung auswerten, im späteren Verlauf des Projekts kann man alle bisherigen Messungen vergleichen.

In dem functions.py Skript werden die Funktionen zur Verfügung gestellt, um in beiden Fällen die jeweiligen Daten zu Laden und eine entsprechende Datenstruktur zur Verarbeitung anzulegen. In dem main.py Skript wird dann lediglich der Pfad zu den Dateien festgelegt und eine Variable geändert, welchen Modus man wählt.

Nach demselben Prinzip kann festgelegt werden, ob ein Signal simuliert werden soll, welche Daten visualisiert werden sollen und wie die Datenverarbeitung strukturiert ist. Es ist darauf zu achten, dass das Hauptskript übersichtlich ist und alle sich wiederholenden Strukturen als Funktionen ausgelagert werden.

 

4. Anwendungsbeispiel

Mithilfe der neurokit2 Bibliothek wurden in Abbildung 1 ein EDA Signal simuliert. In dieser Simulation sind die Hauptkomponenten eines EDA Signals zu erkennen. Die lokalen Maxima deuten auf elektrodermale Aktivität hin. Die Signale beinhalten meist einen Drift.

Simulierte EDA Rohdaten
Abbildung 1: Simulierte EDA Rohdaten

In Abbildung 2 wurde mithilfe des neurokit2 der Drift entfernt, um nur den phasischen Anteil des Signals betrachten zu können. Die insgesamte Amplitude des Signals ist nicht für die Verarbeitung relevant.

Phasischer Anteil des EDA Signals
Abbildung 2: Phasischer Anteil des EDA Signals

Im Rahmen der Verarbeitung werden außerdem generelle Informationen zum EDA Signal erzeugt, die in dem Format aus Abbildung 3 in einer Variable abgelegt werden.

Info Variable mit wichtigen Parametern des Signals
Abbildung 3: Info Variable mit wichtigen Parametern des Signals

Geschrieben von Luca Stöhr

Luca hat seinen Bachelor im Bereich der Biomedizintechnik an der TH Lübeck, sowie seinen Master in Medizintechnik an der FAU Erlangen im Bereich der medizinischen Bild- und Datenverarbeitung abgeschlossen. Bei MEDtech Ingenieur hat sich Luca vor allem auf die Datenanalytik, Softwareentwicklung und App Entwicklung fokussiert.


Weitere Beiträge

  • 25/09/2025
  • Allgemein, Elektrodermale Aktivität, Hardware, Produktion

Darf ich vorstellen? Das ist EDA – unsere Eule für elektrodermale AktivitätDas ist EDA, unsere kleine Eule mit einem besonderen Talent. EDA kann elektrodermale Aktivität (kurz: EDA) messen – ...

Weiterlesen
  • 09/09/2025
  • Allgemein, Software

In vorangegangenen Blogbeiträgen habe ich zwei wesentliche Komponenten einer einfachen und universell einsetzbaren Software-Architektur vorgestellt: Events mit Dispatcher, Listeners und Datapool. Damit lassen sich bereits sehr viele einfache Use-Cases ...

Weiterlesen
  • 19/03/2025
  • Allgemein, Unternehmen, Veranstaltungen

Wir freuen uns, euch zu einem exklusiven VDI-Event des Netzwerk Systems Engineering einzuladen, das bei uns im Büro stattfindet!Am Freitag, den 28. März 2025, wird sich alles um die ...

Weiterlesen
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.