spcachenet-ergmAuxiliary-f1950bb3: Shared Partner Cache

.spcache.net-ergmAuxiliaryR Documentation

Shared Partner Cache

Description

This auxiliary maintains a hash table mapping dyads to shared partner counts.

Usage

# binary: .spcache(type)

Arguments

type

A string indicating the type of shared partner or path to be considered for directed networks: "OTP" (default for directed), "ITP", "RTP", "OSP", and "ISP"; has no effect for undirected. See the section below on Shared partner types for details.

Details

This auxiliary maintains a single StrictDyadMapUInt defined in ‘"ergm_dyad_hashmap.h"’. It is, internally, a khash table mapping a pair of Vertexes (in a TailHead structure) onto an unsigned int.

To make use of it in your change statistic:

  1. Add auxiliaries = ~spcache.net(type) to the InitErgmTerm output list. You may request it multiple times and/or alongside other auxiliaries.

  2. Add ⁠#include "ergm_dyad_hashmap.h"⁠ to the top of your change statistic implementation file.

  3. In the function (e.g., c_ function) implementing the change statistic, use GET_AUX_STORAGE(StoreStrictDyadMapUInt, spcache); to obtain it if this is your first or only auxiliary, or GET_AUX_STORAGE_NUM(StoreStrictDyadMapUInt, spcache, ind); if it is not.

  4. Use one of the following macros to access the shared partner count:

    GETUDMUI(TAIL, HEAD, spcache)

    if undirected;

    GETDDMUI(HEAD, TAIL, spcache)

    if type = "ITP" (since ITP is OTP with direction reversed);

    GETDDMUI(TAIL, HEAD, spcache)

    in all other cases.

Shared partner types

While there is only one shared partner configuration in the undirected case, nine distinct configurations are possible for directed graphs, selected using the type argument. Currently, terms may be defined with respect to five of these configurations; they are defined here as follows (using terminology from Butts (2008) and the relevent package):

  • Outgoing Two-path ("OTP"): vertex k is an OTP shared partner of ordered pair (i,j) iff i \to k \to j. Also known as "transitive shared partner".

  • Incoming Two-path ("ITP"): vertex k is an ITP shared partner of ordered pair (i,j) iff j \to k \to i. Also known as "cyclical shared partner"

  • Reciprocated Two-path ("RTP"): vertex k is an RTP shared partner of ordered pair (i,j) iff i \leftrightarrow k \leftrightarrow j.

  • Outgoing Shared Partner ("OSP"): vertex k is an OSP shared partner of ordered pair (i,j) iff i \to k, j \to k.

  • Incoming Shared Partner ("ISP"): vertex k is an ISP shared partner of ordered pair (i,j) iff k \to i, k \to j.

By default, outgoing two-paths ("OTP") are calculated. Note that Robins et al. (2009) define closely related statistics to several of the above, using slightly different terminology.

See Also

ergmAuxiliary for index of auxiliaries currently visible to the package.

\Sexpr[results=rd,stage=render]{ergm:::.formatTermKeywords("ergmAuxiliary", ".spcache.net", "subsection")}

statnet/ergm documentation built on Feb. 28, 2025, 7:05 p.m.