Announcement

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

  • Interpretation of Interaction Term

    I am estimating the effect of health insurance coverage on health status of children when health insurance coverage is measured zero, one, two, three, four, and five years before health status is measured. However, health insurance coverage of a child is missing for years before that child is born. For example, if the child is one year old, health insurance coverage for year 2, 3, 4, 5 before the health status is measured is missing for the one-year old child because the child was not born during these years. So, when the health insurance coverage is missing I recode it to some negative value (I don’t think it matters what value it is) and in the regression I interact the health insurance coverage in year X before health status is measured with a dummy equal to one if health insurance coverage in year X before health status is measured is not missing. That way the missing health insurance coverage should not be part of the identifying variation. I do not include the dummy and insurance coverage by itself, only the interaction term. Can I interpret the coefficient on the interaction term in year X before health status is measured (health insurance x dummy for not missing) as the effect of health insurance coverage in year X before health status is measured? Or is it the difference in slope relative to missing health insurance coverage (which is something weird) as in the usual interpretation of an interaction between a continuous and categorical variable and I would have to run a constrained regression where the coefficient on the dummy itself is constrained to be zero?

    Here is a simplified code:

    Code:
    reg health c.insurance_0#i.dummy_0 c.insurance_1#i.dummy_1 c.insurance_2#i.dummy_2 c.insurance_3#i.dummy_3 c.insurance_4#i.dummy_4 c.insurance_5#i.dummy_5

  • #2
    Per a simple simulation, I believe the model produces what you want.

    Comment


    • #3
      Thank you so much George Ford! Could you maybe explain what simulation you did and provide the code? So that the next time I can do it myself.

      Comment


      • #4
        A bit sloppy. You can play with it to better match your problem.

        Code:
        version 17
        clear all
        
        set obs 100
        g age = int(runiform(1,10))
        forv i = 0/5 {
            g z`i' = runiform()>0.3 if age>`i'
            g missing`i' = z`i'==.
            g insurance`i' = z`i'
            replace insurance`i' = 0 if insurance`i'==.
        }
        
        g health = 1.0 + insurance0*1 + insurance1*2*(missing1!=.) + insurance2*3*(missing2!=.) + insurance3*4*(missing3!=.) + insurance4*5*(missing4!=.) + insurance5*6*(missing5!=.)
        g health2 = 1.0 + insurance0*1 + insurance1*2 + insurance2*3 + insurance3*4 + insurance4*5 + insurance5*6
        
        reg health z0 z1 z2 z3 z4 z5
        reg health   insurance0 insurance1 insurance2 insurance3 insurance4 insurance5
        reg health2 insurance0 insurance1 insurance2 insurance3 insurance4 insurance5

        Comment


        • #5
          Thank you so much George Ford! I will check it out!

          Comment

          Working...
          X