Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

is eigenvector centrality defined intra-component? #190

Open
IgnacioOQ opened this issue Mar 21, 2019 · 4 comments
Open

is eigenvector centrality defined intra-component? #190

IgnacioOQ opened this issue Mar 21, 2019 · 4 comments

Comments

@IgnacioOQ
Copy link

I'm doing some exploration and found that if you have three nodes (a) (b)---(c), where (a) is isolated and the other two are connected by an undirected link, then when applying nw:eigenvector-centrality all turtles/nodes receive a value of 1.
The manual (http://ccl.northwestern.edu/netlogo/5.0/docs/nw.html#eigenvector-centrality) states that this should report "false" since the network is not connected. My suspicion is that the implementation is measuring the eigenvector of each turtle relative to its component.
Am I right?
Many thanks!

@qiemem
Copy link
Member

qiemem commented Mar 21, 2019

Your suspicion is correct. However, this was a changed with NetLogo 6 (iirc); I believe you are looking at old documentation there. The current documentation is here: https://ccl.northwestern.edu/netlogo/6.0/docs/nw.html#nw:eigenvector-centrality

The current documentation, however, only states that our implementation should agree with Gephi's, but does not explicitly state that it is normalized relative to each component. It probably should.

@IgnacioOQ
Copy link
Author

Many thanks!
Just to follow up, the normalization secures that "the highest eigenvector centrality a node can have is 1", but the example before also shows that it is not normalizing so that for each component the eigenvector adds up to 1 [i.e. In (b)---(c) both have a value of 1 rather than 1/2]
Is this what you meant by "normalized relative to each component"?

@qiemem
Copy link
Member

qiemem commented Mar 21, 2019

Ah, good call. That is ambiguous. For each component, the centralities are normalized so that the largest centrality will be 1; i.e. all centralities are divided by the maximum centrality on their component.

@IgnacioOQ
Copy link
Author

Thanks again!
What about defining a function(v) that uses nw:weak-component-clusters, applies nw:eigenvector-centrality to each of the elements in the list, adds the values up to get the new normalizing parameter k, and divides the given v by k?
Or digging into the source code, normalize by suck a k rather than the maximum centrality on their component.
In any case, problem solved.
Thanks for the quick response!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants