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;
- ;
- 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| Variable | Role | Coding |
|---|---|---|
sbp_week12 | Numerical outcome | mmHg |
group | Main predictor | Usual care reference; telemonitoring comparison |
sbp_baseline | Adjustment variable | mmHg |
| Analytical unit | Participant | One row |
| Missing-data method | Complete-record example | Rows 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)andmodel.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:
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
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
- 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
- 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
- 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.