Announcement

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

  • Interactions between two ordinal (Likert-scale) variables

    Greetings,

    I recently tested an interaction term comprised of two ordinal (1-5) variables in a logistic regression model. The interaction was 'significant', but apart from that I have no idea how to interpret the results. I'd like to graph the interaction to see what's going on but am not sure whether the margins/marginsplot command will work similarly for ordinal x ordinal terms. Does anybody have any experience handling interactions of this sort? Thanks !!

    Attached Files
    Last edited by Zach Goldberg; 14 Aug 2017, 13:24.

  • #2
    In order to get a helpful response, you need to show the actual commands and output, complete and exactly as you entered them. Be sure to use code delmiters so it comes out readable. (If you are not familiar with code delimiters, you can find information in FAQ #12.)

    Comment


    • #3
      Hey Clyde! Thanks for the response. I've added the output to my original post. Not sure how to go about graphing the interaction/marginal effects.

      Comment


      • #4
        OK. So you are treating these variables as continuous and entering them, untransformed, as linear predictors. That is often done and is often a reasonable approach. Just be sure you are aware that you are therefore treating the response levels in these two ordinal scales as being equally spaced, and make sure you are comfortable with that.

        To get the interaction graphs I would do this:

        Code:
        margins, at(OPC = (1(1)5) SR = 1(1)5))
        marginsplot, xdimension(OPC)
        marginsplot, xdimension(SR)
        You don't say which marginal effects you are interested in. You can get adjusted average marginal effects for both OPC and SR with
        Code:
        margins, dydx(OPC SR)
        But remember that in non-linear models, even when there are no interaction terms, the marginal effect of any variable is conditional on all the other variables. So if you want something other than average marginal effects (which, in my view are not terribly useful when you have interaction terms) you need to specify how you want to condition on the variables. The -at()- and -atmeans- options are there for that purpose. So you might want something like:

        Code:
        margins, dydx(OPC) at (SR = (1(1)5))
        margins, dydx(SR) at(OPC = (1(1)5))
        The screen shot you posted happened to result in a legible post. But often they do not. In my previous response, I specifically asked you to post using code delimiters--which always produce readable results. Had your screen shot been illegible, as happens more often than not, I would not have replied again. Perhaps somebody else would have been willing to ask you again to post a legible set of results. Perhaps the same screenshot would have been legible on somebody else's browser and you would have gotten an answer from that person. But why not do it the right way in the first place? Take a minute to read FAQ #12 and learn how to use code delimiters. That gets it right the first time, every time and maximizes your chances of getting a timely and helpful response. Please be considerate of those who want to help you.

        Comment


        • #5
          Thanks Clyde. My apologies for not adhering to the stipulated format (newbie).
          My next question concerns interpreting the output. For example, I entered [
          margins, dydx(SR) at(OPC = (1(1)4))]

          I get a table showing:
          SR dy/dx std. err z P>|z| 95% CI
          1 .1674172 .0114407 14.63 0.000 .144 .188
          2 .1759267 .0074999 23.46 0.000 .161 .190
          3 .1756774 .0058236 30.17 0.000 .164 .187
          4 .160385 .0103451 15.50 0.000 .140 .180
          Does this, for example, mean that when OPC=1, the effects of SR= 0.167?
          Last edited by Zach Goldberg; 14 Aug 2017, 14:25.

          Comment


          • #6
            Does this, for example, mean that when OPC=1, the effects of SR= 0.167?
            Yes, it does.

            If you look above that table in the -margins- output, you will see lines like 1._at:... that explain exactly what each row in the table corresponds to.

            Comment


            • #7
              Okay, think I understand. Using another example, if the table shows the coefficient of SR at each level of OPC, does that mean that each point increase on SR when OPC=2 amounts to an increase of .175 in Y? In other words, with respect to SR, does the output reflect the effects at both specific levels of SR and OPC or merely the effect of a one-point rise in SR at a given value of OPC? (hope that was clear).

              Comment


              • #8
                In the output of -margins, dydx(SR) at(OPC = (1(1)5))-, each row of the table shows the marginal effect of SR averaged over all starting values of SR, at the row's specific values of OPC. So, looking at the second row of the table in #6, it means that averaging over starting values of SR, when OPC = 2, "a unit increase in SR is associated with an increase in predicted probability of the outcome variable."

                I have put the "unit increase..." part in quotes because although it is what is normally said when describing marginal effects, it is not actually correct. A marginal effect for a continuous variable (and in your model you have treated SR and OPC as continuous) is not a difference, it's a first derivative. So the actual correct interpretation is, conditional on OPC = 2 and averaging over starting values of SR, doutcome/dSR = 0.175. Because the marginal effect is itself a non-linear function of all the variables involved, saing that the derivative is 0.175 is not the same thing as saying that a unit change in SR is associated with 0.175 unit change in the outcome. They differ in exactly the same ways as saying that the speedometer currently shows 60 miles per hour is not the same thing as saying that we will drive 60 miles in the next hour. Again, this "unit increase" language is almost universally used. But it is important to understand that it is wrong and to understand what is really meant.

                If you would like specific values of the marginal effect of SR (not averaged over starting values of SR) at various values of OPC, the command would be:
                Code:
                margins, dydx(SR) at(OPC = (1(1)5) SR = (1(1)5))

                Comment


                • #9
                  That was very informative. Thanks!

                  Final question (presumably): OPC and SR are both moderately correlated with each other (r=.41); and each, in turn, is moderately correlated with Y. I was thus surprised to see that the interaction term was significantly negative. I feel like I may be misinterpreting its signification. So to clarify: a negative interaction term doesn't mean that those who score (for example) a '5' on SR score at the low end of (1 or 2) of OPC. It's only that when SR=5, the effects of OPC=4 aren't as influential on Y. Is that correct or am I getting this wrong?

                  Comment


                  • #10
                    OPC and SR are both moderately correlated with each other (r=.41); and each, in turn, is moderately correlated with Y. I was thus surprised to see that the interaction term was significantly negative.
                    Your expectations are incorrect here. The two phenomena have nothing at all to do with each other.

                    So to clarify: a negative interaction term doesn't mean that those who score (for example) a '5' on SR score at the low end of (1 or 2) of OPC. It's only that when SR=5, the effects of OPC=4 aren't as influential on Y. Is that correct or am I getting this wrong?
                    Exactly correct!

                    Comment


                    • #11
                      Cheers Clyde! You're the man !

                      Comment


                      • #12
                        Hey Clyde! Had another question for you: when interpreting/reporting the results, do I also need to model/plot and report the inverse interaction as well (i.e. OPCxSR--> SRxOPC)?

                        Comment


                        • #13
                          As Clyde notes, you are treating these variables as continuous. For continuous vars, I very much like Patrick Royston's mcp command. See

                          https://www3.nd.edu/~rwilliam/stats3/Margins03.pdf

                          http://www.stata-journal.com/article...article=gr0056

                          Also, for a discussion of whether or not you can treat ordinal vars as continuous and if so how to do it, see

                          https://www3.nd.edu/~rwilliam/stats3...ndependent.pdf
                          -------------------------------------------
                          Richard Williams, Notre Dame Dept of Sociology
                          StataNow Version: 19.5 MP (2 processor)

                          EMAIL: [email protected]
                          WWW: https://www3.nd.edu/~rwilliam

                          Comment


                          • #14
                            when interpreting/reporting the results, do I also need to model/plot and report the inverse interaction as well (i.e. OPCxSR--> SRxOPC)?
                            I'm not entirely sure I understand the question, but I think the answer is that it depends on your research questions and what is of interest.

                            Comment


                            • #15
                              Basically, I predicted that two variables would interact but wasn't sure about the direction. For example, do increasing values of OPC correspond to increasing marginal effects of SR or do increasing values of SR predict increasing marginal effects of OPC? Or do I simply stick to my hypothesis (that higher values of OPC would coincide with greater effects of SR) even though the data can also support the inverse?

                              Comment

                              Working...
                              X