parmest neue variable im datenset erstellen

Statistische Auswertung von Longitudinal- und Panel-Daten mit Stata.

parmest neue variable im datenset erstellen

Beitragvon filaglad » Fr 20. Jul 2012, 16:07

Hallo,
ich habe ein unbalanced panel datenset mit panelvar=ID und timevar=month, und 100 monthly data. Nun möchte ich für jede panelvar eine separate time series regression laufen lassen "foreach ID: reg y x1 x2 x3, vce(robust)" und möchte die ermittelten koeffizienten in neuen variablen speichern, z.B. x1 in Est_x1, x2 in Est_x2 .... Zudem sollen die regressionen auf einem "rolling timeframe" ermittelt werden, d.h. auf basis der letzten 24 monate. also koeffizient für periode t wird ermittelt auf basis der daten von t-1 bis t-25.

Mein ansatz sieht wie folgt aus:

Code: Alles auswählen
gen beta_x1=0
gen beta_x2=0
gen beta_x3=0
gen intercept=0

*define time frame
forvalues i=500/596{   

*define separate regressions for each firm in my panel
quietly levelsof ID ,l(lvls)
foreach l of loc lvls {
    quietly reg y x1 x2 x3, vce(robust) if (ID == "`l'" & month>`i'-24 & month<`i'+1), vce(robust)  **** -& month>`i'-24 & month<`i'+1- is intended to capture the rolling window of 24 months

*store coefficients
    replace beta_x1= "coefficient_x1" if (ID == "`l'" & month==`i'+1)
    replace beta_x2="coefficient_x2" if (ID == "`l'" & month==`i'+1)
    replace beta_x2="coefficient_x3" if (ID == "`l'" & month==`i'+1)
    replace intercept="constant" if (ID == "`l'" & month==`i'+1)

}


Laut statlist soll ich nun eine funktion -parmest- nutzen, verstehe aber nicht nicht genau wie ich das machen soll. ich habe mir den help file durchgelesen und komme einfach nicht weiter. ich mlchte parmest also so einsetzen, dass es mir vier neue variablen in meinem longitudinal panel datenset kreiert und für die jeweilige ID immer die werte Hineinschreibt (ß=koeffizient):

Code: Alles auswählen
ID   Zeit  Est_x1   Est_x2 ...
001  1990  ßx1(t)   ßx2(t)
001  1991 
001  1992 
002  1990
002  1991
002  1992
003  1990
003  1991
003  1992
In der nächsten regression für x1 zeitperiode t+1 dann
Code: Alles auswählen
ID   Zeit  Est_x1     Est_x2 ...
001  1990  ßx1(t)      ßx2(t)
001  1991  ßx1(t+1)   ßx2(t+1)
001  1992 
002  1990
002  1991
002  1992
003  1990
003  1991
003  1992
und für die nächste ID dann dasselbe
Code: Alles auswählen
ID   Zeit  Est_x1     Est_x2 ...
001  1990  ßx1(t)     ßx2(t)
001  1991  ßx1(t+1)   ßx2(t+1)
001  1992 
002  1990  ßx1(t)    ßx2(t)
002  1991
002  1992
003  1990
003  1991
003  1992


Kann mir jemand vllt einen vorschlag machen wie ich parmest einsetzen kann? Muss ich da irgendwie noch ein "replace" einfügen (oder liege ich hier gerade total falsch, verstehe parmest leider nicht os ganz)? oder evtl auch, wenn mein ansatz nicht so verkehrt ist, wie ich den umsetzen könnte?
Ich wäre super dankbar wenn mir da jemand weiterhelfen könnte! Vielen Dank im Voraus!
filaglad
 
Beiträge: 42
Registriert: So 17. Jun 2012, 13:18
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: parmest neue variable im datenset erstellen

Beitragvon filaglad » Mo 23. Jul 2012, 23:36

so ich habe mein prob nun folgender maßen gelößt:
a) es ist möglich" coefficient estimates" als neue variable abzuspeichern, der code sieh dafür folgender maßen aus:

i) Erstelle eine Matrix:
Code: Alles auswählen
matrix E = (0,0)  |jede null steht für eine neue Spalte

ii) laufe die regression:
Code: Alles auswählen
reg y x1

iii) speicher den koeffizienten sowie den dazugehörigen standard error in der matrix ab:
Code: Alles auswählen
matrix E = E\(_b[x1], _se[x1])

iv) erstelle aus der matrix eine/mehrere variablen:
Code: Alles auswählen
svmat E



.... und fertig. svmat gibt euch für jede spalte der matrix eine variable aus.
filaglad
 
Beiträge: 42
Registriert: So 17. Jun 2012, 13:18
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Longitudianal und Panel-Analyse

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

cron