The ggdiag package is a attempt to unify the diagnostic analysis in R. For most models, diagnostic graphics are hard to customize or to obtain. In some cases, the expression for the residuals needed are not even implemented.
Our main goal is to create a simple grammar to plot diagnostic graphics that can be used for any kind of statistical model. The strategy is based in to main functions: the diag_data()
function and the plot.model_class()
functions.
The diag_data()
function receive a fitted model and returns a tibble
with several diagnostic measures, such as residuals, cook's distance, leverage etc, depending on the class of the model. It uses broom::augment()
function to create most of the measures.
The plot.model_class()
functions are S3 methods for the generic function plot()
. They receive a object of class diag_data
and return a specified diagnostic graphic. The graphics are made using the ggplot2
package, and one can combine them with the
plotly::ggplolty()
function to identify points.
So far, only the lm
and glm
classes are available.
The examples below show how build diagnostic graphics is easy using the diag_data()
and plot()
functions. After fitting the linear model, the major job is to choose the graphic type. For lm
class, the options currently available are: "residuals"
(default), "leverage"
and "cook"
.
library(ggilberto) fit_lm <- lm(mpg ~ qsec, data = mtcars) diag_lm <- diag_data(fit_lm)
plot(diag_lm)
plot(diag_lm, graphic = "leverage")
plot(diag_lm, graphic = "cook")
The main difference for the generalized linear models is the "link"
option to the graphic argument. It produces a link function plot for assessing whether the link function is adequate.
fit_glm <- glm(mpg ~ qsec, family = Gamma(link = "log"), data = mtcars) diag_glm <- diag_data(fit_glm) plot(diag_glm, graphic = "link")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.