Announcement

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

  • Testing difference between two OR in different ordinal regression models

    I have done two ordinal logistic regression models and want to compare odds between them.

    In the first regression model, I include plaque burden in carotid arteries (tpttertilecarotid) as a dependent continuous variable, and several cardiovascular risk factors.

    syntax: ologit tpttertilecarotid sex age smoke hyperlipid_n elevatedlpa dm__n ht__n famcvd abdadipos__n, or

    For the independent variable sex, I got a OR of 2.57, Std. err 0.20 and 95% CI 2.20-3.0.

    In a similar ordinal logistic regression, I included plaque burden femoral arteries (tpttertilefemoral) instead of in carotid arteries. Now I got an OR of 3.27, Std.err 0.26 and 95% CI 2.80-3.82.

    syntax: ologit tpttertilefemoral sex age smoke hyperlipid_n elevatedlpa dm__n ht__n famcvd abdadipos__n, or


    How can I test if there is a difference between OR for tpttertilecarotid and sex vs tpttertilefemoral and sex? The study participants are not independent, as plaque burden in femoral and carotid arteries are related and the study participants are overlapping, but the exact number of participants is not identical, as some have plaque burden only in one territory (carotid or femoral arteries).

  • #2
    There are two ways you can do this. Both of them will require you to re-run your regression.

    First way: using -suest-
    Re-run your -ologit- regressions, and after each one, -estimates store- the results. See -help estimates store- if you are not familiar with that command. For purposes of discussion, let me assume you store the estimates under the names carotid and femoral, respectively. Then run
    Code:
    suest carotid femoral
    suest, coefl
    test _b[carotid_tpttertilecarotid:1.sex] = _b[femoral_tpttertilefemoral:1.sex]
    You must replace the parts that I have italicized by the actual names of those coefficients as seen in the legend column of the output of the preceding -suest, coefl- command. If you are using version 18, and if your sex variable is 0/1 coded, then I believe what I have put there will match what -suest, coefl- gives you. But the naming conventions vary from version to version and depending on idiosyncrasies of the particular regressions involved. So go with what -suest, coefl- shows you.

    Second way: using interactions. This requires that you first modify your data set
    Code:
    gen `c(obs_t)' obs_no = _n
    reshape long tpttertile, i(obs_no) j(_artery) string
    encode _artery, gen(artery)
    ologit tpttertile i.artery##(i.(sex smoke hyperlipid_n elevatedlpa dm__n  ht__n famcvd abdadipos__n) c.age), or
    The coefficient of 1.artery#1.sex will give you the difference between the femoral and carotid sex coefficients along with standard error, test statistic against null hypothesis, and confidence interval. Note: In this code I am assuming that all of your regressors other than age are discrete variables and that age is continuous. Modify the code accordingly if this is not correct.

    The feasibility of this presumes that your sample size is large enough to support a regression with this many regressors and interactions.

    I should also point out that, in my view, cross-regression comparisons of this nature are generally somewhere between difficult to interpret and utterly meaningless due to differences in scaling and distribution of the two outcome variables. Nevertheless, I understand the impulse to try to make such comparisons, even if their epistemological status is dubious. I've given you the rope--you can make your own decision whether to hang yourself with it.

    Correction: because the, or option is in use, I should have said "The results table row for 1.artery#1.sex will give you the ratio of the femoral and carotid sex odds ratios, along with standard error, test statistic against null hypothesis (ratio = 1), and confidence interval."
    Last edited by Clyde Schechter; 10 Jan 2024, 13:09.

    Comment


    • #3
      Thank you very much for this information. I tested the first way, and it worked out very well. Furthermore, I will take your advice and use this test with caution. For now I will only hold on to the rope!

      Comment

      Working...
      X