Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

gof-plot

Plot and print methods for GOF output


Description

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

Usage

## 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. doi: 10.18637/jss.v083.i06.


btergm

Temporal Exponential Random Graph Models by Bootstrapped Pseudolikelihood

v1.10.3
GPL (>= 2)
Authors
Philip Leifeld [aut, cre], Skyler J. Cranmer [ctb], Bruce A. Desmarais [ctb]
Initial release
2021-06-24

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.