R/RcppExports.R, R/stats.R
vertex_covariate_dist.RdComputes covariate distance between connected vertices
vertex_covariate_dist(graph, X, p = 2)
vertex_mahalanobis_dist(graph, X, S)A matrix of size \(n\times n\) of class dgCMatrix. Will
be symmetric only if graph is symmetric.
Faster than dist, these functions compute distance metrics
between pairs of vertices that are connected (otherwise skip).
The function vertex_covariate_dist is the simil of dist
and returns p-norms (Minkowski distance). It is implemented as follows (for
each pair of vertices):
$$% D_{ij} = \left(\sum_{k=1}^K \left|X_{ik} - X_{jk}\right|^{p} \right)^{1/p}\mbox{ if }graph_{i,j}\neq 0 $$
In the case of mahalanobis distance, for each pair of vertex \((i,j)\), the distance is computed as follows:
$$% D_{ij} = \left( (X_i - X_j)\times S \times (X_i - X_j)' \right)^{1/2}\mbox{ if }graph_{i,j}\neq 0 $$
Mahalanobis distance. (2016, September 27). In Wikipedia, The Free Encyclopedia. Retrieved 20:31, September 27, 2016, from https://en.wikipedia.org/w/index.php?title=Mahalanobis_distance&oldid=741488252
mahalanobis in the stats package.
Other statistics:
bass,
classify_adopters(),
cumulative_adopt_count(),
dgr(),
ego_variance(),
exposure(),
hazard_rate(),
infection(),
moran(),
struct_equiv(),
threshold()
Other dyadic-level comparison functions:
matrix_compare(),
vertex_covariate_compare()
# Distance (aka p norm) -----------------------------------------------------
set.seed(123)
G <- rgraph_ws(20, 4, .1)
X <- matrix(runif(40), ncol=2)
vertex_covariate_dist(G, X)[1:5, 1:5]
#> 5 x 5 sparse Matrix of class "dgCMatrix"
#>
#> [1,] . 0.1981546 0.8536003 . .
#> [2,] 0.1981546 . 0.7586802 0.9200049 .
#> [3,] 0.8536003 0.7586802 . 0.7894522 0.5022833
#> [4,] . 0.9200049 0.7894522 . 0.8215560
#> [5,] . . 0.5022833 0.8215560 .
# Mahalanobis distance ------------------------------------------------------
S <- var(X)
M <- vertex_mahalanobis_dist(G, X, S)
# Example with diffnet objects ----------------------------------------------
data(medInnovationsDiffNet)
X <- cbind(
medInnovationsDiffNet[["proage"]],
medInnovationsDiffNet[["attend"]]
)
S <- var(X, na.rm=TRUE)
ans <- vertex_mahalanobis_dist(medInnovationsDiffNet, X, S)