Linear Regression · General Linear Model
Hierarchical Regression
Hierarchical regression tests whether each added block of predictors improves prediction.
Hierarchical regression enters predictors in blocks, in an order the researcher sets in advance, and tests whether each new block improves the prediction of a continuous outcome beyond the blocks before it.
Does self-compassion predict nurses' burnout over and above their age and the hours they work? Two hundred hospital nurses reported their age, weekly hours, self-compassion (1–5) and burnout (0–100). We entered age and hours first, then added self-compassion.
- Tests
- Increase in explained variance (change in R²)
- Observations
- Independent
- Parametric
- Yes
- Headline Statistic
- \Delta R^2
- Effect Size
- Local Cohen's f^2
- Groups
- 1
The Basics
When to Use It
Use it when you have one continuous outcome, several predictors, and a question about whether some of them add to the prediction beyond others. You decide in advance which predictors go in each block and in what order, usually controls first and the predictor of interest last. For example:
- Does self-compassion predict nurses' burnout over and above their age and the hours they work?
- Does working-memory capacity predict children's reading scores beyond age and vocabulary?
- Does therapeutic alliance predict change in depression symptom scores after accounting for baseline severity?
Vocabulary You Need
Definition Block
A set of predictors that enter a regression model together, at one step, because they answer one question, such as “demographics” or “the new measure.” In hierarchical regression the researcher decides before the analysis which predictors go in each block and in what order, usually control variables and presumed causes first and the predictors of interest last. Each block is judged by how much it adds to the blocks before it. Glossary →
Definition Change in R² (\Delta R^2)
The R² of a larger model minus the R² of a smaller model nested inside it (the same predictors plus some new ones). It's the extra share of the outcome's variation the model predicts once the new predictors are added, over and above the ones already in it. “Explained variance” is statistical shorthand for this kind of prediction; it says nothing about cause. It can't be negative, and when a single predictor is added it equals that predictor's squared semipartial correlation. It depends on what came first, so the same predictor can add a lot in one order and little in another. Glossary →
Definition F Change (F_{\text{change}})
The test of a change in R² between two nested models: the gain in R² per added predictor, divided by the variation still unexplained per residual degree of freedom, F = (ΔR² / Δk) / ((1 − R²) / (n − k − 1)), where R² and k belong to the larger model. Adding any predictor, even pure noise, nudges R² up a little; F change asks whether the gain is bigger than that. It is compared with an F distribution with Δk and n − k − 1 degrees of freedom. When one predictor is added, F change equals the square of that predictor's t. Glossary →
Assumptions
1. Independent Observations The people (or other units) in your study don't influence each other.
- What It Means
- Each person's data comes from a separate, unconnected source, so knowing one person's scores tells you nothing about anyone else's. In designs that measure people more than once, their own scores are meant to be related; it's different people who must be independent. Methods built for clustered data, such as multilevel models and GEE, also allow members of the same group to be related, as long as the analysis names the grouping; then it's the groups that must be independent.
- Applies To
- Observations
- How to Check
- By design, not by a test. Did each person contribute their own data, with no clusters such as roommates, couples, therapy groups or classrooms whose members influence each other? If there are clusters, does the analysis model every one of them?
- How Much It Matters
- A lot. Nurses from the same ward share a manager, a workload and each other's moods, so their burnout scores are more alike than the F change expects, and p comes out too small. For the nurse-burnout study we assume the 200 nurses came from many wards and hospitals, a few from each, so clustering is negligible.
If It's Violated
- Alternative Test Multilevel Regression (HLM). Fit the same blocks in a multilevel model with a random intercept for each ward, and compare the models by a likelihood-ratio test on maximum-likelihood fits (not REML, since the models differ in their fixed effects).
- Design Change Sample nurses from many wards, or analyze ward averages.
2. Linear Relationship The relationship between your variables follows a straight line, not a curve.
- What It Means
- As one variable goes up, the other tends to change by about the same amount across its whole range. A curved relationship, one that levels off or a U shape, breaks this.
- Applies To
- Relationship
- How to Check
- Look at a scatterplot of each pair of variables the analysis relates: a roughly oval cloud tilted one way is fine; a clear bend, a ceiling or a U is not. In a regression with several predictors, plot the residuals against the predicted values instead: a flat, even band is fine; a curve means the model is missing a bend. A component-plus-residual plot for each predictor (R: car::crPlots) shows whether one of them bends once the others are held constant.
- How Much It Matters
- A lot, for what the blocks mean. The model assumes each predictor's relationship with burnout is a straight line. If burnout rises steeply only past 45 hours a week and the model draws a line instead, block 1 under-controls for workload and some of that leftover can be credited to self-compassion.
If It's Violated
- Correction Add a squared term (or a spline) for the curved predictor to the block it belongs in, so the control is as complete as you intend.
- Transformation Log-transform a predictor whose relationship with the outcome levels off. Its coefficient then describes the log scale.
3. Equal Spread of Residuals Your scores scatter about equally around the predictions, whatever the prediction.
- What It Means
- The residuals have about the same spread at every predicted value, so the model misses by about as much for people predicted to score low as for people predicted to score high. The opposite, heteroscedasticity, often looks like a funnel. If the model's form is right, unequal spread doesn't bias the coefficients, though it makes them less precise than they could be; it does make their standard errors, and so the p-values and confidence intervals, unreliable.
- Applies To
- Residuals
- How to Check
- Plot the residuals against the predicted values (in the SPSS REGRESSION procedure, *ZRESID against *ZPRED; for MIXED, save them with /SAVE=PRED RESID and plot those). A band of even width is fine; a funnel or fan that widens or narrows is not. Don't use a test such as Breusch–Pagan as a gatekeeper: with small samples it misses real problems, and with large ones it flags trivial ones.
- How Much It Matters
- Moderate. The coefficients are still unbiased (Williams et al., 2013), but standard errors, the F change and p can be too optimistic or too cautious when the spread of residuals fans out (Hayes & Cai, 2007). Plot residuals against predicted values; in the nurse-burnout study the band is roughly even (residual SDs of 14.66, 12.85 and 13.82 across the lower, middle and upper thirds of predicted burnout).
If It's Violated
- Robust Estimation Use heteroscedasticity-consistent (HC3) standard errors for the coefficients and a robust Wald test for the block. For our data self-compassion gives t(196) = −2.69, p = .008, close to the ordinary result.
- Transformation A log or square-root transformation can even out a spread that grows with the predicted value, at the cost of a less natural scale.
4. Normality The scores the test relies on are roughly bell-shaped, or your sample is big enough that it doesn't matter.
- What It Means
- The test's model assumes the scores it relies on are roughly normal: the scores within each group (or the scores themselves, for a one-sample test), the difference scores in a paired design, or the residuals (the errors left around a model's predictions) in a regression. For p-values and confidence intervals, what really matters is that the estimates (such as a mean, a difference between means or a model's coefficients) are roughly normal across repeated samples. A large enough sample usually provides that; how large depends on how skewed the scores are and how extreme their outliers.
- Applies To
- Residuals
- How to Check
- Look at a histogram or Q–Q plot for strong skew or extreme outliers. Don't rely on a normality test: with small samples it misses real problems, and with large ones it flags trivial ones.
- How Much It Matters
- Little, for p, once the sample is moderate. In simulations, Gaussian models kept reliable p-values across a wide range of non-normal data, except with influential outliers, especially at strict α levels (Knief & Forstmeier, 2021). With 200 nurses and roughly symmetric residuals (skew 0.07), it's fine here.
If It's Violated
- Robust Estimation Bootstrap the change in R² and the coefficient's interval by resampling nurses.
- Transformation Transform a strongly skewed outcome, and report results on that scale.
5. No Severe Multicollinearity Your predictors aren't so closely related that their effects can't be told apart.
- What It Means
- Each coefficient is estimated from the part of its predictor that doesn't overlap with the others. When predictors are highly correlated, that part is small, so the coefficients become unstable and their standard errors large, even though the model as a whole may predict well. Perfect overlap, such as including a total score and all of its parts, makes the model impossible to estimate.
- Applies To
- Predictors
- How to Check
- Look at the correlations among the predictors and at each predictor's variance inflation factor (VIF). A VIF near 1 means little overlap. Common cutoffs of 5 or 10 are rules of thumb, not tests (O'Brien, 2007); the real question is whether the coefficients you care about are still precise enough to interpret.
- How Much It Matters
- It doesn't bias the change in R², but it usually shrinks it: if the new predictor mostly overlaps with block 1, there's little left for it to add, and its coefficient gets a wide interval. Here the variance inflation factors are all 1.06 or less, far from even the loosest rules of thumb, which are rough guides rather than tests (O'Brien, 2007).
If It's Violated
- Proceed with Caveat Report the correlations among predictors, and say that a small change in R² can mean the blocks overlap, not that the new predictor doesn't matter.
- Design Change If two measures tap the same construct, combine them or choose one before the analysis.
6. No Extreme Outliers No single case is far enough from the rest to drive the result.
- What It Means
- A few points far from the rest can pull a statistic around on their own, so it describes those few points more than everyone else. In a test, that can create an effect that isn't there or hide one that is.
- Applies To
- Observations
- How to Check
- Plot the data and look for points far from the rest. With two or more variables, flag cases with large squared Mahalanobis distances across them: points can be ordinary on each variable but unusual in combination. Check each against the raw records, and compare the result with and without it.
- How Much It Matters
- Moderate to a lot. One nurse with an extreme score and extreme predictors can pull the fitted equation and change how much the second block seems to add. The largest standardized residual here is 2.83, and no case stands out.
If It's Violated
- Correction Check extreme cases (large standardized residuals or Cook's distance) against the raw data, and fix entry errors.
- Proceed with Caveat If an outlier is a real person, report the change in R² with and without them.
Limitations
This Is Not Your Test If…
- You want the software to choose which predictors stay Stepwise Regression →
- You have no order in mind, just predictors to fit together Multiple Linear Regression →
- You're testing whether a predictor works through a mediator Mediation Analysis →
- Your outcome is yes/no, not a score Logistic Regression →
- Your people are nested in wards, schools or clinics Multilevel Regression (HLM) →
- Your key predictor is a set of groups, with covariates first ANCOVA →
What It Doesn't Tell You
- Why. Self-compassion predicted burnout beyond age and hours, but nothing here shows it protects against burnout; burnout may erode self-compassion, or a third factor, like ward staffing, may drive both.
- Whether it matters. A significant gain of 3.0% doesn't say whether 4.45 burnout points per point of self-compassion is a difference nurses or hospitals would notice.
- What else was controlled. The gain is over and above age and hours only, and only as well as those were measured. A different or better-measured block 1 could shrink it.
- That self-compassion adds nothing, if p had been above .05. A non-significant change would have meant the data were inconclusive, not that self-compassion is irrelevant.
Common Mistakes
-
Don'tLet the software choose the order of entry and call it hierarchical regression.
InsteadFix the blocks and their order before the analysis, from theory or causal priority, and say why.
-
Don'tReport the final model's R² as what the new predictor adds.
InsteadReport the change in R² for its block, with its F change and p.
-
Don'tRead a significant change in R² as proof the new predictor causes the outcome.
InsteadSay it predicts the outcome over and above the earlier blocks. The design is still correlational.
-
Don'tTreat "controlling for" a noisy measure as removing its construct.
InsteadRemember that unreliable controls leave some of their construct behind, which can make a new predictor look incremental when it isn't (Westfall & Yarkoni, 2016).
-
Don'tEnter a variable that the new predictor causes in an earlier block.
InsteadPut presumed causes before their effects, or you may credit the cause's variance to its effect.
-
Don'tRead the controls' coefficients in the final model as adjusted only for each other.
InsteadRead each block's coefficients from the model where it entered. Order changes ΔR², never the final model.
-
Don'tCompare changes in R² from models whose earlier blocks differ.
InsteadSay what each change was over and above. A predictor's ΔR² depends on everything entered before it.
-
Don'tRead a p-value as the chance that the null hypothesis is true.
InsteadRead it as: if the null were true, how often data at least this extreme would turn up.
Result Decoder
Significance and Effect Size Guidelines
Benchmarks Significance (p Value)
-
p < .001
Very strong evidence against the null hypothesis.
-
.001 ≤ p < .01
Strong evidence against the null hypothesis.
-
.01 ≤ p < .05
Statistically significant at α = .05. Moderate evidence against the null hypothesis.
-
.05 ≤ p < .10
Not significant. Weak evidence; sometimes called a “trend.” Treat it as inconclusive.
-
p ≥ .10
Not significant. Little evidence against the null, which is not the same as evidence of no effect.
These evidence labels are one common convention for describing p in graded language rather than as significant or not; the boundaries are rough guides, not rules, and other authors draw them differently. Muff et al. (2022) argue for this kind of language of evidence over a single cutoff. α is chosen before the analysis, and p never says how big or important an effect is.
Benchmarks Effect Size (Local Cohen's f^2)
-
f² < .02
Below Small
Smaller than the conventional small benchmark. Whether an effect this size matters depends on the setting.
-
.02 ≤ f² < .15
Small
The added block predicts 2% to 15% as much variation as the full model still leaves unexplained. Real, but hard to see without measuring it.
-
.15 ≤ f² < .35
Medium
The added block predicts 15% to 35% as much variation as the full model still leaves unexplained.
-
f² ≥ .35
Large
The added block predicts 35% or more as much variation as the full model still leaves unexplained.
Here f² describes the change from one model to the next (Cohen's local f²), not the whole model, so the ranges are ratios: the added block's variation against what the full model still leaves unexplained. They don't translate into a share of the outcome unless there are no earlier blocks. Benchmarks are conventions (Cohen, 1988), not measures of practical importance, and a small f² can still matter when the earlier blocks are strong controls.
How It's Reported
Equation Form
ΔR2 = .030, f2 = 0.035, Fchange(1, 196) = 6.92, p = .009
Table 1. Hierarchical Regression Predicting Burnout: Model Summary
| R^2 | Adjusted R^2 | \Delta R^2 | F_{\text{change}} | df_1 | df_2 | p | |
|---|---|---|---|---|---|---|---|
| Model 1 | .121 | .112 | .121 | 13.56 | 2 | 197 | < .001 |
| Model 2 | .151 | .138 | .030 | 6.92 | 1 | 196 | .009 |
Note. Model 1: age and weekly hours. Model 2: adds self-compassion. Model 1's change is its gain over a model with no predictors; Model 2's row is the test of self-compassion. Adjusted R² shrinks R² to allow for the number of predictors, as an estimate for the population.
Table 2. Model 2 Coefficients Predicting Burnout
| b | SE | 95% CI | \beta | t | p | |
|---|---|---|---|---|---|---|
| Intercept | 43.98 | 8.74 | [26.74, 61.22] | 5.03 | < .001 | |
| Age | −0.21 | 0.10 | [−0.41, −0.01] | −.14 | −2.09 | .038 |
| Weekly hours | 0.73 | 0.17 | [0.40, 1.06] | .29 | 4.41 | < .001 |
| Self-compassion | −4.45 | 1.69 | [−7.79, −1.11] | −.18 | −2.63 | .009 |
Note. b = unstandardized coefficient (burnout points per unit); β = standardized coefficient. Age's and hours' coefficients here are also adjusted for self-compassion; in Model 1 they were −0.27 and 0.79. With one predictor added, self-compassion's t² equals the F change in Table 1.
Full Text (APA Style)
Nurses' burnout averaged 49.99 out of 100 (SD = 14.99). In block 1, age and weekly hours together predicted 12.1% of the variation in burnout, R2 = .121, F(2, 197) = 13.56, p < .001. Adding self-compassion in block 2 raised this to 15.1%, ΔR2 = .030, f2 = 0.035, a small gain by convention. The increase was statistically significant, Fchange(1, 196) = 6.92, p = .009. Holding age and hours constant, nurses one point higher in self-compassion reported 4.45 fewer points of burnout, b = −4.45, 95% CI [−7.79, −1.11], t(196) = −2.63.
- Report every block: its R², its change in R², the F change with both degrees of freedom, and p. A table with one row per model is the usual format.
- Say what went into each block and why that order, before any results.
- Give the new predictor's coefficient, with its interval, so readers can see the size in the outcome's units.
- ΔR² has no interval in standard output. Give one where you can (for example, a percentile bootstrap that resamples people); the new predictor's coefficient interval shows the uncertainty in the outcome's units too.
- Write “predicted … over and above,” not “caused” or “reduced.” The design is correlational.
- Read each block's coefficients from the model where it entered, and report them there. Later blocks change them: once self-compassion is in, age's coefficient moves from −0.27 (Model 1) to −0.21, because it's now also adjusted for self-compassion.
- When a block has several predictors, its F change tests them together (df₁ = the number added). Report it first; the individual coefficients can disagree with it, because predictors in the same block share variation.
Reading Each Piece
The equation form above, piece by piece, in this order: how big, how certain, then how surprising.
| ΔR2 = .030 | Adding self-compassion lets the model predict an extra 3.0% of the differences in burnout, beyond what age and weekly hours predict. |
| f2 = 0.035 | The variation self-compassion adds is 0.035 times the variation the full model still leaves unexplained. That's a ratio, not a share of burnout, and small by the benchmarks above; whether a difference this size matters to nurses is a judgment, not statistics. Benchmarks ↑ |
| Fchange(1, 196) = 6.92 | Self-compassion's gain in R² was about 6.92 times what a useless predictor would be expected to add. The 1 and 196 are the degrees of freedom: predictors added, and n − 3 − 1. |
| p = .009 | If self-compassion added nothing to the prediction beyond age and hours, a gain at least this big would turn up about 0.9% of the time. That's below .05, so the increase is statistically significant. Benchmarks ↑ |
Calculations
The Running Example
The nurse-burnout study: 200 nurses, with age and weekly hours entered in block 1 and self-compassion added in block 2, asking whether self-compassion improves the prediction of burnout.
- Null Hypothesis:
- \Delta\rho^2 = 0
- Alternative:
- \Delta\rho^2 > 0
\Delta\rho^2 (“delta rho squared”) is the change in R² in the population: how much more of the variation in all nurses' burnout self-compassion would predict beyond age and hours. Our sample's ΔR² = .030 estimates it. With one predictor added, this is the same as asking whether self-compassion's coefficient is zero with age and hours held constant.
What Your Data Should Look Like
One row per person, with a numeric column for the outcome and one for each predictor. Which predictors go in which block isn't in the data file; it's part of the analysis plan, written down before you look at the results.
| nurse | age | weekly_hours | self_compassion | burnout |
|---|---|---|---|---|
| 1 | 26 | 27 | 2.46 | 55 |
| 2 | 29 | 36 | 3.63 | 52 |
| 3 | 60 | 37 | 3.75 | 26 |
| 4 | 46 | 37 | 3.28 | 20 |
| 5 | 48 | 34 | 3.84 | 47 |
| 6 | 36 | 48 | 4.12 | 28 |
| … 194 more rows | ||||
| M | SD | 1 | 2 | 3 | |
|---|---|---|---|---|---|
| 1. Burnout | 49.99 | 14.99 | |||
| 2. Age | 40.00 | 9.97 | −.15 | ||
| 3. Weekly Hours | 38.01 | 6.00 | .30 | .09 | |
| 4. Self-Compassion | 3.00 | 0.60 | −.24 | .20 | −.10 |
N = 200.
Block 1: age and weekly hours; block 2: self-compassion.
Correlations are Pearson r.
Simulated data.
Napkin Math
The whole test, one idea at a time. Under each heading, a line says why the step matters, and the green note reads the equation in plain English with the nurse-burnout study's numbers. Collapse all to read just the headings: they tell the whole story on their own.
-
1. See How Much the Control Variables Predict on Their Own
Regression predicts each nurse's burnout from a weighted sum of the predictors, predicted burnout = b_0 + b_1 \times \text{age} + b_2 \times \text{hours}, choosing the weights (the coefficients) that make the squared misses as small as possible in total. First, fit this model with only the controls. Its R² is the share of the variation in burnout it predicts, the baseline that anything added later has to beat. (“Explain” in “explained variance” means predict statistically; it says nothing about cause.)
R^2 = 1 - \dfrac{SS_{\text{residual}}}{SS_{\text{total}}} =1 - \dfrac{39{,}299.40}{44{,}707.98}R^2_1 = .121
SS_{\text{total}} is how far nurses' burnout scores fall from the average, squared and added up: 44,707.98. SS_{\text{residual}} is how far they fall from what age and hours predict: 39,299.40. 1 − 0.879 = .121, so age and hours predict 12.1% of the variation in burnout.
-
2. Add the New Predictor and See How Much the Model Predicts Now
Next, refit with self-compassion added to the same two controls: the equation gets one more term, +\, b_3 \times \text{self-compassion}. R² can only go up, never down, so the question is how much.
R^2 = 1 - \dfrac{SS_{\text{residual}}}{SS_{\text{total}}} =1 - \dfrac{37{,}958.73}{44{,}707.98}R^2_2 = .151
The total is the same 44,707.98; with self-compassion in the model, the leftover misses shrink to 37,958.73. 1 − 0.849 = .151, so the three predictors together predict 15.1%.
-
3. Find How Much the New Predictor Added
The gain in R² is the heart of the analysis. It's the share of burnout that self-compassion predicts beyond what age and hours already did.
\Delta R^2 = R^2_2 - R^2_1 =.151 - .121= .030
R^2_2 is the full model's .151 and R^2_1 the controls' .121. .151 − .121 = .030: adding self-compassion predicts an extra 3.0% of the variation in burnout.
-
4. Measure the Gain against What Was Still Unexplained
A 3% gain means more when little is left to predict than when a lot is. Cohen's f² divides the gain by the share the full model still leaves unexplained, which puts it on a scale with conventional benchmarks. It's a ratio of two amounts of variation, not a share of anything, and it can exceed 1.
f^2 = \dfrac{R^2_2 - R^2_1}{1 - R^2_2} =\dfrac{.030}{1 - .151}= 0.035
The gain is .030, and the full model still leaves 1 − .151 = .849 unexplained. .030 ÷ .849 = 0.035: what self-compassion adds is about 3.5% the size of what all three predictors still leave unexplained.
-
5. Account for How Much Information We Had
The test needs two counts. One is how many predictors we added. The other is how much information is left after estimating every coefficient in the full model.
df_1 = \Delta k, \quad df_2 = n - k_2 - 1 =1, \quad 200 - 3 - 1= 196
\Delta k is the 1 predictor we added. n is our 200 nurses and k_2 the 3 predictors in the full model, so 200 − 3 − 1 = 196.
-
6. Compare the Gain with What Chance Alone Would Add
Adding any predictor, even random noise, nudges R² up a little. F change compares the gain per added predictor with the unexplained share per remaining degree of freedom, which is about what one useless predictor would add.
F_{\text{change}} = \dfrac{\Delta R^2 / \Delta k}{(1 - R^2_2) / (n - k_2 - 1)} =\dfrac{.030 / 1}{.849 / 196}= 6.92
\Delta R^2 / \Delta k is .030 ÷ 1 = .030. (1 - R^2_2)/(n - k_2 - 1) is .849 ÷ 196 = .00433, roughly what a noise predictor would add. .030 ÷ .00433 = 6.92 (with unrounded values): the gain is about seven times what noise would give.
-
7. Ask How Surprising the Gain Would Be If Self-Compassion Added Nothing
Finally, ask how often chance alone would produce a gain at least this big if self-compassion added nothing to the prediction beyond age and hours.
p = P(F_{df_1,\,df_2} \ge F) =P(F_{1,\,196} \ge 6.92)= .009
F_{1,\,196} is an F distribution with 1 and 196 df. The chance it lands at or above 6.92 is .009, about 1 in 109. Only large F values count against the null, so there's one tail.
-
8. Put the Gain in Burnout Points
ΔR² says how much self-compassion adds, but not which way or by how many points. Its coefficient in the full model does, and when a single predictor is added, its t test is the same test as the F change.
t = \dfrac{b_j}{SE_{b_j}} =\dfrac{-4.45}{1.69}= −2.63
b = −4.45 points
SE_b = 1.69 points
b is −4.45: holding age and hours constant, nurses one point higher in self-compassion score 4.45 points lower on burnout. SE_b is 1.69, so t = −4.45 ÷ 1.69 = −2.63. Square it and you get 6.92, the F change.
-
9. Give a Range of Plausible Values for Self-Compassion's Coefficient
Instead of a single best guess, give the range of coefficients that fit the data.
b_j \pm t^{*}_{n-k-1} \times SE_{b_j} =-4.45 \pm 1.972 \times 1.69= [−7.79, −1.11] points
t^{*}_{196} = 1.972 is the cutoff that holds the middle 95% of a t distribution with 196 df. 1.972 × 1.69 = 3.34 (with the unrounded SE of 1.6916), so the range is −4.45 ± 3.34, from −7.79 to −1.11 burnout points per point of self-compassion.
Run It in Software
The code below reads the running example's data from data.csv; save it in the same folder you run the code from.
SPSS (version 30, as documented by IBM)
- Analyze → Regression → Linear.
- Move
burnoutinto Dependent, andageandweekly_hoursinto Independent(s). Leave Method at Enter. This is Block 1 of 1. - Click Next, then move
self_compassioninto Independent(s) for Block 2 of 2. - Statistics: check Estimates, Confidence intervals, Model fit and R squared change. Click Continue, then OK.
Or paste this syntax:
REGRESSION /MISSING LISTWISE /STATISTICS COEFF OUTS CI(95) R ANOVA CHANGE /CRITERIA=PIN(.05) POUT(.10) /NOORIGIN /DEPENDENT burnout /METHOD=ENTER age weekly_hours /METHOD=ENTER self_compassion.
Reading the Output
SPSS calls each block a Model. Read the Model Summary first, row 2: R Square Change, then F Change with df1 and df2, then Sig. F Change. Then read self-compassion's row in Coefficients for its size in burnout points.
Model Summary
| Model | R | R Square | Adjusted R Square | Std. Error of the Estimate | R Square Change | F Change | df1 | df2 | Sig. F Change |
|---|---|---|---|---|---|---|---|---|---|
| 1 | .348 | .121 | .112 | 14.124 | .121 | 13.556 | 2 | 197 | <.001 |
| 2 | .389 | .151 | .138 | 13.916 | .030 | 6.923 | 1 | 196 | .009 |
Model 1's “change” is its gain over an empty model, so it repeats its own R² and overall F. Model 2's row is the test of self-compassion.
R is the correlation between burnout and the model's predictions (its square is R²). Std. Error of the Estimate is the typical miss, in burnout points: 13.9 in Model 2.
Coefficients (Model 2)
| B | Std. Error | Beta | t | Sig. | 95% CI Lower | Upper | |
|---|---|---|---|---|---|---|---|
| (Constant) | 43.981 | 8.741 | 5.032 | <.001 | 26.742 | 61.219 | |
| age | -.212 | .102 | -.141 | -2.088 | .038 | -.413 | -.012 |
| weekly_hours | .733 | .166 | .293 | 4.406 | <.001 | .405 | 1.061 |
| self_compassion | -4.451 | 1.692 | -.178 | -2.631 | .009 | -7.787 | -1.115 |
SPSS also prints an ANOVA table for each model (the whole model against an empty one) and Model 1's coefficients; neither tests the change. Self-compassion's t squared, 2.631², is the 6.923 F change. SPSS doesn't print f²; compute it as .030 ÷ (1 − .151).
Output laid out from this page's computed results, not captured from a live run; labels and layout may differ slightly in your version.
R
nurses <- read.csv("data.csv")
m1 <- lm(burnout ~ age + weekly_hours, data = nurses)
m2 <- update(m1, . ~ . + self_compassion)
# R-squared for each block, and the change
r2 <- c(summary(m1)$r.squared, summary(m2)$r.squared)
r2; diff(r2)
# F test for the change
anova(m1, m2)
# Cohen's local f-squared
diff(r2) / (1 - r2[2])
# Self-compassion's coefficient and interval
summary(m2)$coefficients["self_compassion", ]
confint(m2)["self_compassion", ]
[1] 0.1209757 0.1509629
[1] 0.02998723
Analysis of Variance Table
Model 1: burnout ~ age + weekly_hours
Model 2: burnout ~ age + weekly_hours + self_compassion
Res.Df RSS Df Sum of Sq F Pr(>F)
1 197 39299
2 196 37959 1 1340.7 6.9225 0.009188 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
[1] 0.03531911
Estimate Std. Error t value Pr(>|t|)
-4.450724203 1.691600400 -2.631073037 0.009188491
2.5 % 97.5 %
-7.786799 -1.114649
anova(m1, m2) is the F change: RSS is each model's leftover sum of squares, and Sum of Sq is how much adding self-compassion shrank it. The models must be fitted to the same people; if a predictor has missing values, drop those rows before fitting both.
Output from a real run: R 4.6.1, run 2026-10-03.
Python
import pandas as pd
import statsmodels.formula.api as smf
from statsmodels.stats.anova import anova_lm
nurses = pd.read_csv("data.csv")
m1 = smf.ols("burnout ~ age + weekly_hours", data=nurses).fit()
m2 = smf.ols("burnout ~ age + weekly_hours + self_compassion", data=nurses).fit()
m1.rsquared, m2.rsquared # (0.1210, 0.1510)
m2.rsquared - m1.rsquared # 0.02999
print(anova_lm(m1, m2)) # F change and p
m2.params["self_compassion"] # -4.4507
m2.conf_int().loc["self_compassion"] # (-7.7868, -1.1146)
df_resid ssr df_diff ss_diff F Pr(>F)
0 197.0 39299.402572 0.0 NaN NaN NaN
1 196.0 37958.733918 1.0 1340.668654 6.922545 0.009188
Row 1 compares the second model with the first: ss_diff is the drop in leftover sum of squares, F is the F change and Pr(>F) its p. m2.summary() prints the full coefficient table.
Output from a real run: Python 3.9.6 (statsmodels 0.14.6, pandas 2.3.3), run 2026-10-03.
Impact
Effect Size
The change in R² is the most direct size: the share of the outcome's variation the new block adds. Cohen's local f² divides it by what the full model still leaves unexplained, which puts it on Cohen's benchmark scale and is what power calculations for regression use. Like ΔR², it depends on what was entered before, so compare it only across studies with the same earlier blocks.
Adding self-compassion raised the share of burnout the model predicts by 3.0 percentage points. That gain is 0.035 times the variation the full model still leaves unexplained, a small effect by convention. f² is a ratio, not a share of burnout. Don't read it as "3.5% of what age and hours left unexplained": that share is .030 ÷ .879 = .034, a different quantity (the partial R²).
In the outcome's own units, nurses one point higher on the 1–5 self-compassion scale reported about 4.45 fewer burnout points (out of 100), with age and hours held constant. That's a difference between nurses, not what a program would achieve: whether raising self-compassion lowers burnout at all needs an experiment. Benchmarks are conventions, and whether a difference this size matters is a question about nurses, not statistics.
Benchmarks Local Cohen's f^2 at a Glance
Statistical Significance
p answers one narrow question: if the new block added nothing in the population, how often would a sample gain in R² be at least this large? Below the conventional α = .05, the gain is called statistically significant.
If self-compassion added nothing to the prediction beyond age and hours, 200 nurses would show a gain at least this large about 0.9% of the time, roughly 1 in 109. That's below .05, so it's significant.
p is not the probability that the new block adds nothing, and it says nothing about how much it adds: with 2,000 nurses, a far smaller gain would be significant too. That's what ΔR², f² and the coefficient's interval are for.
Benchmarks p at a Glance
Strength of evidence against the null hypothesis.
Power and Sample Size
Power is the chance that a study detects an effect that's really there. A real gain in R² doesn't guarantee a significant F change: with too few people, it can easily come out non-significant. Power depends on how big the gain is relative to what's left unexplained (f²), how many people you have, how many predictors you add and how many are in the full model, and α.
Suppose, before collecting any data, we expected self-compassion to add about what it did here, f² = 0.035 (rounded from 0.0353), to a model with age and hours. With our 200 nurses, the study would come out significant about 75% of the time. Reaching 80% would take 227 nurses.
Researchers usually aim for at least 80% power. Plan it before collecting data, using the smallest gain that would matter. Small gains need big samples: 80% power for f² = 0.02, with one predictor added to make three, takes about 395 people. The calculator below is set to this design, testing 1 added predictor out of 3, and uses the same method as G*Power's “Linear multiple regression: Fixed model, R² increase.” Try it:
Other Info
Follow-Up and Post Hoc Tests
None needed. This test answers a single question, so there are no planned contrasts or post hoc tests to run.
References
- Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Lawrence Erlbaum Associates. https://doi.org/10.4324/9780203774441
-
Petrocelli, J. V. (2003). Hierarchical multiple regression in counseling research: Common problems and possible remedies. Measurement and Evaluation in Counseling and Development, 36(1), 9–22.
https://doi.org/10.1080/07481756.2003.12069076
“Hierarchical regression involves theoretically based decisions for how predictors are entered into the analysis.” (p. 9)
“A predetermined, theoretically based plan for the order of predictor variable entry, held at the discretion of the researcher, is imposed on the data.” (p. 11)
- Cohen, J. (1988). Statistical power analysis for the behavioral sciences (2nd ed.). Lawrence Erlbaum Associates.
-
Selya, A. S., Rose, J. S., Dierker, L. C., Hedeker, D., & Mermelstein, R. J. (2012). A practical guide to calculating Cohen's f², a measure of local effect size, from PROC MIXED. Frontiers in Psychology, 3, 111.
https://doi.org/10.3389/fpsyg.2012.00111
“Cohen’s f2 (Cohen, 1988) is appropriate for calculating the effect size within a multiple regression model in which the independent variable of interest and the dependent variable are both continuous.” (Methods, Choosing a measure of effect size)
- Hayes, A. F., & Cai, L. (2007). Using heteroskedasticity-consistent standard error estimators in OLS regression: An introduction and software implementation. Behavior Research Methods, 39(4), 709–722. https://doi.org/10.3758/BF03192961
-
Knief, U., & Forstmeier, W. (2021). Violating the normality assumption may be the lesser of two evils. Behavior Research Methods, 53(6), 2576–2590.
https://doi.org/10.3758/s13428-021-01587-5
“Gaussian models are robust to non-normality over a wide range of conditions, meaning that p values remain fairly reliable except for data with influential outliers judged at strict alpha levels.” (Abstract)
-
G*Power 3.1 manual. (2023, June 1). Heinrich-Heine-Universität Düsseldorf.
https://www.psychologie.hhu.de/fileadmin/redaktion/Fakultaeten/Mathematisch-Naturwissenschaftliche_Fakultaet/Psychologie/AAP/gpower/GPowerManual.pdf
“noncentrality parameter λ = f 2 N” (§14)
-
Westfall, J., & Yarkoni, T. (2016). Statistically controlling for confounding constructs is harder than you think. PLOS ONE, 11(3), e0152719.
https://doi.org/10.1371/journal.pone.0152719
“common strategies for establishing incremental construct validity using multiple regression analysis exhibit extremely high Type I error rates under parameter regimes common in many psychological domains.” (Abstract)
-
Muff, S., Nilsen, E. B., O'Hara, R. B., & Nater, C. R. (2022). Rewriting results sections in the language of evidence. Trends in Ecology & Evolution, 37(3), 203–210.
https://doi.org/10.1016/j.tree.2021.10.009
“we suggest language of evidence that allows for a more nuanced approach to communicate scientific findings as a simple and intuitive alternative to statistical significance testing” (Abstract)
-
Williams, M. N., Gómez Grajales, C. A., & Kurkiewicz, D. (2013). Assumptions of multiple regression: Correcting two misconceptions. Practical Assessment, Research & Evaluation, 18(11), 1–14.
https://doi.org/10.7275/55hn-wk47
“ordinary least squares estimates will be unbiased and consistent as long as the errors are independent, but will not be efficient” (p. 9)
- O'Brien, R. M. (2007). A caution regarding rules of thumb for variance inflation factors. Quality & Quantity, 41(5), 673–690. https://doi.org/10.1007/s11135-006-9018-6
Spot an error? Something still confusing? Tell us at support@statsforpsychology.com.