R: Bridge sampling to evaluate ERGM log-likelihoods and...

ergm.bridge.llr {ergm} | R Documentation

## Bridge sampling to evaluate ERGM log-likelihoods and log-likelihood ratios

### Description

`ergm.bridge.llr` uses bridge sampling with geometric spacing to estimate the difference between the log-likelihoods of two parameter vectors for an ERGM via repeated calls to `simulate.formula.ergm`.

`ergm.bridge.0.llk` is a convenience wrapper that returns the log-likelihood of configuration θ relative to the reference measure. That is, the configuration with θ=0 is defined as having log-likelihood of 0.

`ergm.bridge.dindstart.llk` is a wrapper that uses a dyad-independent ERGM as a starting point for bridge sampling to estimate the log-likelihood for a given dyad-dependent model and parameter configuration. Note that it only handles binary ERGMs (`response=NULL`) and with constraints (`constraints=`) that that do not induce dyadic dependence.

### Usage

    ergm.bridge.llr(
      object,
      response = NULL,
      reference = ~Bernoulli,
      constraints = ~.,
      from,
      to,
      obs.constraints = ~. - observed,
      target.stats = NULL,
      basis = ergm.getnetwork(object),
      verbose = FALSE,
      ...,
      llronly = FALSE,
      control = control.ergm.bridge()
    )

    ergm.bridge.0.llk(
      object,
      response = NULL,
      reference = ~Bernoulli,
      coef,
      ...,
      llkonly = TRUE,
      control = control.ergm.bridge(),
      basis = ergm.getnetwork(object)
    )

    ergm.bridge.dindstart.llk(
      object,
      response = NULL,
      constraints = ~.,
      coef,
      obs.constraints = ~. - observed,
      target.stats = NULL,
      dind = NULL,
      coef.dind = NULL,
      basis = ergm.getnetwork(object),
      ...,
      llkonly = TRUE,
      control = control.ergm.bridge(),
      verbose = FALSE
    )

### Arguments

`object` | A model formula. See `ergm` for details.
`response` | Either a character string, a formula, or `NULL` (the default), to specify the response attributes and whether the ERGM is binary or valued. Interpreted as follows: `NULL` Model simple presence or absence, via a binary ERGM. character string The name of the edge attribute whose value is to be modeled. Type of ERGM will be determined by whether the attribute is `logical` (`TRUE`/`FALSE`) for binary or `numeric` for valued. a formula must be of the form `NAME~EXPR|TYPE` (with `|` being literal). `EXPR` is evaluated in the formula's environment with the network's edge attributes accessible as variables. The optional `NAME` specifies the name of the edge attribute into which the results should be stored, with the default being a concise version of `EXPR`. Normally, the type of ERGM is determined by whether the result of evaluating `EXPR` is logical or numeric, but the optional `TYPE` can be used to override by specifying a scalar of the type involved (e.g., `TRUE` for binary and `1` for valued).
`reference` | A one-sided formula specifying the reference measure (h(y)) to be used. (Defaults to `~Bernoulli`.)
`constraints, obs.constraints` | One-sided formulas specifying one or more constraints on the support of the distribution of the networks being simulated and on the observation process respectively. See the documentation for a similar argument for `ergm` for more information.
`from, to` | The initial and final parameter vectors.
`target.stats` | A vector of sufficient statistics to be used in place of those of the network in the formula.
`basis` | An optional `network` object to start the Markov chain. If omitted, the default is the left-hand-side of the `object`.
`verbose` | A logical or an integer to control the amount of progress and diagnostic information to be printed. `FALSE`/`0` produces minimal output, wit higher values producing more detail. Note that very high values (5+) may significantly slow down processing.
`...` | Further arguments to `ergm.bridge.llr` and `simulate.formula.ergm`.
`llronly` | Logical: If TRUE, only the estiamted log-ratio will be returned by `ergm.bridge.llr`.
`control` | A list of control parameters for algorithm tuning, typically constructed with `control.ergm.bridge()`. Its documentation gives the the list of recognized control parameters and their meaning. The more generic utility `snctrl()` (StatNet ConTRoL) also provides argument completion for the available control functions and limited argument name checking.
`coef` | A vector of coefficients for the configuration of interest.
`llkonly` | Whether only the estiamted log-likelihood should be returned by the `ergm.bridge.0.llk` and `ergm.bridge.dindstart.llk`. (Defaults to TRUE.)
`dind` | A one-sided formula with the dyad-independent model to use as a starting point. Defaults to the dyad-independent terms found in the formula `object` with an overal density term (`edges`) added if not redundant.
`coef.dind` | Parameter configuration for the dyad-independent starting point. Defaults to the MLE of `dind`.

### Value

If `llronly=TRUE` or `llkonly=TRUE`, these functions return the scalar log-likelihood-ratio or the log-likelihood. Otherwise, they return a list with the following components:

`llr` | The estimated log-ratio.
`llr.vcov` | The estimated variance of the log-ratio due to MCMC approximation.
`llrs` | A list of lists (1 per attempt) of the estimated log-ratios for each of the `bridge.nsteps` bridges.
`llrs.vcov` | A list of lists (1 per attempt) of the estimated variances of the estimated log-ratios for each of the `bridge.nsteps` bridges.
`paths` | A list of lists (1 per attempt) with two elements: `theta`, a numeric matrix with `bridge.nsteps` rows, with each row being the respective bridge's parameter configuration; and `weight`, a vector of length `bridge.nsteps` containing its weight.
`Dtheta.Du` | The gradient vector of the parameter values with respect to position of the bridge.

`ergm.bridge.0.llk` result list also includes an `llk` element, with the log-likelihood itself (with the reference distribution assumed to have likelihood 0).

`ergm.bridge.dindstart.llk` result list also includes an `llk` element, with the log-likelihood itself and an `llk.dind` element, with the log-likelihood of the nearest dyad-independent model.

### References

Hunter, D. R. and Handcock, M. S. (2006) Inference in curved exponential family models for networks, Journal of Computational and Graphical Statistics.

### See Also

`simulate.formula.ergm`

[Package ergm version 4.2.2 Index]