Dienstag, 5. Mai 2015

Bondora - auf dem Weg zum eigenen Score Teil 2

Im ersten Eintrag ging es darum, mein generelles Vorgehen vorzustellen. Heute geht es etwas mehr in die Details.

Die Daten eindampfen

Die aktuelle Bondora-Gesamtliste mit über 35.000 Zeilen (=Krediten) und über 100 Spalten (= Merkmalen), einer Datei von knapp 30MB, muss deutlich abgespeckt werden um vernüftig damit arbeiten zu können.
  • Ich habe mich auf estnische Kredite von 2012-2014 (Finanzierungsdatum) beschränkt
  • Natürlich sind nur Kredite relevant, die auch finanziert wurden
  • Ich habe nur Credithistorie ab 600 einbezogen
So blieben gut 7000 Einträge übrig. Natürlich mussten auch die Merkmale reduziert werden. Natürlich spielen z.B. weder der Name des Kreditnehmers noch irgendwelche IDs eine Rolle, auch alle Daten. die erst zur Laufzeit des Kredits anfallen (z.B. InDebt14Day) bringen für eine Score, der a priori ermittelt werden soll natürlich nichts. So habe ich mit etwa 25 Merkmale herausgesucht vom Alter des KN bis zur Zahl der Kinder. Alle diese Kriterien sind direkt auf der Kreditangebotseite einsehbar.

Ein Modell entwickeln

Noch befinde ich mich in einer frühen Phase und mein Vorgehen ist deshalb nicht sehr raffiniert. Im Prinzip habe ich jedem Kredit einen a posteriori-Score zugewiesen, der sich im Wesentlichen auf angenommenen ROI und bei gescheiterten Krediten zusätzlich auf die recovery-Rate stützt.

Dann teile ich jedes Merkmal in seine verschiedenen Ausprägungen ein und berechne für jede der Ausprägungen diesen Score. Das kann dann so aussehen:

männlich 18,7
weiblich   16,3

oder Alter
< 25: 14,  25..29: 17,3, ..., >58: 19,9

So entsteht für jede Merkmalsausprägung und jeden Kredit ein Teilscorewert. Im Moment zähle ich diese einfach zusammen und teile durch ihre Anzahl. Besser wird es natürlich mit Gewichtfaktoren, aber so weit bin ich noch nicht.

Das Modell prüfen und verfeinern

Ich habe mit etwa der Hälfte der Merkmale erste Versuche angestellt. Heraus kamen Scorewerte etwa von 13,3 bis 19. Die habe - recht willkürlich - in Klassen A bis F eingeteilt und mal geschaut was da herauskommt.

Das erste Ergebnis war ebenso enttäuschend wie erstaunlich. Mein so aufwändig ermittelter Wert bewegt sich sehr dicht bei den Scoreklassen von Bondora. Nur in wenigen Fällen gibt es größere Abweichungen. So wir z.B. pTomberg (bondora HR) bei mir zu B klassifiziert. Insgesamt aber kein schlechtes Ergebnis.

Natürlich muss noch eine genauere Prüfung vorgenommen werden - anhand der ja bereit vorliegenden Daten. So könnte man sich fragen, wie muss der Wert aussehen, um z.B. eine deutlich höhere Rendite erwarten zu können oder einen deutlich geringeren Ausfall.

Dazu muss von den vorliegenden geschichtlichen Kreditdaten der a priori-Score berechnet werden. Das gestaltet sich recht aufwändig - zumal ich das alles gerne so umsetzen möchte, dass spätere neue Daten oder ein verändertes Modell nicht wieder die gleiche Arbeit verursacht.

Man lernt immer einiges, z.B. über Excel. Ich habe davon Abstand genommen, den Scorewert direkte per SQL-Funktion in access zu ermitteln, sondern nehme die u.a. reduzierte Tabelle als Excel-Worksheet. Die jeweiligen Scorewerte ermittle ich über Tabellen auf einem Extra Datenblatt und die Vergleich- und Indexfunktion (siehe z.B. unter http://www.online-excel.de/excel/singsel.php?f=39)

Ergebnisse werde ich euch im 3. Teil vorstellen. Zwar habe ich alle technischen Probleme soweit mittlerweile gelöst (neue tauchen bestimmt wieder auf), aber es ist auch eine ganze Menge Fleißarbeit zu leisten. Ein wichtiger Punkt ist es auch, immer mal wieder Backups anzulegen ;)



Keine Kommentare:

Kommentar veröffentlichen