Computes variance of \(Y\) at ego level

ego_variance(graph, Y, funname, all = FALSE)

Arguments

graph

A matrix of size \(n\times n\) of class dgCMatrix.

Y

A numeric vector of length \(n\).

funname

Character scalar. Comparison to make (see vertex_covariate_compare).

all

Logical scalar. When FALSE (default) \(f_i\) is mean at ego level. Otherwise is fix for all i (see details).

Value

A numeric vector of length \(n\).

Details

For each vertex \(i\) the variance is computed as follows

$$% (\sum_j a_{ij})^{-1}\sum_j a_{ij} \left[f(y_i,y_j) - f_i\right]^2 $$

Where \(a_{ij}\) is the ij-th element of graph, \(f\) is the function specified in funname, and, if all=FALSE \(f_i = \sum_j a_{ij}f(y_i,y_j)^2/\sum_ja_{ij}\), otherwise \(f_i = f_j = \frac{1}{n^2}\sum_{i,j}f(y_i,y_j)\)

This is an auxiliary function for struct_test. The idea is to compute an adjusted measure of disimilarity between vertices, so the closest in terms of \(f\) is \(i\) to its neighbors, the smaller the relative variance.