Main Content

plotDiagnostics

Plot diagnostics of nonlinear regression model

Description

plotDiagnostics creates a plot of observation diagnostics such as leverage or Cook's distance statistics to identify outliers and influential observations.

plotDiagnostics(mdl) creates a leverage plot of the nonlinear regression model (mdl) observations. A dotted line in the plot represents the recommended threshold values.

example

plotDiagnostics(mdl,plottype) specifies the type of observation diagnostics plottype.

plotDiagnostics(___,Name,Value) specifies additional options using one or more name-value arguments in addition to any of the input argument combinations in the previous syntaxes. For example, you can specify the marker symbol and size for the data points.

plotDiagnostics(ax,___) plots into the axes specified by ax instead of the current axes (gca). (since R2024a)

h = plotDiagnostics(___) returns graphics objects for the lines or contour in the plot. Use h to modify the properties of a specific line or contour after you create the plot. For a list of properties, see Line Properties and Contour Properties.

Examples

collapse all

Create a leverage plot of a fitted nonlinear model, and find the points with high leverage.

Load the reaction data and fit a model of the reaction rate as a function of reactants.

load reaction
mdl = fitnlm(reactants,rate,@hougen,[1 .05 .02 .1 2]);

Create a leverage plot of the fitted model.

plotDiagnostics(mdl)

Leverage plot for the fitted model. The horizontal axis corresponds to row number and the vertical axis corresponds to leverage.

Use data tips to examine the observation with high leverage. A data tip appears when you hover over a data point.

Leverage plot for the fitted model displaying a data tip for an observation. The data tip shows the observation number, the X value, and the Y value for the selected data point.

Alternatively, find the high-leverage observation at the command line.

find(mdl.Diagnostics.Leverage > 0.8)
ans =

     6

Input Arguments

collapse all

Nonlinear regression model, specified as a NonLinearModel object created using fitnlm.

Type of plot, specified as one of the values in this table.

ValuePlot TypeDotted Reference Line in Plot Purpose
'contour'Residual vs. leverage with overlaid contours of Cook's distanceContours of Cook's distanceIdentify observations with large residual values, high leverage, and large Cook's distance values.
'cookd'Cook's distanceRecommended threshold, computed by 3*mean(mdl.Diagnostics.CooksDistance)Identify observations with large Cook's distance values.
'leverage'Leverage (Diagonal of Hat matrix)Recommended threshold, computed by 2*p/nIdentify high leverage observations.

For all plot types except 'contour', the x-axis is the row number (case order) of observations.

The Diagnostics property of mdl contains the diagnostic values used by plotDiagnostics to create plots.

For more information about observation diagnostics, see Cook’s Distance and Leverage.

Since R2024a

Target axes, specified as an Axes object. If you do not specify the axes, then plotDiagnostics uses the current axes (gca).

Name-Value Arguments

collapse all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'Color','blue','Marker','o'

Note

The graphical properties listed here are only a subset. For a complete list, see Line Properties. The specified properties determine the appearance of diagnostic data points.

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

The Color name-value argument also determines marker outline color and marker fill color if MarkerEdgeColor is "auto" (default) and MarkerFaceColor is "auto".

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 string scalar or character vector 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. Therefore, 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 the hexadecimal color codes.

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

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"Not applicableNot applicableNot applicableNo color

This table lists the default color palettes for plots in the light and dark themes.

PalettePalette Colors

"gem" — Light theme default

Before R2025a: Most plots use these colors by default.

Sample of the "gem" color palette

"glow" — Dark theme default

Sample of the "glow" color palette

You can get the RGB triplets and hexadecimal color codes for these palettes using the orderedcolors and rgb2hex functions. For example, get the RGB triplets for the "gem" palette and convert them to hexadecimal color codes.

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

Before R2023b: Get the RGB triplets using RGB = get(groot,"FactoryAxesColorOrder").

Before R2024a: Get the hexadecimal color codes using H = compose("#%02X%02X%02X",round(RGB*255)).

Example: Color="blue"

Data Types: single | double | string | char

Line width, specified as a positive value in points. If the line has markers, then the line width also affects the marker edges.

Example: LineWidth=0.75

Data Types: single | double

Marker symbol, specified as one of the values in this table.

MarkerDescriptionResulting Marker
"o"Circle

Sample of circle marker

"+"Plus sign

Sample of plus sign marker

"*"Asterisk

Sample of asterisk marker

"."Point

Sample of point marker

"x"Cross

Sample of cross marker

"_"Horizontal line

Sample of horizontal line marker

"|"Vertical line

Sample of vertical line marker

"square"Square

Sample of square marker

"diamond"Diamond

Sample of diamond marker

"^"Upward-pointing triangle

Sample of upward-pointing triangle marker

"v"Downward-pointing triangle

Sample of downward-pointing triangle marker

">"Right-pointing triangle

Sample of right-pointing triangle marker

"<"Left-pointing triangle

Sample of left-pointing triangle marker

"pentagram"Pentagram

Sample of pentagram marker

"hexagram"Hexagram

Sample of hexagram marker

"none"No markersNot applicable

Example: Marker="+"

Data Types: string | char

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

The default value "auto" uses the same color specified by using the Color name-value argument. You can also specify "none" for no color.

Example: MarkerEdgeColor="blue"

Data Types: single | double | string | char

Marker fill 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 argument. The default value "none" specifies no color.

The "auto" value uses the same color specified by using the Color name-value argument.

Example: MarkerFaceColor="blue"

Data Types: single | double | string | char

Marker size, specified as a positive value in points.

Example: MarkerSize=2

Data Types: single | double

Output Arguments

collapse all

Graphics objects corresponding to the lines or contour in the plot, returned as a graphics array. Use dot notation to query and set properties of the graphics objects. For details, see Line Properties and Contour Properties.

You can use name-value arguments to specify the appearance of diagnostic data points corresponding to the first graphics object h(1).

More About

collapse all

Tips

  • 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.

References

[1] Neter, J., M. H. Kutner, C. J. Nachtsheim, and W. Wasserman. Applied Linear Statistical Models, Fourth Edition. Irwin, Chicago, 1996.

Version History

Introduced in R2012a

expand all