Announcement

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

  • Local Stata Variables and Marginal Effects of Interaction variable in Probit Regression

    Hello,
    I am running a probit regression of forced turnover on female, performance, the interaction between the two and a number of control variables. I need to decompose the total marginal effect of the interaction into the structural and secondary effects as per Bowen (2012). I used the stata command Inteff to estimate the total marginal effect, and I have also estimated the total effect using the appropriate formulas, and have no problems replicating the results in Inteff. My problem arises when I compute the secondary effect (variable name Secondary), which should be equal to the total effect (variable name Total) minus structural effect (variable name Structural). I have computed secondary effect using 3 different formulas, that should yield identical results (Secondary1, Secondary2 and Secondary 3). Variables Secondary1 and Secondary2 yield the same result. However, Secondary3 yields a very different result. Can anyone help me understand why these formulas yield such different results? The code is below.
    Thank you so much!
    Sandra


    probit forced adjret_mktvw female female_adjret_mktvw logat ownership age duality1 candidate numberdirectors social_listedfirm femalenoceopct functionalbackground supervisorypct insider sat cc1-cc16 ff1-ff12
    local control _b[logat]*logat+_b[ownership]*ownership+_b[age]*age+_b[duality1]*duality1+_b[candidate]*candidate+_b[numberdirectors]*numberdirectors+_b[social_listedfirm]*social_listedfirm+_b[femalenoceopct]*femalenoceopct+_b[functionalbackground]*functionalbackground+_b[supervisorypct]*supervisorypct+_b[insider]*insider+_b[sat]*sat+_b[cc1]*cc1+_b[cc2]*cc2+_b[cc3]*cc3+_b[cc4]*cc4+_b[cc5]*cc5+_b[cc6]*cc6+_b[cc7]*cc7+_b[cc8]*cc8+_b[cc9]*cc9+_b[cc10]*cc10+_b[cc11]*cc11+_b[cc12]*cc12+_b[cc13]*cc13+_b[cc14]*cc14+_b[cc15]*cc15+_b[cc16]*cc16+_b[ff1]*ff1+_b[ff2]*ff2+_b[ff3]*ff3+_b[ff4]*ff4+_b[ff5]*ff5+_b[ff6]*ff6+_b[ff7]*ff7+_b[ff8]*ff8+_b[ff9]*ff9+_b[ff10]*ff10+_b[ff11]*ff11+_b[ff12]*ff12
    local xbu (_b[adjret_mktvw]+_b[female_adjret_mktvw])*adjret_mktvw+_b[female]+_b[_cons]+`control'
    local xbv _b[adjret_mktvw]*adjret_mktvw+_b[_cons]+`control'
    local xbw _b[adjret_mktvw]*adjret_mktvw+_b[female]+_b[_cons]+`control'
    local coef _b[adjret_mktvw]+_b[female_adjret_mktvw]
    local parta (`coef')*(normden(`xbu'))
    local partb _b[adjret_mktvw]*(normden(`xbv'))
    local pdfab `parta'-`partb'
    local partaa _b[adjret_mktvw]*(normden(`xbw'))
    local pdfabab `partaa'-`partb'

    predictnl total=`pdfab', se(se_total)
    predictnl structural=`pdfabab', se(se_structural)
    predictnl secondary =`parta'-`partb'-(`partaa'-`partb'), se(se_secondary)
    predictnl secondary2=`parta'-`partaa'
    predictnl secondary3 =`pdfab'-`pdfabab'


    Below are some of the values generated by the code.

    total se_total structural se_structural secondary se_secondary secondary2 secondary3
    .0341233 .0204312 -.0296526 .0145719 .0637758 .025642 .0637758 .1615325
    .0733294 .028294 -.0447825 .020284 .1181119 .0352795 .1181119 .3021052
    .2342112 .0495972 -.0644164 .0248195 .2986277 .0547526 .2986277 .8223506
    -.007046 .0131959 -.0065586 .0035727 -.0004873 .0130144 -.0004873 .0135592
    Last edited by Sandra Mortal; 11 Aug 2018, 05:31.

  • #2
    You didn't get a quick response. You'll increase your chances of a useful answer by following the FAQ on asking questions - provide Stata code in code delimiters, readable Stata output (fixed spacing often helps) and sample data using dataex. Shorten your post to the absolute minimum necessary to generate the problem. You've got a pile of complex stuff (locals incorporating other locals incorporating other locals incorporating other locals, a five line local, etc. ) that make it hard for us to help you. Instead of this complex stuff, do a three variable model to illustrate the problem. As far as I can tell, you don't include the code that generates "some of the values generated by the code" since the end of your code is just a bunch of predicts. There is no way to figure out why things give different values when you have a bunch of variables and parameters identified but no numerical values for those parameters and variables.

    Recognize we're not necessarily from your area - if you can, explain things rather than providing a cite, and if you must use a cite, provide a full citation. I may know a totally different Bowen who published in 2012 than you do and I'm not going to invest in tracking down your Bowen in order to help you if you can't be bothered to write out the cite.

    It would be exceedingly difficult if not impossible to understand what you've done. I could imagine an infinite set of variables and parameter values that would generate that set of (what I assume are) summary statistics. So, you predict different things and get different results - "why they give such different results" would require tracking through your equations and the variables to see what is really going on. We can't do that for you with the data you've provided, and I doubt any will even try when your post is so complex.

    I apologize if this seems unhelpful, but you're asking for help that folks here provide out of the goodness of their hearts. It behooves you to do everything you can to make it easier for them to do that. I don't believe there is any way we could answer your question from what you posted, and, just getting started would take a lot of work to manually figure out what you've done (just working out what the macros have in them would take effort).

    Stata provides a wide variety of predictions. I'm not sure that you really need all the complexity you generate. If you really must have all the complexity, then I'd try running it with set trace on to see how Stata is interpreting all your macros.

    Comment

    Working...
    X