predict.formula: ERGM-based tie probabilities

View source: R/predict.ergm.R

predict.formulaR Documentation

ERGM-based tie probabilities


Calculate model-predicted conditional and unconditional tie probabilities for dyads in the given network. Conditional probabilities of a dyad given the state of all the remaining dyads in the graph are computed exactly. Unconditional probabilities are computed through simulating networks using the given model. Currently there are two methods implemented:

  • Method for formula objects requires (1) an ERGM model formula with an existing network object on the left hand side and model terms on the right hand side, and (2) a vector of corresponding parameter values.

  • Method for ergm objects, as returned by ergm(), takes both the formula and parameter values from the fitted model object.

Both methods can limit calculations to specific set of dyads of interest.


## S3 method for class 'formula'
  conditional = TRUE,
  type = c("response", "link"),
  nsim = 100,
  output = c("data.frame", "matrix"),

## S3 method for class 'ergm'
predict(object, ...)



a formula or a fitted ERGM model object


numeric vector of ERGM model parameter values


logical whether to compute conditional or unconditional predicted probabilities


character element, one of "response" (default) or "link" - whether the returned predictions are on the probability scale or on the scale of linear predictor. This is similar to type argument of predict.glm().


integer, number of simulated networks used for computing unconditional probabilities. Defaults to 100.


character, type of object returned. Defaults to "data.frame". See section Value below.


other arguments passed to/from other methods. For the predict.formula method, if conditional=TRUE arguments are passed to ergmMPLE(). If conditional=FALSE arguments are passed to simulate_formula().


Type of object returned depends on the argument output. If output="data.frame" the function will return a data frame with columns:

  • tail, head – indices of nodes identifying a dyad

  • p – predicted conditional tie probability

If output="matrix" the function will return an "adjacency matrix" with the predicted probabilities. Diagonal values are 0s.


# A three-node empty directed network
net <- network.initialize(3, directed=TRUE)

# In homogeneous Bernoulli model with odds of a tie of 1/5 all ties are
# equally likely
predict(net ~ edges, log(1/5))

# Let's add a tie so that `net` has 1 tie out of possible 6 (so odds of 1/5)
net[1,2] <- 1

# Fit the model
fit <- ergm(net ~ edges)

# The p's should be identical

ergm documentation built on May 31, 2023, 8:04 p.m.