I like to run this cross-sectional regression for my panel data and obtain only the coefficient of gamma as a variable.
retex(i, d+1, t) = alpha + beta* ret(i, d, t) + gamma * sign(retex(i, d, t))*vol(i, d, t)
where
retex(id, d+1, t): excess return for stock i on day d+1 in month t
ret(i, d, t): return for stock i on day d in month t
sign(retex(i, d, t)): the sign(positive or negative sign) for excess return of stock i on day d in month t
vol(i, d, t): trading volume for stock i on day d in month t
And in a given month, the number of days is not below 15 days.
Code:
gen month=month(date) egen group=group(cusip year) gen sign_positive=1 if retex>0 gen sign_negative=1 if retex<0 sort id date bys id: gen retex_lead = retex[_n+1] capture program drop one_regression program define one_regression regress retex_lead ret vol*sign_positive vol*sign_negative if e(N) > 15 { gen nobs = e(N) forvalues i = 1/3 { gen b_x`i' = _b[x`i'] gen se_x`i' = _se[x`i'] } } exit end runby one_regression, by(group month) status
I really appreciate your help.
Kind regards,
Ken
0 Response to Obtain coefficients for cross-sectional regression by id monthly
Post a Comment