`predict_edges()`

uses a hierarchical random graph model to predict
missing edges from a network. This is done by sampling hierarchical models
around the optimum model, proportionally to their likelihood. The MCMC
sampling is stated from `hrg()`

, if it is given and the `start`

argument is set to `TRUE`

. Otherwise a HRG is fitted to the graph
first.

## Arguments

- graph
The graph to fit the model to. Edge directions are ignored in directed graphs.

- hrg
A hierarchical random graph model, in the form of an

`igraphHRG`

object.`predict_edges()`

allow this to be`NULL`

as well, then a HRG is fitted to the graph first, from a random starting point.- start
Logical, whether to start the fitting/sampling from the supplied

`igraphHRG`

object, or from a random starting point.- num.samples
Number of samples to use for consensus generation or missing edge prediction.

- num.bins
Number of bins for the edge probabilities. Give a higher number for a more accurate prediction.

## Value

A list with entries:

- edges
The predicted edges, in a two-column matrix of vertex ids.

- prob
Probabilities of these edges, according to the fitted model.

- hrg
The (supplied or fitted) hierarchical random graph model.

## References

A. Clauset, C. Moore, and M.E.J. Newman. Hierarchical structure
and the prediction of missing links in networks. *Nature* 453, 98–101
(2008);

A. Clauset, C. Moore, and M.E.J. Newman. Structural Inference of Hierarchies
in Networks. In E. M. Airoldi et al. (Eds.): ICML 2006 Ws, *Lecture
Notes in Computer Science* 4503, 1–13. Springer-Verlag, Berlin Heidelberg
(2007).

## See also

Other hierarchical random graph functions:
`consensus_tree()`

,
`fit_hrg()`

,
`hrg()`

,
`hrg-methods`

,
`hrg_tree()`

,
`print.igraphHRG()`

,
`print.igraphHRGConsensus()`

,
`sample_hrg()`

## Examples

```
if (FALSE) { # rlang::is_interactive()
## A graph with two dense groups
g <- sample_gnp(10, p = 1 / 2) + sample_gnp(10, p = 1 / 2)
hrg <- fit_hrg(g)
hrg
## The consensus tree for it
consensus_tree(g, hrg = hrg, start = TRUE)
## Prediction of missing edges
g2 <- make_full_graph(4) + (make_full_graph(4) - path(1, 2))
predict_edges(g2)
}
```