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

  • 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
  • 13/03/2025
  • Allgemein, Unternehmen

MEDtech Ingenieur verstärkt sein Führungsteam: Seit März 2025 übernimmt Daniel Saffer die Rolle des Chief Technical Officers (CTO). Mit seiner langjährigen Erfahrung in der Entwicklung sicherheitskritischer Embedded-Softwarelösungen für die ...

Weiterlesen
  • 29/01/2025
  • Allgemein, Hardware, Testen

EinleitungUm bei der EMV Prüfung für die Zulassung neuer medizintechnischer Geräte das Risiko zu reduzieren machen wir gerne Vortests mit den Geräten in der Prototypen Phase. Aktuell unterstützen wir ...

Weiterlesen
Cookie-Übersicht

Die Internetseiten der MEDtech Ingenieur GmbH verwenden Cookies. Cookies sind Textdateien, welche über einen Internetbrowser auf einem Computersystem abgelegt und gespeichert werden.

Zahlreiche Internetseiten und Server verwenden Cookies. Viele Cookies enthalten eine sogenannte Cookie-ID. Eine Cookie-ID ist eine eindeutige Kennung des Cookies. Sie besteht aus einer Zeichenfolge, durch welche Internetseiten und Server dem konkreten Internetbrowser zugeordnet werden können, in dem das Cookie gespeichert wurde. Dies ermöglicht es den besuchten Internetseiten und Servern, den individuellen Browser der betroffenen Person von anderen Internetbrowsern, die andere Cookies enthalten, zu unterscheiden. Ein bestimmter Internetbrowser kann über die eindeutige Cookie-ID wiedererkannt und identifiziert werden.

Durch den Einsatz von Cookies kann die MEDtech Ingenieur GmbH den Nutzern dieser Internetseite nutzerfreundlichere Services bereitstellen, die ohne die Cookie-Setzung nicht möglich wären.

Mittels eines Cookies können die Informationen und Angebote auf unserer Internetseite im Sinne des Benutzers optimiert werden. Cookies ermöglichen uns, wie bereits erwähnt, die Benutzer unserer Internetseite wiederzuerkennen. Zweck dieser Wiedererkennung ist es, den Nutzern die Verwendung unserer Internetseite zu erleichtern. Der Benutzer einer Internetseite, die Cookies verwendet, muss beispielsweise nicht bei jedem Besuch der Internetseite erneut seine Zugangsdaten eingeben, weil dies von der Internetseite und dem auf dem Computersystem des Benutzers abgelegten Cookie übernommen wird.

Die betroffene Person kann die Setzung von Cookies durch unsere Internetseite jederzeit mittels einer entsprechenden Einstellung des genutzten Internetbrowsers verhindern und damit der Setzung von Cookies dauerhaft widersprechen. Ferner können bereits gesetzte Cookies jederzeit über einen Internetbrowser oder andere Softwareprogramme gelöscht werden. Dies ist in allen gängigen Internetbrowsern möglich. Deaktiviert die betroffene Person die Setzung von Cookies in dem genutzten Internetbrowser, sind unter Umständen nicht alle Funktionen unserer Internetseite vollumfänglich nutzbar.

Weitere Informationen erhalten Sie in unserer Datenschutzerklärung.

Unbedingt notwendige Cookies

Dieses Cookie wird benötigt, um Ihre Cookie-Einstellungen zu merken und weitere Hauptfunktionen zur Verfügung zu stellen

Um Ihnen eine Auskunft über Ihre gespeicherten personenbezogenen Daten hier (https://medtech-ingenieur.de/gespeicherte-daten-2/) geben zu können, benötigen wir einen Cookie, um Sie bei der Datenabfrage identifizieren zu können. Dieser Cookie muss aus Sicherheitsgründen deshalb aktiviert sein. Ein weiterer Cookie wird gesetzt, um diesen Banner nicht erneut anzeigen zu müssen.

Cookie-Name Beschreibung
PHPSESSID Name: PHP session
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Wir benötigt, um Sie bei der Anfrage von personenbezogenen Daten identifizieren zu können. Das Cookie wird nur gesetzt, wenn Sie eine Anfrage hier (https://medtech-ingenieur.de/gespeicherte-daten-2/) stellen.
Laufzeit: Sitzungsende
Kategorie: Unbedingt notwendige Cookies
moove_gdpr_popup Name: Cookie-Box Einstellungen
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Wird benötigt, um Ihre Cookie-Einstellungen zu speichern, um den Cookie-Banner nicht erneut anzeigen zu müssen.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
comment_author_9c90e388e3e1be4a6c594fa6ac8a3eec
comment_author_email_9c90e388e3e1be4a6c594fa6ac8a3eec
comment_author_url_9c90e388e3e1be4a6c594fa6ac8a3eec
Name: Kommentar Einstellungen
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Cookie wird angelegt, wenn Sie ein Kommentar auf MEDtech Ingenieur veröffentlichen wollen, um Sie als Autor identifizieren und den aktuellen Status Ihres Kommentars anzeigen zu können. Das Cookie enthält den angegebenen Namen. Das Cookie wird erst gesetzt, wenn Sie der Speicherung Ihrer personenbezogenen Daten zustimmen.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
rmp-rate Name: RMP Rate
Anbieter: Eigentümer der Webseite (MEDtech Ingenieur)
Zweck: Cookie wird angelegt, wenn Sie eine Bewertung eines Blogbeitrags mithilfe des Sternebewertungssystems abgeben. Ihnen wird eine anonymisierte ID zugewiesen, um zu erkennen, ob Sie einen Artikel bereits bewertet haben oder nicht. Das Cookie wird nur verwendet, um zu verhindern, dass mehrfache Bewertung abgegeben werden und erst gesetzt, wenn Sie auf einen Stern klicken.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
medtech-download-page Name: Download Page
Anbieter: Eigentümer der Webseite (MEDtech Ingenieur)
Zweck: Cookie wird angelegt, wenn Sie den Landing-Page Prozess erfolgreich durchlaufen haben. Dies geschieht nur, wenn Sie einen Content-Download von unserer Website anstreben.
Laufzeit: 1/2 Jahr
Kategorie: Unbedingt notwendige Cookies