Hallo
Ich habe eine Frage und zwar habe ich einen Datensatz mit einer Variablen "FC_jahr". Ich habe den Datensatz nach "FC_jahr" geordnet und dann mit
bysort Jahr (FC_jahr): gen rang = sum(FC_jahr != FC_jahr[_n-1]) if !missing(FC_jahr)
eine "Rangliste" erstellt. Je kleiner "FC_jahr" umso niedriger der Rang.
Das gleiche habe ich mit "marktkap_jahr" gemacht, auch hier habe ich eine "Rangliste"(=size) mit
bysort Jahr (marktkap_jahr): gen size = sum(marktkap_jahr != marktkap_jahr[_n-1]) if !missing(marktkap_jahr)
erstellt.
Ich möchte nun quasi 9 Gruppen/Portfolios bilden mit: niedrigerRang&kleineGröße, niedrigerRang&mittlere Größe, niedrigerRang&großeGröße, mittlererRang&kleineGröße, mittlererRang&mittlereGröße, mittlererRang&großeGröße, hoherRang&kleineGröße, hoherRang&mittlereGröße und hoherRang&großeGröße und für diese die monatliche Rendite (P; hab ich gegeben) berechnen.
Das Ganze teilt sich 40-20-40 auf, also zu "niedrig" bzw. "klein" gehören die untersten 40%, zu "mittel" gehören die mittleren 20% und zu "hoch" bzw. "groß" gehören die obersten 40%.
Mir wäre z.B. eingefallen:
bys date 0.4*rang 0.4*size: gen nk = mean(P) <<< aber leider kann man das ja so nicht kombinieren
mit _pctile kann man ja Perzentile bilden, allerdings weiß ich nicht wie man
1. dies immer nur für ein Jahr macht
2. ich das für rang und size mach und beides gespeichert bleibt
3. ich damit dann arbeite
Des Weiteren dachte ich an:
gen nk = mean(P) if rang<=0.4*rang & if size<=0.4*size <<< dabei werden allerdings die fehlenden Werte nicht berücksichtigt (und mit !missing(rang) und !missing(size) funktioniert der Befehl leider nicht) und außerdem hat er mir da keine monatlichen Renditen ausgegeben.
Wäre für Tipps dankbar