R/RcppExports.R
, R/stats.R
vertex_covariate_dist.Rd
Computes 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)