NetLogo / NW-Extension

This is the NetLogo Network Extension. For general information about NetLogo, see:
http://ccl.northwestern.edu/netlogo/
Other
62 stars 25 forks source link

Eigenvector centrality should return component specific centrality #168

Closed qiemem closed 8 years ago

qiemem commented 8 years ago

Right now, it just returns false. It is the only centrality measure that does this.

arthurhjorth commented 8 years ago

I completely agree. There is NO time ever when this is useful information, and the end result is that one always has to iterate over nw:weak-component-clusters, set context, and get the component-specific calculations based on that. The extension ought to just do that for you IMO.

qiemem commented 8 years ago

We were explicitly blocking when the network had more than one component. Removing that block, centrality values are correctly calculated for the largest component, but zero out for the others. This is simply because we're normalizing every iteration by the max (unnormalized) centrality.

The fix is to normalize on each weakly connected component separately.

I'm not sure what to do about the strongly connected components. I can't tell what Gephi is doing by just looking at results. I'll have to look at their code. The behavior in 0.9.1 is different from what I remember in 0.8.

qiemem commented 8 years ago

Weird, as far as I can tell, Gephi just normalizes by network's max: https://github.com/gephi/gephi/blob/0.9.1/modules/StatisticsPlugin/src/main/java/org/gephi/statistics/plugin/EigenvectorCentrality.java

qiemem commented 8 years ago

The difference between us and Gephi for directed networks is that we seed with the in degree of a node and they seed with 1s. We're actually in the right here: the eigenvector centrality of a node with no in-links is 0. They give non-zero eigenvector centralities.

Although I can't tell from the linked code, I'm pretty sure they're doing these calculations on a per weak component basis. I'm not sure how else to explain their results. I'm going to code that up and see what happens...

qiemem commented 8 years ago

This is fixed in hexy.