---
kind: concept
slug: moderation-analysis
title: Moderation analysis
summary: >-
  Testing whether one variable's effect on an outcome changes with a third, the moderator. One survey method is OLS regression with interaction terms of mean-centred scores, entered in blocks. One e-commerce chatbot survey (n = 299) shows it. Trade-off: conditional effects from cross-sectional data, but no proof the moderator causes the change.
tags: [statistics, survey-research, interaction-effects]
papers: ["2401.12247", "1610.08914"]
related: [causal-inference, psychometric-scale-validation, toxicity-detection]
status: draft
updated_at: 2026-10-19
---

## Overview

A moderator is a variable that changes how strongly, or in which direction,
one variable affects another. Moderation is tested as an interaction: the
product of the predictor and the moderator enters the regression next to both
of them [arxiv:2401.12247 §3.3.3]. The paper judges each moderation hypothesis
by its interaction coefficient, read from the model that adds the interaction
terms [arxiv:2401.12247 tab. 5]. Only one card uses the statistical sense, so the
page describes one method in detail. A second card carries this slug but uses
"moderation" for platform content moderation; see
[Not the same sense](#not-the-same-sense).

## Variants

### Blocked OLS with mean-centred interaction terms

Predictors and the moderator are mean-centred, their products are formed, and
ordinary least squares (OLS) regression is run in blocks: controls first, then
main effects, then interaction terms. The authors add the blocks in that order
and report the coefficients per model in one table [arxiv:2401.12247 §3.3.3]
[tab. 5]. Card: [Exploring consumers response to text-based chatbots in e-commerce: The moderating role of task complexity and chatbot disclosure](/papers/2401.12247).

The paper reports two moderators, task complexity and chatbot disclosure, each
tested against two predictors (perceived empathy and friendliness). Of the four
predicted interactions, two are supported; the other two are not, and one of
those is significant in the direction opposite to the prediction
[arxiv:2401.12247 §3.3.3] [tab. 5]. The authors describe the entry as
stepwise, but the selection criteria are not stated [arxiv:2401.12247 §3.3.3].

## Not the same sense

Platform research also uses "moderation" for the actions a site takes on user
content. [arxiv:1610.08914 §5.2] is filed here, but it does not test a
moderator. It labels personal attacks in 63M Wikipedia talk comments and
reports how often an attack was followed by a warning or a block within 7 days:
7.7%, 7.0% and 11.3% for either [arxiv:1610.08914 §5.2]. The statistical
methods above do not apply to that analysis. For the labelling method, see
[toxicity-detection](/concepts/toxicity-detection).

## When to use which

The paper supports one variant, so the choice below is limited to its
constraints.

| Situation | Use | Why |
|---|---|---|
| Survey data, one outcome, a few continuous or Likert-scored predictors | Blocked OLS with mean-centred interactions | This is the design the paper ran; its tables show the blocks [arxiv:2401.12247 tab. 5] |
| The moderator is a belief, such as perceived disclosure, not something you set | Report it as perceived, and do not claim it was manipulated | The paper's disclosure measure was rated by respondents and nothing was randomised [arxiv:2401.12247 app. A] |
| You need a causal claim about the moderator | Use a design that manipulates it, such as an experiment | The paper's data are a single self-reported survey, and its regressions are cross-sectional, so causal wording outruns the design [arxiv:2401.12247 §3.2] [tab. 5] |
| You need to test a mediator, or an indirect effect | Not covered by this paper | The paper tested no mediation or indirect effect [arxiv:2401.12247 tab. 5] |

## Implementation sketch

The steps below follow the paper's blocked procedure. The paper does not say
how construct scores were computed, so the scoring step is a choice you must
make and report.

```pseudocode
# Blocked moderation regression  [arxiv:2401.12247 §3.3.3]
# Input:  one row per respondent, construct scores, controls
# Output: coefficients per block, including interaction terms

def moderation_blocks(data, outcome, controls, predictors, moderators):
    # Score each construct; the paper does not state the method  [§3.3.3]
    scores = build_construct_scores(data)
    # Mean-centre the scores before forming products  [§3.3.3]
    centred = subtract_means(scores)
    # Block 1: controls only  [tab. 5, Model 1]
    block_1 = ols(outcome, controls)
    # Block 2: add the predictors and moderators  [tab. 5, Model 2]
    block_2 = ols(outcome, controls + predictors + moderators)
    # Block 3: add each predictor times each moderator  [tab. 5, Model 3]
    products = [p * m for p in predictors for m in moderators]
    block_3 = ols(outcome, controls + predictors + moderators + products)
    return block_1, block_2, block_3
```

## Contradictions

- **Direction of one predicted moderation.** The authors predicted that
  disclosure would strengthen the effect of empathy on trust. The interaction
  is significant but negative (−0.154, p < 0.05). The text calls the hypothesis
  "not supported" [arxiv:2401.12247 §3.3.3] [tab. 5]. Read it as an effect in
  the opposite direction, not as a null result.
- **Sign of one main effect.** The friendliness main effect in Model 3 is
  printed as 0.275 in the rotated table, while the model figure shows −0.275
  [arxiv:2401.12247 tab. 5] [fig. 2]. The text does not resolve this, so check
  the source before copying the sign.

## Papers

- [Exploring consumers response to text-based chatbots in e-commerce: The moderating role of task complexity and chatbot disclosure](/papers/2401.12247): a survey of 299 shoppers that tests two moderators of chatbot trust with blocked OLS and interaction terms.
- [Ex Machina: Personal Attacks Seen at Scale](/papers/1610.08914): labels attacks in Wikipedia talk comments and reports platform moderation outcomes. It uses "moderation" in the content sense; see [Not the same sense](#not-the-same-sense).
