Learn R Programming

ergm (version 4.3.2)

shrink_into_CH: Identify the position of a point relative to the convex hull of a set of points

Description

This function uses linear programming to find the value by which vector p needs to be scaled towards or away from vector m in order for p to be on the boundary of the convex hull of rows of M. If p is a matrix, a value that scales all rows of p into the convex hull of M is found.

Usage

shrink_into_CH(
  p,
  M,
  m = NULL,
  verbose = FALSE,
  ...,
  solver = c("glpk", "lpsolve")
)

Value

Logical, telling whether p is (or all rows of p are) in the closed convex hull of the points in M.

The scaling factor described above is returned. shrink_into_CH() >= 1 indicates that all points in p are in the convex hull of M.

Arguments

p

a \(d\)-dimensional vector or a matrix with \(d\) columns.

M

an \(n\) by \(d\) matrix. Each row of M is a \(d\)-dimensional vector.

m

a \(d\)-dimensional vector specifying the value towards which to shrink; must be in the interior of the convex hull of \(M\), and defaults to its centroid (column means).

verbose

A logical or an integer to control the amount of progress and diagnostic information to be printed. FALSE/0 produces minimal output, with higher values producing more detail. Note that very high values (5+) may significantly slow down processing.

...

arguments passed directly to linear program solver.

solver

a character string selecting which solver to use; by default, tries Rglpk's but falls back to lpSolveAPI's.

References

https://www.cs.mcgill.ca/~fukuda/soft/polyfaq/node22.html

Hummel, R. M., Hunter, D. R., and Handcock, M. S. (2012), Improving Simulation-Based Algorithms for Fitting ERGMs, Journal of Computational and Graphical Statistics, 21: 920-939.

Krivitsky, P. N., Kuvelkar, A. R., and Hunter, D. R. (2022). Likelihood-based Inference for Exponential-Family Random Graph Models via Linear Programming. arXiv preprint arXiv:2202.03572. https://arxiv.org/abs/2202.03572