Hi everybody,
I am trying to replicate a paper of Fahlenbrach, Prilmeier and Stulz (2017) "Why Does Fast Loan Growth Predict Poor Performance for Banks?". They make quartiles at time T based on the loan growth of the preceding 1 or 3 years. Then they make dummy variables for each quartile and regress the top 3 quartile dummies on the subsequent 1 and 3 year stock returns to see if the top quartile has worse performance than the lowers quartile, which is the constant (e.g. loan growth from 1990 till 1993 and annualized stock return from 1993 to 1996). For the 3 year subsequent returns they use non-overlapping observations to overcome serial correlation. The panel data runs from 1972 to 2013, with in total 652 unique banks, with an average of 12 year observations per bank.
In every model they have a year dummy and in their second model they include a company dummy. In the note under the table they state that "standard errors allow for clustering at company and time levels". I have been reading about this all day and was hoping somebody could confirm if I understand everything allright.
I wanted to test for heteroskedasticity first, but as I understood from this post https://www.statalist.org/forums/for...roskedasticity I can use xttest2 or xttest3, but only on fixed effect models. So I first have to determine if I should use a fixed or random effects model before I can test for heteroskedasticity. Below is my data and my results.
For the regression with only time fixed effects I got the following:
This would suggest I need to use a random effects model. If I use both time and company fixed effect I get this:
This suggest the fixed effects model is correct. Does it make sense to use different specifications (re, fe) for including or excluding company dummies? What I did for now was assume that the fixed effects model is correct as the authors also state they use a fixed effects. When I use the fixed model xttest3 does indeed show that I have heteroskedasticity (p<0.000). So I need to cluster the standard errors. As mentioned, the authors state that allow for clustering at both year and company level. I think this is because the errors can also be correlated via the years (if the stock market does well, everybody has a high return and vice versa).
Only allows for one variable, so I found the reghdfe package here https://www.statalist.org/forums/for...try-year-level.
I now used the following code for the regression with time fixed effects:
And for the time and company fixed effects:
Does this all seam correct? I feel the last model makes sense, but I am not sure if it makes sense to cluster at the firm AND company level if I only include time fixed effects (or are clustering and dummies not related to each other?).
Sorry for the long elaborate post and already a massive thanks in advance.
Best,
Niels
PS I know of the xtscc command, but want to use this in a robustness check without removing the overlapping years.
I am trying to replicate a paper of Fahlenbrach, Prilmeier and Stulz (2017) "Why Does Fast Loan Growth Predict Poor Performance for Banks?". They make quartiles at time T based on the loan growth of the preceding 1 or 3 years. Then they make dummy variables for each quartile and regress the top 3 quartile dummies on the subsequent 1 and 3 year stock returns to see if the top quartile has worse performance than the lowers quartile, which is the constant (e.g. loan growth from 1990 till 1993 and annualized stock return from 1993 to 1996). For the 3 year subsequent returns they use non-overlapping observations to overcome serial correlation. The panel data runs from 1972 to 2013, with in total 652 unique banks, with an average of 12 year observations per bank.
In every model they have a year dummy and in their second model they include a company dummy. In the note under the table they state that "standard errors allow for clustering at company and time levels". I have been reading about this all day and was hoping somebody could confirm if I understand everything allright.
I wanted to test for heteroskedasticity first, but as I understood from this post https://www.statalist.org/forums/for...roskedasticity I can use xttest2 or xttest3, but only on fixed effect models. So I first have to determine if I should use a fixed or random effects model before I can test for heteroskedasticity. Below is my data and my results.
Code:
* Example generated by -dataex-. To install: ssc install dataex clear input float(indexret3 threeyearlgq4 threeyearlgq3 threeyearlgq2) double fyear float company .3404994 0 0 0 1974 1 .19708817 1 0 0 1977 1 .17110507 0 0 1 1980 1 -.06095207 0 1 0 1983 1 .021745825 0 0 0 1986 1 . 0 0 0 1989 1 .4321557 0 0 0 1974 2 .065229334 1 0 0 1977 2 .2239976 0 0 1 1980 2 .3328845 0 0 0 1983 2 .005473102 0 0 1 1986 2 .05769363 1 0 0 1989 2 .16216846 0 1 0 1992 2 . 0 0 0 1995 2 .11798104 0 1 0 1998 3 .2720263 0 1 0 2001 3 .08679606 1 0 0 2004 3 .2643141 0 0 0 1993 4 . 0 1 0 1996 4 . 1 0 0 2001 5 . 1 0 0 1998 6 .2230659 0 0 0 1974 7 .4345446 1 0 0 1977 7 .193911 1 0 0 1980 7 -.1548478 1 0 0 1983 7 . 0 0 0 1986 7 .08228646 0 0 0 2014 8 .4025525 0 0 0 1997 9 -.03194543 1 0 0 2000 9 . 0 1 0 2003 9 .14671922 0 0 0 1993 10 .12989475 0 1 0 1996 10 -.002854259 0 1 0 1999 10 .14663917 0 0 0 2002 10 -.4913674 0 0 0 2005 10 . 0 0 0 2008 10 . 0 0 0 1995 11 .3712766 0 0 0 1999 12 -.20266485 0 0 0 1972 13 .1343242 0 1 0 1975 13 .02003881 0 0 0 1978 13 .3888152 0 0 1 1981 13 . 0 0 1 1984 13 .1954603 0 0 0 1982 14 .09002928 0 0 0 1985 14 .22624044 0 0 0 1988 14 .14883068 0 0 0 1991 14 .3614595 0 0 0 1994 14 .36880365 0 0 0 1997 14 -.1213385 0 0 0 2000 14 . 0 0 0 1972 15 . 0 0 0 1992 16 .04753177 0 0 1 1976 17 .28491578 1 0 0 1979 17 .26649877 0 1 0 1982 17 . 0 0 0 1985 17 . 1 0 0 2007 18 .25585628 0 0 0 1993 19 -.023958394 0 0 0 1996 19 -.18089524 0 0 0 1999 19 -.1344397 0 0 1 2005 20 -.03147801 0 1 0 2008 20 .359098 0 1 0 2011 20 .24408174 0 1 0 2014 20 -.02918689 0 0 0 1972 21 .1701677 0 0 1 1975 21 .06243742 0 0 1 1978 21 .3280516 0 0 0 1981 21 .09405138 0 0 0 1984 21 -.163251 0 1 0 1987 21 . 0 0 1 1990 21 . 0 0 0 1994 22 -.12680672 0 0 0 1972 23 .218132 1 0 0 1975 23 -.024673186 0 1 0 1978 23 .3218598 0 0 0 1981 23 .17336853 0 1 0 1984 23 .0006910315 0 1 0 1987 23 .3964587 0 0 1 1990 23 .20831273 0 1 0 1993 23 .13399678 0 0 1 1996 23 .04730606 1 0 0 1999 23 .15470895 0 0 0 2002 23 . 0 0 1 2005 23 . 0 0 0 1993 24 . 0 0 0 2014 25 . 0 0 1 1998 26 .018465849 1 0 0 1997 27 . 0 0 1 2000 27 -.11697692 0 0 0 1972 28 .1575918 0 0 0 1975 28 .20664077 1 0 0 1978 28 .2011705 0 1 0 1981 28 . 0 1 0 1984 28 .05330086 0 1 0 2010 29 .2202944 0 0 1 2013 29 . 0 0 1 2016 29 .2173705 0 0 0 1988 30 .1898002 1 0 0 1991 30 .3638621 1 0 0 1994 30 end
Code:
. xtset company fyear panel variable: company (unbalanced) time variable: fyear, 1972 to 2016, but with gaps delta: 1 unit . xtreg indexret3 threeyearlgq4 threeyearlgq3 threeyearlgq2, i(fyear) fe warning: existing panel variable is not fyear Fixed-effects (within) regression Number of obs = 2,404 Group variable: fyear Number of groups = 43 R-sq: Obs per group: within = 0.0215 min = 5 between = 0.0000 avg = 55.9 overall = 0.0033 max = 128 F(3,2358) = 17.24 corr(u_i, Xb) = -0.0775 Prob > F = 0.0000 ------------------------------------------------------------------------------- indexret3 | Coef. Std. Err. t P>|t| [95% Conf. Interval] --------------+---------------------------------------------------------------- threeyearlgq4 | -.064627 .0092687 -6.97 0.000 -.0828027 -.0464513 threeyearlgq3 | -.0358467 .0089855 -3.99 0.000 -.053467 -.0182263 threeyearlgq2 | -.0192869 .0092586 -2.08 0.037 -.0374428 -.0011311 _cons | .1395152 .005616 24.84 0.000 .1285024 .1505281 --------------+---------------------------------------------------------------- sigma_u | .14715916 sigma_e | .15527715 rho | .47317735 (fraction of variance due to u_i) ------------------------------------------------------------------------------- F test that all u_i=0: F(42, 2358) = 55.22 Prob > F = 0.0000 . estimates store FE . xtreg indexret3 threeyearlgq4 threeyearlgq3 threeyearlgq2, i(fyear) re Random-effects GLS regression Number of obs = 2,404 Group variable: fyear Number of groups = 43 R-sq: Obs per group: within = 0.0215 min = 5 between = 0.0000 avg = 55.9 overall = 0.0032 max = 128 Wald chi2(3) = 51.57 corr(u_i, X) = 0 (assumed) Prob > chi2 = 0.0000 ------------------------------------------------------------------------------- indexret3 | Coef. Std. Err. z P>|z| [95% Conf. Interval] --------------+---------------------------------------------------------------- threeyearlgq4 | -.0644424 .0092492 -6.97 0.000 -.0825704 -.0463144 threeyearlgq3 | -.035827 .0089738 -3.99 0.000 -.0534153 -.0182386 threeyearlgq2 | -.0194556 .0092434 -2.10 0.035 -.0375723 -.0013388 _cons | .1532846 .0232615 6.59 0.000 .1076929 .1988764 --------------+---------------------------------------------------------------- sigma_u | .14683917 sigma_e | .15527715 rho | .4720922 (fraction of variance due to u_i) ------------------------------------------------------------------------------- . estimates store RE . hausman FE RE ---- Coefficients ---- | (b) (B) (b-B) sqrt(diag(V_b-V_B)) | FE RE Difference S.E. -------------+---------------------------------------------------------------- threeyearl~4 | -.064627 -.0644424 -.0001846 .0006021 threeyearl~3 | -.0358467 -.035827 -.0000197 .0004587 threeyearl~2 | -.0192869 -.0194556 .0001686 .0005298 ------------------------------------------------------------------------------ b = consistent under Ho and Ha; obtained from xtreg B = inconsistent under Ha, efficient under Ho; obtained from xtreg Test: Ho: difference in coefficients not systematic chi2(3) = (b-B)'[(V_b-V_B)^(-1)](b-B) = 0.95 Prob>chi2 = 0.8130
Code:
. xtset company fyear panel variable: company (unbalanced) time variable: fyear, 1972 to 2016, but with gaps delta: 1 unit . qui xtreg indexret3 threeyearlgq4 threeyearlgq3 threeyearlgq2 i.fyear, i(company) > fe . estimates store FE . qui xtreg indexret3 threeyearlgq4 threeyearlgq3 threeyearlgq2 i.fyear, i(company) > re . estimates store RE . hausman FE RE ---- Coefficients ---- | (b) (B) (b-B) sqrt(diag(V_b-V_B)) | FE RE Difference S.E. -------------+---------------------------------------------------------------- threeyearl~4 | -.0960278 -.0713877 -.02464 .0054729 threeyearl~3 | -.0621587 -.0422817 -.019877 .0043954 threeyearl~2 | -.0381616 -.024185 -.0139766 .004271 fyear | 1973 | -.0087377 .1890395 -.1977772 .073623 1974 | .1331738 .4299919 -.2968182 .038589 1975 | .3555417 .3464118 .0091299 .0029034 1976 | .1087034 .3071708 -.1984674 .0640228 1977 | .1105327 .3871217 -.276589 .0375589 1978 | .3593925 .353362 .0060305 .0034913 1979 | .1713499 .3791545 -.2078046 .0635144 1980 | .1297886 .4463304 -.3165419 .0372254 1981 | .4478633 .4369824 .0108809 .0047124 1982 | .2369618 .4975542 -.2605924 .03748 1983 | .0977037 .4001034 -.3023997 .0354404 1984 | .2916145 .280282 .0113325 .0060974 1985 | -.0373037 .2098304 -.2471341 .0353315 1986 | -.0470924 .2459517 -.2930441 .0342126 1987 | .1708168 .1681367 .0026801 .0066814 1988 | .0011142 .2314513 -.2303371 .0330875 1989 | .0831545 .386713 -.3035585 .0340699 1990 | .5597893 .564576 -.0047867 .0083401 1991 | .0853167 .3407615 -.2554448 .0311305 1992 | .1123498 .4232191 -.3108694 .031052 1993 | .4048187 .4079954 -.0031767 .0118118 1994 | .3129364 .5885748 -.2756384 .0290419 1995 | .1527503 .4590592 -.3063089 .0284984 1996 | .2945556 .2923506 .002205 .0130857 1997 | -.0688455 .2156561 -.2845017 .0268231 1998 | -.0510029 .268839 -.3198419 .0263754 1999 | .2958934 .3154769 -.0195835 .0135006 2000 | .1262671 .4283473 -.3020802 .025674 2001 | .0674034 .3986064 -.331203 .022844 2002 | .3120492 .3385591 -.0265099 .0141341 2003 | -.037596 .2524731 -.2900691 .021981 2004 | -.1950008 .1465625 -.3415633 .0194432 2005 | -.0059129 .0084231 -.014336 .0144474 2006 | -.4203471 -.1263524 -.2939947 .0204661 2007 | -.2529447 .0825848 -.3355294 .0184146 2008 | .0657512 .0962223 -.0304711 .0151489 2009 | -.0474712 .2929964 -.3404676 .0173613 2010 | -.0075072 .3500013 -.3575085 .01491 2011 | .3860109 .4232968 -.037286 .0148488 2014 | .2824824 .3376351 -.0551527 .0165962 ------------------------------------------------------------------------------ b = consistent under Ho and Ha; obtained from xtreg B = inconsistent under Ha, efficient under Ho; obtained from xtreg Test: Ho: difference in coefficients not systematic chi2(43) = (b-B)'[(V_b-V_B)^(-1)](b-B) = 171.62 Prob>chi2 = 0.0000 (V_b-V_B is not positive definite)
Code:
xtreg y x1, vce(cluster)
I now used the following code for the regression with time fixed effects:
Code:
reghdfe indexret3 threeyearlgq4 threeyearlgq3 threeyearlgq2, absorb(i.fyear) vce(cluster i.fyear i.company)
Code:
reghdfe indexret3 threeyearlgq4 threeyearlgq3 threeyearlgq2, absorb(i.fyear i.company) vce(cluster i.fyear i.company)
Sorry for the long elaborate post and already a massive thanks in advance.
Best,
Niels
PS I know of the xtscc command, but want to use this in a robustness check without removing the overlapping years.
Comment