keywords Non-linear regression, Polynomial model, non-linear effects, linear model

GAMLj version ≥ 1.5.0

In this example we work out an example of polynomial regression in the GLM, using jamovi GAMLj. Data are (simulated data) here.

The research design

The dataset has three variables of interest. Imagine we measured athletes performace in a match using a standard scale and the number of hours they trained in a week. The idea is to study the relationship between hours of training and performance. Because training can be good for performance but training too much may have detrimental effects on performance, we foresee a non-linear effect of training hours on performance. Furthermore, athletes are divided in two groups (variable types), professionals (P) and amateurs (A), and we want to check if the effects of training is different in the two groups.

Non-linear (polynomial) effects


We first set up a linear regression with only linear effects. We launch General Linear Model from the Linear Models menu. We put performance in the dependent variable field and hours in the covariate.

By defining the variables we obtain a simple regression in the output, but we want to specify a quadratic effect of hours, so we go to the Model panel. As soon as we select hours in the Components field, we can see on the right of the variable a little 1 appearing.

That little number indicates the order of the effect that we want to insert in the model, that is, the exponent of the term we want to include. The number 1 (default) means linear effects. To include a quadratic effect (second order), we should increase the number to 2, as in the Figure. We can then push the arrow to move the quadratic term into the model.

If we want, for instance, also the cubic term, we should increase the number to 3 and move it to the model as well.


Results show that the polinomial (linear+quaratic+cubic) effects of hours on performance explain about 50% of the variance \(R^2=.486\).

BY inspecting the F-tests and the estimates (B coefficients) we can see that we have a linear (\(hours\)) and a quadratic (\(hours^2\)) effect of hours to performance, whereas the cubic effect (\(hours^3\)) is trivial and can be disregarded (the \(\eta^2p\) is practically zero).

When it comes to polynomial models, the best way to figure out the relationship between variables is to plot the effects. We can do that by selecting the Plot panel and by putting hours in the Horizontal Axis field (mind that in GAMLj default the IV is centered to its mean, to obtain a nice plot I changed the IV scaling to none in Covariates scaling panel).

We can see that, on average, up to 10 hours, one more hour of training is good for the performance, but after 10 hours, increasing training is not advantageous in terms of performance. That is, we have a curvilinear effect of the IV on the DV.

Conditional polynomial effects

We can now analyze possible differences due the the type of athletes by introducing type as a factor in the model.

When we go to the Model panel, we see that the main effect of type is automatically inserted in the model terms.

However, we want to see if the effect of hours depends on type so we need to include the interactions. We need two interactions: the interaction linear hours by type, and quadratic hours by type (I removed cubic hours based on the previous analysis).

For the linear by type interaction, we select both type and hours and we press the arrow to move the interaction term to the Model Terms field.

For the quadratic by type interaction, we select both type and hours, and we increase the exponent of hours to signal that we want the quadratic term to interact with type. We press the arrow to move the interaction term to the Model Terms field.

We have done setting the new model.


The model info table shows the actual R-syntax model we estimated and the \(R^2\), the latter clearly larger than the \(R^2\) of the previous model.

As regards the effects, we can see that we do have a quadratic hours by type interaction, so we can say that the effect of hours on performance has a different shape depending on the type of athlete.

Inspecting the plot makes the interpretation easier.

For professional athletes (P), the performace increases along hours of training almost linearly, thus the more hours they train, the better the performance. For amateur athletes (A) the performance is positively linked to training hours up to 9 hours, after which more training means a strong decrease in performance. Thus, for amateurs there’s a U-shaped effect of training on performance, whereas for pro’s the relationship is practically linear.

Simple effect analysis (Advanced)


Assume we want to test groups differences along the training hours continuum. That is, we want to test the difference between the two groups at different levels of training length. To do that, it is convinient to rescale the variables: We standardize the independent variable and code the factor with simple coding, which yields coefficients associated with the factor equal to the groups difference in the expected value of the dependent variable.

We then ask for the simple effects of type for different levels (mean and mean plus/minus one SD) of hours.


The simple effects tables show that for low (-1SD) and high (+1SD) training the groups are statistically different and the difference is to the advantage of the Professional group (\(P-A=2.977\) and \(P-A=2.667\)), whereas for average training the performance does not seem to be different between the two groups (\(P-A=-0.0403\)). By changing the covariate conditioning in the Covariate Scaling panel one can test these differences for all values of hours that one wishes.

To visualize what we are doing, let’s see the plot after standardizing the IV.

In practice, the simple effects tests we have seen tested the difference between the blue and the yellow curve at hours equal to -1, 0, and 1 . Because we standardized hours, those values correspond to -1SD, mean, and +1SD of training hours.