|
|
Unvollständige return Daten mit vollständiger Datumsreihe |
|
arbqr |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 17.05.20
|
|
|
|
Wohnort: München
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.05.2020, 00:33
Titel: Unvollständige return Daten mit vollständiger Datumsreihe
|
|
Servus zusammen,
für ein Uniprojekt muss ich Betas kalkulieren. Dafür wollte ich eine Matrix mit 252 Monaten als Zeilen und ca. 6000 spalten (für jede Aktie eine spalte) bauen. Leider habe ich nicht für jede Aktie die returns für alle 252 Monate.
Weis jemand wie ich die returns die ich habe, für die jeweiligen Monate in die matrix einlesen kann und für die fehlenden eine NaN einfügen kann?
Habe schon versucht was zu finden. In der financial Toolbox gibt es den Befehl merge aber ich weis nicht wie ich den hier anwenden kann...
Wäre über jede Hilfe sehr dankbar!
Vielen Dank
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.05.2020, 08:14
Titel:
|
|
Hallo,
an sich macht MATLAB das automatisch.
In welchem Format liegen die Daten denn vor und wie importierst du die Daten?
Bitte am besten den verwendeten Code anfügen.
Bei Fragen zum Einlesen von Dateien ist ein Dateiausschnitt immer hilfreich.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
arbqr |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 17.05.20
|
|
|
|
Wohnort: München
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.05.2020, 10:54
Titel:
|
|
|
|
|
Hallo Harald,
Danke für deine schnelle Antwort!
Zum einlesen habe ich diesen code geschrieben:
ret=xlsread('CRSPdata_monthlyNYSE_and_CRSP-value-weighted-index.xlsx','E2:E647038');
ret=log(ret+1); %die returns müssen logarithmiert werden
vwretd=xlsread('CRSPdata_monthlyNYSE_and_CRSP-value-weighted-index.xlsx','G2:G647038');
vwretd=log(vwretd+1);
pmrno=xlsread('CRSPdata_monthlyNYSE_and_CRSP-value-weighted-index.xlsx','A2:A647038');
Dann wollte ich mit diesem code in meine 252x5829 matrix die returns einlesen:
j=1;
for i=1:length(cc)
if i==1
ret_r(1:cc(i),i)=ret(j:cc(i));
vwretd_r(1:cc(i),i)=vwretd(j:cc(i));
j=cc(i)+1;
else
ret_r(1:cc(i),i)=ret(j:j+cc(i)-1);
vwretd_r(1:cc(i),i)=vwretd(j:j+cc(i)-1);
j=cc(i)+1;
end
end
cc ist dabei eine matrix in der zu jeder permno die anzahl an monaten stehen (da ja nicht jede permno die gleiche anzahl an returns hat, habe ich die anzahl der vorhandenenen Monate in einem früheren schritt jeweils gezählt). Leider werden die fehlenden Monate einfach am ende als '0' angefügt und nicht als NaN dort wo die Monate fehlen.
Ich habe diesem Post noch ein Teil der Excel und ein screenshot, wie meine matrix am ende ausschauen soll angefügt.
Vielen Dank und besten Gruß
Beschreibung: |
|
Download |
Dateiname: |
Ausschnit CRSP Excel.xls |
Dateigröße: |
152 KB |
Heruntergeladen: |
342 mal |
Beschreibung: |
|
Download |
Dateiname: |
Bildschirmfoto 2020-05-17 um 11.48.26.png |
Dateigröße: |
189.4 KB |
Heruntergeladen: |
322 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.05.2020, 11:07
Titel:
|
|
Hallo,
dann würde ich ret_r und vwretd_r vorbelegen, etwa so:
Wenn ich das richtig verstehe, geht es letztlich darum, die Daten nach permno aufzuspalten. Dann kann es viel einfacher sein, die Daten als Table einzulesen (readtable) und mit unstack in das gewünschte Format zu bringen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
arbqr |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 17.05.20
|
|
|
|
Wohnort: München
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.05.2020, 12:28
Titel:
|
|
Das Problem ist, dass bei manchen permno Monate komplett fehlen. Also nicht nur die returns zu den monaten, sondern der Monat an sich ist nicht aufgeführt (zB. für die permno 10051 fehlen die returns zu den Monaten Feb 16 bis Jan 18 aber die Monate Feb 18 bis Sep 18 sind gar nicht aufgeführt). Meine Betreuerin meinte "du kanst die jeweiligen Daten für 1 Unternehmen immer an eine vollständige Datumsreihe mergen. Dadurch entstehen automatisch Lücken bzw. NaNs wenn es keine Daten zu einem Monat gibt". Nur weis ich leider nicht wie das geht
Hast du noch einen Tipp?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.05.2020, 18:43
Titel:
|
|
Hallo,
Zitat: |
Das Problem ist, dass bei manchen permno Monate komplett fehlen. |
Ja, aber was ist daran nun das Problem?
Mir ist auch nicht klar, wo das Problem beim Ansatz mit NaN ist.
Neben der Empfehlung readtable und unstack würde ich noch Timetables vorschlagen. Dann kann die Zeitreihe z.B. (selbst wenn alle Daten fehlen) als monatliche Zeitreihe dargestellt werden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
arbqr |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 17.05.20
|
|
|
|
Wohnort: München
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.05.2020, 20:24
Titel:
|
|
Kannst du mir bitte sagen wie genau der Befehl dafür heißen würde?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.05.2020, 21:00
Titel:
|
|
Hallo,
es ist nicht ein Befehl, sondern 3-4.
readtable, unstack, table2timetable und falls nötig retime in dieser Reihenfolge verwenden. Im Zweifelsfall bitte erst die Doku zu den Befehlen durchgehen.
Bitte auch auf die Rückfragen eingehen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|