Unsere AWB-Datenbank gibt einen Einblick, wie das System mit den Anwendungs­beobachtungen funktioniert. Doch die Rohdaten der Kassenärztlichen Bundesvereinigung haben unsere Arbeit nicht einfach gemacht. Eine Beschreibung unserer Datenrecherche.

Ein erster Blick auf die Daten der Kassenärztlichen Bundesvereinigung (KBV) gab Anlass zur Hoffnung. Zwei Excel-Dateien mit Tabellenblättern für jedes Jahr von 2009 bis 2014, unterschieden nach Zwischen- und Abschlussmeldungen. Jede Zeile ist eine Statusmeldung zu einer Anwendungsbeobachtung (AWB): genannt wird welches Pharmaunternehmen welches Präparat mit welcher Anzahl von Ärzten und Patienten und vor allem zu welchem Honorar pro Patient beobachten lässt.

Doch schon ein etwas genaueres Hinschauen ließ uns erkennen, dass hier nicht sorgsam und methodisch über die Zahlungen von Pharmaunternehmen an Ärzte Buch geführt wird, sondern dass die KBV die Daten, die die Pharmaunternehmen schicken, lediglich archiviert. Die Spalten zu Patientenzahl, Ärztezahl oder Honorar pro Patient, in denen man nur Zahlen erwarten würde, sind oft leer oder – wie man es unter Datenjournalisten nennt – dreckig. „Dirty data“ – das sind Daten, die erst aufwendig bereinigt werden müssen, damit sie auswertbar werden.

Das zeigt, dass sich bei der KBV niemand einen quantitativen Überblick über die AWBs gemacht hat – und dass das auch niemand machen will. Sonst wären die Daten mit strikteren Regeln erfasst worden, ohne leere Felder, schwierige Zuordnungen und unbrauchbare Zahlenangaben.

Die etwas schwierigere Auswertung hielt uns aber nicht auf – sie spornte uns eher an. Offenbar sind hier Informationen vergraben, die noch niemand gehoben hat.

Die Datenreinigung

Folgender Screencast zeigt wie die Rohdaten beschaffen sind und wie die Reinigung und Analyse erfolgte.

 

 

Das Video auf YouTube

Wir haben die einzelnen Tabellenblätter ausgelesen und zusammengefügt. Numerische Spalten wurden so gut es geht automatisiert bereinigt: aus der Patientenangabe „30 Kinder“ wurde die Zahl 30, aus „400-500“ wurde 500. Damit gehen kleine Nuancen verloren, doch dafür wird ein Gesamtbild möglich.

Hier ist ein Code-Ausschnitt aus dem Jupyter Notebook, in dem die Datensäuberung vorgenommen wurde:

In [40]:
# Check if cleaning kind of worked
df_all[df_all['Patienten geplant'].str.contains(' ').fillna(False)][['Patienten geplant', 'num_Patienten geplant']].sample(10)
Out[40]:
Patienten geplant num_Patienten geplant
8648 700 (500) 700
3807 25 Patienten 25
2981 36000, vorher 20000 36000
2584 23000 Patienten 23000
10036 584 (weltweit?) 584
5126 15 000 15000
991 36 000 36000
2430 1060 Patienten 1060
1888 14 000 14000
6488 ca. 300, erhöht auf 600 300

Die Einzelmeldungen gehören zu hunderten AWBs, doch die Zuordnung einer Meldung zu einer konkreten AWB ist offenbar nicht vorgesehen – eine entsprechende Kennziffer oder andere Identifizierung fehlt. Wir haben uns mit einer Kombination aus Spalten beholfen, die eine AWB in den Meldungen eindeutig identifizieren soll: Datum der Erstmeldung, Startdatum der AWB und Name des beobachteten Präparats. Diese Gruppierung ist nicht perfekt, erkennt einzelne AWBs jedoch sehr zuverlässig.

Beim Gruppieren nach AWBs fassten wir die Werte der Einzelmeldungen zusammen. Bei Zahlenwerten nahmen wir den höchsten Wert unter der Annahme, dass die Anzahl von Patienten und Ärzten über die Zeit nur steigen kann. Bei anderen Angaben nahmen wir den aktuellsten Stand. Durch die automatische Analyse kamen wir auf eine Anzahl von 1589 Anwendungsbeobachtungen mit 5.270.426 Patienten und einem durchschnittlichen Honorar pro Patient von 505,49 €.

Die Rohdaten und eine reproduzierbare Analyse finden sich in diesem Jupyter Notebook.

Diese vorgereinigten Daten haben wir nach Anwendungsbeobachtungen gruppiert unseren Recherchepartnern vom NDR, WDR und der Süddeutschen Zeitung zur Verfügung gestellt. So konnten wir auf noch mehr Fachwissen zurückgreifen und kollaborativ nach besonderen Auffälligkeiten suchen.

Von Anfang an war es das Ziel, dass auch alle Leser in diesen Daten recherchieren können, um z.B. nach den eigenen Medikamenten zu suchen. Dazu haben wir die „Euros für Ärzte“-Datenbank gebaut, die die Verbindungen zwischen Arzneimittel, Pharmaunternehmen und Anwendungsbeobachtungen als Webanwendung zugänglich macht. Der Quellcode für die „Euros für Ärzte“-Webanwendung findet sich auf GitHub.

Die Recherche „Euros für Ärzte“ ist noch lange nicht vorbei. Wir planen, die Datenbank mit neuen Daten zu aktualisieren und sie zu erweitern. Der Name der Recherche lehnt sich an das Projekt „Dollars for Docs“ von ProPublica an. Die Datenbank dort beinhaltet auch die Zahlungen an Ärzte, so dass jeder herausfinden kann, wieviel Geld der eigene Arzt von der Pharmaindustrie erhalten hat. Noch gibt es solche Daten in Deutschland nicht – aber wir setzen uns dafür ein, dass wir sie bekommen.

10 Euro für unabhängigen Journalismus