Announcement

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

  • comparing the treatment effect between probit and biprobit (or eprobit for instrumental variable regression)

    Dear All,

    I ran a probit model, as the dependent var is binary. As the indep var is likely to be endogenous, I also ran a biprobit (or eprobit) model.
    I would like to see how much endogeneity changes (weakens or reinforces) the treatment effect.
    Should I compare the marginal effects of the independent var between two models,
    or compare the average treatment effects (ATE) or the average treatment effects on the treated (ATET)?
    If I use the marginal effect, should the average marginal effect be used rather than the marginal effect at means?

    My concern is that a biprobit (or eprobit) model is based on an instrumental variable approach,
    which relies on the compliers that change the treatment status according to the instrument.

    Thanks,
    Kangoh
    Last edited by kangoh lee; 21 Jul 2025, 11:58.

  • #2
    eprobit/biprobit is LATE, and probit is ATE. Comparing them is comparing more than just the endogeneity issue. Maybe you can get a comparable TE in some way.

    I'd think the AME (for the distribution, not at the means) is the better approach. Others may disagree and I may stand corrected at some point.
    Last edited by George Ford; 21 Jul 2025, 14:21.

    Comment


    • #3
      I agree. However, Stata's biprobit (or eprobit) still allows for marginal effects (margins, dydx(x)). I wonder if marginal effects in a biprobit (or eprobit) model have the same meaning as marginal effects in a simple probit model, and they are comparable?

      Comment


      • #4
        I think ATET would be most comparable among the ATE options, and I think these commands may give you that:

        probit
        margins, dydx(x) subpop(if x == 1) predict(pr)

        eprobit
        margins, dydx(x) subpop(if x == 1) predict(pr)
        Last edited by George Ford; 25 Jul 2025, 08:21.

        Comment


        • #5
          noodling.

          perhaps using eprobit extreat and entreat with atet is the most straightforward way to go.


          Code:
          webuse class10, clear
          
          probit graduate income i.scholar , vce(robust)
          margins r(0 1).scholar if scholar==1, contrast(effects nowald)
          margins, dydx(scholar) subpop(if scholar==1) predict(pr)
          margins, at(scholar = (0 1)) subpop(if scholar==1) predict(pr)
          margins, at(scholar = (0 1)) subpop(if scholar==1) predict(pr)
          
          eprobit graduate income , extreat(scholar) vce(robust) 
          margins r(0 1).scholar if scholar==1, contrast(effects nowald)
          estat teffects, atet 
          
          eprobit graduate income , entreat(scholar = i.hsgpagrp) vce(robust)
          margins r(0 1).scholar if scholar==1, contrast(effects nowald)
          estat teffects, atet

          Comment


          • #6
            Thanks, George.

            As for probit, there appears to be a simpler way:

            teffects ra (dep_var varlist) (treatment_var), atet

            Kangoh

            Comment

            Working...
            X