Search code examples
stata

Fixed effects in Stata


Very new to Stata, so struggling a bit with using fixed effects. The data here is made up, but bear with me. I have a bunch of dummy variables that I am doing regression with. My dependent variable is a dummy that is 1 if a customer bought something and 0 if not. My fixed effects are whether or not there was a yellow sign out front or not (dummy variable again). My independent variable is if the store manager said hi or not (dummy variable).

Basically, I want my output to look like this (with standard errors obviously)

                        Yellow sign       No Yellow sign
Manager said hi          estimate            estimate

Solution

  • You can use the ## operator in a regression to get a saturated model with fixed effects:

    First, input data such that you have a binary outcome (bought), a dependent variable (saidhi), and a fixed effects variable (sign). saidhi should be correlated with your outcome (so there is a portion of saidhi that is uncorrelated with bought and a portion that is), and your FE variable should be correlated with both bought and saidhi (otherwise there is no point having it in your regression if you are only interested in the effect of saidhi).

    clear
    set obs 100
    set seed 45
    gen bought = runiform() > 0.5                               // Binary y, 50/50 probability
    gen saidhi = runiform() + runiform()^2*bought               
    gen sign = runiform() + runiform()*saidhi + runiform()*bought > 0.66666 // Binary FE, correlated with both x and y 
    replace saidhi = saidhi > 0.5
    

    Now, run your regression:

    * y = x + FE + x*FE + cons
    reg bought saidhi##sign, r
    
    
    exit
    

    Your output should be:

    Linear regression                               Number of obs     =        100
                                                    F(3, 96)          =      13.34
                                                    Prob > F          =     0.0000
                                                    R-squared         =     0.1703
                                                    Root MSE          =     .46447
    
    ------------------------------------------------------------------------------
                 |               Robust
          bought |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
        1.saidhi |   .3571429   .2034162     1.76   0.082    -.0466351    .7609209
          1.sign |   .3869048   .1253409     3.09   0.003      .138105    .6357046
                 |
     saidhi#sign |
            1 1  |  -.1427489   .2373253    -0.60   0.549    -.6138359    .3283381
                 |
           _cons |   .0714286   .0702496     1.02   0.312    -.0680158     .210873
    ------------------------------------------------------------------------------
    

    1.saidhi is the effect of saidhi when sign == 0. 1.sign is the effect of the sign, alone, i.e. when saidhi == 0. The parts under saidhi#sign describe the interaction between these two variables (i.e. the marginal effect of them both being 1 at the same time... keep in mind the total effect of them both being one includes the previous two terms). Your constant is represents the average value of bought when both are 0 (e.g. this as the same as you would get from sum bought if saidhi == 0 & sign == 0).