gof-plot function

Plot and print methods for GOF output

Plot and print methods for GOF output

Plot and print methods for goodness-of-fit output for network models. methods

## S3 method for class 'boxplot' print(x, ...) ## S3 method for class 'roc' print(x, ...) ## S3 method for class 'pr' print(x, ...) ## S3 method for class 'rocpr' print(x, ...) ## S3 method for class 'univariate' print(x, ...) ## S3 method for class 'gof' print(x, ...) ## S3 method for class 'gof' plot(x, mfrow = TRUE, ...) ## S3 method for class 'boxplot' plot( x, relative = TRUE, transform = function(x) x, xlim = NULL, main = x$label, xlab = x$label, ylab = "Frequency", border = "darkgray", boxplot.lwd = 0.8, outline = FALSE, median = TRUE, median.col = "black", median.lty = "solid", median.lwd = 2, mean = TRUE, mean.col = "black", mean.lty = "dashed", mean.lwd = 1, ... ) ## S3 method for class 'roc' plot( x, add = FALSE, main = x$label, avg = c("none", "horizontal", "vertical", "threshold"), spread.estimate = c("boxplot", "stderror", "stddev"), lwd = 3, rgraph = FALSE, col = "#bd0017", random.col = "#bd001744", ... ) ## S3 method for class 'pr' plot( x, add = FALSE, main = x$label, avg = c("none", "horizontal", "vertical", "threshold"), spread.estimate = c("boxplot", "stderror", "stddev"), lwd = 3, rgraph = FALSE, col = "#5886be", random.col = "#5886be44", pr.poly = 0, ... ) ## S3 method for class 'rocpr' plot( x, main = x$label, roc.avg = c("none", "horizontal", "vertical", "threshold"), roc.spread.estimate = c("boxplot", "stderror", "stddev"), roc.lwd = 3, roc.rgraph = FALSE, roc.col = "#bd0017", roc.random.col = "#bd001744", pr.avg = c("none", "horizontal", "vertical", "threshold"), pr.spread.estimate = c("boxplot", "stderror", "stddev"), pr.lwd = 3, pr.rgraph = FALSE, pr.col = "#5886be", pr.random.col = "#5886be44", pr.poly = 0, ... ) ## S3 method for class 'univariate' plot( x, main = x$label, sim.hist = TRUE, sim.bar = TRUE, sim.density = TRUE, obs.hist = FALSE, obs.bar = TRUE, obs.density = TRUE, sim.adjust = 1, obs.adjust = 1, sim.lwd = 2, obs.lwd = 2, sim.col = "black", obs.col = "red", ... )

Arguments

  • x: An object created by one of the gof methods.

  • ...: Arbitrary further arguments.

  • mfrow: Should the GOF plots come out separately (mfrow = FALSE), or should all statistics be aligned in a single diagram (mfrow = TRUE)? Returning the plots separately can be helpful if the output is redirected to a multipage PDF or TIFF file.

  • relative: Print relative frequencies (as opposed to absolute frequencies) of a statistic on the y axis?

  • transform: A function which transforms the y values used for the boxplots. For example, if some of the values become very large and make the output illegible, transform = function(x) x^0.1 or a similar transformation of the values can be used. Note that logarithmic transformations often produce infinite values because log(0) = -Inf, so one should rather use something like transform = function(x) log1p to avoid infinite values.

  • xlim: Horizontal limit of the boxplots. Only the maximum value must be provided, e.g., xlim = 8.

  • main: Main title of a GOF plot.

  • xlab: Label of the x-axis of a GOF plot.

  • ylab: Label of the y-axis of a GOF plot.

  • border: Color of the borders of the boxplots.

  • boxplot.lwd: Line width of boxplot.

  • outline: Print outliers in the boxplots?

  • median: Plot the median curve for the observed network?

  • median.col: Color of the median of the observed network statistic.

  • median.lty: Line type of median line. For example "dashed" or "solid".

  • median.lwd: Line width of median line.

  • mean: Plot the mean curve for the observed network?

  • mean.col: Color of the mean of the observed network statistic.

  • mean.lty: Line type of mean line. For example "dashed" or "solid".

  • mean.lwd: Line width of mean line.

  • add: Add the ROC and/or PR curve to an existing plot?

  • avg: Averaging pattern for the ROC and PR curve(s) if multiple target time steps were used. Allowed values are "none" (plot all curves separately), "horizontal" (horizontal averaging), "vertical"

    (vertical averaging), and "threshold" (threshold (= cutoff) averaging). Note that while threshold averaging is always feasible, vertical and horizontal averaging are not well-defined if the graph cannot be represented as a function x->y and y->x, respectively. More information can be obtained from the help pages of the ROCR package, the functions of which are employed here.

  • spread.estimate: When multiple target time steps are used and curve averaging is enabled, the variation around the average curve can be visualized as standard error bars ("stderror"), standard deviation bars ("stddev"), or by using box plots ("boxplot"). Note that the function plotCI, which is used internally by the ROCR package to draw error bars, might raise a warning if the spread of the curves at certain positions is 0. More details can be found in the documentation of the ROCR package, the functions of which are employed here.

  • lwd: Line width.

  • rgraph: Should an ROC or PR curve also be drawn for a random graph? This serves as a baseline against which to compare the actual ROC or PR curve.

  • col: Color of the ROC or PR curve.

  • random.col: Color of the ROC or PR curve of the random graph prediction.

  • pr.poly: If a value of 0 is set, nothing special happens. If a value of 1 is set, a straight line is fitted through the PR curve and displayed. Values between 2 and 9 fit higher-order polynomial curves through the PR curve and display the resulting curve. This argument allows to check whether the imputation of the first precision value in the PR curve yielded a reasonable result (in case the value had to be imputed).

  • roc.avg: Averaging pattern for the ROC curve(s) if multiple target time steps were used. Allowed values are "none" (plot all curves separately), "horizontal" (horizontal averaging), "vertical"

    (vertical averaging), and "threshold" (threshold (= cutoff) averaging). Note that while threshold averaging is always feasible, vertical and horizontal averaging are not well-defined if the graph cannot be represented as a function x->y and y->x, respectively. More information can be obtained from the help pages of the ROCR package, the functions of which are employed here.

  • roc.spread.estimate: When multiple target time steps are used and curve averaging is enabled, the variation around the average curve can be visualized as standard error bars ("stderror"), standard deviation bars ("stddev"), or by using box plots ("boxplot"). Note that the function plotCI, which is used internally by the ROCR package to draw error bars, might raise a warning if the spread of the curves at certain positions is 0. More details can be found in the documentation of the ROCR package, the functions of which are employed here.

  • roc.lwd: Line width.

  • roc.rgraph: Should an ROC curve also be drawn for a random graph? This serves as a baseline against which to compare the actual ROC curve.

  • roc.col: Color of the ROC curve.

  • roc.random.col: Color of the ROC curve of the random graph prediction.

  • pr.avg: Averaging pattern for the PR curve(s) if multiple target time steps were used. Allowed values are "none" (plot all curves separately), "horizontal" (horizontal averaging), "vertical"

    (vertical averaging), and "threshold" (threshold (= cutoff) averaging). Note that while threshold averaging is always feasible, vertical and horizontal averaging are not well-defined if the graph cannot be represented as a function x->y and y->x, respectively. More information can be obtained from the help pages of the ROCR package, the functions of which are employed here.

  • pr.spread.estimate: When multiple target time steps are used and curve averaging is enabled, the variation around the average curve can be visualized as standard error bars ("stderror"), standard deviation bars ("stddev"), or by using box plots ("boxplot"). Note that the function plotCI, which is used internally by the ROCR package to draw error bars, might raise a warning if the spread of the curves at certain positions is 0. More details can be found in the documentation of the ROCR package, the functions of which are employed here.

  • pr.lwd: Line width.

  • pr.rgraph: Should an PR curve also be drawn for a random graph? This serves as a baseline against which to compare the actual PR curve.

  • pr.col: Color of the PR curve.

  • pr.random.col: Color of the PR curve of the random graph prediction.

  • sim.hist: Draw a histogram for the simulated networks?

  • sim.bar: Draw a bar for the median of the statistic for the simulated networks?

  • sim.density: Draw a density curve fot the statistic for the simulated networks?

  • obs.hist: Draw a histogram for the observed networks?

  • obs.bar: Draw a bar for the median of the statistic for the observed networks?

  • obs.density: Draw a density curve fot the statistic for the observed networks?

  • sim.adjust: Bandwidth adjustment parameter for the density curve.

  • obs.adjust: Bandwidth adjustment parameter for the density curve.

  • sim.lwd: Line width for the simulated networks.

  • obs.lwd: Line width for the observed network(s).

  • sim.col: Color for the simulated networks.

  • obs.col: Color for the observed network(s).

Details

These plot and print methods serve to display the output generated by the gof function and its methods. See the help page of gof-methods for details on how to compute goodness-of-fit statistics.

References

Leifeld, Philip, Skyler J. Cranmer and Bruce A. Desmarais (2018): Temporal Exponential Random Graph Models with btergm: Estimation and Bootstrap Confidence Intervals. Journal of Statistical Software 83(6): 1--36. tools:::Rd_expr_doi("10.18637/jss.v083.i06") .