I have been running a test using suest, but recently realized that I get a very different p-value for the same test when I stack the regressions. In my specific context (the effect for a policy by race, gender, SES and ethnicity), it makes a big difference. The p-value with suest is 0.03 and stacking the regressions 0.22 or 0.34 depending if I only stack the demographic groups or stack all the triple interaction variables. I have clustering in all my regressions at the household level. That suest provides an asymptotic test vs finite-sample F-test for the stacked regression does not seem to be driving the difference in my setting (I have a few thousand observations in total).
I do not have a great reproduceable example of the problem (unfortunately I have not figured out yet what is causing this sizable difference), but the below nevertheless highlights that the p-values across the specifications are not (exactly) the same in contrast to what seems to be indicated in the stata base reference manual pg2975-2976 for suest.
Any advice as to what suest does differently relative to the stacked regression would be most welcome! I am trying to figure out which method I should rely on for my test.
I do not have a great reproduceable example of the problem (unfortunately I have not figured out yet what is causing this sizable difference), but the below nevertheless highlights that the p-values across the specifications are not (exactly) the same in contrast to what seems to be indicated in the stata base reference manual pg2975-2976 for suest.
Code:
sysuse auto, clear summ mpg, det gen highmpg=mpg>`r(p50)' reg price foreign estimates store m1 reg price highmpg estimates store m2 suest m1 m2 test [m1_mean]foreign=[m2_mean]highmpg //0.0382 //calculating the finite-sample F-statistic local chi2=r(chi2) local q=r(df) local N=e(N) local k=e(rank) local F=`chi2'/`q' dis "F: " `F', "p: " Ftail(`q',`N'-`k',`F') //0.042 *stacking the regression gen id=_n gen zero=0 gen one=1 gen two=2 stack id price foreign zero one id price zero highmpg two, into(id y z1 z2 model) gen model2=model==2 reg y model2 z1 z2, vce(cluster id) test _b[z1]=_b[z2] //0.0438 F-test

Comment