Skip to contents

The hub scores of the vertices are defined as the principal eigenvector of \(A A^T\), where \(A\) is the adjacency matrix of the graph.

Usage

hub_score(graph, scale = TRUE, weights = NULL, options = arpack_defaults())

authority_score(
  graph,
  scale = TRUE,
  weights = NULL,
  options = arpack_defaults()
)

Arguments

graph

The input graph.

scale

Logical scalar, whether to scale the result to have a maximum score of one. If no scaling is used then the result vector has unit length in the Euclidean norm.

weights

Optional positive weight vector for calculating weighted scores. If the graph has a weight edge attribute, then this is used by default. This function interprets edge weights as connection strengths. In the random surfer model, an edge with a larger weight is more likely to be selected by the surfer.

options

A named list, to override some ARPACK options. See arpack() for details.

Value

A named list with members:

vector

The hub or authority scores of the vertices.

value

The corresponding eigenvalue of the calculated principal eigenvector.

options

Some information about the ARPACK computation, it has the same members as the options member returned by arpack(), see that for documentation.

Details

Similarly, the authority scores of the vertices are defined as the principal eigenvector of \(A^T A\), where \(A\) is the adjacency matrix of the graph.

For undirected matrices the adjacency matrix is symmetric and the hub scores are the same as authority scores.

References

J. Kleinberg. Authoritative sources in a hyperlinked environment. Proc. 9th ACM-SIAM Symposium on Discrete Algorithms, 1998. Extended version in Journal of the ACM 46(1999). Also appears as IBM Research Report RJ 10076, May 1997.

See also

eigen_centrality() for eigenvector centrality, page_rank() for the Page Rank scores. arpack() for the underlining machinery of the computation.

Centrality measures alpha_centrality(), betweenness(), closeness(), diversity(), eigen_centrality(), harmonic_centrality(), page_rank(), power_centrality(), spectrum(), strength(), subgraph_centrality()

Examples

## An in-star
g <- make_star(10)
hub_score(g)$vector
#>  [1] 2.602085e-18 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00
#>  [6] 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00 1.000000e+00
authority_score(g)$vector
#>  [1] 1 0 0 0 0 0 0 0 0 0

## A ring
g2 <- make_ring(10)
hub_score(g2)$vector
#>  [1] 0 1 0 1 0 1 0 1 0 1
authority_score(g2)$vector
#>  [1] 1 0 1 0 1 0 1 0 1 0