measure_node_diffusion {manynet}R Documentation

Measures of nodes in a diffusion

Description

These functions allow measurement of various features of a diffusion process:

Usage

node_adoption_time(diff_model)

node_thresholds(diff_model, normalized = TRUE, lag = 1)

node_recovery(diff_model)

node_exposure(.data, mark, time = 0)

Arguments

diff_model

A valid network diffusion model, as created by as_diffusion() or play_diffusion().

normalized

Logical scalar, whether the centrality scores are normalized. Different denominators are used depending on whether the object is one-mode or two-mode, the type of centrality, and other arguments.

lag

The number of time steps back upon which the thresholds are inferred.

.data

An object of a manynet-consistent class:

  • matrix (adjacency or incidence) from {base} R

  • edgelist, a data frame from {base} R or tibble from {tibble}

  • igraph, from the {igraph} package

  • network, from the {network} package

  • tbl_graph, from the {tidygraph} package

mark

A valid 'node_mark' object or logical vector (TRUE/FALSE) of length equal to the number of nodes in the network.

time

A time point until which infections/adoptions should be identified. By default time = 0.

Adoption time

node_adoption_time() measures the time units it took until each node became infected. Note that an adoption time of 0 indicates that this was a seed node.

Thresholds

node_thresholds() infers nodes' thresholds based on how much exposure they had when they were infected. This inference is of course imperfect, especially where there is a sudden increase in exposure, but it can be used heuristically. In a threshold model, nodes activate when \sum_{j:\text{active}} w_{ji} \geq \theta_i, where w is some (potentially weighted) matrix, j are some already activated nodes, and theta is some pre-defined threshold value. Where a fractional threshold is used, the equation is \frac{\sum_{j:\text{active}} w_{ji}}{\sum_{j} w_{ji}} \geq \theta_i. That is, theta is now a proportion, and works regardless of whether w is weighted or not.

Infection length

node_infection_length() measures the average length of time that nodes that become infected remain infected in a compartmental model with recovery. Infections that are not concluded by the end of the study period are calculated as infinite.

Exposure

node_exposure() calculates the number of infected/adopting nodes to which each susceptible node is exposed. It usually expects network data and an index or mark (TRUE/FALSE) vector of those nodes which are currently infected, but if a diff_model is supplied instead it will return nodes exposure at t = 0.

References

Valente, Tom W. 1995. Network models of the diffusion of innovations (2nd ed.). Cresskill N.J.: Hampton Press.

See Also

Other measures: between_centrality, close_centrality, degree_centrality, eigenv_centrality, measure_attributes, measure_closure, measure_cohesion, measure_features, measure_heterogeneity, measure_hierarchy, measure_holes, measure_infection, measure_net_diffusion, measure_periods, measure_properties, member_diffusion

Other diffusion: measure_infection, measure_net_diffusion, member_diffusion, play

Examples

  smeg <- generate_smallworld(15, 0.025)
  smeg_diff <- play_diffusion(smeg, recovery = 0.2)
  plot(smeg_diff)
  # To measure when nodes adopted a diffusion/were infected
  (times <- node_adoption_time(smeg_diff))
  # To infer nodes' thresholds
  node_thresholds(smeg_diff)
  # To measure how long each node remains infected for
  node_recovery(smeg_diff)
  # To measure how much exposure nodes have to a given mark
  node_exposure(smeg, mark = c(1,3))
  node_exposure(smeg_diff)

[Package manynet version 1.0.2 Index]