Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Question about implementing interaction variables and their meanings

    I am looking for advice on my model, analyzing if high ceo pay ratios have an impact on a companies esg-rating. Below you can see the outcome of the specification, indicating that both the pay ratio (lncprw) and the market cap (lncapw) do influence the esg ratings. As a robustness test, i now split the companies along the median, grouping them into big market cap and small market cap categories (large cap =1), and interacted this variable with the ceo pay ratio (second output).

    Am i correct with my interpretation of the insignificant interaction term, that ceo pay ratio only affects the esg-rating of small cap companies? Or is this form of robustness check not making sense? I greatly appreciate any form of help or push in the right direction.




    . asdoc xtreg lnesg lncprw lndebtw roaw lncapw i.year i.industry

    Random-effects GLS regression Number of obs = 378
    Group variable: id Number of groups = 72

    R-squared: Obs per group:
    Within = 0.3450 min = 1
    Between = 0.2702 avg = 5.2
    Overall = 0.3786 max = 6

    Wald chi2(14) = 180.33
    corr(u_i, X) = 0 (assumed) Prob > chi2 = 0.0000

    ------------------------------------------------------------------------------
    lnesg | Coefficient Std. err. z P>|z| [95% conf. interval]
    -------------+----------------------------------------------------------------
    lncprw | .0326537 .0160507 2.03 0.042 .0011949 .0641126
    lndebtw | .0198029 .0115212 1.72 0.086 -.0027782 .0423841
    roaw | -.0012461 .0022023 -0.57 0.572 -.0055624 .0030703
    lncapw | .1039689 .0202222 5.14 0.000 .064334 .1436037
    |
    year |
    2 | .0075412 .0291055 0.26 0.796 -.0495046 .064587
    3 | .1173459 .0286406 4.10 0.000 .0612114 .1734804
    4 | .137357 .028574 4.81 0.000 .0813529 .193361
    5 | .2003007 .0292682 6.84 0.000 .142936 .2576654
    6 | .2318731 .0287288 8.07 0.000 .1755656 .2881805
    |
    industry |
    2 | -.2258393 .1233899 -1.83 0.067 -.4676792 .0160006
    3 | -.2486235 .1410259 -1.76 0.078 -.5250291 .0277821
    4 | .0804007 .1718355 0.47 0.640 -.2563907 .4171921
    5 | -.1236049 .1198287 -1.03 0.302 -.3584648 .111255
    6 | -.0007003 .1410232 -0.00 0.996 -.2771007 .2757001
    |
    _cons | 2.215179 .3151133 7.03 0.000 1.597568 2.832789
    -------------+----------------------------------------------------------------
    sigma_u | .21701252
    sigma_e | .14300232
    rho | .69723982 (fraction of variance due to u_i)
    ------------------------------------------------------------------------------



    . xtreg lnscope lncsrstrat lnesg c.lncprw#i.largecap lndebtw roaw i.year i.industry re

    Random-effects GLS regression Number of obs = 371
    Group variable: id Number of groups = 70

    R-squared: Obs per group:
    Within = 0.0732 min = 1
    Between = 0.0910 avg = 5.3
    Overall = 0.0987 max = 6

    Wald chi2(17) = 28.85
    corr(u_i, X) = 0 (assumed) Prob > chi2 = 0.0359

    -----------------------------------------------------------------------------------
    lnscope | Coefficient Std. err. z P>|z| [95% conf. interval]
    ------------------+----------------------------------------------------------------
    lncsrstrat | .1438839 .0728789 1.97 0.048 .0010439 .286724
    lnesg | -.3894373 .1686043 -2.31 0.021 -.7198956 -.0589789
    |
    largecap#c.lncprw |
    0 | -.1049655 .0445654 -2.36 0.019 -.192312 -.0176189
    1 | -.0649495 .0423145 -1.53 0.125 -.1478843 .0179853

    |
    lndebtw | -.0438299 .0298084 -1.47 0.141 -.1022534 .0145935
    roaw | -.0035022 .0053485 -0.65 0.513 -.0139852 .0069808
    |
    year |
    2 | .0519943 .0727962 0.71 0.475 -.0906836 .1946721
    3 | .0068917 .0722662 0.10 0.924 -.1347475 .1485309
    4 | .1009946 .0733629 1.38 0.169 -.042794 .2447833
    5 | .0682871 .0791128 0.86 0.388 -.086771 .2233453
    6 | .163254 .0794656 2.05 0.040 .0075042 .3190038
    |
    industry |
    2 | -.7025008 .2870299 -2.45 0.014 -1.265069 -.1399325
    3 | -.2654213 .3294975 -0.81 0.421 -.9112246 .380382
    4 | .0987919 .3974654 0.25 0.804 -.6802259 .8778097
    5 | -.0794056 .2830836 -0.28 0.779 -.6342393 .4754282
    6 | .055311 .325204 0.17 0.865 -.5820771 .692699
    |
    relativelti | -.0106507 .1518421 -0.07 0.944 -.3082557 .2869544
    _cons | 5.83631 .6264509 9.32 0.000 4.608488 7.064131
    ------------------+----------------------------------------------------------------
    sigma_u | .52549987
    sigma_e | .37084696
    rho | .66754914 (fraction of variance due to u_i)
    -----------------------------------------------------------------------------------



  • #2
    Fernando:
    your interaction should have been coded differently:
    [CODE]xtreg lnscope lncsrstrat lnesg c.lncprw##i.largecap lndebtw roaw i.year i.industry re/CODE]
    Kind regards,
    Carlo
    (Stata 19.0)

    Comment


    • #3
      Originally posted by Carlo Lazzaro View Post
      Fernando:
      your interaction should have been coded differently:
      [CODE]xtreg lnscope lncsrstrat lnesg c.lncprw##i.largecap lndebtw roaw i.year i.industry re/CODE]
      Carlo thank you for pointing out my mistake! Once fixed, is the interpretation of the interaction that lncprw only affects small cap businesses a valid view?

      Kind regards

      Comment


      • #4
        Fernando:
        it depends on the results you will get wit the revised code, that you're kindly requested to share. Thanks.
        Kind regards,
        Carlo
        (Stata 19.0)

        Comment


        • #5
          Carlo Lazzaro

          andom-effects GLS regression Number of obs = 371
          Group variable: id Number of groups = 70

          R-squared: Obs per group:
          Within = 0.0816 min = 1
          Between = 0.0853 avg = 5.3
          Overall = 0.0961 max = 6

          Wald chi2(17) = 31.11
          corr(u_i, X) = 0 (assumed) Prob > chi2 = 0.0194

          -----------------------------------------------------------------------------------
          lnscope | Coefficient Std. err. z P>|z| [95% conf. interval]
          ------------------+----------------------------------------------------------------
          lncsrstrat | .1442276 .0726519 1.99 0.047 .0018324 .2866227
          lnesgscorew | -.4004139 .1682879 -2.38 0.017 -.7302521 -.0705756
          lncprw | -.164365 .057998 -2.83 0.005 -.2780389 -.0506911
          1.largecap | -.369305 .2549312 -1.45 0.147 -.868961 .1303509
          |
          largecap#c.lncprw |
          1 | .1338417 .0677796 1.97 0.048 .000996 .2666874

          |
          lndebtw | -.0460909 .0297083 -1.55 0.121 -.1043181 .0121364
          roaw | -.0035509 .0053266 -0.67 0.505 -.0139908 .006889
          |
          year |
          2 | .0487035 .0725422 0.67 0.502 -.0934766 .1908835
          3 | .0014633 .0720746 0.02 0.984 -.1398003 .142727
          4 | .0986893 .0730327 1.35 0.177 -.0444521 .2418307
          5 | .0682853 .0788203 0.87 0.386 -.0861996 .2227702
          6 | .1656749 .079052 2.10 0.036 .0107359 .3206139
          |
          industry |
          2 | -.6902399 .28768 -2.40 0.016 -1.254082 -.1263974
          3 | -.2595718 .3284183 -0.79 0.429 -.9032598 .3841162
          4 | .1192004 .3983804 0.30 0.765 -.6616109 .9000118
          5 | -.0890046 .2827043 -0.31 0.753 -.6430949 .4650857
          6 | .0689286 .3256397 0.21 0.832 -.5693136 .7071708
          |
          _cons | 6.107033 .6518337 9.37 0.000 4.829462 7.384603
          ------------------+----------------------------------------------------------------
          sigma_u | .52649906
          sigma_e | .36912873
          rho | .67044716 (fraction of variance due to u_i)

          I adopted your recommended changes to the model, this is the output i got. Thank you for the insights Carlo

          Comment


          • #6
            Fernando:
            now the interaction is barely statistically significant and this result seems to be mailny driven by -lncprw-.
            That said, I would be more concerned about the low R_sq between.
            In this respect, I would double-check the functional form of the regressand, as reported in the following toy-example:
            Code:
            . use "https://www.stata-press.com/data/r17/nlswork.dta"
            (National Longitudinal Survey of Young Women, 14-24 years old in 1968)
            
            . xtreg ln_wage age, re vce(cluster idcode)
            
            Random-effects GLS regression                   Number of obs     =     28,510
            Group variable: idcode                          Number of groups  =      4,710
            
            R-squared:                                      Obs per group:
                 Within  = 0.1026                                         min =          1
                 Between = 0.0877                                         avg =        6.1
                 Overall = 0.0774                                         max =         15
            
                                                            Wald chi2(1)      =    1064.91
            corr(u_i, X) = 0 (assumed)                      Prob > chi2       =     0.0000
            
                                         (Std. err. adjusted for 4,710 clusters in idcode)
            ------------------------------------------------------------------------------
                         |               Robust
                 ln_wage | Coefficient  std. err.      z    P>|z|     [95% conf. interval]
            -------------+----------------------------------------------------------------
                     age |   .0185667    .000569    32.63   0.000     .0174516    .0196819
                   _cons |   1.120439   .0159154    70.40   0.000     1.089245    1.151632
            -------------+----------------------------------------------------------------
                 sigma_u |  .36972456
                 sigma_e |  .30349389
                     rho |  .59743613   (fraction of variance due to u_i)
            ------------------------------------------------------------------------------
            
            . predict fitted, xb
            (24 missing values generated)
            
            . g sq_fitted=fitted^2
            (24 missing values generated)
            
            . xtreg ln_wage fitted sq_fitted , re vce(cluster idcode)
            
            Random-effects GLS regression                   Number of obs     =     28,510
            Group variable: idcode                          Number of groups  =      4,710
            
            R-squared:                                      Obs per group:
                 Within  = 0.1087                                         min =          1
                 Between = 0.1015                                         avg =        6.1
                 Overall = 0.0870                                         max =         15
            
                                                            Wald chi2(2)      =    1258.33
            corr(u_i, X) = 0 (assumed)                      Prob > chi2       =     0.0000
            
                                         (Std. err. adjusted for 4,710 clusters in idcode)
            ------------------------------------------------------------------------------
                         |               Robust
                 ln_wage | Coefficient  std. err.      z    P>|z|     [95% conf. interval]
            -------------+----------------------------------------------------------------
                  fitted |   7.572907   .6668488    11.36   0.000     6.265907    8.879906
               sq_fitted |   -1.96055   .1995384    -9.83   0.000    -2.351639   -1.569462
                   _cons |  -5.475764   .5546533    -9.87   0.000    -6.562865   -4.388664
            -------------+----------------------------------------------------------------
                 sigma_u |   .3654049
                 sigma_e |  .30245467
                     rho |  .59342665   (fraction of variance due to u_i)
            ------------------------------------------------------------------------------
            
            . test sq_fitted
            
             ( 1)  sq_fitted = 0
            
                       chi2(  1) =   96.54
                     Prob > chi2 =    0.0000
            
            .
            As the -test- outcome reaches statistical significance, the model is (as clearly expected) is misspecified.
            In addition, with 70 panels, I would go cluster-robust standard error.

            As an aside, in your future posts please use CODE delimiters (as I did) to share what you typed and what Stata gave you back (see the FAQ for further details). Thanks.
            Kind regards,
            Carlo
            (Stata 19.0)

            Comment


            • #7
              Thank you Carlo i will be looking into it. The low r² is wihtin the range i was expecting, considering the data that is available for me to work with and all known factors influencing the dependent variable.

              I respecified the model with cluster robust standard errors but that messes up its p-value so it does look like i chose the wrong approach. Will using xtgls instead be helping me with that problem?

              Comment


              • #8
                Fernando:
                1) it may well be that cluster-robust standard errors are telling you the truth and that significant coefficients were an artefact of the default standard errors (and, as such, unreliable);
                2) no, because -xtgls- is for T>N panel dataset.
                Kind regards,
                Carlo
                (Stata 19.0)

                Comment

                Working...
                X