Reporting results

How to Interpret Binary Logistic Regression Output in SPSS (and Report It in APA 7)

Read SPSS's logistic regression tables: Model Summary, Omnibus Tests, Coefficients, chi-square, Nagelkerke R², odds ratios with CIs, and APA 7 write-up.

A binary logistic regression predicts a yes/no outcome from one or more predictors, and SPSS prints ten or more tables. The key result is the model chi-square test, the effect size is Nagelkerke R², and the individual predictors appear as odds ratios (Exp(B)), not raw coefficients. This guide reads every table row by row with a worked example (two predictors: study hours and GPA, outcome: course enrollment), flags the misreadings that cost marks, and ends with the APA 7 write-up. For the reporting format alone, see the binary logistic regression APA guide.

What SPSS gives you

Analyze > Regression > Binary Logistic, move the outcome to the Dependent box and the predictors to Covariates, then go to Save and tick Probabilities, produces:

  1. Case Processing Summary: how many rows were included and excluded.
  2. Dependent Variable Encoding: which value (0 or 1) codes the outcome.
  3. Block 0 (null model): a baseline classification table and a model with only the constant.
  4. Omnibus Tests of Model Coefficients: the overall test (chi-square, df, p-value).
  5. Model Summary: minus-2 log-likelihood, Cox & Snell R², and Nagelkerke R².
  6. Hosmer and Lemeshow Test: a chi-square test of whether the model fits the data well.
  7. Classification Table: how many cases were classified correctly at the default .500 cut-off.
  8. Variables in the Equation: one row per predictor, with B, SE, Wald, p-value, Exp(B) (odds ratio) and its 95% CI.

The order can differ slightly between versions; the table titles are what to look for.

The worked example

A researcher measured whether 120 students enrolled in an honours program (yes or no) and two predictors: weekly study hours (mean 4.99, SD 2.52) and current GPA (mean 3.19, SD 0.51). All tables below come from one dataset.

Table 1: Case Processing Summary

Unweighted CasesNPercent
Selected CasesIncluded in Analysis120100.0
Missing Cases0.0
Total120100.0
Unselected Cases0.0
Total120100.0

Cases with complete data on all model variables (outcome plus predictors) appear under "Included in Analysis". Cases with missing values on any variable are excluded and counted under "Missing Cases". If you use a subsample, rows below that show unselected cases. The percentages here are usually 100.0 and .0 and are not reported.

Table 2: Dependent Variable Encoding

Original ValueInternal Value
No0
Yes1

SPSS assigns 0 to the first category (No) and 1 to the second (Yes, the event). The model predicts the probability of 1 (enrollment). If you want to predict 0 instead, re-code the outcome before analysis; the log-odds coefficients will flip sign.

Table 3: Block 0 Classification Table

Classification Table for Block 0 (Constant only)ᵃ

Predicted Enrolled: NoPredicted Enrolled: YesPercentage Correct
Step 0Observed Enrolled No016.0
Observed Enrolled Yes0104100.0
Overall Percentage86.7

ᵃ Constant is included in the model. ᵇ The cut value is .500.

This is the baseline: a model with no predictors, which classifies every case as Yes (the majority class). All 104 yes-cases are classified as yes; the 16 no-cases are all classified as yes and thus misclassified. The overall accuracy is 86.7%. Later, compare the full model's classification rate to this baseline; if they are similar, the predictors add little to the classification.

Table 4: Block 0 Variables in the Equation (constant only)

BS.E.WalddfSig.Exp(B)
Constant1.872.26948.5841.0006.500

The constant-only model has B = 1.872 (the log-odds of enrollment). Exp(B) = 6.500 means the odds of enrollment in this sample are 6.50 to 1 (because 87% of the sample enrolled). The Wald statistic (B / SE)² = 48.58 tests whether the constant differs from zero; it is significant here because the log-odds are far from 0. Sig. = .000 means p < .001. This row is usually not reported; it is a starting point for the full model.

Table 5: Omnibus Tests of Model Coefficients

Chi-SquaredfSig.
Step 1Step11.8422
Block11.8422
Model11.8422

The overall test: does the full model fit significantly better than the constant-only model? All three rows (Step, Block, Model) show the same χ² = 11.84 because this is the first (and only) step. The df = 2 is the number of predictors (not counting the constant). Sig. = .003 means the model is significant at the .05 level.

  • Chi-Square = 11.842: the test statistic, computed as twice the difference in log-likelihoods between the null and full models.
  • df = 2: one per predictor.
  • Sig. = .003: the full model fits significantly better than the constant-only model.

Report χ²(2) = 11.84, p = .003.

Table 6: Model Summary

Step−2 Log likelihoodCox & Snell R SquareNagelkerke R Square
182.400.094.173

Model fit and effect size.

  • −2 Log likelihood = 82.40: twice the negative log-likelihood. Lower values mean better fit. The constant-only model's −2 LL is higher; the difference is the chi-square in the Omnibus Tests table.
  • Cox & Snell R Square = .094: a pseudo R², ranging from 0 to less than 1 (it cannot reach 1 for logistic regression).
  • Nagelkerke R Square = .17: an adjusted pseudo R² that scales to a maximum of 1, making it easier to interpret.

Report Nagelkerke R² = .17. Do not interpret it as variance explained in the outcome; it is a pseudo R² on the log-odds scale.

Table 7: Hosmer and Lemeshow Test

Contingency Table for Hosmer and Lemeshow Test (Step 1):

Enrolled = No, ObservedEnrolled = No, ExpectedEnrolled = Yes, ObservedEnrolled = Yes, ExpectedTotal
144.68287.31812
243.17188.82912
332.03299.96812
411.6261110.37412
511.3341110.66612
611.0691110.93112
71.8001111.20012
80.6191211.38112
91.4211111.57912
100.2451211.75512

Hosmer and Lemeshow Test:

StepChi-SquaredfSig.
13.1698.923

A goodness-of-fit test. SPSS sorts cases by predicted probability (the "deciles of risk") and compares observed counts in each decile with what the model expected. The test checks whether the fit is adequate.

  • Rows 1 to 10: groups of about 12 students each, sorted from the lowest to the highest predicted probability of enrollment.
  • Observed and Expected: in each group, how many students actually did or did not enroll, and how many the model predicted (e.g. group 1 observed 8 enrolled vs 7.318 expected).
  • Chi-Square = 3.169, df = 8, Sig. = .923: when p > .05, there is no evidence of inadequate fit (the observed and predicted frequencies do not differ significantly). When p < .05, the frequencies deviate significantly, suggesting the model does not fit well. Report the result: "Hosmer and Lemeshow Test, χ²(8) = 3.17, p = .923."

The wording can differ between SPSS versions; this table groups deciles by default.

Table 8: Classification Table

Classification Table for Step 1ᵃ

Predicted Enrolled: NoPredicted Enrolled: YesPercentage Correct
Step 1Observed Enrolled No016.0
Observed Enrolled Yes0104100.0
Overall Percentage86.7

ᵃ The cut value is .500.

Predictions at the default .500 cut-off: if predicted probability ≥ .500, the case is classified as Yes; otherwise No. Here every student has a predicted probability above .500, so all 120 are classified as Yes: all 104 who enrolled are classified correctly (100.0%) and all 16 who did not are misclassified (.0%), for 86.7% overall. This is exactly the Block 0 baseline rate, so even though the model is statistically significant (the omnibus chi-square has p = .003), the predictors do not change any classification decisions at this cut-off (see the FAQ below). If your field cares about sensitivity and specificity separately, report those; for a general write-up, report the overall percentage.

Table 9: Variables in the Equation

Variables in the Equation (Step 1)ᵃ

BS.E.WalddfSig.Exp(B)95% C.I. for EXP(B) Lower95% C.I. for EXP(B) Upper
Study Hours.404.1319.4611.0021.4971.1581.937
GPA.734.5691.6651.1972.084.6836.361
Constant−2.1391.9521.2011.273.118

ᵃ Variable(s) entered on step 1: StudyHours, GPA.

The coefficients and effect sizes. Each row is one predictor (plus the constant).

  • B (unstandardized coefficient): the change in log-odds for a one-unit increase in the predictor. Study Hours' B = 0.404 means a one-hour increase is associated with a 0.404 unit increase in log-odds (hard to interpret). GPA's B = 0.734 is the change for a full one-point GPA increase, a large step on a 0 to 4 scale.
  • S.E. (standard error): the uncertainty of B.
  • Wald = (B / S.E.)²: the test statistic. Study Hours' Wald = 9.461, GPA's = 1.665.
  • df = 1 for each predictor.
  • Sig.: the p-value. Study Hours is significant (p = .002); GPA is not (p = .197).
  • Exp(B) (odds ratio, OR): the exponent of B, the most interpretable number. Study Hours' OR = 1.497 means each extra hour is associated with 1.50 times the odds of enrollment (a 49.7% increase in odds). GPA's OR = 2.084 means each extra GPA point is associated with 2.08 times the odds (more than doubling the odds), but this effect is not significant.
  • 95% C.I. for EXP(B): the confidence interval of the odds ratio. Study Hours' CI [1.158, 1.937] excludes 1, confirming significance. GPA's CI [.683, 6.361] includes 1, confirming non-significance.
  • Constant: the intercept, B = −2.139. Exp(B) = 0.118 is the odds of enrollment for someone with 0 study hours and 0 GPA, which is meaningless; use the constant only in the prediction equation.

Interpret the odds ratio, not B.

Misreadings that cost marks

  • Reporting B instead of Exp(B). B is a log-odds change; Exp(B) is an odds ratio. Report both but interpret the odds ratio.
  • Reversing the Hosmer-Lemeshow interpretation. Sig. > .05 means the observed and expected frequencies match well (good fit); Sig. < .05 means they differ significantly (poor fit). The rule is the opposite of many hypothesis tests.
  • Writing p = .000. Write p < .001. Applies to the Omnibus Tests and all p-values.
  • Forgetting "holding the others constant". Each B and OR is a partial effect: the change for one predictor with the other predictors held constant.
  • Ignoring the 95% CI of the odds ratio. The CI shows precision; a narrow CI crossing 1 is different from a wide one.
  • Treating Nagelkerke R² as variance explained. It is a pseudo R² on the log-odds scale, not a proportion of variance. Name it and interpret loosely.
  • Confusing the constant-only model with the full model. Block 0 is a baseline; report the full model's classification rate and chi-square.
  • Reporting classification accuracy without context. Compare to the baseline (Block 0); a tiny gain means predictors add little.

The APA 7 format template

A binary logistic regression was run to predict [outcome] from [predictors]. The model was statistically significant, χ²(df) = X.XX, p = .XXX, Nagelkerke R² = .XX. [Predictor] significantly predicted [outcome], B = X.XX, SE = X.XX, Wald = X.XX, p = .XXX, OR = X.XX, 95% CI [X.XX, X.XX]: each [one-unit increase] was associated with [X.XX] times the odds of [outcome].

Building the table for this? Eight APA 7 tables in Word, formatted and ready to fill, are in the Rescue Vault, $27 →

The write-up for this example

A binary logistic regression was run to predict course enrollment from weekly study hours and current GPA. The model was statistically significant, χ²(2) = 11.84, p = .003, Nagelkerke R² = .17, and correctly classified 86.7% of cases (equal to the constant-only baseline). Study hours significantly predicted enrollment, B = 0.40, SE = 0.13, Wald = 9.46, p = .002, OR = 1.50, 95% CI [1.16, 1.94]: each additional study hour was associated with 1.50 times the odds of enrollment. GPA was not a significant predictor, B = 0.73, SE = 0.57, Wald = 1.67, p = .197, OR = 2.08, 95% CI [0.68, 6.36].

With two or more predictors, a coefficients table (B, SE, Wald, p, OR, 95% CI) usually replaces most of that prose; see the logistic regression APA guide for the table layout.

Let KyroStat do the write-up for you

Already have the output? Paste the Omnibus Tests and Variables in the Equation tables from the SPSS Viewer into the box on the logistic regression reporting guide to get the APA sentence with odds ratios and confidence intervals. Or upload the spreadsheet to KyroStat, which fits the logistic regression, checks assumptions, and writes the sentences and tables with the code behind them.

Also useful for the write-up (affiliate links): Proofreading for your thesis or paper (20% off with code PAP20): Paperpal

Frequently asked questions

What does an odds ratio of 1.50 mean? Each one-unit increase in that predictor is associated with 1.50 times the odds of the outcome. A one-hour study increase goes with odds that are 1.50 times higher, or 50% higher.

My Hosmer-Lemeshow test is significant. Does that mean my model is bad? A significant HL test (p < .05) means the observed and predicted frequencies differ more than chance allows, suggesting poor fit. However, the test is sensitive to large samples, where even small deviations are significant. In large samples, a significant HL test does not necessarily mean the model is bad; check the classification rate, residual plots, and the practical magnitude of the discrepancies.

The classification rate is almost the same as Block 0. Is my model useless? Not necessarily. Logistic regression is not built to maximize classification accuracy; it estimates probabilities. A model that predicts well on a probability scale (evidenced by AIC, BIC or cross-validated deviance) can have a modest classification rate if the outcome is imbalanced. Report probability-based metrics if accuracy alone is misleading.

Which do I report, Cox & Snell or Nagelkerke? Nagelkerke, because it scales to 1. Both are pseudo R²; name which one.

Do I report the constant? Usually not, unless you are writing out the prediction equation. In prose, report the predictors only.

Which related guides might I need? Often these: odds ratios, logistic regression APA format, and assumptions of logistic regression.

Ready to turn your spreadsheet into results?

Create an account and run your first analysis in minutes. No install, no statistics course required.