{"id":1019,"date":"2026-10-13T23:16:00","date_gmt":"2026-10-13T23:16:00","guid":{"rendered":"https:\/\/freestatisticaltools.com\/blog\/?p=1019"},"modified":"2026-10-13T23:16:00","modified_gmt":"2026-10-13T23:16:00","slug":"moderation-analysis-simple-slopes","status":"publish","type":"post","link":"https:\/\/freestatisticaltools.com\/blog\/moderation-analysis-simple-slopes\/","title":{"rendered":"Moderation Analysis: Interaction Effects, Simple Slopes and Johnson-Neyman"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Moderation<\/strong> asks <em>when<\/em> or <em>for whom<\/em> an effect occurs. Does workload increase burnout for everyone, or less so for employees with strong social support? If the strength (or direction) of the X \u2192 Y relationship changes with the level of a third variable W, then W is a <strong>moderator<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide shows how to test moderation with an interaction term, how to probe it with simple slopes and the Johnson-Neyman technique, and how to report it.<\/p>\n\n\n<div class=\"fst-tool\"><span class=\"ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 21 21 3\"\/><circle cx=\"6\" cy=\"16\" r=\"1.5\"\/><circle cx=\"11\" cy=\"12\" r=\"1.5\"\/><circle cx=\"16\" cy=\"9\" r=\"1.5\"\/><\/svg><\/span><span><span class=\"t-eyebrow\">Free tool \u00b7 runs in your browser<\/span><a class=\"t-name\" href=\"https:\/\/freestatisticaltools.com\/moderation-analysis-calculator\/\" style=\"text-decoration:none;color:inherit\">Moderation Analysis Calculator<\/a><span class=\"t-desc\">Free moderation analysis like PROCESS Models 1\u20133: interaction tests, \u0394R\u00b2, conditional effects, Johnson-Neyman region, HC3 and an interaction plot.<\/span><\/span><a class=\"btn accent\" href=\"https:\/\/freestatisticaltools.com\/moderation-analysis-calculator\/\" data-tool=\"moderation-analysis-calculator\">Run a moderation analysis \u2192<\/a><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">The moderation model<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Moderation is tested by adding the <strong>product<\/strong> of X and W to a regression:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Y = b\u2080 + b\u2081X + b\u2082W + b\u2083(X \u00d7 W) + e<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>b\u2083<\/strong>, the interaction coefficient, is the key test. If it is significant, the effect of X on Y depends on W.<\/li>\n\n<li>The effect of X on Y at a given value of W is <strong>b\u2081 + b\u2083W<\/strong>. This is called the <strong>conditional effect<\/strong> or <strong>simple slope<\/strong>.<\/li>\n<\/ul>\n\n\n\n<div class=\"fst-note warning\"><b>Don&#039;t over-read b\u2081 and b\u2082<\/b><p>In a model with an interaction, b\u2081 is the effect of X <strong>when W = 0<\/strong>, not an average &quot;main effect&quot;. If zero is not a meaningful value of W (for example, a 1\u20137 scale), b\u2081 is not meaningful either. Mean-centering fixes this.<\/p><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Mean-center X and W (recommended)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Subtract each variable&#39;s mean from every score. After centering:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>b\u2081 becomes the effect of X at the <strong>average<\/strong> level of W, and b\u2082 the effect of W at the average level of X;<\/li>\n\n<li>the interaction coefficient b\u2083 and its p-value <strong>do not change<\/strong>;<\/li>\n\n<li>correlations between X, W and X \u00d7 W go down, which makes the output easier to read.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Centering does not &quot;fix&quot; multicollinearity in any statistical sense, but it makes the lower-order coefficients interpretable. The free <a href=\"\/moderation-analysis-calculator\/\">moderation calculator<\/a> can center for you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Test the interaction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Look at three things:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>b\u2083 and its p-value<\/strong> (or 95% CI).<\/li>\n\n<li><strong>\u0394R\u00b2<\/strong> due to the interaction: how much extra variance the X \u00d7 W term explains. Interaction effects are typically small in field data; \u0394R\u00b2 of .01\u2013.03 is common and can still matter.<\/li>\n\n<li><strong>Heteroscedasticity.<\/strong> Robust (HC3) standard errors are a good default for interaction models.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Probe the interaction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A significant b\u2083 tells you the slope changes, not how. There are two standard ways to probe it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Simple slopes (pick-a-point)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Estimate the effect of X at chosen values of W, usually the <strong>mean and \u00b11 SD<\/strong> (or the 16th, 50th and 84th percentiles). For categorical moderators, use each group.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Johnson-Neyman technique<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of picking points, Johnson-Neyman finds the exact <strong>value(s) of W where the effect of X becomes, or stops being, significant<\/strong>. It gives a &quot;region of significance&quot;, which is more informative than three arbitrary points.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Worked example<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A researcher surveys 300 nurses. X = workload, W = social support, Y = burnout. X and W are mean-centered, and the SD of social support is 0.90.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Predictor<\/th><th>b<\/th><th>SE<\/th><th>t<\/th><th>p<\/th><\/tr><\/thead><tbody><tr><td>Constant<\/td><td>2.10<\/td><td>0.04<\/td><td>52.50<\/td><td>&lt; .001<\/td><\/tr><tr><td>Workload (X)<\/td><td>0.45<\/td><td>0.05<\/td><td>9.00<\/td><td>&lt; .001<\/td><\/tr><tr><td>Social support (W)<\/td><td>\u22120.20<\/td><td>0.05<\/td><td>\u22124.00<\/td><td>&lt; .001<\/td><\/tr><tr><td><strong>Workload \u00d7 Support<\/strong><\/td><td><strong>\u22120.15<\/strong><\/td><td>0.05<\/td><td>\u22123.00<\/td><td>.003<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00b2 = .34; the interaction adds \u0394R\u00b2 = .02, F(1, 296) = 9.00, p = .003.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Simple slopes<\/strong> (effect of workload on burnout = 0.45 \u2212 0.15 \u00d7 W):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Social support<\/th><th>Value of W<\/th><th>Simple slope<\/th><\/tr><\/thead><tbody><tr><td>Low (\u22121 SD)<\/td><td>\u22120.90<\/td><td>0.45 + 0.135 = <strong>0.59<\/strong><\/td><\/tr><tr><td>Average (mean)<\/td><td>0.00<\/td><td><strong>0.45<\/strong><\/td><\/tr><tr><td>High (+1 SD)<\/td><td>+0.90<\/td><td>0.45 \u2212 0.135 = <strong>0.32<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Workload increases burnout at every level of support, but the effect is <strong>almost twice as strong<\/strong> for nurses with low support as for nurses with high support. Social support <strong>buffers<\/strong> the effect of workload.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Johnson-Neyman:<\/strong> the workload effect stays positive and significant across nearly all observed values of support, and becomes non-significant only at very high support levels. Report the exact boundary value and the percentage of the sample above it, as given in the output.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Plot the interaction<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Always show a plot: three lines (low, average and high W) with X on the horizontal axis and predicted Y on the vertical axis. Lines that fan out or cross make the moderation obvious at a glance. The calculator draws this plot automatically.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Moderation with categorical variables<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If W is a group variable (for example, gender), the logic is the same: code it as a dummy (0\/1), multiply it by X, and test the interaction. The simple slopes are the X \u2192 Y effects within each group. For three or more groups, use several dummy variables and test them together with an F-test on \u0394R\u00b2.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Two moderators or three-way interactions<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Two moderators<\/strong> (W and Z, each interacting with X): PROCESS Model 2.<\/li>\n\n<li><strong>Moderated moderation<\/strong> (X \u00d7 W \u00d7 Z): PROCESS Model 3, or the <a href=\"\/three-way-interaction-calculator\/\">three-way interaction calculator<\/a>.<\/li>\n\n<li><strong>Moderated mediation:<\/strong> see the <a href=\"\/moderated-mediation-analysis\/\">moderated mediation tool<\/a> and our <a href=\"\/blog\/mediation-analysis-bootstrapping\/\">mediation guide<\/a>.<\/li>\n\n<li><strong>Latent moderators<\/strong> measured with several items: CB-SEM Studio supports latent interactions with simple slopes; PLS-SEM Studio has a two-stage moderation approach.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How to report moderation in APA 7<\/h2>\n\n\n\n<div class=\"fst-report\"><b>How to report it (APA 7)<button type=\"button\" data-copy-report>Copy<\/button><\/b><div><p>A moderation analysis with mean-centered predictors and HC3 standard errors showed that social support moderated the relationship between workload and burnout, <i>b<\/i> = \u22120.15, <i>SE<\/i> = 0.05, <i>t<\/i>(296) = \u22123.00, <i>p<\/i> = .003, \u0394<i>R<\/i>\u00b2 = .02. Simple slopes analysis showed that workload was more strongly related to burnout when social support was low (\u22121 <i>SD<\/i>; <i>b<\/i> = 0.59) than when it was high (+1 <i>SD<\/i>; <i>b<\/i> = 0.32). Figure 1 shows the interaction.<\/p><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Common mistakes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Interpreting b\u2081 as a &quot;main effect&quot; without centering.<\/li>\n\n<li>Forgetting to include X and W themselves in the model alongside X \u00d7 W.<\/li>\n\n<li>Testing moderation by comparing correlations or running separate regressions in subgroups (that loses power and does not test the difference).<\/li>\n\n<li>Claiming a buffering effect without probing and plotting the interaction.<\/li>\n\n<li>Dichotomizing a continuous moderator with a median split.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<div class=\"fst-faq\"><details><summary>Do I need to mean-center variables for moderation analysis?<\/summary><div class=\"a\"><p>It is not required for the interaction test, because b\u2083 and its p-value are identical with or without centering. It is recommended because it makes the coefficients of X and W interpretable as effects at the average of the other variable.<\/p><\/div><\/details><details><summary>What is the difference between simple slopes and Johnson-Neyman?<\/summary><div class=\"a\"><p>Simple slopes test the effect of X at a few chosen values of the moderator, such as the mean and \u00b11 SD. Johnson-Neyman finds the exact moderator values where the effect becomes significant or non-significant.<\/p><\/div><\/details><details><summary>What is a good \u0394R\u00b2 for an interaction?<\/summary><div class=\"a\"><p>Interaction effects in observational data are usually small. \u0394R\u00b2 values of .01 to .03 are common and can still be theoretically and practically important.<\/p><\/div><\/details><details><summary>Is moderation the same as PROCESS Model 1?<\/summary><div class=\"a\"><p>Yes. PROCESS Model 1 is a simple moderation model with one moderator. The free moderation calculator runs models similar to PROCESS Models 1 to 3, as an independent implementation.<\/p><\/div><\/details><\/div>\n\n\n<div class=\"fst-report\"><b>Cite the tool (APA 7)<button type=\"button\" data-copy-report>Copy<\/button><\/b><div>Xavier, B. (2026). <i>Free Statistical Tools<\/i> [Computer software]. Zenodo. https:\/\/doi.org\/10.5281\/zenodo.23372149 (web app: https:\/\/freestatisticaltools.com\/moderation-analysis-calculator\/)<\/div><small>Name the tool in your methods: \u201cThe analysis was carried out with the Moderation Analysis Calculator in Free Statistical Tools.\u201d<\/small><\/div>\n","protected":false},"excerpt":{"rendered":"<p>How to test whether an effect depends on a third variable, from building the interaction term to probing simple slopes, the Johnson-Neyman region and an APA write-up.<\/p>\n","protected":false},"author":1,"featured_media":1020,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_fst_seo_title":"Moderation Analysis: Interactions, Simple Slopes, J-N Method","_fst_meta_desc":"Test moderation with an interaction term, center your variables, probe simple slopes and the Johnson-Neyman region, plot the interaction and report it in APA.","_fst_primary_tool":"moderation-analysis-calculator","_fst_canonical":"","_fst_noindex":false,"_fst_no_toc":false,"_fst_no_autolink":false,"footnotes":""},"categories":[7],"tags":[40,39,35,38],"class_list":["post-1019","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-correlation-regression","tag-interaction-effects","tag-moderation","tag-process","tag-regression"],"_links":{"self":[{"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/posts\/1019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/comments?post=1019"}],"version-history":[{"count":0,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/posts\/1019\/revisions"}],"wp:attachment":[{"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/media?parent=1019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/categories?post=1019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/tags?post=1019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}