# ego_variance: Computes variance of Y at ego level In netdiffuseR: Analysis of Diffusion and Contagion Processes on Networks

## Description

Computes variance of Y at ego level

## Usage

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

## Arguments

 `graph` A matrix of size n*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).

## Details

For each vertex i the variance is computed as follows

(sum_j a(ij))^(-1) * ∑_j a(ij) * [f(y(i),y(j)) - f(i)]^2

Where a(ij) is the ij-th element of `graph`, f is the function specified in `funname`, and, if `all=FALSE` f(i)=∑_j a(ij)f(y(i), y(j))^2/∑_j a(ij), otherwise f(i)=f(j)=(1/n^2)∑_(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.

## Value

A numeric vector of length n.

`struct_test`
Other statistics: `bass`, `classify_adopters`, `cumulative_adopt_count`, `dgr`, `exposure`, `hazard_rate`, `infection`, `moran`, `struct_equiv`, `threshold`, `vertex_covariate_dist`