I’m calculating centrality measures on a communication network (cellphone calls) using R. In this network, an edge represents a call and I assigned weight to the edges by collapsing and summing multiple calls between the nodes. I recently discovered (newbie here) that using the strength() function is recommended for calculating node degree in a weighted network. (and hoping I understood that correctly )
Now, I have a question regarding the consideration of edge weights in centrality measures such as centr_degree, centr_betw, and cent_clo. After reading the R documentation, it seems that none of these functions have an explicit argument for incorporating edge weights. Should I account for the edge weights (and directionality) when measuring centrality? If so, how?
Now, I have a question regarding the consideration of edge weights in centrality measures such as centr_degree, centr_betw, and cent_clo.
These compute centralization, not centrality. Look at
closeness() for vertex centralities.
As for centralization: You can use
centralize() to compute centralization from an arbitrary set of centrality scores. It’s really just a convenience function, since the computation is simple enough that you can do it in a one-liner:
sum(max(scores) - scores) (unnormalized version).
If you mean centralities, this is up to you and depends on your use case. Keep in mind that different functions interpret weights in different ways: e.g. with closeness they represent edge lengths, while with eigenvector centrality they represent the “strength” of connections (equivalent to edge multiplicity).
If you mean centralization, keep in mind that the normalized version is computed by dividing with the largest possible centralization value for any graph with the same number of vertices. This idea won’t make sense for some weighted centrality measures. For example, closeness can be made arbitrarily large by changing only the weights (not the graph’s connectivity pattern).
Thank you, @szhorvat! This makes perfect sense.