igraph-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] Group centrality


From: Tamas Nepusz
Subject: Re: [igraph] Group centrality
Date: Mon, 17 Mar 2008 13:04:26 +0100

Hi,

I think that the group degree centrality and the group closeness centrality is not too hard to implement using existing igraph functions. For group degree centrality, you simply select the vertices that have a neighbor vertex in your group, then subtract the members of your group from it. E.g., if your group consists of vertices 0, 1 and 5, then do the following:

group <- c(0,1,5)
group_degree <- setdiff(V(g)[nei(group)], group)

For group closeness centrality, you can use shortest.paths to calculate the distances of the individual vertices from members the group:

sps <- shortest.paths(g, group)

Now you'll have to decide how to define the distance of a vertex from a whole group. If you choose it to be the minimum distance, you'll have to apply the "min" function to columns of the matrix obtained. Similarly, you can use "max" or "mean". I choose "min":

min_dists <- apply(sps, 2, min)

I have to exclude zeros from min_dists:

Now, the group closeness centrality is the inverse of the mean of min_dists:

group_closeness <- 1 / mean(min_dists[min_dists > 0])

Due to my limited skills in R (I usually use igraph through its Python interface), I won't try implementing the group betweenness centrality this way, but I'm sure it can be done using regular igraph functions and a little bit of R programming.

Best,
--
Tamas





reply via email to

[Prev in Thread] Current Thread [Next in Thread]