View source: R/infect_suscept.r
infection | R Documentation |
Calculates infectiousness and susceptibility for each node in the graph
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)
)
graph |
A dynamic graph (see |
toa |
Integer vector of length |
t0 |
Integer scalar. See |
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 |
Logical scalar. When TRUE, exponential discount rate is used (see details). |
valued |
Logical scalar. When |
outgoing |
Logical scalar. When |
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 t
.
Given that node i
adopted the innovation in time t
, its
Susceptibility is calculated as follows
S_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 x_{ij(t-k+1)}
is 1 whenever there's a link from i
to j
at time t-k+1
, z_{j(t-k)}
is 1 whenever individual j
adopted the innovation at time t-k
,
z_{j(1\leq t \leq t-k)}
is 1 whenever
j
had adopted the innovation up to t-k
, and w_k
is
the discount rate used (see below).
Similarly, infectiousness is calculated as follows
I_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)
by
(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 t-k
. Thus, the resulting formulas,
when normalize=TRUE
, can be rewritten as
%
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.
A numeric column vector (matrix) of size n
with either infection/susceptibility rates.
Discount rate, w_k
in the formulas above, can be either exponential
or linear. When expdiscount=TRUE
, w_k = (1 + r)^{k-1}
, otherwise
it will be w_k = k
.
Note that when K=1
, the above formulas are equal to the ones presented
in Valente et al. (2015).
George G. Vega Yon
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 \Sexpr[results=rd]{tools:::Rd_expr_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. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1086/303110")}
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()
# 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.