Logistic mixed model in jamovi
keywords jamovi, mixed models, generalized linear models, logistic mixed model, multilevel logist, moderated regression, interactions
In this example we estimate a multilevel logistic regression, with interactions, using jamovi GAMLj module.
One can follow the example by downloading the cvs file and open it in jamovi. Be sure to install the new version of GAMLj module from within jamovi library. Data are simulated for educational purposes, and should be used only for exercising.
The research design
Imagine a study conducted in 70 schools. In each school the same exam
is taken by students of equivalent age and grade. For each student, we
recorded whether the student passed the exam, pass
, the
student’s score in math test, math
, and the number of
extracurricular activities the student undertook during the
semester.
The researcher wants to estimate the effect of the math test on the probability of passing the exam, and also test whether the amount of extracurricular activities may moderate the math effect.
Each school has a different number of students, ranging from 51 to
100. Each student presents three values: the score in the
math
test, the number of activity
undertaken
and whether the exam was passed pass=1
or not,
pass=0
.
Here are the frequency tables for the pass
variable and
an abridged table for the schools variable. frequencies
-> Contingency tables
.
…
Understanding the problem
Because the outcome variable, pass
, is a dichotomous
one, we need a logistic model (generalized linear model). However, we
have students clustered within schools, thus we need a mixed model
(random intercepts and slopes) to account for clustering dependence. In
other terms, we need to take into the account the multilevel
structure of the data, with students nested within schools.
Mixed logistic model
Let’s start by opening the Generalized Mixed Models
sub-module in GAMLj menu.
Here we can choose which specific model we want to estimate. We can
leave the selected option to Logistic
, which is the module
default.
We can now define the variables role in the model, by selecting the
dependent variable pass
and the covariates
math
and activity
. We put the latter ones in
Covariates
because they are continuous variables. Notice
that jamovi
recognizes activity
as a nominal variable, because it lists
only integer values. GAMLj automatically transforms it into a numerical
variable and uses it as covariate.
The model
We need to specify the model, in terms of fixed effects and random
effects. First, we expand the Fixed Effects
tab and include
the interaction into the model terms, by selecting both variables on the
left panel and pushing them on the right.
Then we expand the Random Component
tab and fill in the
intercept as random effects across school (we will add random terms
later on, here we start with the intercept as random for the sake of
simplicity).
Results
The first table, Model Info
recaps the model call (the
formula used in R), the description of the model (family and link
function), and some overall model index. Here we can look at the
R-squared, for datail see technical
details and R piecewise
package implementation
Based on the R-square indexes, we can see that our error of approximation of the data decreases of 4% ( \({R^2}_{marg}=.039\) ) thanks to the fixed effects, whereas all effects together decrease our error of approximation of 37% (\({R^2}_{cond}=.378\)).
The other information in the table helps to interpret the results. In
particulat, the row Direction
is useful. It gives the
definition of the logit that is used, including which is the reference
group of the dependent variable. In the example, it indicates that we
are predicting pass=1
against pass=0
. Thus we
know that all the independent variables positively related with the
logit are positively related with the odd of passing the exam.
Random component
For this model, with only intercepts as random coefficients across schools, the random component table is pretty simply. It shows the variance of the random intercepts. It is non-zero, so we are happy.
Omnibus test
The omnibus (Wald) Chi-Squared test tests the main effects of the
independent variables and their interaction. Notice that in GAMLj the
continuous variables are centered to their mean by default, and thus we
can interpret the linear effects of math
and
activity
as average effects or main
effects . Based on the p-value, our results seem to support an
interaction and two main effects.
Parameter estimates
The same information can be extracted from the parameters estimates table.
Here we also obtain the odd ratio
(exp(B)) of the
effects, useful to interpret the effects in terms of rate of change in
the dependent variable odd.
Plots
For generalized linear models, mixed included, a good strategy is to visualize the effects by plotting the predicted values. GAMLj plots the predicted values after transforming them back to the original scale of the dependent variable, in this case probability.
Ask for the plot in the Plots
panel. Add
math
as the variable whose values go in the
Horizontal axis
and activity
as
separate lines
.
Because activity
is a continuous variable, the separated
lines will show the effect of math
for three
interesting values of the moderator activity
. The
defaul in GAMLj is to show effects for the moderator set at
Mean-1SD
, Mean
, and Mean+1SD
.
This default can be altered in the Covariates scaling
tab.
Thus, for the average level of activity
(gray line)
there’s an increase of probability of passing the exam along the scores
of math
. The increase, however, is much stronger for
students with one standard deviation above average of activities (yellow
line), whereas for student with a few activities (blue line), the
probability of passing the exam does not change much depending on the
math
score (recall the data are simulated, the
interpretation is provided only as an exercise).
We can also visualize the random effects by asking them in the imput panel.
Notice that the random effects depict different curves for different
schools, even though the only random effect is the intercept. This is
not weird in generalized linear models. The random intercept is
estimated for the logit, thus it is the intercept of the straight lines
computed for predicting the logit. When the logit is transformed back to
probabilities, the function relating Y to X is no longer a straight
line, and its shapes changes depending also on the value of the
interecpt. If we wish to appreciate how the random linear
effects vary, we can ask for the Linear Predictor
plot,
which plots the effects in the logit scale.
As expected, the random effects are all parallel, because we allowed only the intercepts to be random.
At this point, one can expand the model by allowing also the IVs effects to vary, and evaluate the goodness of the models, comparing them, and further investigate the relationships we observed, with simple effects analysis and additional plots.
Examples
Some worked out practical examples can be found here
Comments?
Got comments, issues or spotted a bug? Please open an issue on GAMLj at github or send me an email