Announcement

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

  • asclogit and 3-way interactions

    Dear Forum,

    I'm interested in using asclogit to model a three-way interaction in a discrete choice model. The three-way interaction involves an alternative-specific variable, a case-specific variable and the alternative-identifier, e.g.

    webuse choice, clear
    asclogit choice c.dealer c.dealer##i.sex##i.car , case(id) alternatives(car) casevars(i.sex)

    This way of putting the interaction includes all lower-order terms, however, they are all included as alternative-specific terms. Given that i.sex#i.car doesn't vary by alternatives, this way of entering the interaction unsurprisingly doesn't work. However, as the main effect for i.sex is anyway calculated for each alternative, shouldn't that mean that i.sex#i.car isn't necessary at all? In fact, the only way in which I find this model to work is by excluding this term, in this way:

    asclogit choice c.dealer c.dealer#i.sex c.dealer#i.car c.dealer#i.car#i.sex , case(id) alternatives(car) casevars(i.sex )

    My question is now this: am I correct in assuming that in the case of three-way interactions involving alternative-identifiers, leaving out the i.sex#i.car term still results in a hierarchical interaction (i.e. satisfies the rule that all lower-order terms of an interaction need to be included)?


    Best,
    Irene





  • #2
    Hi Irene,

    You are right in that the term i.sex#i.car needs to be omitted from your asclogit specification. That term is already in the model and identifies the alternative-specific parameters for the case-specific variables. Notice that you could fit the same model using the clogit command with full 3-way interaction specification:

    Code:
    webuse choice, clear
    
    asclogit choice c.dealer c.dealer#i.sex c.dealer#i.car ///
             c.dealer#i.car#i.sex,                         ///
             case(id) alternatives(car) casevars(i.sex)
    est store m1
    
    clogit choice i.car i.sex c.dealer               ///
           c.dealer#i.sex c.dealer#i.car i.sex#i.car ///
           c.dealer#i.car#i.sex,                     ///
           group(id) 
    est store m2
    
    clogit choice i.car##i.sex##c.dealer, group(id) 
    est store m3
    
    est table m1 m2 m3, se stats(N ll) eq(1)
    Joerg

    Comment


    • #3
      Many thanks, Joerg! This was just the reassurance I needed.

      Best,
      Irene

      Comment

      Working...
      X