Announcement

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

  • test for differences between interaction terms

    Hi all,

    My model is a mixed effects model that is testing the change of weight between different drug classes over time. I used restricted cubic splines for the time variable and the model includes an interaction term between drug class (five different categories) and time_spline -- it looks something like this:

    xtmixed weight ib5.class##time_sp* var1 var2 var3

    the outcome looks like this:

    ---------------------------------------------------------------------------------
    Weight change| Coef. Std. Err. z P>|z| [95% Conf. Interval]
    ----------------+----------------------------------------------------------------
    class |
    1 | 0.62 1.50 0.414 0.679 -2.32 3.56
    2 | 2.96 1.27 2.334 0.020 0.47 5.45
    3 | -0.08 1.53 -0.054 0.957 -3.08 2.92
    4 | 0.16 0.87 0.182 0.855 -1.55 1.86

    time_sp1 | 1.50 0.20 7.501 0.000 1.11 1.90
    time_sp2 | -1.76 1.51 -1.167 0.243 -4.73 1.20
    time_sp3 | 1.28 2.38 0.539 0.590 -3.38 5.94

    class#c.time_sp1 |
    1 | -0.51 0.50 -1.035 0.301 -1.49 0.46
    2 | -1.49 0.42 -3.543 0.000 -2.31 -0.67
    3 | 0.30 0.56 0.531 0.596 -0.80 1.39
    4 | -0.73 0.31 -2.333 0.020 -1.35 -0.12

    class#c.time_sp2
    1 | 5.75 3.80 1.515 0.130 -1.69 13.19
    2 | 6.03 3.18 1.895 0.058 -0.21 12.26
    3 | -2.23 4.17 -0.535 0.593 -10.41 5.95
    4 | 3.83 2.39 1.604 0.109 -0.85 8.51


    class#c.time_sp3
    1 | -9.08 5.98 -1.518 0.129 -20.80 2.65
    2 | -8.79 5.00 -1.756 0.079 -18.60 1.02
    3 | 3.21 6.54 0.490 0.624 -9.61 16.02
    4 | -5.58 3.76 -1.485 0.138 -12.94 1.78


    I am trying to test whether the weight change over time is different between different drug classes. For example: Does the change in weight for patients receiving DRUG 1 any different from the change in weight for patients receiving DRUG 2 ?

    Thank you for your assistance with this.

    Kassem

  • #2
    With mixed, it's easiest to use a Wald test. If you want to use a likelihood-ratio test, then it's easier using meglm, because mixed doesn't allow constraints. See example of each below. Begin at the "Begin here" comment; the top of the do-file is just to set up a fictitious dataset that resembles yours in the pertinent ways.

    .ÿ
    .ÿclearÿ*

    .ÿ
    .ÿsetÿseedÿ`=strreverse("1449031")'

    .ÿ
    .ÿquietlyÿsetÿobsÿ250

    .ÿgenerateÿdoubleÿuÿ=ÿrnormal()

    .ÿgenerateÿintÿpidÿ=ÿ_n

    .ÿ
    .ÿgenerateÿbyteÿdrugÿ=ÿruniformint(1,ÿ3)

    .ÿ
    .ÿquietlyÿexpandÿ10

    .ÿbysortÿpid:ÿgenerateÿbyteÿtimeÿ=ÿ_n

    .ÿgenerateÿdoubleÿoutcomeÿ=ÿuÿ+ÿrnormal()

    .ÿ
    .ÿmksplineÿtÿ=ÿtime,ÿcubicÿnknots(4)

    .ÿ
    .ÿmixedÿoutcomeÿib3.drug##c.t?ÿ||ÿpid:ÿ,ÿmlÿnolrtestÿnostderrÿnolog

    Mixed-effectsÿMLÿregressionÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNumberÿofÿobsÿÿÿÿÿ=ÿÿÿÿÿÿ2,500
    Groupÿvariable:ÿpidÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNumberÿofÿgroupsÿÿ=ÿÿÿÿÿÿÿÿ250

    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿObsÿperÿgroup:
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿminÿ=ÿÿÿÿÿÿÿÿÿ10
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿavgÿ=ÿÿÿÿÿÿÿ10.0
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmaxÿ=ÿÿÿÿÿÿÿÿÿ10

    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWaldÿchi2(11)ÿÿÿÿÿ=ÿÿÿÿÿÿ13.70
    Logÿlikelihoodÿ=ÿ-3827.0791ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿProbÿ>ÿchi2ÿÿÿÿÿÿÿ=ÿÿÿÿÿ0.2502

    ------------------------------------------------------------------------------
    ÿÿÿÿÿoutcomeÿ|ÿÿÿÿÿÿCoef.ÿÿÿStd.ÿErr.ÿÿÿÿÿÿzÿÿÿÿP>|z|ÿÿÿÿÿ[95%ÿConf.ÿInterval]
    -------------+----------------------------------------------------------------
    ÿÿÿÿÿÿÿÿdrugÿ|
    ÿÿÿÿÿÿÿÿÿÿ1ÿÿ|ÿÿÿ.1544155ÿÿÿ.2650476ÿÿÿÿÿ0.58ÿÿÿ0.560ÿÿÿÿ-.3650683ÿÿÿÿ.6738992
    ÿÿÿÿÿÿÿÿÿÿ2ÿÿ|ÿÿÿ-.142965ÿÿÿ.2543954ÿÿÿÿ-0.56ÿÿÿ0.574ÿÿÿÿ-.6415708ÿÿÿÿ.3556408
    ÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿÿÿÿÿÿÿt1ÿ|ÿÿ-.0071042ÿÿÿ.0638461ÿÿÿÿ-0.11ÿÿÿ0.911ÿÿÿÿ-.1322404ÿÿÿÿ.1180319
    ÿÿÿÿÿÿÿÿÿÿt2ÿ|ÿÿÿÿ.185015ÿÿÿ.1965847ÿÿÿÿÿ0.94ÿÿÿ0.347ÿÿÿÿ-.2002839ÿÿÿÿ.5703139
    ÿÿÿÿÿÿÿÿÿÿt3ÿ|ÿÿ-.8133605ÿÿÿ.5710192ÿÿÿÿ-1.42ÿÿÿ0.154ÿÿÿÿ-1.932537ÿÿÿÿ.3058165
    ÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿdrug#c.t1ÿ|
    ÿÿÿÿÿÿÿÿÿÿ1ÿÿ|ÿÿÿ.0056527ÿÿÿ.0897188ÿÿÿÿÿ0.06ÿÿÿ0.950ÿÿÿÿ-.1701929ÿÿÿÿ.1814982
    ÿÿÿÿÿÿÿÿÿÿ2ÿÿ|ÿÿÿÿ.099395ÿÿÿÿ.086113ÿÿÿÿÿ1.15ÿÿÿ0.248ÿÿÿÿ-.0693834ÿÿÿÿ.2681733
    ÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿdrug#c.t2ÿ|
    ÿÿÿÿÿÿÿÿÿÿ1ÿÿ|ÿÿ-.2544791ÿÿÿ.2762476ÿÿÿÿ-0.92ÿÿÿ0.357ÿÿÿÿ-.7959144ÿÿÿÿ.2869562
    ÿÿÿÿÿÿÿÿÿÿ2ÿÿ|ÿÿÿ-.470787ÿÿÿ.2651452ÿÿÿÿ-1.78ÿÿÿ0.076ÿÿÿÿ-.9904621ÿÿÿÿ.0488881
    ÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿdrug#c.t3ÿ|
    ÿÿÿÿÿÿÿÿÿÿ1ÿÿ|ÿÿÿ1.062344ÿÿÿ.8024157ÿÿÿÿÿ1.32ÿÿÿ0.186ÿÿÿÿÿ-.510362ÿÿÿÿÿ2.63505
    ÿÿÿÿÿÿÿÿÿÿ2ÿÿ|ÿÿÿ1.633449ÿÿÿ.7701668ÿÿÿÿÿ2.12ÿÿÿ0.034ÿÿÿÿÿ.1239494ÿÿÿÿ3.142948
    ÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿÿÿÿ_consÿ|ÿÿÿ-.088266ÿÿÿ.1886145ÿÿÿÿ-0.47ÿÿÿ0.640ÿÿÿÿ-.4579436ÿÿÿÿ.2814117
    ------------------------------------------------------------------------------

    ------------------------------------------------------------------------------
    ÿÿRandom-effectsÿParametersÿÿ|ÿÿÿEstimateÿÿÿStd.ÿErr.ÿÿÿÿÿ[95%ÿConf.ÿInterval]
    -----------------------------+------------------------------------------------
    pid:ÿIdentityÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvar(_cons)ÿ|ÿÿÿ.9086044ÿÿÿÿÿÿÿÿÿÿ.ÿÿÿÿÿÿÿÿÿÿÿÿÿ.ÿÿÿÿÿÿÿÿÿÿÿ.
    -----------------------------+------------------------------------------------
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvar(Residual)ÿ|ÿÿÿ.9919774ÿÿÿÿÿÿÿÿÿÿ.ÿÿÿÿÿÿÿÿÿÿÿÿÿ.ÿÿÿÿÿÿÿÿÿÿÿ.
    ------------------------------------------------------------------------------

    .ÿ
    .ÿ*
    .ÿ*ÿBeginÿhere
    .ÿ*
    .ÿ//ÿWald
    .ÿtestÿ1.drug#c.t1ÿ=ÿ2.drug#c.t1,ÿnotest

    ÿ(ÿ1)ÿÿ[outcome]1.drug#c.t1ÿ-ÿ[outcome]2.drug#c.t1ÿ=ÿ0

    .ÿtestÿ1.drug#c.t2ÿ=ÿ2.drug#c.t2,ÿnotestÿaccumulate

    ÿ(ÿ1)ÿÿ[outcome]1.drug#c.t1ÿ-ÿ[outcome]2.drug#c.t1ÿ=ÿ0
    ÿ(ÿ2)ÿÿ[outcome]1.drug#c.t2ÿ-ÿ[outcome]2.drug#c.t2ÿ=ÿ0

    .ÿtestÿ1.drug#c.t3ÿ=ÿ2.drug#c.t3,ÿaccumulate

    ÿ(ÿ1)ÿÿ[outcome]1.drug#c.t1ÿ-ÿ[outcome]2.drug#c.t1ÿ=ÿ0
    ÿ(ÿ2)ÿÿ[outcome]1.drug#c.t2ÿ-ÿ[outcome]2.drug#c.t2ÿ=ÿ0
    ÿ(ÿ3)ÿÿ[outcome]1.drug#c.t3ÿ-ÿ[outcome]2.drug#c.t3ÿ=ÿ0

    ÿÿÿÿÿÿÿÿÿÿÿchi2(ÿÿ3)ÿ=ÿÿÿÿ2.10
    ÿÿÿÿÿÿÿÿÿProbÿ>ÿchi2ÿ=ÿÿÿÿ0.5527

    .ÿ
    .ÿ//ÿLikelihood-ratio
    .ÿmeglmÿoutcomeÿi.drug##c.t?ÿ||ÿpid:ÿ,ÿfamily(gaussian)ÿlink(identity)ÿnolrtestÿnolog

    Mixed-effectsÿGLMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNumberÿofÿobsÿÿÿÿÿ=ÿÿÿÿÿÿ2,500
    Family:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿGaussian
    Link:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿidentity
    Groupÿvariable:ÿÿÿÿÿÿÿÿÿÿÿÿÿpidÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNumberÿofÿgroupsÿÿ=ÿÿÿÿÿÿÿÿ250

    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿObsÿperÿgroup:
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿminÿ=ÿÿÿÿÿÿÿÿÿ10
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿavgÿ=ÿÿÿÿÿÿÿ10.0
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmaxÿ=ÿÿÿÿÿÿÿÿÿ10

    Integrationÿmethod:ÿmvaghermiteÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿIntegrationÿpts.ÿÿ=ÿÿÿÿÿÿÿÿÿÿ7

    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWaldÿchi2(11)ÿÿÿÿÿ=ÿÿÿÿÿÿ13.70
    Logÿlikelihoodÿ=ÿ-3827.0791ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿProbÿ>ÿchi2ÿÿÿÿÿÿÿ=ÿÿÿÿÿ0.2502
    -------------------------------------------------------------------------------
    ÿÿÿÿÿÿoutcomeÿ|ÿÿÿÿÿÿCoef.ÿÿÿStd.ÿErr.ÿÿÿÿÿÿzÿÿÿÿP>|z|ÿÿÿÿÿ[95%ÿConf.ÿInterval]
    --------------+----------------------------------------------------------------
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿÿÿÿÿÿdrugÿ|
    ÿÿÿÿÿÿÿÿÿÿÿ2ÿÿ|ÿÿ-.2973805ÿÿÿÿ.252619ÿÿÿÿ-1.18ÿÿÿ0.239ÿÿÿÿ-.7925046ÿÿÿÿ.1977436
    ÿÿÿÿÿÿÿÿÿÿÿ3ÿÿ|ÿÿ-.1544155ÿÿÿ.2650476ÿÿÿÿ-0.58ÿÿÿ0.560ÿÿÿÿ-.6738991ÿÿÿÿ.3650682
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿÿÿÿÿÿÿÿt1ÿ|ÿÿ-.0014516ÿÿÿ.0630328ÿÿÿÿ-0.02ÿÿÿ0.982ÿÿÿÿ-.1249935ÿÿÿÿ.1220904
    ÿÿÿÿÿÿÿÿÿÿÿt2ÿ|ÿÿ-.0694641ÿÿÿ.1940803ÿÿÿÿ-0.36ÿÿÿ0.720ÿÿÿÿ-.4498546ÿÿÿÿ.3109264
    ÿÿÿÿÿÿÿÿÿÿÿt3ÿ|ÿÿÿ.2489834ÿÿÿ.5637448ÿÿÿÿÿ0.44ÿÿÿ0.659ÿÿÿÿÿ-.855936ÿÿÿÿ1.353903
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿdrug#c.t1ÿ|
    ÿÿÿÿÿÿÿÿÿÿÿ2ÿÿ|ÿÿÿ.0937423ÿÿÿ.0855117ÿÿÿÿÿ1.10ÿÿÿ0.273ÿÿÿÿ-.0738576ÿÿÿÿ.2613421
    ÿÿÿÿÿÿÿÿÿÿÿ3ÿÿ|ÿÿ-.0056527ÿÿÿ.0897188ÿÿÿÿ-0.06ÿÿÿ0.950ÿÿÿÿ-.1814983ÿÿÿÿ.1701929
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿdrug#c.t2ÿ|
    ÿÿÿÿÿÿÿÿÿÿÿ2ÿÿ|ÿÿ-.2163079ÿÿÿ.2632938ÿÿÿÿ-0.82ÿÿÿ0.411ÿÿÿÿ-.7323543ÿÿÿÿ.2997385
    ÿÿÿÿÿÿÿÿÿÿÿ3ÿÿ|ÿÿÿ.2544791ÿÿÿ.2762476ÿÿÿÿÿ0.92ÿÿÿ0.357ÿÿÿÿ-.2869562ÿÿÿÿ.7959144
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿdrug#c.t3ÿ|
    ÿÿÿÿÿÿÿÿÿÿÿ2ÿÿ|ÿÿÿ.5711047ÿÿÿÿ.764789ÿÿÿÿÿ0.75ÿÿÿ0.455ÿÿÿÿ-.9278542ÿÿÿÿ2.070064
    ÿÿÿÿÿÿÿÿÿÿÿ3ÿÿ|ÿÿ-1.062344ÿÿÿ.8024158ÿÿÿÿ-1.32ÿÿÿ0.186ÿÿÿÿÿ-2.63505ÿÿÿÿ.5103621
    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿÿÿÿÿ_consÿ|ÿÿÿ.0661495ÿÿÿ.1862117ÿÿÿÿÿ0.36ÿÿÿ0.722ÿÿÿÿ-.2988187ÿÿÿÿ.4311176
    --------------+----------------------------------------------------------------
    pidÿÿÿÿÿÿÿÿÿÿÿ|
    ÿÿÿÿvar(_cons)|ÿÿÿ.9086033ÿÿÿÿ.090189ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.7479681ÿÿÿÿ1.103737
    --------------+----------------------------------------------------------------
    var(e.outcome)|ÿÿÿ.9919775ÿÿÿ.0295751ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.9356725ÿÿÿÿ1.051671
    -------------------------------------------------------------------------------

    .ÿestimatesÿstoreÿFull

    .ÿ
    .ÿconstraintÿdefineÿ1ÿ_b[1.drug#c.t1]ÿ=ÿ_b[2.drug#c.t1]

    .ÿconstraintÿdefineÿ2ÿ_b[1.drug#c.t2]ÿ=ÿ_b[2.drug#c.t2]

    .ÿconstraintÿdefineÿ3ÿ_b[1.drug#c.t3]ÿ=ÿ_b[2.drug#c.t3]

    .ÿ
    .ÿquietlyÿmeglmÿoutcomeÿi.drug##c.t?ÿ||ÿpid:ÿ,ÿfamily(gaussian)ÿlink(identity)ÿconstraints(1/3)ÿ///
    >ÿÿÿÿÿÿÿÿÿnolrtestÿnolog

    .ÿlrtestÿFull

    Likelihood-ratioÿtestÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLRÿchi2(3)ÿÿ=ÿÿÿÿÿÿ2.10
    (Assumption:ÿ.ÿnestedÿinÿFull)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿProbÿ>ÿchi2ÿ=ÿÿÿÿ0.5529

    .ÿ
    .ÿexit

    endÿofÿdo-file


    .

    Comment

    Working...
    X