﻿figure it out - a statistical consultancy from the Institute of Work Psychology, University of Sheffield

## Mplus code for mediation, moderation, and moderated mediation models

Model 54 (latent variable version): 1 or more mediators, in parallel if multiple (example uses 1), 4 moderators, 2 of which moderate the IV-Mediator path, with the other 2 moderating both the Mediator-DV path and the direct IV-DV path with all 2-way and 3-way interactions

Example Variables: 1 latent predictor X measured by 4 observed variables X1-X4, 1 latent mediator M measured by 4 observed variables M1-M4, 4 latent moderators W, Z, V, and Q, each measured by sets of 4 observed variables W1-W4, Z1-Z4, V1-V4, and Q1-Q4 respectively, 1 latent outcome Y measured by 4 observed variables Y1-Y4

Preliminary notes:

The code below assumes that

• The latent IV (factor X) is measured by continuous observed variables X1-X4.
• Any latent moderator(s) (factors W, V, Q, Z) are measured by continuous observed variables W1-W4, Z1-Z4, V1-V4, Q1-Q4 respectively.
• Any latent mediator(s) (factor M, or factors M1, M2, etc.) are measured by continuous observed variables M1-M4 or M1_1-M1-4, M2_1-M2_4 respectively.
• The latent outcome Y is measured by continuous observed variables Y1-Y4.

Model Diagram (factor indicator variables omitted for space/clarity reasons):

Statistical Diagram (factor indicator variables omitted for space/clarity reasons):

Model Equation(s):

Y = b0 + b1M + b2MV + b3MQ + b4MVQ + c1'X + c2'V + c3'Q + c4'XV + c5'XQ + c6'VQ + c7'XVQ
M = a0 + a1X + a2W + a3Z + a4XW + a5XZ

Algebra to calculate indirect and/or conditional effects by writing model as Y = a + bX:

Y = b0 + b1M + b2MV + b3MQ + b4MVQ + c1'X + c2'V + c3'Q + c4'XV + c5'XQ + c6'VQ + c7'XVQ
M = a0 + a1X + a2W + a3Z + a4XW + a5XZ

Hence... substituting in equation for M

Y = b0 + b1(a0 + a1X + a2W + a3Z + a4XW + a5XZ) + b2(a0 + a1X + a2W + a3Z + a4XW + a5XZ)V + b3(a0 + a1X + a2W + a3Z + a4XW + a5XZ)Q + b4(a0 + a1X + a2W + a3Z + a4XW + a5XZ)VQ + c1'X + c2'V + c3'Q + c4'XV + c5'XQ + c6'VQ + c7'XVQ

Hence... multiplying out brackets

Y = b0 + a0b1 + a1b1X + a2b1W + a3b1Z + a4b1XW + a5b1XZ + a0b2V + a1b2XV + a2b2WV + a3b2ZV + a4b2XWV + a5b2XZV + a0b3Q + a1b3XQ + a2b3WQ + a3b3ZQ + a4b3XWQ + a5b3XZQ + a0b4VQ + a1b4XVQ + a2b4WVQ + a3b4ZVQ + a4b4XWVQ + a5b4XZVQ + c1'X + c2'V + c3'Q + c4'XV + c5'XQ + c6'VQ + c7'XVQ

Hence... grouping terms into form Y = a + bX

Y = (b0 + a0b1 + a2b1W + a3b1Z + a0b2V + a2b2WV + a3b2ZV + a0b3Q + a2b3WQ + a3b3ZQ + a0b4VQ + a2b4WVQ + a3b4ZVQ + c2'V + c3'Q + c6'VQ) + (a1b1 + a4b1W + a5b1Z + a1b2V + a4b2WV + a5b2ZV + a1b3Q + a4b3WQ + a5b3ZQ + a1b4VQ + a4b4WVQ + a5b4ZVQ + c1' + c4'V + c5'Q + c7'VQ)X

Hence...

One indirect effect(s) of X on Y, conditional on W, Z, V, Q:

a1b1 + a4b1W + a5b1Z + a1b2V + a4b2WV + a5b2ZV + a1b3Q + a4b3WQ + a5b3ZQ + a1b4VQ + a4b4WVQ + a5b4ZVQ = (a1 + a4W + a5Z) (b1 + b2V + b3Q + b4VQ)

One direct effect of X on Y, conditional on V, Q:

c1' + c4'V + c5'Q + c7'VQ

Mplus code for the model:

! Latent predictor variable X measured by X1-X4
! Latent mediator M measured by 4 observed variables M1-M4
! Latent moderators W, Z, V, and Q, each measured by sets of 4 observed variables W1-W4, Z1-Z4, V1-V4, and Q1-Q4 respectively
! Latent outcome variable Y measured by Y1-Y4

USEVARIABLES = X1 X2 X3 X4 M1 M2 M3 M4
W1 W2 W3 W4 Z1 Z2 Z3 Z4 V1 V2 V3 V4 Q1 Q2 Q3 Q4
Y1 Y2 Y3 Y4;

ANALYSIS:
TYPE = GENERAL RANDOM;
ESTIMATOR = ML;
ALGORITHM = INTEGRATION;

! In model statement first state measurement model
! Then create any latent interactions required
! Then state structural model naming each path and intercept using parentheses

MODEL:

! Measurement model
! Identify moderator factors by fixing variance = 1 (instead of first loading)
! This makes these factors standardised
X BY X1 X2 X3 X4;
M BY M1 M2 M3 M4;
W BY W1* W2 W3 W4;
Z BY Z1* Z2 Z3 Z4;
V BY V1* V2 V3 V4;
Q BY Q1* Q2 Q3 Q4;
Y BY Y1 Y2 Y3 Y4;

W@1;   Z@1;   V@1;   Q@1;

! Create latent interactions
MV | M XWITH V;
MQ | M XWITH Q;
XW | X XWITH W;
XZ | X XWITH Z;
XV | X XWITH V;
XQ | X XWITH Q;
VQ | V XWITH Q;
MVQ | M XWITH VQ;
XVQ | X XWITH VQ;

! Fit structural model and name parameters
! Note that intercepts of M, Y are fixed = 0 since they are latent vars
! so no code to state and name them as parameters
Y ON M (b1);
Y ON MV (b2);
Y ON MQ (b3);
Y ON MVQ (b4);

Y ON X (cdash1);
Y ON V (cdash2);
Y ON Q (cdash3);
Y ON XV (cdash4);
Y ON XQ (cdash5);
Y ON VQ (cdash6);
Y ON XVQ (cdash7);

M ON X (a1);
M ON W (a2);
M ON Z (a3);
M ON XW (a4);
M ON XZ (a5);

! Use model constraint subcommand to test conditional indirect effects
! You need to pick low, medium and high moderator values for W, Z, V, Q
! for example, of 1 SD below mean, mean, 1 SD above mean

! 4 moderators, 3 values for each, gives 81 combinations
! arbitrary naming convention for conditional indirect and total effects used below:
! HHML = high value of W, high value of Z, medium value of V and low value of Q.

MODEL CONSTRAINT:
NEW(LOW_W MED_W HIGH_W LOW_Z MED_Z HIGH_Z LOW_V MED_V HIGH_V LOW_Q MED_Q HIGH_Q
ILLLL IMLLL IHLLL ILMLL IMMLL IHMLL ILHLL IMHLL IHHLL
ILLML IMLML IHLML ILMML IMMML IHMML ILHML IMHML IHHML
ILLHL IMLHL IHLHL ILMHL IMMHL IHMHL ILHHL IMHHL IHHHL
ILLLM IMLLM IHLLM ILMLM IMMLM IHMLM ILHLM IMHLM IHHLM
ILLMM IMLMM IHLMM ILMMM IMMMM IHMMM ILHMM IMHMM IHHMM
ILLHM IMLHM IHLHM ILMHM IMMHM IHMHM ILHHM IMHHM IHHHM
ILLLH IMLLH IHLLH ILMLH IMMLH IHMLH ILHLH IMHLH IHHLH
ILLMH IMLMH IHLMH ILMMH IMMMH IHMMH ILHMH IMHMH IHHMH
ILLHH IMLHH IHLHH ILMHH IMMHH IHMHH ILHHH IMHHH IHHHH
DLOV_LOQ DMEV_LOQ DHIV_LOQ DLOV_MEQ DMEV_MEQ DHIV_MEQ
DLOV_HIQ DMEV_HIQ DHIV_HIQ
TLLLL TMLLL THLLL TLMLL TMMLL THMLL TLHLL TMHLL THHLL
TLLML TMLML THLML TLMML TMMML THMML TLHML TMHML THHML
TLLHL TMLHL THLHL TLMHL TMMHL THMHL TLHHL TMHHL THHHL
TLLLM TMLLM THLLM TLMLM TMMLM THMLM TLHLM TMHLM THHLM
TLLMM TMLMM THLMM TLMMM TMMMM THMMM TLHMM TMHMM THHMM
TLLHM TMLHM THLHM TLMHM TMMHM THMHM TLHHM TMHHM THHHM
TLLLH TMLLH THLLH TLMLH TMMLH THMLH TLHLH TMHLH THHLH
TLLMH TMLMH THLMH TLMMH TMMMH THMMH TLHMH TMHMH THHMH
TLLHH TMLHH THLHH TLMHH TMMHH THMHH TLHHH TMHHH THHHH);

LOW_W = -1;   ! -1 SD below mean value of W
MED_W = 0;   ! mean value of W
HIGH_W = 1;   ! +1 SD above mean value of W

LOW_Z = -1;   ! -1 SD below mean value of Z
MED_Z = 0;   ! mean value of Z
HIGH_Z = 1;   ! +1 SD above mean value of Z

LOW_V = -1;   ! -1 SD below mean value of V
MED_V = 0;   ! mean value of V
HIGH_V = 1;   ! +1 SD above mean value of V

LOW_Q = -1;   ! -1 SD below mean value of Q
MED_Q = 0;   ! mean value of Q
HIGH_Q = 1;   ! +1 SD above mean value of Q

! Calc conditional indirect effects for each combination of moderator values

ILLLL = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b2*LOW_V +
a4*b2*LOW_W*LOW_V + a5*b2*LOW_Z*LOW_V + a1*b3*LOW_Q +
a4*b3*LOW_W*LOW_Q + a5*b3*LOW_Z*LOW_Q + a1*b4*LOW_V*LOW_Q +
a4*b4*LOW_W*LOW_V*LOW_Q + a5*b4*LOW_Z*LOW_V*LOW_Q;
IMLLL = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b2*LOW_V +
a4*b2*MED_W*LOW_V + a5*b2*LOW_Z*LOW_V + a1*b3*LOW_Q +
a4*b3*MED_W*LOW_Q + a5*b3*LOW_Z*LOW_Q + a1*b4*LOW_V*LOW_Q +
a4*b4*MED_W*LOW_V*LOW_Q + a5*b4*LOW_Z*LOW_V*LOW_Q;
IHLLL = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b2*LOW_V +
a4*b2*HIGH_W*LOW_V + a5*b2*LOW_Z*LOW_V + a1*b3*LOW_Q +
a4*b3*HIGH_W*LOW_Q + a5*b3*LOW_Z*LOW_Q + a1*b4*LOW_V*LOW_Q +
a4*b4*HIGH_W*LOW_V*LOW_Q + a5*b4*LOW_Z*LOW_V*LOW_Q;

ILMLL = a1*b1 + a4*b1*LOW_W + a5*b1*MED_Z + a1*b2*LOW_V +
a4*b2*LOW_W*LOW_V + a5*b2*MED_Z*LOW_V + a1*b3*LOW_Q +
a4*b3*LOW_W*LOW_Q + a5*b3*MED_Z*LOW_Q + a1*b4*LOW_V*LOW_Q +
a4*b4*LOW_W*LOW_V*LOW_Q + a5*b4*MED_Z*LOW_V*LOW_Q;
IMMLL = a1*b1 + a4*b1*MED_W + a5*b1*MED_Z + a1*b2*LOW_V +
a4*b2*MED_W*LOW_V + a5*b2*MED_Z*LOW_V + a1*b3*LOW_Q +
a4*b3*MED_W*LOW_Q + a5*b3*MED_Z*LOW_Q + a1*b4*LOW_V*LOW_Q +
a4*b4*MED_W*LOW_V*LOW_Q + a5*b4*MED_Z*LOW_V*LOW_Q;
IHMLL = a1*b1 + a4*b1*HIGH_W + a5*b1*MED_Z + a1*b2*LOW_V +
a4*b2*HIGH_W*LOW_V + a5*b2*MED_Z*LOW_V + a1*b3*LOW_Q +
a4*b3*HIGH_W*LOW_Q + a5*b3*MED_Z*LOW_Q + a1*b4*LOW_V*LOW_Q +
a4*b4*HIGH_W*LOW_V*LOW_Q + a5*b4*MED_Z*LOW_V*LOW_Q;

ILHLL = a1*b1 + a4*b1*LOW_W + a5*b1*HIGH_Z + a1*b2*LOW_V +
a4*b2*LOW_W*LOW_V + a5*b2*HIGH_Z*LOW_V + a1*b3*LOW_Q +
a4*b3*LOW_W*LOW_Q + a5*b3*HIGH_Z*LOW_Q + a1*b4*LOW_V*LOW_Q +
a4*b4*LOW_W*LOW_V*LOW_Q + a5*b4*HIGH_Z*LOW_V*LOW_Q;
IMHLL = a1*b1 + a4*b1*MED_W + a5*b1*HIGH_Z + a1*b2*LOW_V +
a4*b2*MED_W*LOW_V + a5*b2*HIGH_Z*LOW_V + a1*b3*LOW_Q +
a4*b3*MED_W*LOW_Q + a5*b3*HIGH_Z*LOW_Q + a1*b4*LOW_V*LOW_Q +
a4*b4*MED_W*LOW_V*LOW_Q + a5*b4*HIGH_Z*LOW_V*LOW_Q;
IHHLL = a1*b1 + a4*b1*HIGH_W + a5*b1*HIGH_Z + a1*b2*LOW_V +
a4*b2*HIGH_W*LOW_V + a5*b2*HIGH_Z*LOW_V + a1*b3*LOW_Q +
a4*b3*HIGH_W*LOW_Q + a5*b3*HIGH_Z*LOW_Q + a1*b4*LOW_V*LOW_Q +
a4*b4*HIGH_W*LOW_V*LOW_Q + a5*b4*HIGH_Z*LOW_V*LOW_Q;

ILLML = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b2*MED_V +
a4*b2*LOW_W*MED_V + a5*b2*LOW_Z*MED_V + a1*b3*LOW_Q +
a4*b3*LOW_W*LOW_Q + a5*b3*LOW_Z*LOW_Q + a1*b4*MED_V*LOW_Q +
a4*b4*LOW_W*MED_V*LOW_Q + a5*b4*LOW_Z*MED_V*LOW_Q;
IMLML = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b2*MED_V +
a4*b2*MED_W*MED_V + a5*b2*LOW_Z*MED_V + a1*b3*LOW_Q +
a4*b3*MED_W*LOW_Q + a5*b3*LOW_Z*LOW_Q + a1*b4*MED_V*LOW_Q +
a4*b4*MED_W*MED_V*LOW_Q + a5*b4*LOW_Z*MED_V*LOW_Q;
IHLML = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b2*MED_V +
a4*b2*HIGH_W*MED_V + a5*b2*LOW_Z*MED_V + a1*b3*LOW_Q +
a4*b3*HIGH_W*LOW_Q + a5*b3*LOW_Z*LOW_Q + a1*b4*MED_V*LOW_Q +
a4*b4*HIGH_W*MED_V*LOW_Q + a5*b4*LOW_Z*MED_V*LOW_Q;

ILMML = a1*b1 + a4*b1*LOW_W + a5*b1*MED_Z + a1*b2*MED_V +
a4*b2*LOW_W*MED_V + a5*b2*MED_Z*MED_V + a1*b3*LOW_Q +
a4*b3*LOW_W*LOW_Q + a5*b3*MED_Z*LOW_Q + a1*b4*MED_V*LOW_Q +
a4*b4*LOW_W*MED_V*LOW_Q + a5*b4*MED_Z*MED_V*LOW_Q;
IMMML = a1*b1 + a4*b1*MED_W + a5*b1*MED_Z + a1*b2*MED_V +
a4*b2*MED_W*MED_V + a5*b2*MED_Z*MED_V + a1*b3*LOW_Q +
a4*b3*MED_W*LOW_Q + a5*b3*MED_Z*LOW_Q + a1*b4*MED_V*LOW_Q +
a4*b4*MED_W*MED_V*LOW_Q + a5*b4*MED_Z*MED_V*LOW_Q;
IHMML = a1*b1 + a4*b1*HIGH_W + a5*b1*MED_Z + a1*b2*MED_V +
a4*b2*HIGH_W*MED_V + a5*b2*MED_Z*MED_V + a1*b3*LOW_Q +
a4*b3*HIGH_W*LOW_Q + a5*b3*MED_Z*LOW_Q + a1*b4*MED_V*LOW_Q +
a4*b4*HIGH_W*MED_V*LOW_Q + a5*b4*MED_Z*MED_V*LOW_Q;

ILHML = a1*b1 + a4*b1*LOW_W + a5*b1*HIGH_Z + a1*b2*MED_V +
a4*b2*LOW_W*MED_V + a5*b2*HIGH_Z*MED_V + a1*b3*LOW_Q +
a4*b3*LOW_W*LOW_Q + a5*b3*HIGH_Z*LOW_Q + a1*b4*MED_V*LOW_Q +
a4*b4*LOW_W*MED_V*LOW_Q + a5*b4*HIGH_Z*MED_V*LOW_Q;
IMHML = a1*b1 + a4*b1*MED_W + a5*b1*HIGH_Z + a1*b2*MED_V +
a4*b2*MED_W*MED_V + a5*b2*HIGH_Z*MED_V + a1*b3*LOW_Q +
a4*b3*MED_W*LOW_Q + a5*b3*HIGH_Z*LOW_Q + a1*b4*MED_V*LOW_Q +
a4*b4*MED_W*MED_V*LOW_Q + a5*b4*HIGH_Z*MED_V*LOW_Q;
IHHML = a1*b1 + a4*b1*HIGH_W + a5*b1*HIGH_Z + a1*b2*MED_V +
a4*b2*HIGH_W*MED_V + a5*b2*HIGH_Z*MED_V + a1*b3*LOW_Q +
a4*b3*HIGH_W*LOW_Q + a5*b3*HIGH_Z*LOW_Q + a1*b4*MED_V*LOW_Q +
a4*b4*HIGH_W*MED_V*LOW_Q + a5*b4*HIGH_Z*MED_V*LOW_Q;

ILLHL = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b2*HIGH_V +
a4*b2*LOW_W*HIGH_V + a5*b2*LOW_Z*HIGH_V + a1*b3*LOW_Q +
a4*b3*LOW_W*LOW_Q + a5*b3*LOW_Z*LOW_Q + a1*b4*HIGH_V*LOW_Q +
a4*b4*LOW_W*HIGH_V*LOW_Q + a5*b4*LOW_Z*HIGH_V*LOW_Q;
IMLHL = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b2*HIGH_V +
a4*b2*MED_W*HIGH_V + a5*b2*LOW_Z*HIGH_V + a1*b3*LOW_Q +
a4*b3*MED_W*LOW_Q + a5*b3*LOW_Z*LOW_Q + a1*b4*HIGH_V*LOW_Q +
a4*b4*MED_W*HIGH_V*LOW_Q + a5*b4*LOW_Z*HIGH_V*LOW_Q;
IHLHL = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b2*HIGH_V +
a4*b2*HIGH_W*HIGH_V + a5*b2*LOW_Z*HIGH_V + a1*b3*LOW_Q +
a4*b3*HIGH_W*LOW_Q + a5*b3*LOW_Z*LOW_Q + a1*b4*HIGH_V*LOW_Q +
a4*b4*HIGH_W*HIGH_V*LOW_Q + a5*b4*LOW_Z*HIGH_V*LOW_Q;

ILMHL = a1*b1 + a4*b1*LOW_W + a5*b1*MED_Z + a1*b2*HIGH_V +
a4*b2*LOW_W*HIGH_V + a5*b2*MED_Z*HIGH_V + a1*b3*LOW_Q +
a4*b3*LOW_W*LOW_Q + a5*b3*MED_Z*LOW_Q + a1*b4*HIGH_V*LOW_Q +
a4*b4*LOW_W*HIGH_V*LOW_Q + a5*b4*MED_Z*HIGH_V*LOW_Q;
IMMHL = a1*b1 + a4*b1*MED_W + a5*b1*MED_Z + a1*b2*HIGH_V +
a4*b2*MED_W*HIGH_V + a5*b2*MED_Z*HIGH_V + a1*b3*LOW_Q +
a4*b3*MED_W*LOW_Q + a5*b3*MED_Z*LOW_Q + a1*b4*HIGH_V*LOW_Q +
a4*b4*MED_W*HIGH_V*LOW_Q + a5*b4*MED_Z*HIGH_V*LOW_Q;
IHMHL = a1*b1 + a4*b1*HIGH_W + a5*b1*MED_Z + a1*b2*HIGH_V +
a4*b2*HIGH_W*HIGH_V + a5*b2*MED_Z*HIGH_V + a1*b3*LOW_Q +
a4*b3*HIGH_W*LOW_Q + a5*b3*MED_Z*LOW_Q + a1*b4*HIGH_V*LOW_Q +
a4*b4*HIGH_W*HIGH_V*LOW_Q + a5*b4*MED_Z*HIGH_V*LOW_Q;

ILHHL = a1*b1 + a4*b1*LOW_W + a5*b1*HIGH_Z + a1*b2*HIGH_V +
a4*b2*LOW_W*HIGH_V + a5*b2*HIGH_Z*HIGH_V + a1*b3*LOW_Q +
a4*b3*LOW_W*LOW_Q + a5*b3*HIGH_Z*LOW_Q + a1*b4*HIGH_V*LOW_Q +
a4*b4*LOW_W*HIGH_V*LOW_Q + a5*b4*HIGH_Z*HIGH_V*LOW_Q;
IMHHL = a1*b1 + a4*b1*MED_W + a5*b1*HIGH_Z + a1*b2*HIGH_V +
a4*b2*MED_W*HIGH_V + a5*b2*HIGH_Z*HIGH_V + a1*b3*LOW_Q +
a4*b3*MED_W*LOW_Q + a5*b3*HIGH_Z*LOW_Q + a1*b4*HIGH_V*LOW_Q +
a4*b4*MED_W*HIGH_V*LOW_Q + a5*b4*HIGH_Z*HIGH_V*LOW_Q;
IHHHL = a1*b1 + a4*b1*HIGH_W + a5*b1*HIGH_Z + a1*b2*HIGH_V +
a4*b2*HIGH_W*HIGH_V + a5*b2*HIGH_Z*HIGH_V + a1*b3*LOW_Q +
a4*b3*HIGH_W*LOW_Q + a5*b3*HIGH_Z*LOW_Q + a1*b4*HIGH_V*LOW_Q +
a4*b4*HIGH_W*HIGH_V*LOW_Q + a5*b4*HIGH_Z*HIGH_V*LOW_Q;

ILLLM = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b2*LOW_V +
a4*b2*LOW_W*LOW_V + a5*b2*LOW_Z*LOW_V + a1*b3*MED_Q +
a4*b3*LOW_W*MED_Q + a5*b3*LOW_Z*MED_Q + a1*b4*LOW_V*MED_Q +
a4*b4*LOW_W*LOW_V*MED_Q + a5*b4*LOW_Z*LOW_V*MED_Q;
IMLLM = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b2*LOW_V +
a4*b2*MED_W*LOW_V + a5*b2*LOW_Z*LOW_V + a1*b3*MED_Q +
a4*b3*MED_W*MED_Q + a5*b3*LOW_Z*MED_Q + a1*b4*LOW_V*MED_Q +
a4*b4*MED_W*LOW_V*MED_Q + a5*b4*LOW_Z*LOW_V*MED_Q;
IHLLM = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b2*LOW_V +
a4*b2*HIGH_W*LOW_V + a5*b2*LOW_Z*LOW_V + a1*b3*MED_Q +
a4*b3*HIGH_W*MED_Q + a5*b3*LOW_Z*MED_Q + a1*b4*LOW_V*MED_Q +
a4*b4*HIGH_W*LOW_V*MED_Q + a5*b4*LOW_Z*LOW_V*MED_Q;

ILMLM = a1*b1 + a4*b1*LOW_W + a5*b1*MED_Z + a1*b2*LOW_V +
a4*b2*LOW_W*LOW_V + a5*b2*MED_Z*LOW_V + a1*b3*MED_Q +
a4*b3*LOW_W*MED_Q + a5*b3*MED_Z*MED_Q + a1*b4*LOW_V*MED_Q +
a4*b4*LOW_W*LOW_V*MED_Q + a5*b4*MED_Z*LOW_V*MED_Q;
IMMLM = a1*b1 + a4*b1*MED_W + a5*b1*MED_Z + a1*b2*LOW_V +
a4*b2*MED_W*LOW_V + a5*b2*MED_Z*LOW_V + a1*b3*MED_Q +
a4*b3*MED_W*MED_Q + a5*b3*MED_Z*MED_Q + a1*b4*LOW_V*MED_Q +
a4*b4*MED_W*LOW_V*MED_Q + a5*b4*MED_Z*LOW_V*MED_Q;
IHMLM = a1*b1 + a4*b1*HIGH_W + a5*b1*MED_Z + a1*b2*LOW_V +
a4*b2*HIGH_W*LOW_V + a5*b2*MED_Z*LOW_V + a1*b3*MED_Q +
a4*b3*HIGH_W*MED_Q + a5*b3*MED_Z*MED_Q + a1*b4*LOW_V*MED_Q +
a4*b4*HIGH_W*LOW_V*MED_Q + a5*b4*MED_Z*LOW_V*MED_Q;

ILHLM = a1*b1 + a4*b1*LOW_W + a5*b1*HIGH_Z + a1*b2*LOW_V +
a4*b2*LOW_W*LOW_V + a5*b2*HIGH_Z*LOW_V + a1*b3*MED_Q +
a4*b3*LOW_W*MED_Q + a5*b3*HIGH_Z*MED_Q + a1*b4*LOW_V*MED_Q +
a4*b4*LOW_W*LOW_V*MED_Q + a5*b4*HIGH_Z*LOW_V*MED_Q;
IMHLM = a1*b1 + a4*b1*MED_W + a5*b1*HIGH_Z + a1*b2*LOW_V +
a4*b2*MED_W*LOW_V + a5*b2*HIGH_Z*LOW_V + a1*b3*MED_Q +
a4*b3*MED_W*MED_Q + a5*b3*HIGH_Z*MED_Q + a1*b4*LOW_V*MED_Q +
a4*b4*MED_W*LOW_V*MED_Q + a5*b4*HIGH_Z*LOW_V*MED_Q;
IHHLM = a1*b1 + a4*b1*HIGH_W + a5*b1*HIGH_Z + a1*b2*LOW_V +
a4*b2*HIGH_W*LOW_V + a5*b2*HIGH_Z*LOW_V + a1*b3*MED_Q +
a4*b3*HIGH_W*MED_Q + a5*b3*HIGH_Z*MED_Q + a1*b4*LOW_V*MED_Q +
a4*b4*HIGH_W*LOW_V*MED_Q + a5*b4*HIGH_Z*LOW_V*MED_Q;

ILLMM = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b2*MED_V +
a4*b2*LOW_W*MED_V + a5*b2*LOW_Z*MED_V + a1*b3*MED_Q +
a4*b3*LOW_W*MED_Q + a5*b3*LOW_Z*MED_Q + a1*b4*MED_V*MED_Q +
a4*b4*LOW_W*MED_V*MED_Q + a5*b4*LOW_Z*MED_V*MED_Q;
IMLMM = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b2*MED_V +
a4*b2*MED_W*MED_V + a5*b2*LOW_Z*MED_V + a1*b3*MED_Q +
a4*b3*MED_W*MED_Q + a5*b3*LOW_Z*MED_Q + a1*b4*MED_V*MED_Q +
a4*b4*MED_W*MED_V*MED_Q + a5*b4*LOW_Z*MED_V*MED_Q;
IHLMM = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b2*MED_V +
a4*b2*HIGH_W*MED_V + a5*b2*LOW_Z*MED_V + a1*b3*MED_Q +
a4*b3*HIGH_W*MED_Q + a5*b3*LOW_Z*MED_Q + a1*b4*MED_V*MED_Q +
a4*b4*HIGH_W*MED_V*MED_Q + a5*b4*LOW_Z*MED_V*MED_Q;

ILMMM = a1*b1 + a4*b1*LOW_W + a5*b1*MED_Z + a1*b2*MED_V +
a4*b2*LOW_W*MED_V + a5*b2*MED_Z*MED_V + a1*b3*MED_Q +
a4*b3*LOW_W*MED_Q + a5*b3*MED_Z*MED_Q + a1*b4*MED_V*MED_Q +
a4*b4*LOW_W*MED_V*MED_Q + a5*b4*MED_Z*MED_V*MED_Q;
IMMMM = a1*b1 + a4*b1*MED_W + a5*b1*MED_Z + a1*b2*MED_V +
a4*b2*MED_W*MED_V + a5*b2*MED_Z*MED_V + a1*b3*MED_Q +
a4*b3*MED_W*MED_Q + a5*b3*MED_Z*MED_Q + a1*b4*MED_V*MED_Q +
a4*b4*MED_W*MED_V*MED_Q + a5*b4*MED_Z*MED_V*MED_Q;
IHMMM = a1*b1 + a4*b1*HIGH_W + a5*b1*MED_Z + a1*b2*MED_V +
a4*b2*HIGH_W*MED_V + a5*b2*MED_Z*MED_V + a1*b3*MED_Q +
a4*b3*HIGH_W*MED_Q + a5*b3*MED_Z*MED_Q + a1*b4*MED_V*MED_Q +
a4*b4*HIGH_W*MED_V*MED_Q + a5*b4*MED_Z*MED_V*MED_Q;

ILHMM = a1*b1 + a4*b1*LOW_W + a5*b1*HIGH_Z + a1*b2*MED_V +
a4*b2*LOW_W*MED_V + a5*b2*HIGH_Z*MED_V + a1*b3*MED_Q +
a4*b3*LOW_W*MED_Q + a5*b3*HIGH_Z*MED_Q + a1*b4*MED_V*MED_Q +
a4*b4*LOW_W*MED_V*MED_Q + a5*b4*HIGH_Z*MED_V*MED_Q;
IMHMM = a1*b1 + a4*b1*MED_W + a5*b1*HIGH_Z + a1*b2*MED_V +
a4*b2*MED_W*MED_V + a5*b2*HIGH_Z*MED_V + a1*b3*MED_Q +
a4*b3*MED_W*MED_Q + a5*b3*HIGH_Z*MED_Q + a1*b4*MED_V*MED_Q +
a4*b4*MED_W*MED_V*MED_Q + a5*b4*HIGH_Z*MED_V*MED_Q;
IHHMM = a1*b1 + a4*b1*HIGH_W + a5*b1*HIGH_Z + a1*b2*MED_V +
a4*b2*HIGH_W*MED_V + a5*b2*HIGH_Z*MED_V + a1*b3*MED_Q +
a4*b3*HIGH_W*MED_Q + a5*b3*HIGH_Z*MED_Q + a1*b4*MED_V*MED_Q +
a4*b4*HIGH_W*MED_V*MED_Q + a5*b4*HIGH_Z*MED_V*MED_Q;

ILLHM = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b2*HIGH_V +
a4*b2*LOW_W*HIGH_V + a5*b2*LOW_Z*HIGH_V + a1*b3*MED_Q +
a4*b3*LOW_W*MED_Q + a5*b3*LOW_Z*MED_Q + a1*b4*HIGH_V*MED_Q +
a4*b4*LOW_W*HIGH_V*MED_Q + a5*b4*LOW_Z*HIGH_V*MED_Q;
IMLHM = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b2*HIGH_V +
a4*b2*MED_W*HIGH_V + a5*b2*LOW_Z*HIGH_V + a1*b3*MED_Q +
a4*b3*MED_W*MED_Q + a5*b3*LOW_Z*MED_Q + a1*b4*HIGH_V*MED_Q +
a4*b4*MED_W*HIGH_V*MED_Q + a5*b4*LOW_Z*HIGH_V*MED_Q;
IHLHM = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b2*HIGH_V +
a4*b2*HIGH_W*HIGH_V + a5*b2*LOW_Z*HIGH_V + a1*b3*MED_Q +
a4*b3*HIGH_W*MED_Q + a5*b3*LOW_Z*MED_Q + a1*b4*HIGH_V*MED_Q +
a4*b4*HIGH_W*HIGH_V*MED_Q + a5*b4*LOW_Z*HIGH_V*MED_Q;

ILMHM = a1*b1 + a4*b1*LOW_W + a5*b1*MED_Z + a1*b2*HIGH_V +
a4*b2*LOW_W*HIGH_V + a5*b2*MED_Z*HIGH_V + a1*b3*MED_Q +
a4*b3*LOW_W*MED_Q + a5*b3*MED_Z*MED_Q + a1*b4*HIGH_V*MED_Q +
a4*b4*LOW_W*HIGH_V*MED_Q + a5*b4*MED_Z*HIGH_V*MED_Q;
IMMHM = a1*b1 + a4*b1*MED_W + a5*b1*MED_Z + a1*b2*HIGH_V +
a4*b2*MED_W*HIGH_V + a5*b2*MED_Z*HIGH_V + a1*b3*MED_Q +
a4*b3*MED_W*MED_Q + a5*b3*MED_Z*MED_Q + a1*b4*HIGH_V*MED_Q +
a4*b4*MED_W*HIGH_V*MED_Q + a5*b4*MED_Z*HIGH_V*MED_Q;
IHMHM = a1*b1 + a4*b1*HIGH_W + a5*b1*MED_Z + a1*b2*HIGH_V +
a4*b2*HIGH_W*HIGH_V + a5*b2*MED_Z*HIGH_V + a1*b3*MED_Q +
a4*b3*HIGH_W*MED_Q + a5*b3*MED_Z*MED_Q + a1*b4*HIGH_V*MED_Q +
a4*b4*HIGH_W*HIGH_V*MED_Q + a5*b4*MED_Z*HIGH_V*MED_Q;

ILHHM = a1*b1 + a4*b1*LOW_W + a5*b1*HIGH_Z + a1*b2*HIGH_V +
a4*b2*LOW_W*HIGH_V + a5*b2*HIGH_Z*HIGH_V + a1*b3*MED_Q +
a4*b3*LOW_W*MED_Q + a5*b3*HIGH_Z*MED_Q + a1*b4*HIGH_V*MED_Q +
a4*b4*LOW_W*HIGH_V*MED_Q + a5*b4*HIGH_Z*HIGH_V*MED_Q;
IMHHM = a1*b1 + a4*b1*MED_W + a5*b1*HIGH_Z + a1*b2*HIGH_V +
a4*b2*MED_W*HIGH_V + a5*b2*HIGH_Z*HIGH_V + a1*b3*MED_Q +
a4*b3*MED_W*MED_Q + a5*b3*HIGH_Z*MED_Q + a1*b4*HIGH_V*MED_Q +
a4*b4*MED_W*HIGH_V*MED_Q + a5*b4*HIGH_Z*HIGH_V*MED_Q;
IHHHM = a1*b1 + a4*b1*HIGH_W + a5*b1*HIGH_Z + a1*b2*HIGH_V +
a4*b2*HIGH_W*HIGH_V + a5*b2*HIGH_Z*HIGH_V + a1*b3*MED_Q +
a4*b3*HIGH_W*MED_Q + a5*b3*HIGH_Z*MED_Q + a1*b4*HIGH_V*MED_Q +
a4*b4*HIGH_W*HIGH_V*MED_Q + a5*b4*HIGH_Z*HIGH_V*MED_Q;

ILLLH = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b2*LOW_V +
a4*b2*LOW_W*LOW_V + a5*b2*LOW_Z*LOW_V + a1*b3*HIGH_Q +
a4*b3*LOW_W*HIGH_Q + a5*b3*LOW_Z*HIGH_Q + a1*b4*LOW_V*HIGH_Q +
a4*b4*LOW_W*LOW_V*HIGH_Q + a5*b4*LOW_Z*LOW_V*HIGH_Q;
IMLLH = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b2*LOW_V +
a4*b2*MED_W*LOW_V + a5*b2*LOW_Z*LOW_V + a1*b3*HIGH_Q +
a4*b3*MED_W*HIGH_Q + a5*b3*LOW_Z*HIGH_Q + a1*b4*LOW_V*HIGH_Q +
a4*b4*MED_W*LOW_V*HIGH_Q + a5*b4*LOW_Z*LOW_V*HIGH_Q;
IHLLH = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b2*LOW_V +
a4*b2*HIGH_W*LOW_V + a5*b2*LOW_Z*LOW_V + a1*b3*HIGH_Q +
a4*b3*HIGH_W*HIGH_Q + a5*b3*LOW_Z*HIGH_Q + a1*b4*LOW_V*HIGH_Q +
a4*b4*HIGH_W*LOW_V*HIGH_Q + a5*b4*LOW_Z*LOW_V*HIGH_Q;

ILMLH = a1*b1 + a4*b1*LOW_W + a5*b1*MED_Z + a1*b2*LOW_V +
a4*b2*LOW_W*LOW_V + a5*b2*MED_Z*LOW_V + a1*b3*HIGH_Q +
a4*b3*LOW_W*HIGH_Q + a5*b3*MED_Z*HIGH_Q + a1*b4*LOW_V*HIGH_Q +
a4*b4*LOW_W*LOW_V*HIGH_Q + a5*b4*MED_Z*LOW_V*HIGH_Q;
IMMLH = a1*b1 + a4*b1*MED_W + a5*b1*MED_Z + a1*b2*LOW_V +
a4*b2*MED_W*LOW_V + a5*b2*MED_Z*LOW_V + a1*b3*HIGH_Q +
a4*b3*MED_W*HIGH_Q + a5*b3*MED_Z*HIGH_Q + a1*b4*LOW_V*HIGH_Q +
a4*b4*MED_W*LOW_V*HIGH_Q + a5*b4*MED_Z*LOW_V*HIGH_Q;
IHMLH = a1*b1 + a4*b1*HIGH_W + a5*b1*MED_Z + a1*b2*LOW_V +
a4*b2*HIGH_W*LOW_V + a5*b2*MED_Z*LOW_V + a1*b3*HIGH_Q +
a4*b3*HIGH_W*HIGH_Q + a5*b3*MED_Z*HIGH_Q + a1*b4*LOW_V*HIGH_Q +
a4*b4*HIGH_W*LOW_V*HIGH_Q + a5*b4*MED_Z*LOW_V*HIGH_Q;

ILHLH = a1*b1 + a4*b1*LOW_W + a5*b1*HIGH_Z + a1*b2*LOW_V +
a4*b2*LOW_W*LOW_V + a5*b2*HIGH_Z*LOW_V + a1*b3*HIGH_Q +
a4*b3*LOW_W*HIGH_Q + a5*b3*HIGH_Z*HIGH_Q + a1*b4*LOW_V*HIGH_Q +
a4*b4*LOW_W*LOW_V*HIGH_Q + a5*b4*HIGH_Z*LOW_V*HIGH_Q;
IMHLH = a1*b1 + a4*b1*MED_W + a5*b1*HIGH_Z + a1*b2*LOW_V +
a4*b2*MED_W*LOW_V + a5*b2*HIGH_Z*LOW_V + a1*b3*HIGH_Q +
a4*b3*MED_W*HIGH_Q + a5*b3*HIGH_Z*HIGH_Q + a1*b4*LOW_V*HIGH_Q +
a4*b4*MED_W*LOW_V*HIGH_Q + a5*b4*HIGH_Z*LOW_V*HIGH_Q;
IHHLH = a1*b1 + a4*b1*HIGH_W + a5*b1*HIGH_Z + a1*b2*LOW_V +
a4*b2*HIGH_W*LOW_V + a5*b2*HIGH_Z*LOW_V + a1*b3*HIGH_Q +
a4*b3*HIGH_W*HIGH_Q + a5*b3*HIGH_Z*HIGH_Q + a1*b4*LOW_V*HIGH_Q +
a4*b4*HIGH_W*LOW_V*HIGH_Q + a5*b4*HIGH_Z*LOW_V*HIGH_Q;

ILLMH = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b2*MED_V +
a4*b2*LOW_W*MED_V + a5*b2*LOW_Z*MED_V + a1*b3*HIGH_Q +
a4*b3*LOW_W*HIGH_Q + a5*b3*LOW_Z*HIGH_Q + a1*b4*MED_V*HIGH_Q +
a4*b4*LOW_W*MED_V*HIGH_Q + a5*b4*LOW_Z*MED_V*HIGH_Q;
IMLMH = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b2*MED_V +
a4*b2*MED_W*MED_V + a5*b2*LOW_Z*MED_V + a1*b3*HIGH_Q +
a4*b3*MED_W*HIGH_Q + a5*b3*LOW_Z*HIGH_Q + a1*b4*MED_V*HIGH_Q +
a4*b4*MED_W*MED_V*HIGH_Q + a5*b4*LOW_Z*MED_V*HIGH_Q;
IHLMH = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b2*MED_V +
a4*b2*HIGH_W*MED_V + a5*b2*LOW_Z*MED_V + a1*b3*HIGH_Q +
a4*b3*HIGH_W*HIGH_Q + a5*b3*LOW_Z*HIGH_Q + a1*b4*MED_V*HIGH_Q +
a4*b4*HIGH_W*MED_V*HIGH_Q + a5*b4*LOW_Z*MED_V*HIGH_Q;

ILMMH = a1*b1 + a4*b1*LOW_W + a5*b1*MED_Z + a1*b2*MED_V +
a4*b2*LOW_W*MED_V + a5*b2*MED_Z*MED_V + a1*b3*HIGH_Q +
a4*b3*LOW_W*HIGH_Q + a5*b3*MED_Z*HIGH_Q + a1*b4*MED_V*HIGH_Q +
a4*b4*LOW_W*MED_V*HIGH_Q + a5*b4*MED_Z*MED_V*HIGH_Q;
IMMMH = a1*b1 + a4*b1*MED_W + a5*b1*MED_Z + a1*b2*MED_V +
a4*b2*MED_W*MED_V + a5*b2*MED_Z*MED_V + a1*b3*HIGH_Q +
a4*b3*MED_W*HIGH_Q + a5*b3*MED_Z*HIGH_Q + a1*b4*MED_V*HIGH_Q +
a4*b4*MED_W*MED_V*HIGH_Q + a5*b4*MED_Z*MED_V*HIGH_Q;
IHMMH = a1*b1 + a4*b1*HIGH_W + a5*b1*MED_Z + a1*b2*MED_V +
a4*b2*HIGH_W*MED_V + a5*b2*MED_Z*MED_V + a1*b3*HIGH_Q +
a4*b3*HIGH_W*HIGH_Q + a5*b3*MED_Z*HIGH_Q + a1*b4*MED_V*HIGH_Q +
a4*b4*HIGH_W*MED_V*HIGH_Q + a5*b4*MED_Z*MED_V*HIGH_Q;

ILHMH = a1*b1 + a4*b1*LOW_W + a5*b1*HIGH_Z + a1*b2*MED_V +
a4*b2*LOW_W*MED_V + a5*b2*HIGH_Z*MED_V + a1*b3*HIGH_Q +
a4*b3*LOW_W*HIGH_Q + a5*b3*HIGH_Z*HIGH_Q + a1*b4*MED_V*HIGH_Q +
a4*b4*LOW_W*MED_V*HIGH_Q + a5*b4*HIGH_Z*MED_V*HIGH_Q;
IMHMH = a1*b1 + a4*b1*MED_W + a5*b1*HIGH_Z + a1*b2*MED_V +
a4*b2*MED_W*MED_V + a5*b2*HIGH_Z*MED_V + a1*b3*HIGH_Q +
a4*b3*MED_W*HIGH_Q + a5*b3*HIGH_Z*HIGH_Q + a1*b4*MED_V*HIGH_Q +
a4*b4*MED_W*MED_V*HIGH_Q + a5*b4*HIGH_Z*MED_V*HIGH_Q;
IHHMH = a1*b1 + a4*b1*HIGH_W + a5*b1*HIGH_Z + a1*b2*MED_V +
a4*b2*HIGH_W*MED_V + a5*b2*HIGH_Z*MED_V + a1*b3*HIGH_Q +
a4*b3*HIGH_W*HIGH_Q + a5*b3*HIGH_Z*HIGH_Q + a1*b4*MED_V*HIGH_Q +
a4*b4*HIGH_W*MED_V*HIGH_Q + a5*b4*HIGH_Z*MED_V*HIGH_Q;

ILLHH = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b2*HIGH_V +
a4*b2*LOW_W*HIGH_V + a5*b2*LOW_Z*HIGH_V + a1*b3*HIGH_Q +
a4*b3*LOW_W*HIGH_Q + a5*b3*LOW_Z*HIGH_Q + a1*b4*HIGH_V*HIGH_Q +
a4*b4*LOW_W*HIGH_V*HIGH_Q + a5*b4*LOW_Z*HIGH_V*HIGH_Q;
IMLHH = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b2*HIGH_V +
a4*b2*MED_W*HIGH_V + a5*b2*LOW_Z*HIGH_V + a1*b3*HIGH_Q +
a4*b3*MED_W*HIGH_Q + a5*b3*LOW_Z*HIGH_Q + a1*b4*HIGH_V*HIGH_Q +
a4*b4*MED_W*HIGH_V*HIGH_Q + a5*b4*LOW_Z*HIGH_V*HIGH_Q;
IHLHH = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b2*HIGH_V +
a4*b2*HIGH_W*HIGH_V + a5*b2*LOW_Z*HIGH_V + a1*b3*HIGH_Q +
a4*b3*HIGH_W*HIGH_Q + a5*b3*LOW_Z*HIGH_Q + a1*b4*HIGH_V*HIGH_Q +
a4*b4*HIGH_W*HIGH_V*HIGH_Q + a5*b4*LOW_Z*HIGH_V*HIGH_Q;

ILMHH = a1*b1 + a4*b1*LOW_W + a5*b1*MED_Z + a1*b2*HIGH_V +
a4*b2*LOW_W*HIGH_V + a5*b2*MED_Z*HIGH_V + a1*b3*HIGH_Q +
a4*b3*LOW_W*HIGH_Q + a5*b3*MED_Z*HIGH_Q + a1*b4*HIGH_V*HIGH_Q +
a4*b4*LOW_W*HIGH_V*HIGH_Q + a5*b4*MED_Z*HIGH_V*HIGH_Q;
IMMHH = a1*b1 + a4*b1*MED_W + a5*b1*MED_Z + a1*b2*HIGH_V +
a4*b2*MED_W*HIGH_V + a5*b2*MED_Z*HIGH_V + a1*b3*HIGH_Q +
a4*b3*MED_W*HIGH_Q + a5*b3*MED_Z*HIGH_Q + a1*b4*HIGH_V*HIGH_Q +
a4*b4*MED_W*HIGH_V*HIGH_Q + a5*b4*MED_Z*HIGH_V*HIGH_Q;
IHMHH = a1*b1 + a4*b1*HIGH_W + a5*b1*MED_Z + a1*b2*HIGH_V +
a4*b2*HIGH_W*HIGH_V + a5*b2*MED_Z*HIGH_V + a1*b3*HIGH_Q +
a4*b3*HIGH_W*HIGH_Q + a5*b3*MED_Z*HIGH_Q + a1*b4*HIGH_V*HIGH_Q +
a4*b4*HIGH_W*HIGH_V*HIGH_Q + a5*b4*MED_Z*HIGH_V*HIGH_Q;

ILHHH = a1*b1 + a4*b1*LOW_W + a5*b1*HIGH_Z + a1*b2*HIGH_V +
a4*b2*LOW_W*HIGH_V + a5*b2*HIGH_Z*HIGH_V + a1*b3*HIGH_Q +
a4*b3*LOW_W*HIGH_Q + a5*b3*HIGH_Z*HIGH_Q + a1*b4*HIGH_V*HIGH_Q +
a4*b4*LOW_W*HIGH_V*HIGH_Q + a5*b4*HIGH_Z*HIGH_V*HIGH_Q;
IMHHH = a1*b1 + a4*b1*MED_W + a5*b1*HIGH_Z + a1*b2*HIGH_V +
a4*b2*MED_W*HIGH_V + a5*b2*HIGH_Z*HIGH_V + a1*b3*HIGH_Q +
a4*b3*MED_W*HIGH_Q + a5*b3*HIGH_Z*HIGH_Q + a1*b4*HIGH_V*HIGH_Q +
a4*b4*MED_W*HIGH_V*HIGH_Q + a5*b4*HIGH_Z*HIGH_V*HIGH_Q;
IHHHH = a1*b1 + a4*b1*HIGH_W + a5*b1*HIGH_Z + a1*b2*HIGH_V +
a4*b2*HIGH_W*HIGH_V + a5*b2*HIGH_Z*HIGH_V + a1*b3*HIGH_Q +
a4*b3*HIGH_W*HIGH_Q + a5*b3*HIGH_Z*HIGH_Q + a1*b4*HIGH_V*HIGH_Q +
a4*b4*HIGH_W*HIGH_V*HIGH_Q + a5*b4*HIGH_Z*HIGH_V*HIGH_Q;

! Calc conditional direct effects for each combination of moderator values

DLOV_LOQ = cdash1 + cdash4*LOW_V + cdash5*LOW_Q + cdash7*LOW_V*LOW_Q;
DMEV_LOQ = cdash1 + cdash4*MED_V + cdash5*LOW_Q + cdash7*MED_V*LOW_Q;
DHIV_LOQ = cdash1 + cdash4*HIGH_V + cdash5*LOW_Q + cdash7*HIGH_V*LOW_Q;

DLOV_MEQ = cdash1 + cdash4*LOW_V + cdash5*MED_Q + cdash7*LOW_V*MED_Q;
DMEV_MEQ = cdash1 + cdash4*MED_V + cdash5*MED_Q + cdash7*MED_V*MED_Q;
DHIV_MEQ = cdash1 + cdash4*HIGH_V + cdash5*MED_Q + cdash7*HIGH_V*MED_Q;

DLOV_HIQ = cdash1 + cdash4*LOW_V + cdash5*HIGH_Q + cdash7*LOW_V*HIGH_Q;
DMEV_HIQ = cdash1 + cdash4*MED_V + cdash5*HIGH_Q + cdash7*MED_V*HIGH_Q;
DHIV_HIQ = cdash1 + cdash4*HIGH_V + cdash5*HIGH_Q + cdash7*HIGH_V*HIGH_Q;

! Calc conditional total effects for each combination of moderator values

TLLLL = ILLLL + DLOV_LOQ;
TMLLL = IMLLL + DLOV_LOQ;
THLLL = IHLLL + DLOV_LOQ;

TLMLL = ILMLL + DLOV_LOQ;
TMMLL = IMMLL + DLOV_LOQ;
THMLL = IHMLL + DLOV_LOQ;

TLHLL = ILHLL + DLOV_LOQ;
TMHLL = IMHLL + DLOV_LOQ;
THHLL = IHHLL + DLOV_LOQ;

TLLML = ILLML + DMEV_LOQ;
TMLML = IMLML + DMEV_LOQ;
THLML = IHLML + DMEV_LOQ;

TLMML = ILMML + DMEV_LOQ;
TMMML = IMMML + DMEV_LOQ;
THMML = IHMML + DMEV_LOQ;

TLHML = ILHML + DMEV_LOQ;
TMHML = IMHML + DMEV_LOQ;
THHML = IHHML + DMEV_LOQ;

TLLHL = ILLHL + DHIV_LOQ;
TMLHL = IMLHL + DHIV_LOQ;
THLHL = IHLHL + DHIV_LOQ;

TLMHL = ILMHL + DHIV_LOQ;
TMMHL = IMMHL + DHIV_LOQ;
THMHL = IHMHL + DHIV_LOQ;

TLHHL = ILHHL + DHIV_LOQ;
TMHHL = IMHHL + DHIV_LOQ;
THHHL = IHHHL + DHIV_LOQ;

TLLLM = ILLLM + DLOV_MEQ;
TMLLM = IMLLM + DLOV_MEQ;
THLLM = IHLLM + DLOV_MEQ;

TLMLM = ILMLM + DLOV_MEQ;
TMMLM = IMMLM + DLOV_MEQ;
THMLM = IHMLM + DLOV_MEQ;

TLHLM = ILHLM + DLOV_MEQ;
TMHLM = IMHLM + DLOV_MEQ;
THHLM = IHHLM + DLOV_MEQ;

TLLMM = ILLMM + DMEV_MEQ;
TMLMM = IMLMM + DMEV_MEQ;
THLMM = IHLMM + DMEV_MEQ;

TLMMM = ILMMM + DMEV_MEQ;
TMMMM = IMMMM + DMEV_MEQ;
THMMM = IHMMM + DMEV_MEQ;

TLHMM = ILHMM + DMEV_MEQ;
TMHMM = IMHMM + DMEV_MEQ;
THHMM = IHHMM + DMEV_MEQ;

TLLHM = ILLHM + DHIV_MEQ;
TMLHM = IMLHM + DHIV_MEQ;
THLHM = IHLHM + DHIV_MEQ;

TLMHM = ILMHM + DHIV_MEQ;
TMMHM = IMMHM + DHIV_MEQ;
THMHM = IHMHM + DHIV_MEQ;

TLHHM = ILHHM + DHIV_MEQ;
TMHHM = IMHHM + DHIV_MEQ;
THHHM = IHHHM + DHIV_MEQ;

TLLLH = ILLLH + DLOV_HIQ;
TMLLH = IMLLH + DLOV_HIQ;
THLLH = IHLLH + DLOV_HIQ;

TLMLH = ILMLH + DLOV_HIQ;
TMMLH = IMMLH + DLOV_HIQ;
THMLH = IHMLH + DLOV_HIQ;

TLHLH = ILHLH + DLOV_HIQ;
TMHLH = IMHLH + DLOV_HIQ;
THHLH = IHHLH + DLOV_HIQ;

TLLMH = ILLMH + DMEV_HIQ;
TMLMH = IMLMH + DMEV_HIQ;
THLMH = IHLMH + DMEV_HIQ;

TLMMH = ILMMH + DMEV_HIQ;
TMMMH = IMMMH + DMEV_HIQ;
THMMH = IHMMH + DMEV_HIQ;

TLHMH = ILHMH + DMEV_HIQ;
TMHMH = IMHMH + DMEV_HIQ;
THHMH = IHHMH + DMEV_HIQ;

TLLHH = ILLHH + DHIV_HIQ;
TMLHH = IMLHH + DHIV_HIQ;
THLHH = IHLHH + DHIV_HIQ;

TLMHH = ILMHH + DHIV_HIQ;
TMMHH = IMMHH + DHIV_HIQ;
THMHH = IHMHH + DHIV_HIQ;

TLHHH = ILHHH + DHIV_HIQ;
TMHHH = IMHHH + DHIV_HIQ;
THHHH = IHHHH + DHIV_HIQ;

! Use loop plot to plot conditional indirect effect of X on Y for each combination of low, med, high moderator values
! Could be edited to show conditional direct or conditional total effects instead
! NOTE - values from -3 to 3 in LOOP() statement since
! X is factor with mean set at default of 0

PLOT(PLLLL PMLLL PHLLL PLMLL PMMLL PHMLL PLHLL PMHLL PHHLL
PLLML PMLML PHLML PLMML PMMML PHMML PLHML PMHML PHHML
PLLHL PMLHL PHLHL PLMHL PMMHL PHMHL PLHHL PMHHL PHHHL
PLLLM PMLLM PHLLM PLMLM PMMLM PHMLM PLHLM PMHLM PHHLM
PLLMM PMLMM PHLMM PLMMM PMMMM PHMMM PLHMM PMHMM PHHMM
PLLHM PMLHM PHLHM PLMHM PMMHM PHMHM PLHHM PMHHM PHHHM
PLLLH PMLLH PHLLH PLMLH PMMLH PHMLH PLHLH PMHLH PHHLH
PLLMH PMLMH PHLMH PLMMH PMMMH PHMMH PLHMH PMHMH PHHMH
PLLHH PMLHH PHLHH PLMHH PMMHH PHMHH PLHHH PMHHH PHHHH);

LOOP(XVAL,-3,3,0.1);

PLLLL = ILLLL*XVAL;
PMLLL = IMLLL*XVAL;
PHLLL = IHLLL*XVAL;

PLMLL = ILMLL*XVAL;
PMMLL = IMMLL*XVAL;
PHMLL = IHMLL*XVAL;

PLHLL = ILHLL*XVAL;
PMHLL = IMHLL*XVAL;
PHHLL = IHHLL*XVAL;

PLLML = ILLML*XVAL;
PMLML = IMLML*XVAL;
PHLML = IHLML*XVAL;

PLMML = ILMML*XVAL;
PMMML = IMMML*XVAL;
PHMML = IHMML*XVAL;

PLHML = ILHML*XVAL;
PMHML = IMHML*XVAL;
PHHML = IHHML*XVAL;

PLLHL = ILLHL*XVAL;
PMLHL = IMLHL*XVAL;
PHLHL = IHLHL*XVAL;

PLMHL = ILMHL*XVAL;
PMMHL = IMMHL*XVAL;
PHMHL = IHMHL*XVAL;

PLHHL = ILHHL*XVAL;
PMHHL = IMHHL*XVAL;
PHHHL = IHHHL*XVAL;

PLLLM = ILLLM*XVAL;
PMLLM = IMLLM*XVAL;
PHLLM = IHLLM*XVAL;

PLMLM = ILMLM*XVAL;
PMMLM = IMMLM*XVAL;
PHMLM = IHMLM*XVAL;

PLHLM = ILHLM*XVAL;
PMHLM = IMHLM*XVAL;
PHHLM = IHHLM*XVAL;

PLLMM = ILLMM*XVAL;
PMLMM = IMLMM*XVAL;
PHLMM = IHLMM*XVAL;

PLMMM = ILMMM*XVAL;
PMMMM = IMMMM*XVAL;
PHMMM = IHMMM*XVAL;

PLHMM = ILHMM*XVAL;
PMHMM = IMHMM*XVAL;
PHHMM = IHHMM*XVAL;

PLLHM = ILLHM*XVAL;
PMLHM = IMLHM*XVAL;
PHLHM = IHLHM*XVAL;

PLMHM = ILMHM*XVAL;
PMMHM = IMMHM*XVAL;
PHMHM = IHMHM*XVAL;

PLHHM = ILHHM*XVAL;
PMHHM = IMHHM*XVAL;
PHHHM = IHHHM*XVAL;

PLLLH = ILLLH*XVAL;
PMLLH = IMLLH*XVAL;
PHLLH = IHLLH*XVAL;

PLMLH = ILMLH*XVAL;
PMMLH = IMMLH*XVAL;
PHMLH = IHMLH*XVAL;

PLHLH = ILHLH*XVAL;
PMHLH = IMHLH*XVAL;
PHHLH = IHHLH*XVAL;

PLLMH = ILLMH*XVAL;
PMLMH = IMLMH*XVAL;
PHLMH = IHLMH*XVAL;

PLMMH = ILMMH*XVAL;
PMMMH = IMMMH*XVAL;
PHMMH = IHMMH*XVAL;

PLHMH = ILHMH*XVAL;
PMHMH = IMHMH*XVAL;
PHHMH = IHHMH*XVAL;

PLLHH = ILLHH*XVAL;
PMLHH = IMLHH*XVAL;
PHLHH = IHLHH*XVAL;

PLMHH = ILMHH*XVAL;
PMMHH = IMMHH*XVAL;
PHMHH = IHMHH*XVAL;

PLHHH = ILHHH*XVAL;
PMHHH = IMHHH*XVAL;
PHHHH = IHHHH*XVAL;

PLOT:
TYPE = plot2;

OUTPUT:
CINT;