How to |
Plot Diagnostics for Fitted Models
Diagnostics are an important part of analyzing models of data. Plots of residuals and leverage or influence measures provide valuable insight into whether assumptions of the model are reasonable and whether there are data points that exert too much influence on the fitting. You can create these types of graphics in Mathematica
by using results from functions such as LinearModelFit
together with built-in plotting functions.
First, define a dataset to work with:
A linear model is a model that is linear in the parameters that need to be estimated. A model of the form
is quadratic in
, but is a linear model in the parameters
to fit this model:
You can evaluate the FittedModel
object at values of
, so the fitted curve can be plotted using Plot
for the function
Plot the fitted function:
You can plot the data using ListPlot
and use Show
to display the data along with the fitted curve:
You can ask the FittedModel
object for a number of diagnostics and results.
For a linear model, the residuals should look like white noise, random normally distributed values with mean 0 and a constant variance. Any trends in the residuals may indicate a need to modify the model.
property with the FittedModel
) to obtain the residuals and plot them for each data point:
As with any other graphic, you can use additional options to add features such as frames, labels, and filling.
Use the Frame
option to add a frame around the residual plot and the Filling
option to draw stems from the points to the axis:
Standardized residuals can be useful because they effectively remove the overall scale in the residuals. In the case of linear and nonlinear regression, standardized residuals should look like white noise with variance equal to 1.
Generate a plot of standardized residuals for the fitted linear model:
While the previous residual plots display the residuals for each data point, it can also be useful to plot residuals against predictor variables. In the following example,
is the predictor variable.
You can plot the residuals against a predictor variable by creating pairs from the data values and the associated residuals. The predictor values are the first elements of each data point in
Construct pairs of
values and residuals using Transpose
, and then plot the pairs using ListPlot
Add a frame, stems, and labels to the plot:
Similarly, measures of the influence or leverage of points in the dataset can be plotted to assess if any individual points have too much influence on the fitting.
You can, for instance, plot Cook distances for each data point. The Cook distance for a data point provides a measure of that point's influence on the overall fit:
Other pointwise diagnostics include
, which are often referred to as DFFITS and DFBETAS respectively. These values can be visualized to assess other types of influence.
provides a measure of each point's influence on the predicted values:
Diagnostic plots can be obtained in a similar manner for nonlinear and generalized linear models fitted using NonlinearModelFit
, and ProbitModelFit
The same values used for the linear model will now be used for nonlinear and generalized linear fitting:
For example, use Exp
to fit an exponential model to the data:
You can again use ListPlot
to visualize the fitting:
As in the linear examples, you can also plot pointwise diagnostics such as residuals using ListPlot
The next example fits a model of the form
, but assumes the responses (the
values in the data) follow an inverse Gaussian distribution. This is specified by setting the ExponentialFamily
option in GeneralizedLinearModelFit
Unlike in the linear and nonlinear regression models, the error variance is no longer expected to be constant. For an inverse Gaussian model, the errors are expected to increase as the response values increase.
Various types of transformed residuals can be used with these models and you may want to view several at once. First, specify the residuals that you want to view together:
Just as in linear and nonlinear regression,
are the differences between the response and predicted values.
transforms the fit residuals such that they should be closer to normal noise for the assumed distribution.
scales based on the estimated variance at each point, while
scales out the overall variance.
Next, define the labels for each residual plot you are about to create:
Create plots for the different types of residuals and add the labels to each. The output is suppressed here using a semicolon (
) and the plots are displayed in a grid in the next step:
to make a 2×2 array and then display the plots in a grid using GraphicsGrid