Thresholds are each vertexes exposure at the time of adoption.
Substantively it is the proportion of adopters required for each ego to adopt. (see exposure).
threshold(
obj,
toa,
t0 = min(toa, na.rm = TRUE),
include_censored = FALSE,
lags = 0L,
...
)Either a \(n\times T\) matrix (eposure to the innovation obtained from
exposure) or a diffnet object.
Integer vector. Indicating the time of adoption of the innovation.
Integer scalar. See toa_mat.
Logical scalar. When TRUE (default), threshold
Integer scalar. Number of lags to consider when computing thresholds. lags=1
defines threshold as exposure at \(T-1\), where T is time of adoption.
levels are not reported for observations adopting in the first time period.
Further arguments to be passed to exposure.
A vector of size \(n\) indicating the threshold for each node.
By default exposure is not computed for vertices adopting at the
first time period, include_censored=FALSE, as estimating threshold for
left censored data may yield biased outcomes.
Threshold can be visualized using plot_threshold
Other statistics:
bass,
classify_adopters(),
cumulative_adopt_count(),
dgr(),
ego_variance(),
exposure(),
hazard_rate(),
infection(),
moran(),
struct_equiv(),
vertex_covariate_dist()
# Generating a random graph with random Times of Adoption
set.seed(783)
toa <- sample.int(4, 5, TRUE)
graph <- rgraph_er(n=5, t=max(toa) - min(toa) + 1)
# Computing exposure using Structural Equivalnece
adopt <- toa_mat(toa)
se <- struct_equiv(graph)
#> Warning: no non-missing arguments to max; returning -Inf
#> Warning: no non-missing arguments to max; returning -Inf
#> Warning: no non-missing arguments to max; returning -Inf
se <- lapply(se, function(x) methods::as((x$SE)^(-1), "dgCMatrix"))
expo <- exposure(graph, adopt$cumadopt, alt.graph=se)
#> Warning: The -alt.graph- will be treated as 0/1 graph (value=FALSE).
# Retrieving threshold
threshold(expo, toa)
#> threshold
#> 1 1.00
#> 2 0.25
#> 3 0.75
#> 4 0.00
#> 5 0.75
# We can do the same by creating a diffnet object
diffnet <- as_diffnet(graph, toa)
threshold(diffnet, alt.graph=se)
#> Warning: The -alt.graph- will be treated as 0/1 graph (value=FALSE).
#> threshold
#> 1 1.00
#> 2 0.25
#> 3 0.75
#> 4 0.00
#> 5 0.75