Part 15 · Module 2

How to Interpret Statistical Software Output

Learn how to translate statistical software output into an effect estimate, uncertainty statement and clinically appropriate conclusion without copying raw console output.

Learning outcomes

After completing this lecture, you should be able to:

  • Identify the model call, outcome, predictors, coding and analysis sample in software output.
  • Interpret coefficients, standard errors, test statistics, degrees of freedom and p-values.
  • Recognise reference categories and transformed effect scales.
  • Distinguish coefficient tables from model-fit and diagnostic output.
  • Extract a concise publication-ready result from R output.
  • Detect software defaults that can alter interpretation.

Overview

Statistical software produces far more output than should appear in a manuscript.

The analyst’s task is to identify:

  • what model was fitted;
  • which population and observations were used;
  • how variables were coded;
  • the effect estimate answering the research question;
  • its standard error and confidence interval;
  • relevant diagnostics;
  • and any warnings.

Raw output should be converted into a clear clinical statement. Copying an entire console or screenshot transfers the interpretation burden to the reader and can expose irrelevant or misleading statistics.

Why this matters

The same numerical coefficient can mean:

  • mmHg per year in linear regression;
  • change in log odds in logistic regression;
  • change in log rate in Poisson regression;
  • log hazard ratio in Cox regression.

Software often reports the coefficient on the model scale. Clinical reporting may require transformation:

  • exponentiating logistic coefficients to odds ratios;
  • exponentiating Poisson coefficients to rate ratios;
  • multiplying a one-unit slope for a clinically meaningful contrast;
  • calculating predicted probabilities.

Defaults also matter. R’s t.test() uses Welch’s method by default for independent groups. Factor reference levels follow the stored order. Missing records may be removed silently by complete-case analysis.

When to use this framework

Use it whenever interpreting:

  • regression summaries;
  • t-test or ANOVA output;
  • contingency-table tests;
  • survival models;
  • diagnostic models;
  • prediction-model performance;
  • warnings or convergence messages.

The framework applies across software packages, although labels and defaults differ.

The hierarchy of software output

Level 1: model specification

Check:

  • function used;
  • formula;
  • dataset;
  • family and link;
  • options;
  • weights or clusters;
  • confidence level.

Level 2: analysis sample

Determine:

  • number analysed;
  • number excluded;
  • events;
  • missing records;
  • degrees of freedom;
  • convergence.

Level 3: primary coefficients

Extract:

  • estimate;
  • standard error;
  • test statistic;
  • confidence interval;
  • p-value;
  • units or transformed scale.

Level 4: model fit

Examples include:

  • residual standard error;
  • R2R^2;
  • log likelihood;
  • AIC;
  • deviance;
  • dispersion;
  • calibration;
  • discrimination.

These do not replace the primary effect estimate.

Level 5: diagnostics and warnings

Warnings about convergence, separation, rank deficiency or fitted probabilities near zero or one can invalidate ordinary interpretation.

Data structure and coding

Coding used in the simulated model

simulated data
VariableRoleCoding
sbp_week12Numerical outcomemmHg
groupMain predictorUsual care reference; telemonitoring comparison
sbp_baselineAdjustment variablemmHg
Analytical unitParticipantOne row
Missing-data methodComplete-record exampleRows with missing model variables omitted

The factor reference level determines the sign of the treatment coefficient.

Worked example

Reproducible R interpretation

trial <- data.frame(
  group = factor(
    rep(c("Usual care", "Telemonitoring"), each = 6),
    levels = c("Usual care", "Telemonitoring")
  ),
  sbp_baseline = c(
    150, 145, 160, 142, 155, 148,
    149, 153, 158, 144, 151, 147
  ),
  sbp_week12 = c(
    141, 136, 145, 133, 143, 138,
    132, 136, 139, 129, 133, 131
  )
)

fit <- lm(
  sbp_week12 ~ group + sbp_baseline,
  data = trial
)

summary(fit)
confint(fit)

result <- data.frame(
  term = names(coef(fit)),
  estimate = unname(coef(fit)),
  ci_lower = confint(fit)[, 1],
  ci_upper = confint(fit)[, 2]
)

transform(
  result,
  estimate = round(estimate, 2),
  ci_lower = round(ci_lower, 2),
  ci_upper = round(ci_upper, 2)
)

What to extract

The exact toy coefficients differ from the larger simulated trial used in the manuscript example. The code demonstrates the extraction process:

  • use summary() for coefficients, SEs, test statistics and fit;
  • use confint() for intervals;
  • verify factor levels with levels(trial$group);
  • verify the model sample with nobs(fit) and model.frame(fit).

Base R documents the structure returned by lm() and summary.lm() [1].

Understanding common columns

Estimate

The estimate is on the model scale.

  • linear regression: outcome units;
  • logistic regression: log odds;
  • Poisson regression: log rate;
  • Cox regression: log hazard.

Standard error

The SE quantifies estimated sampling variability under the model. It is not participant variability.

Test statistic

For many coefficient tables:

statistic=estimateSE\text{statistic} = \frac{\text{estimate}}{\text{SE}}

The reference distribution may be t, normal or chi-square depending on the model.

Degrees of freedom

Degrees of freedom influence the reference distribution and may be non-integer in Welch tests or corrected repeated-measures analyses.

P-value

A p-value should not be read without the estimate and uncertainty [2].

Confidence interval

Software may not print the interval by default. Always calculate it using a method compatible with the model and test.

Transformed coefficients

For logistic regression:

exp(coef(fit))
exp(confint(fit))

produces odds ratios and their intervals.

For a continuous predictor, an odds ratio per one unit may be clinically awkward. A ten-unit contrast is:

exp(10 * coef(fit)["age"])

with its interval transformed similarly.

Model fit output

R2R^2

Describes in-sample explained variation for a linear model. It is not the treatment effect or causal validity.

AIC

Compares relative expected information loss among fitted candidate models. Lower AIC does not prove clinical usefulness.

Residual standard error

Describes typical residual variation in outcome units.

Deviance

Used in generalised linear models to summarise likelihood-based discrepancy. Its interpretation depends on model family and comparison.

Software warnings

Never ignore messages such as:

  • algorithm did not converge;
  • fitted probabilities numerically 0 or 1;
  • singular fit;
  • coefficients not defined because of singularities;
  • rank-deficient prediction;
  • non-integer successes in a binomial model.

A result can contain plausible-looking coefficients despite a warning that undermines ordinary inference.

Interpreting the output

Presenting the results

Suggested reporting

SAMPL guidance recommends naming methods precisely and reporting estimates with uncertainty rather than raw software labels [3].

Common mistakes

Knowledge check

What should be checked before reading a coefficient?

Answer and reasoning

The model outcome, formula, family, coding, reference categories, sample and options.

What does −5.9 mean in the linear model?

Answer and reasoning

It is the adjusted telemonitoring-minus-usual-care mean difference in week-12 systolic blood pressure, measured in mmHg.

Why is confint() needed?

Answer and reasoning

summary.lm() does not print coefficient confidence intervals by default.

What does a convergence warning imply?

Answer and reasoning

Ordinary coefficient and uncertainty interpretation may be unreliable and the model or data need investigation.

Should the full R console output be placed in the results section?

Answer and reasoning

No. Extract the estimates, intervals, essential test results and diagnostics that answer the research question.

Key take-home messages

References

  1. R Core Team. Fitting linear models and summarising model fits. R documentation, package stats version 4.6.1. Vienna: R Foundation for Statistical Computing; 2026. https://stat.ethz.ch/R-manual/R-devel/library/stats/html/lm.html
  2. Wasserstein RL, Lazar NA. The ASA statement on p-values: context, process, and purpose. Am Stat. 2016;70(2):129–133. https://doi.org/10.1080/00031305.2016.1154108
  3. Lang TA, Altman DG. Basic statistical reporting for articles published in biomedical journals: the SAMPL guidelines. Int J Nurs Stud. 2015;52(1):5–9. https://doi.org/10.1016/j.ijnurstu.2014.09.006

These notes support learning and research planning and do not replace statistical consultation for a specific study.

Report an error in this lecture