Programmierhilfe - Lineares Regressionmodell
Verfasst: So Jul 22, 2018 8:29 pm
Hallo zusammen,
ich nutze R in Rahmen meiner Masterarbeit und habe bereits ein paar Anfängererfahrungen gesammelt.
Allerdings bin ich auf eine Hürde gestoßen, die ich so - ohne Hilfe - leider nicht überwinden kann.
Ich muss etwas weiter ausholen um das - hoffentlich - verständlich zu erklären.
Ich befasse mich in meiner MA mit dem Insidertrading von DAX Vorständen und habe hierzu die entsprechenden Kauf- und Verkaufstrades gesammelt. Die Trades sind eine klassische Zeitreihe, so wie alle anderen Daten auf denen mein Modell basiert. Ich habe für die Kursdaten der jeweiligen Aktie (30 Stück analog zur Anzahl der DAX Unternehmen) sowie für ein Marktportfolio logarithmierte Tagesrenditen berechnet.
In Zuge meiner Analyse muss aus diesen Daten ein Modell entwickeln, welches "normale" Tagesrenditen (expected returns) vorhersagt. Hierzu habe ich ein passendes Modell in der Literatur identifiziert, welches im Grunde auf einer simplen lineare Regression von Tagesrenditen des Marktportfolios als unabhängige und die Tagesrenditen der jeweiligen Aktie als abhängige Variable basiert.
Nun ist es aber so, dass das ganze als Event-Study angelegt ist um den Effekt des Insidertradings zu "extrahieren", daher wird das Modell nicht einfach mit allen Daten aus der Beobachtungsperiode kreuzvalidiert, sondern basiert auf einer Schätzperiode, welche für 200 Tage vor dem Trade des jeweiligen Insiders das Modell berechnet. Dieses Modell wird dann benutzt um nach dem Trade des Insiders (welcher quasi Tag 0 ist) erwartete Tagesrenditen zu bestimmen. Jetzt ist es so, dass ich für jeden Trade das Modell neu aufsetzen müsste, was bei 30 Unternehmen (also 30 mal eine andere abhängige Variable) und ca. 50-150 Trades pro Unternehmen händisch einen unglaublichen Aufwand (von ca. 3.000 linearen Regressionen) produzieren würde.
Ich habe darüber nachgedacht, ob das Ganze mit einer If else () und lm() gelöst werden kann, aber ich stoße irgendwie an die Grenze meiner Programmierfähigkeiten. Und leider finde ich keine Lösung in Foren dazu, weil das Problem relativ spezifisch ist.
Über Hilfe wäre ich echt super, super dankbar.
Ich bedanke mich aber schon mal im Voraus für das Lesen dieses Romans.
Viele Grüße,
Damian
ich nutze R in Rahmen meiner Masterarbeit und habe bereits ein paar Anfängererfahrungen gesammelt.
Allerdings bin ich auf eine Hürde gestoßen, die ich so - ohne Hilfe - leider nicht überwinden kann.
Ich muss etwas weiter ausholen um das - hoffentlich - verständlich zu erklären.
Ich befasse mich in meiner MA mit dem Insidertrading von DAX Vorständen und habe hierzu die entsprechenden Kauf- und Verkaufstrades gesammelt. Die Trades sind eine klassische Zeitreihe, so wie alle anderen Daten auf denen mein Modell basiert. Ich habe für die Kursdaten der jeweiligen Aktie (30 Stück analog zur Anzahl der DAX Unternehmen) sowie für ein Marktportfolio logarithmierte Tagesrenditen berechnet.
In Zuge meiner Analyse muss aus diesen Daten ein Modell entwickeln, welches "normale" Tagesrenditen (expected returns) vorhersagt. Hierzu habe ich ein passendes Modell in der Literatur identifiziert, welches im Grunde auf einer simplen lineare Regression von Tagesrenditen des Marktportfolios als unabhängige und die Tagesrenditen der jeweiligen Aktie als abhängige Variable basiert.
Nun ist es aber so, dass das ganze als Event-Study angelegt ist um den Effekt des Insidertradings zu "extrahieren", daher wird das Modell nicht einfach mit allen Daten aus der Beobachtungsperiode kreuzvalidiert, sondern basiert auf einer Schätzperiode, welche für 200 Tage vor dem Trade des jeweiligen Insiders das Modell berechnet. Dieses Modell wird dann benutzt um nach dem Trade des Insiders (welcher quasi Tag 0 ist) erwartete Tagesrenditen zu bestimmen. Jetzt ist es so, dass ich für jeden Trade das Modell neu aufsetzen müsste, was bei 30 Unternehmen (also 30 mal eine andere abhängige Variable) und ca. 50-150 Trades pro Unternehmen händisch einen unglaublichen Aufwand (von ca. 3.000 linearen Regressionen) produzieren würde.
Ich habe darüber nachgedacht, ob das Ganze mit einer If else () und lm() gelöst werden kann, aber ich stoße irgendwie an die Grenze meiner Programmierfähigkeiten. Und leider finde ich keine Lösung in Foren dazu, weil das Problem relativ spezifisch ist.
Über Hilfe wäre ich echt super, super dankbar.
Ich bedanke mich aber schon mal im Voraus für das Lesen dieses Romans.
Viele Grüße,
Damian