bonpow                package:igraph                R Documentation

_F_i_n_d _B_o_n_a_c_i_c_h _P_o_w_e_r _C_e_n_t_r_a_l_i_t_y _S_c_o_r_e_s _o_f _N_e_t_w_o_r_k _P_o_s_i_t_i_o_n_s

_D_e_s_c_r_i_p_t_i_o_n:

     'bonpow' takes a graph ('dat') and returns the Boncich power
     centralities of positions (selected by 'nodes'). The decay rate
     for power contributions is specified by 'exponent' (1 by default).

_U_s_a_g_e:

     bonpow(graph, nodes=V(graph), loops=FALSE, exponent=1,
         rescale=FALSE, tol=1e-7)

_A_r_g_u_m_e_n_t_s:

   graph: the input graph. 

   nodes: vertex sequence indicating which vertices are to be included
          in the calculation.  By default, all vertices are included. 

   loops: boolean indicating whether or not the diagonal should be
          treated as valid data.  Set this true if and only if the data
          can contain loops.  'loops' is 'FALSE' by default. 

exponent: exponent (decay rate) for the Bonacich power centrality
          score; can be negative 

 rescale: if true, centrality scores are rescaled such that they sum to
          1. 

     tol: tolerance for near-singularities during matrix inversion (see
          'solve') 

_D_e_t_a_i_l_s:

     Bonacich's power centrality measure is defined by
     C_BP(alpha,beta)=alpha (I-beta A)^-1 A 1, where beta is an
     attenuation parameter (set here by 'exponent') and A is the graph
     adjacency matrix.  (The coefficient alpha acts as a scaling
     parameter, and is set here (following Bonacich (1987)) such that
     the sum of squared scores is equal to the number of vertices. 
     This allows 1 to be used as a reference value for the ``middle''
     of the centrality range.)  When beta->1/lambda_A1 (the reciprocal
     of the largest eigenvalue of A), this is to within a constant
     multiple of the familiar eigenvector centrality score; for other
     values of beta, the behavior of the measure is quite different. 
     In particular, beta gives positive and negative weight to even and
     odd walks, respectively, as can be seen from the series expansion
     C_BP(alpha,beta) = alpha sum( beta^k A^(k+1) 1, k in 0..infinity )
     which converges so long as |beta|<1/lambda_A1.  The magnitude of
     beta controls the influence of distant actors on ego's centrality
     score, with larger magnitudes indicating slower rates of decay. 
     (High rates, hence, imply a greater sensitivity to edge effects.) 

     Interpretively, the Bonacich power measure corresponds to the
     notion that the power of a vertex is recursively defined by the
     sum of the power of its alters.  The nature of the recursion
     involved is then controlled by the power exponent: positive values
     imply that vertices become more powerful as their alters become
     more powerful (as occurs in cooperative relations), while negative
     values imply that vertices become more powerful only as their
     alters become _weaker_ (as occurs in competitive or antagonistic
     relations).  The magnitude of the exponent indicates the tendency
     of the effect to decay across long walks; higher magnitudes imply
     slower decay.  One interesting feature of this measure is its
     relative instability to changes in exponent magnitude
     (particularly in the negative case).  If your theory motivates use
     of this measure, you should be very careful to choose a decay
     parameter on a non-ad hoc basis.

_V_a_l_u_e:

     A vector, containing the centrality scores.

_W_a_r_n_i_n_g:

     Singular adjacency matrices cause no end of headaches for this
     algorithm; thus, the routine may fail in certain cases.  This will
     be fixed when I get a better algorithm.  'bonpow' will not
     symmetrize your data before extracting eigenvectors; don't send
     this routine asymmetric matrices unless you really mean to do so.

_N_o_t_e:

     This function was ported (ie. copied) from the SNA package.

_A_u_t_h_o_r(_s):

     Carter T. Butts buttsc@uci.edu, ported to igraph by Gabor Csardi
     csardi@rmki.kfki.hu

_R_e_f_e_r_e_n_c_e_s:

     Bonacich, P.  (1972).  ``Factoring and Weighting Approaches to
     Status Scores and Clique Identification.''  _Journal of
     Mathematical Sociology_, 2, 113-120. 

     Bonacich, P.  (1987).  ``Power and Centrality: A Family of
     Measures.'' _American Journal of Sociology_, 92, 1170-1182.

_S_e_e _A_l_s_o:

     'evcent' and 'alpha.centrality'

_E_x_a_m_p_l_e_s:

     # Generate some test data from Bonacich, 1987:
     g.c <- graph( c(1,2,1,3,2,4,3,5)-1, dir=FALSE)
     g.d <- graph( c(1,2,1,3,1,4,2,5,3,6,4,7)-1, dir=FALSE)
     g.e <- graph( c(1,2,1,3,1,4,2,5,2,6,3,7,3,8,4,9,4,10)-1, dir=FALSE)
     g.f <- graph( c(1,2,1,3,1,4,2,5,2,6,2,7,3,8,3,9,3,10,4,11,4,12,4,13)-1, dir=FALSE)
     # Compute Bonpow scores
     for (e in seq(-0.5,.5, by=0.1)) {
       print(round(bonpow(g.c, exp=e)[c(1,2,4)], 2))
     }

     for (e in seq(-0.4,.4, by=0.1)) {
       print(round(bonpow(g.d, exp=e)[c(1,2,5)], 2))
     }

     for (e in seq(-0.4,.4, by=0.1)) {
       print(round(bonpow(g.e, exp=e)[c(1,2,5)], 2))
     }

     for (e in seq(-0.4,.4, by=0.1)) {
       print(round(bonpow(g.f, exp=e)[c(1,2,5)], 2))
     }

