Also see SPSS Moderation Regression Tutorial.
- Regression with Moderation Effect
- Downloading and Installing the Mean Centering Tool
- Using the Mean Centering Tool
- Mean Centering Tool - Results
A sports doctor wants to know if and how training and age relate to body muscle percentage. His data on 243 male patients are in muscle-percent-males.sav, part of which is shown below.

Regression with Moderation Effect
The basic way to go with these data is to run multiple regression with age and training hours as predictors. However, our doctor expects a moderation interaction effect between age and training. Precisely, he believes that the effect of training on muscle percentage diminishes with age. The diagram below illustrates the basic idea.

The moderation effect can be tested by creating a new variable that represents this interaction effect. We'll do just that in 3 steps:
- mean center both predictors: subtract the variable means from all individual scores. This results in centered predictors having zero means.
- compute the interaction predictor as the product of the mean centered predictors;
- run a multiple regression analysis with 3 predictors: the mean centered predictors and the interaction predictor.
Steps 1 and 2 can be done with basic syntax as covered in How to Mean Center Predictors in SPSS? However, we'll present a simple tool below that does these steps for you.
Downloading and Installing the Mean Centering Tool
First off, you need SPSS with the SPSS-Python-Essentials for installing this tool. The tool is downloadable from SPSS_TUTORIALS_MEAN_CENTER.spe.
After downloading it, open SPSS and navigate to
as shown below.

For older SPSS versions, try
You may need to run SPSS as an administrator (by right-clicking its desktop shortcut) in order to install any tools.
Using the Mean Centering Tool
First open some data such as muscle-percent-males.sav. After installing the mean centering tool, you'll find it in the menu.

This opens a dialog as shown below. Note that string variables don't show up here: these need to be converted to numeric variable before they can be mean centered.

Variable names for the centered predictors consist of a prefix + the original variable names. In this example, mean centered age and thours will be named cent_age and cent_thours.
Optionally, create new variables holding all 2-way interaction effects among the centered predictors. For 2 predictors, this results in only 1 interaction predictor.
Clicking results in the syntax below. Let's run it.
SPSS_TUTORIALS_MEAN_CENTER VARIABLES = "age thours"
/OPTIONS PREFIX = cent_ CHECKTABLE INTERACTIONS.
Mean Centering Tool - Results

In variable view, note that 3 new variables have been created (and labeled). Precisely these 3 variables should be entered as predictors into our regression model.
If a checktable was requested, you'll find a basic Descriptive Statistics table in the output window.

Note that the mean centered predictors have exactly zero means. Their standard deviations, however, are left unaltered by the mean centering -which is precisely how this procedure differs from computing z-scores.
Right, so that'll do for our mean centering tool. We'll cover a regression analysis with a moderation interaction effect in 1 or 2 weeks or so.
Thanks for reading!
THIS TUTORIAL HAS 40 COMMENTS:
By Eszter Babarczy on July 30th, 2016
Hi! I ran the dialogue with 21 variables using their names. The program insists these are string variables (although they are set to scale). What am I doing wrong? Thanks a lot in advance!
By Ruben Geert van den Berg on July 31st, 2016
Hi Eszter!
Try and run DESCRIPTIVES on all relevant variables. SPSS will (rightfully) refuse to generate descriptives for string variables and throw a warning.
Now, in SPSS, you can have string variables set to scale. It doesn't make sense, though. "Scale" in SPSS means that you're dealing with a metric variable (the measurement level is interval or ratio).
The defining characteristic of metric variables is that numeric calculations (sum, mean) are meaningful for them and such calculations are not possible on string variables. So we usually see that "scale" is only used for numeric variables whereas all string variables are set to nominal but perhaps this doesn't hold for your data.
A tiny example illustrating this point is No Descriptives for Metric String Variable. If that doesn't hold for your data, please get back at me, ok?
By Siddiqui, Abdul on January 19th, 2018
good for beginners
By YJ on January 26th, 2018
Hi,
As I tried to install the "Mean center variables" dialogue, this error message popped up: "Error reading custom dialogue specification." My SPSS is version 24, and I think I got Python installed. What is the problem? Could you help me to fix this?
Thank you.
By Ruben Geert van den Berg on January 27th, 2018
Hello!
I'm on SPSS 24 as well and I just installed and ran this tool a minute ago. Did you try and install it in SPSS version 24 or higher - custom dialogs in compatibility mode?
Hope that helps!