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
- 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
- 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!