WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Unvollständige return Daten mit vollständiger Datumsreihe

 

arbqr
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.05.20
Wohnort: München
Version: ---
     Beitrag Verfasst am: 17.05.2020, 01:33     Titel: Unvollständige return Daten mit vollständiger Datumsreihe
  Antworten mit Zitat      
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 Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.05.2020, 09:14     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
arbqr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.05.20
Wohnort: München
Version: ---
     Beitrag Verfasst am: 17.05.2020, 11:54     Titel:
  Antworten mit Zitat      
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ß

Ausschnit CRSP Excel.xls
 Beschreibung:

Download
 Dateiname:  Ausschnit CRSP Excel.xls
 Dateigröße:  152 KB
 Heruntergeladen:  305 mal
Bildschirmfoto 2020-05-17 um 11.48.26.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2020-05-17 um 11.48.26.png
 Dateigröße:  189.4 KB
 Heruntergeladen:  270 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.05.2020, 12:07     Titel:
  Antworten mit Zitat      
Hallo,

dann würde ich ret_r und vwretd_r vorbelegen, etwa so:
Code:
ret_r = NaN(252,5829);
% oder besser, falls so möglich:
ret_r = NaN(max(cc), length(cc));


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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
arbqr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.05.20
Wohnort: München
Version: ---
     Beitrag Verfasst am: 17.05.2020, 13:28     Titel:
  Antworten mit Zitat      
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 Sad
Hast du noch einen Tipp?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.05.2020, 19:43     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
arbqr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.05.20
Wohnort: München
Version: ---
     Beitrag Verfasst am: 17.05.2020, 21:24     Titel:
  Antworten mit Zitat      
Kannst du mir bitte sagen wie genau der Befehl dafür heißen würde?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.05.2020, 22:00     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.