Michael Mitchell’s *Interpreting and Visualizing Regression Models Using Stata, Second Edition* is a clear treatment of how to carefully present results from model-fitting in a wide variety of settings. It is a boon to anyone who has to present the tangible meaning of a complex model clearly, regardless of the audience. As an example, many experienced researchers start to squirm when asked to give a simple explanation of the practical meaning of interactions in nonlinear models such as logistic regression. The techniques presented in Mitchell’s book make answering those questions easy. The overarching theme of the book is that graphs make interpreting even the most complicated models containing interaction terms, categorical variables, and other intricacies straightforward.

Using a dataset based on the General Social Survey, Mitchell starts with a basic linear regression with a single independent variable and then illustrates how to tabulate and graph predicted values. Mitchell focuses on Stata’s **margins** and **marginsplot** commands, which play a central role in the book and which greatly simplify the calculation and presentation of results from regression models. In particular, through use of the **marginsplot** command, he shows how you can graphically visualize every model presented in the book and thus gain insight into results much easier when you can view them in a graph rather than in a mundane table of results.

Mitchell then proceeds to more complicated models where the effects of the independent variables are nonlinear. After discussing how to detect nonlinear effects, he presents examples using both standard polynomial models, where independent variables can be raised to powers like -1 or 1/2. In all cases, Mitchell again uses the **marginsplot** command to illustrate the effect that changing an independent variable has on the dependent variable. Piecewise linear models are presented as well; these are linear models in which the slope or intercept is allowed to change depending on the range of an independent variable. He also uses the **contrast** command when discussing categorical variables; as the name suggests, this command allows you to easily contrast predictions made for various levels of the categorical variable.

Interaction terms can be tricky to interpret, but Mitchell shows how graphs produced by **marginsplot** greatly clarify results. Individual chapters are devoted to two- and three-way interactions containing all continuous or all categorical variables and include many practical examples. Raw regression output including interactions of continuous and categorical variables can be nearly impossible to interpret, but again Mitchell makes this a snap through judicious use of the **margins** and **marginsplot** commands in subsequent chapters.

The first two-thirds of the book is devoted to cross-sectional data, while the final third considers longitudinal data and complex survey data. A significant difference between this book and most others on regression models is that Mitchell spends quite some time on fitting and visualizing discontinuous models–models where the outcome can change value suddenly at thresholds. Such models are natural in settings such as education and policy evaluation, where graduation or policy changes can make sudden changes in income or revenue.

The second edition has been updated to incorporate many new features added since Stata 12, when the first edition was written. Specifically, the text now demonstrates how labels on the values of categorical variables make interpretation much easier when looking at regression results and results from the **margins** and **contrast** commands. For instance, you now see that your coefficients or marginal means are related to the “low-dose” and “high-dose” groups instead of groups 1 and 2. In addition, Mitchell now shows you how to customize output from estimation commands, **margins**, and **contrast** for even more clarity. In his discussion of customizing graphs produced by **marginsplot**, he demonstrates new graph features such as the use of transparency. He also includes new examples of multilevel models for longitudinal data that take advantage of the degree-of-freedom adjustments for small sample sizes that are now provided by **mixed** and **contrast**.

This book is a worthwhile addition to the library of anyone involved in statistical consulting, teaching, or collaborative applied statistical environments. Graphs greatly aid the interpretation of regression models, and Mitchell’s book shows you how.

© Copyright 1996–2023 StataCorp LLC

**List of tables**

** List of figures**

**Preface to the Second Edition** (PDF)

**Preface to the First Edition** (PDF)

**Acknowledgements**

1.2 The GSS dataset

1.2.2 Age

1.2.3 Education

1.2.4 Gender

1.3 The pain datasets

1.4 The optimism datasets

1.5 The school datasets

1.6 The sleep datasets

1.7 Overview of the book

**I Continuous predictors**

2.2 Simple linear regression

2.2.2 Graphing predicted means using the marginsplot command

2.3 Multiple regression

2.3.2 Some technical details about adjusted means

2.3.3 Graphing adjusted means using the marginsplot command

2.4 Checking for nonlinearity graphically

2.4.2 Checking for nonlinearity using residuals

2.4.3 Checking for nonlinearity using locally weighted smoother

2.4.4 Graphing outcome mean at each level of predictor

2.4.5 Summary

2.5 Checking for nonlinearity analytically

2.5.2 Using factor variables

2.6 Summary

3.2 Quadratic (squared) terms

3.2.2 Examples

3.3 Cubic (third power) terms

3.3.2 Examples

3.4 Fractional polynomial regression

3.4.2 Example using fractional polynomial regression

3.5 Main effects with polynomial terms

3.6 Summary

4.2 Introduction to piecewise regression models

4.3 Piecewise with one known knot

4.3.2 Examples using the GSS

4.4 Piecewise with two known knots

4.4.2 Examples using the GSS

4.5 Piecewise with one knot and one jump

4.5.2 Examples using the GSS

4.6 Piecewise with two knots and two jumps

4.6.2 Examples using the GSS

4.7 Piecewise with an unknown knot

4.8 Piecewise model with multiple unknown knots

4.9 Piecewise models and the marginsplot command

4.10 Automating graphs of piecewise models

4.11 Summary

5.2 Linear by linear interactions

5.2.2 Example using GSS data

5.2.3 Interpreting the interaction in terms of age

5.2.4 Interpreting the interaction in terms of education

5.2.5 Interpreting the interaction in terms of age slope

5.2.6 Interpreting the interaction in terms of the educ slope

5.3 Linear by quadratic interactions

5.3.2 Example using GSS data

5.4 Summary

6.2 Overview

6.3 Examples using the GSS data

6.3.2 A three-way interaction model

6.4 Summary

**II Categorical predictors**

7.2 Comparing two groups using a t test

7.3 More groups and more predictors

7.4 Overview of contrast operators

7.5 Compare each group against a reference group

7.5.2 Selecting a different reference group

7.5.3 Selecting a contrast and reference group

7.6 Compare each group against the grand mean

7.7 Compare adjacent means

7.7.2 Selecting a specific contrast

7.8 Comparing the mean of subsequent or previous levels

7.8.2 Selecting a specific contrast

7.9 Polynomial contrasts

7.10 Custom contrasts

7.11 Weighted contrasts

7.12 Pairwise comparisons

7.13 Interpreting confidence intervals

7.14 Testing categorical variables using regression

7.15 Summary

8.2 Two by two models: Example 1

8.2.2 Estimating the size of the interaction

8.2.3 More about interaction

8.2.4 Summary

8.3 Two by three models

8.3.2 Example 3

8.3.3 Summary

8.4 Three by three models: Example 4

8.4.2 Simple contrasts

8.4.3 Partial interaction

8.4.4 Interaction contrasts

8.4.5 Summary

8.5 Unbalanced designs

8.6 Main effects with interactions: anova versus regress

8.7 Interpreting confidence intervals

8.8 Summary

9.2 Two by two by two models

9.2.2 Simple interactions by depression status

9.2.3 Simple effects

9.3 Two by two by three models

9.3.2 Simple partial interaction by depression status

9.3.3 Simple contrasts

9.3.4 Partial interactions

9.4 Three by three by three models and beyond

9.4.2 Simple interactions

9.4.3 Simple effects and simple comparisons

9.5 Summary

**III Continuous and categorical predictors**

10.2 Linear and two-level categorical: No interaction

10.2.2 Examples using the GSS

10.3 Linear by two-level categorical interactions

10.3.2 Examples using the GSS

10.4 Linear by three-level categorical interactions

10.4.2 Examples using the GSS

10.5 Summary

11.2 Quadratic by categorical interactions

11.2.2 Quadratic by two-level categorical

11.2.3 Quadratic by three-level categorical

11.3 Cubic by categorical interactions

11.4 Summary

12.2 One knot and one jump

12.2.2 Comparing slopes across education

12.2.3 Difference in differences of slopes

12.2.4 Comparing changes in intercepts

12.2.5 Computing and comparing adjusted means

12.2.6 Graphing adjusted means

12.3 Two knots and two jumps

12.3.2 Comparing slopes across education

12.3.3 Difference in differences of slopes

12.3.4 Comparing changes in intercepts by gender

12.3.5 Comparing changes in intercepts by education

12.3.6 Computing and comparing adjusted means

12.3.7 Graphing adjusted means

12.4 Comparing coding schemes

12.4.2 Coding scheme #2

12.4.3 Coding scheme #3

12.4.4 Coding scheme #4

12.4.5 Choosing coding schemes

12.5 Summary

13.2 Linear by linear by categorical interactions

13.2.2 Fitting a combined model for males and females

13.2.3 Interpreting the interaction focusing in the age slope

13.2.4 Interpreting the interaction focusing on the educ slope

13.2.5 Estimating and comparing adjusted means by gender

13.3 Linear by quadratic by categorical interactions

13.3.2 Fitting a common model for males and females

13.3.3 Interpreting the interaction

13.3.4 Estimating and comparing adjusted means by gender

13.4 Summary

14.2 Simple effects of gender on the age slope

14.3 Simple effects of education on the age slope

14.4 Simple contrasts on education for the age slope

14.5 Partial interaction on education for the age slope

14.6 Summary

**IV Beyond ordinary linear regression**

15.2 Example 1: Continuous by continuous interaction

15.3 Example 2: Continuous by categorical interaction

15.4 Example 3: Categorical by continuous interaction

15.5 Example 4: Categorical by categorical interaction

15.6 Summary

16.2 Example 1: Linear effect of time

16.3 Example 2: Linear effect of time by a categorical predictor

16.4 Example 3: Piecewise modeling of time

16.5 Example 4: Piecewise effects of time by a categorical predictor

16.5.2 Change in slopes: Treatment versus baseline

16.5.3 Jump at treatment

16.5.4 Comparisons among groups

16.6 Summary

17.2 Example 1: Time treated as a categorical variable

17.3 Example 2: Time (categorical) by two groups

17.4 Example 3: Time (categorical) by three groups

17.5 Comparing models with different residual covariance structures

17.6 Analyses with small samples

17.6 Summary

18.2 Binary logistic regression

18.2.2 A logistic model with one continuous predictor

18.2.3 A logistic model with covariates

18.3 Multinomial logistic regression

18.4 Ordinal logistic regression

18.5 Poisson regression

18.6 More applications of nonlinear models

18.6.2 Categorical by continuous interaction

18.6.3 Piecewise modeling

18.7 Summary

**V Appendices**

A.2 Specifying the confidence level

A.3 Customizing the formatting of columns in the coefficient table

A.4 Customizing the display of factor variables

B.2 The at() option

B.3 Margins with factor variables

B.4 Margins with factor variables and the at() option

B.5 The dydx() and related options

B.6 Specifying the confidence level

B.7 Customizing column formatting

D.2 Customizing the display of factor variables

D.3 Adjustments for multiple comparisons

D.4 Specifying the confidence level

D.5 Customizing column formatting

*pwcompare*command

**References **

**Author index** (PDF)

**Subject index** (PDF)

© Copyright 1996–2023 StataCorp LLC