Class: GeneralizedLinearModel

Plot residuals of generalized linear regression model


h = plotResiduals(...)
h = plotResiduals(mdl,plottype,Name,Value)


plotResiduals(mdl) gives a histogram plot of the residuals of the mdl nonlinear model.

plotResiduals(mdl,plottype) plots residuals in a plot of type plottype.

h = plotResiduals(...) returns handles to the lines in the plot.

h = plotResiduals(mdl,plottype,Name,Value) plots with additional options specified by one or more Name,Value pair arguments.

Input Arguments


Generalized linear model, as constructed by fitglm or stepwiseglm.


Character vector or string scalar specifying the type of plot:

'caseorder'Residuals vs. case (row) order
'fitted'Residuals vs. fitted values
'lagged'Residuals vs. lagged residual (r(t) vs. r(t–1))
'probability'Normal probability plot
'symmetry'Symmetry plot

Default: 'histogram'

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.


The plot property name-value pairs apply to the first returned handle h(1).


Color of the line or marker, specified as an RGB triplet, hexadecimal color code, color name, or short name for one of the color options listed in the following table.

For a custom color, specify an RGB triplet or a hexadecimal color code.

  • An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1]; for example, [0.4 0.6 0.7].

  • A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (#) followed by three or six hexadecimal digits, which can range from 0 to F. The values are not case sensitive. Thus, the color codes '#FF8800', '#ff8800', '#F80', and '#f80' are equivalent.

Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.

Color NameShort NameRGB TripletHexadecimal Color CodeAppearance
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB® uses in many types of plots.

RGB TripletHexadecimal Color CodeAppearance
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'


Type of line, a Line Properties specification. For details, see linespec.


Width of the line or edges of filled area, in points, a positive scalar. One point is 1/72 inch.

Default: 0.5


Marker outline color, specified as an RGB triplet, hexadecimal color code, color name, or short name for one of the color options listed in the Color name-value pair argument.


Fill color for filled markers, specified as an RGB triplet, hexadecimal color code, color name, or short name for one of the color options listed in the Color name-value pair argument.


Size of the marker in points, a strictly positive scalar. One point is 1/72 inch.


Type of residual used in the plot.

'Raw'Observed minus fitted values
'LinearPredictor'Residuals on the linear predictor scale, equal to the adjusted response value minus the fitted linear combination of the predictors
'Pearson'Raw residuals divided by RMSE
'Anscombe'Residuals defined on transformed data with the transformation chosen to remove skewness
'Deviance'Residuals based on the contribution of each observation to the deviance

Default: 'Raw'

Output Arguments


Vector of handles to lines or patches in the plot.


expand all

Create residual plots of a fitted generalized linear model.

Generate artificial data for the model, Poisson random numbers with two underlying predictors X(1) and X(2).

rng('default') % for reproducibility
rndvars = randn(100,2);
X = [2+rndvars(:,1),rndvars(:,2)];
mu = exp(1 + X*[1;2]);
y = poissrnd(mu);

Create a generalized linear regression model of Poisson data.

mdl = fitglm(X,y,'y ~ x1 + x2','distr','poisson');

Create a default residuals plot.


Create a probability plot. The residuals do not match a normal distribution in the tails because they are more spread out.


Create a plot of the fitted residuals of Anscombe type.


More About

expand all


  • The data cursor displays the values of the selected plot point in a data tip (small text box located next to the data point). The data tip includes the x-axis and y-axis values for the selected point, along with the observation name or number.