plot.lm package:stats R Documentation _P_l_o_t _D_i_a_g_n_o_s_t_i_c_s _f_o_r _a_n _l_m _O_b_j_e_c_t _D_e_s_c_r_i_p_t_i_o_n: Six plots (selectable by 'which') are currently available: a plot of residuals against fitted values, a Scale-Location plot of sqrt{| residuals |} against fitted values, a Normal Q-Q plot, a plot of Cook's distances versus row labels, a plot of residuals against leverages, and a plot of Cook's distances against leverage/(1-leverage). By default, the first three and '5' are provided. _U_s_a_g_e: ## S3 method for class 'lm': plot(x, which = c(1:3,5), caption = list("Residuals vs Fitted", "Normal Q-Q", "Scale-Location", "Cook's distance", "Residuals vs Leverage", expression("Cook's dist vs Leverage " * h[ii] / (1 - h[ii]))), panel = if(add.smooth) panel.smooth else points, sub.caption = NULL, main = "", ask = prod(par("mfcol")) < length(which) && dev.interactive(), ..., id.n = 3, labels.id = names(residuals(x)), cex.id = 0.75, qqline = TRUE, cook.levels = c(0.5, 1.0), add.smooth = getOption("add.smooth"), label.pos = c(4,2), cex.caption = 1) _A_r_g_u_m_e_n_t_s: x: 'lm' object, typically result of 'lm' or 'glm'. which: if a subset of the plots is required, specify a subset of the numbers '1:6'. caption: captions to appear above the plots; 'character' vector or 'list' of valid graphics annotations, see 'as.graphicsAnnot'. Can be set to '""' or 'NA' to suppress all captions. panel: panel function. The useful alternative to 'points', 'panel.smooth' can be chosen by 'add.smooth = TRUE'. sub.caption: common title-above figures if there are multiple; used as 'sub' (s.'title') otherwise. If 'NULL', as by default, a possible shortened version of 'deparse(x$call)' is used. main: title to each plot-in addition to the above 'caption'. ask: logical; if 'TRUE', the user is _ask_ed before each plot, see 'par(ask=.)'. ...: other parameters to be passed through to plotting functions. id.n: number of points to be labelled in each plot, starting with the most extreme. labels.id: vector of labels, from which the labels for extreme points will be chosen. 'NULL' uses observation numbers. cex.id: magnification of point labels. qqline: logical indicating if a 'qqline()' should be added to the normal Q-Q plot. cook.levels: levels of Cook's distance at which to draw contours. add.smooth: logical indicating if a smoother should be added to most plots; see also 'panel' above. label.pos: positioning of labels, for the left half and right half of the graph respectively, for plots 1-3. cex.caption: controls the size of 'caption'. _D_e_t_a_i_l_s: 'sub.caption'-by default the function call-is shown as a subtitle (under the x-axis title) on each plot when plots are on separate pages, or as a subtitle in the outer margin (if any) when there are multiple plots per page. The 'Scale-Location' plot, also called 'Spread-Location' or 'S-L' plot, takes the square root of the absolute residuals in order to diminish skewness (sqrt{| E |} is much less skewed than | E | for Gaussian zero-mean E). The 'S-L', the Q-Q, and the Residual-Leverage plot, use _standardized_ residuals which have identical variance (under the hypothesis). They are given as R[i] / (s*sqrt(1 - h.ii)) where h.ii are the diagonal entries of the hat matrix, 'influence()''$hat', see also 'hat', and where the Residual-Leverage uses standardized Pearson residuals ('residuals.glm(type = "pearson")') for R[i]. The Residual-Leverage plot shows contours of equal Cook's distance, for values of 'cook.levels' (by default 0.5 and 1) and omits cases with leverage one with a warning. If the leverages are constant (as is typically the case in a balanced 'aov' situation) the plot uses factor level combinations instead of the leverages for the x-axis. (The factor levels are ordered by mean fitted value.) In the Cook's distance vs leverage/(1-leverage) plot, contours of standardized residuals that are equal in magnitude are lines through the origin. The contour lines are labelled with the magnitudes. _A_u_t_h_o_r(_s): John Maindonald and Martin Maechler. _R_e_f_e_r_e_n_c_e_s: Belsley, D. A., Kuh, E. and Welsch, R. E. (1980) _Regression Diagnostics._ New York: Wiley. Cook, R. D. and Weisberg, S. (1982) _Residuals and Influence in Regression._ London: Chapman and Hall. Firth, D. (1991) Generalized Linear Models. In Hinkley, D. V. and Reid, N. and Snell, E. J., eds: Pp. 55-82 in Statistical Theory and Modelling. In Honour of Sir David Cox, FRS. London: Chapman and Hall. Hinkley, D. V. (1975) On power transformations to symmetry. _Biometrika_ *62*, 101-111. McCullagh, P. and Nelder, J. A. (1989) _Generalized Linear Models._ London: Chapman and Hall. _S_e_e _A_l_s_o: 'termplot', 'lm.influence', 'cooks.distance', 'hatvalues'. _E_x_a_m_p_l_e_s: require(graphics) ## Analysis of the life-cycle savings data ## given in Belsley, Kuh and Welsch. plot(lm.SR <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)) ## 4 plots on 1 page; ## allow room for printing model formula in outer margin: par(mfrow = c(2, 2), oma = c(0, 0, 2, 0)) plot(lm.SR) plot(lm.SR, id.n = NULL) # no id's plot(lm.SR, id.n = 5, labels.id = NULL)# 5 id numbers ## Was default in R <= 2.1.x: ## Cook's distances instead of Residual-Leverage plot plot(lm.SR, which = 1:4) ## Fit a smooth curve, where applicable: plot(lm.SR, panel = panel.smooth) ## Gives a smoother curve plot(lm.SR, panel = function(x,y) panel.smooth(x, y, span = 1)) par(mfrow=c(2,1))# same oma as above plot(lm.SR, which = 1:2, sub.caption = "Saving Rates, n=50, p=5")