[Math] eigenvector centrality for directed graphs

algebraic-graph-theoryeigenvalues-eigenvectorsMATLAB

I need to compute eigenvector centrality for a directed graph: It's a network of international trade of goods, so obviously what country A imports from B (= B exports in A) is not what country B imports from A (= A exports in B). The adjacency matrix is therefore asymmetric.

The logical doubt is: If I had a directed social notwork such as (say) paper citations, I'd want to compute the eigenvector centrality of a node i as a function of the centrality scores of its direct neighbors, that is as a function of how many times the nodes that cite node i are cited by other nodes.

But, in my case, I suppose it'd be wiser (for reasons of economic interpretation) to compute eigenvector centrality of a node i not as a function of how much i's neighbors import in turn from other nodes, but of how much i's neighbors export, instead!

This means (if I'm correct), that, for example, if the adjacency matrix has importers in rows and exporters in columns, I want to compute for every row (importer) how many nodes export towards it (the "ones" on its ROW) and, for each of these exporters, how many countries they export to (the "ones" in their corresponding COLUMNS).

Does this mean that I can't use the "eig" function on matlab to compute eigenvectors? If so, can anyone help me giving me a hint for an ad hoc algorithm? Thanks

Best Answer

eig function of matlab can works indeed, but you have to be careful that sometimes the results may differ from what you expect from the iterative methods, because of floating point arithmetic.

If you model the "import" centrality of an entity with the dominant eigenvector, you can do exactly the opposite for the "export" centrality by taking the transpose of the matrix, and calculating the new eigenvector.

Related Question