Network Centralization (degree, betweenness and closeness) through Igraph and other possibilities

2,363 views
Skip to first unread message

Cadu

unread,
Sep 13, 2011, 8:45:20 AM9/13/11
to visone-users
Hi,

a) It seems that Igraph package has commands to calculate the overall
network centralization to measures as (1) centralization degree, (2)
betweenness and (3) closeness.

The documentation related is available at http://igraph.sourceforge.net/doc/html/ch10s05.html

I tried to use the commands, but they didn't work through R Console.
Do these commands work through R Console? How to use them?

b) Other possibility to calculate network centralization (through math
formula) was discussed in two previous posts in Visone Forum named
“Density Overall and Network Centralization” and “Betweenness
centralization”.

The formula bellow, used to calculate betweenness centralization works
good (being the measure calculated in Visone as “standardized").

x <- V(g)$betweenness
sum(max(x)-x)/(length(x)-1)

Does someone know the formulas to calculate network centralization to
the measures of “centralization degree” and “closeness”?

Thanks indeed in advance,

Cadu

Bobo

unread,
Sep 13, 2011, 11:04:53 AM9/13/11
to visone-users
Hi Cadu,

Freeman's approach measures "the average difference in centrality
between the most central actor and all others".

This 'centralization' is exactly captured in the mathematical
formula

sum(max(x)-x)/(length(x)-1)

x refers to any centrality measure! That is, if you want to calculate
the degree centralization of a network, x has simply to capture the
vector of all degree values in the network. To compare various
centralization measures, it is best to use standardized centrality
measures, i.e. the centrality values should always be smaller than 1
(best position in any possible network) and greater than 0 (worst
position)... if you do so, the centralization will also be in the
range of [0,1].

For degree, e.g., the 'best position' is to have an edge to all other
nodes (i.e. incident edges = number of nodes minus 1) and the 'worst
position' is to have no incident edge at all.
Thus, in the R console, calculate the node degrees:
x <- degree(g)
standardize the degree values:
x <- x/(length(x)-1)
(note that length(x) gives you the number of nodes)
and calculate degree centralization according to Freeman's formula:
sum(max(x)-x)/(length(x)-1)

If you use the "standardized" option in visone, you don't have to
worry how to standardize different centrality measures yourself.
Then, export your network to the R console and assign the centrality
values to the vector x...
x <- V(g)$the_name_of_the_node_attribute
and calculate degree centralization according to Freeman's formula:
sum(max(x)-x)/(length(x)-1)

Let me know if there are further questions.
All the best,
Bobo



On Sep 13, 2:45 pm, Cadu <ave...@gmail.com> wrote:
> Hi,
>
> a) It seems that Igraph package has commands to calculate the overall
> network centralization to measures as (1) centralization degree, (2)
> betweenness and (3) closeness.
>
> The documentation related is available athttp://igraph.sourceforge.net/doc/html/ch10s05.html

Cadu

unread,
Sep 15, 2011, 5:43:20 PM9/15/11
to visone-users
Hi Bobo,

Very thanks for the answers!

And about to calculate the overall network centralization directly
through Igraph commands (R console), do you know why they don't work?

Commands: igraph_degree(), igraph_betweenness(), igraph_closeness()

The documentation related is available at http://igraph.sourceforge.net/doc/html/ch10s05.html

All the best,
Cadu

Bobo

unread,
Sep 15, 2011, 6:02:02 PM9/15/11
to visone-users
Hi Cadu,

the igraph commands do work within the R console!
Assuming that you named your network "g", just type one of the
following commands:

degree(g)
closeness(g)
betweenness(g)

...and the corresponding centrality values will be printed out.

If you want to attach the centrality values to your node set, e.g.:

V(g)$closeness <- closeness(g)

(now, loading back the network "g", you can use the new attribute
"closeness" within visone)

...note however, that the igraph centrality values are not
standardized! Thus, if you calculate the centralization of your
network afterwards, you might get values greater than 1...

All the best,
Bobo



On Sep 15, 11:43 pm, Cadu <ave...@gmail.com> wrote:
> Hi Bobo,
>
> Very thanks for the answers!
>
> And about to calculate the overall network centralization directly
> through Igraph commands (R console), do you know why they don't work?
>
> Commands: igraph_degree(), igraph_betweenness(), igraph_closeness()
>
> The documentation related is available athttp://igraph.sourceforge.net/doc/html/ch10s05.html
Reply all
Reply to author
Forward
0 new messages