Hallo zusammen,
leider bin ich bislang immer noch unsicher im Umgang mit Stata. Ich stehe vor folgendem Problem in der Analyse meiner Paneldaten und habe leider noch immer keine Lösung.
Ich möchte die Performance jedes Unternehmens (id ) basierend auf den Aktienkursen des vergangenen Monats (J1), vergangenen 3 Monaten (J3), J6 und J12 berechnen. Der Lehrstuhl hat mir unter anderem Aktienkurse auf Tagesbasis zur Verfügung gestellt (p).
Nun habe ich das Paket egenmore installiert und nutze folgende Befehle:
egen bomd=bomd(date), work f(%td)
egen eomd=eomd(date), work f(%td)
generate peomd if eomd==date
generate pbomd=price if bomd==date
replace pbomd=pbomd[_n-1] if missing(pbomd)
generate J1=((peomd[_n]-pbomd[_n])/pbomd[_n])
Somit erstellt bomd(date) mir das Datum zu Beginn eines Monats, eomd(date) gibt das genaue Datum des letzten Handelstages zum Ende eines Monats aus. Damit habe ich die Performance auf Monatsbasis (J1) berechnen können.
Nun stellt sich die Frage wie ich die Performance basierend auf den letzten 3,6,9,12 Monaten berechnen kann. Das genaue Datum des jeweiligen Handelstages (Beginn und Ende des gewünschten Monats) kann ich beispielsweise erstellen mit:
egen bomdL3=bomd(date), lag(3) work f(%td)
egen eomdL3=eomd(date), lag(3) work f(%td)
So habe ich nun das genaue Datum der Beobachtung p vor drei Monaten. Die Preise kann ich aber leider zu den jeweiligen Tagen nicht kopieren mit dem Befehl:
generate pbomdL3=price if bomd==date
Mir ist klar, dass die if Bedingung so nicht funktioniert. Aber wie genau kann ich Stata mitteilen, nehme das Datum aus bomdL3, suche im Panel nach p zu genau diesem Datum und setze es dann in der entsprechenden Zelle in pbomdL3 ein.
Ich hoffe, dass ich das Problem deutlich beschreiben konnte. Vielleicht hat jemand einen Lösungsvorschlag für dieses Problem!
Vielen herzlichen Dank allen schon einmal vorab!