infection {netdiffuseR}R Documentation

Susceptibility and Infection

Description

Calculates infectiousness and susceptibility for each node in the graph

Usage

infection(
  graph,
  toa,
  t0 = NULL,
  normalize = TRUE,
  K = 1L,
  r = 0.5,
  expdiscount = FALSE,
  valued = getOption("diffnet.valued", FALSE),
  outgoing = getOption("diffnet.outgoing", TRUE)
)

susceptibility(
  graph,
  toa,
  t0 = NULL,
  normalize = TRUE,
  K = 1L,
  r = 0.5,
  expdiscount = FALSE,
  valued = getOption("diffnet.valued", FALSE),
  outgoing = getOption("diffnet.outgoing", TRUE)
)

Arguments

graph

A dynamic graph (see netdiffuseR-graphs).

toa

Integer vector of length nn with the times of adoption.

t0

Integer scalar. See toa_mat.

normalize

Logical. Whether or not to normalize the outcome

K

Integer scalar. Number of time periods to consider

r

Numeric scalar. Discount rate used when expdiscount=TRUE

expdiscount

Logical scalar. When TRUE, exponential discount rate is used (see details).

valued

Logical scalar. When TRUE weights will be considered. Otherwise non-zero values will be replaced by ones.

outgoing

Logical scalar. When TRUE, computed using outgoing ties.

Details

Normalization, normalize=TRUE, is applied by dividing the resulting number from the infectiousness/susceptibility stat by the number of individuals who adopted the innovation at time tt.

Given that node ii adopted the innovation in time tt, its Susceptibility is calculated as follows

Si=k=1Kj=1nxij(tk+1)zj(tk)×1wkk=1Kj=1nxij(tk+1)zj(1ttk)×1wk\mboxfori,j=1,,nijS_i = \frac{% \sum_{k=1}^K\sum_{j=1}^n x_{ij(t-k+1)}z_{j(t-k)}\times \frac{1}{w_k}}{% \sum_{k=1}^K\sum_{j=1}^n x_{ij(t-k+1)}z_{j(1\leq t \leq t-k)} \times \frac{1}{w_k} }\qquad \mbox{for }i,j=1,\dots,n\quad i\neq j

where xij(tk+1)x_{ij(t-k+1)} is 1 whenever there's a link from ii to jj at time tk+1t-k+1, zj(tk)z_{j(t-k)} is 1 whenever individual jj adopted the innovation at time tkt-k, zj(1ttk)z_{j(1\leq t \leq t-k)} is 1 whenever jj had adopted the innovation up to tkt-k, and wkw_k is the discount rate used (see below).

Similarly, infectiousness is calculated as follows

Ii=k=1Kj=1nxji(t+k1)zj(t+k)×1wkk=1Kj=1nxji(t+k1)zj(t+ktT)×1wk\mboxfori,j=1,,nijI_i = \frac{% \sum_{k=1}^K \sum_{j=1}^n x_{ji(t+k-1)}z_{j(t+k)}\times \frac{1}{w_k}}{% \sum_{k=1}^K \sum_{j=1}^n x_{ji(t+k-1)}z_{j(t+k\leq t \leq T)}\times \frac{1}{w_k} }\qquad \mbox{for }i,j=1,\dots,n\quad i\neq j

It is worth noticing that, as we can see in the formulas, while susceptibility is from alter to ego, infection is from ego to alter.

When outgoing=FALSE the algorithms are based on incoming edges, this is the adjacency matrices are transposed swapping the indexes (i,j)(i,j) by (j,i)(j,i). This can be useful for some users.

Finally, by default both are normalized by the number of individuals who adopted the innovation in time tkt-k. Thus, the resulting formulas, when normalize=TRUE, can be rewritten as

Si=Sik=1Kj=1nzj(tk)×1wkIi=Iik=1Kj=1nzj(tk)×1wk% S_i' = \frac{S_i}{\sum_{k=1}^K\sum_{j=1}^nz_{j(t-k)}\times \frac{1}{w_k}} % \qquad I_i' = \frac{I_i}{\sum_{k=1}^K\sum_{j=1}^nz_{j(t-k)} \times\frac{1}{w_k}}

For more details on these measurements, please refer to the vignette titled Time Discounted Infection and Susceptibility.

Value

A numeric column vector (matrix) of size nn with either infection/susceptibility rates.

Discount rate

Discount rate, wkw_k in the formulas above, can be either exponential or linear. When expdiscount=TRUE, wk=(1+r)k1w_k = (1 + r)^{k-1}, otherwise it will be wk=kw_k = k.

Note that when K=1K=1, the above formulas are equal to the ones presented in Valente et al. (2015).

Author(s)

George G. Vega Yon

References

Thomas W. Valente, Stephanie R. Dyal, Kar-Hai Chu, Heather Wipfli, Kayo Fujimoto Diffusion of innovations theory applied to global tobacco control treaty ratification, Social Science & Medicine, Volume 145, November 2015, Pages 89-97, ISSN 0277-9536 doi:10.1016/j.socscimed.2015.10.001

Myers, D. J. (2000). The Diffusion of Collective Violence: Infectiousness, Susceptibility, and Mass Media Networks. American Journal of Sociology, 106(1), 173–208. doi:10.1086/303110

See Also

The user can visualize the distribution of both statistics by using the function plot_infectsuscep

Other statistics: bass, classify_adopters(), cumulative_adopt_count(), dgr(), ego_variance(), exposure(), hazard_rate(), moran(), struct_equiv(), threshold(), vertex_covariate_dist()

Examples


# Creating a random dynamic graph
set.seed(943)
graph <- rgraph_er(n=100, t=10)
toa <- sample.int(10, 100, TRUE)

# Computing infection and susceptibility (K=1)
infection(graph, toa)
susceptibility(graph, toa)

# Now with K=4
infection(graph, toa, K=4)
susceptibility(graph, toa, K=4)


[Package netdiffuseR version 1.22.6 Index]