bonpow                  package:sna                  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 stack (`dat') and returns the Bonacich
     power centralities of positions within one graph (indicated by
     `nodes' and `g', respectively).  The decay rate for power
     contributions is specified by `exponent' (1 by default).  This
     function is compatible with `centralization', and will return the
     theoretical maximum absolute deviation (from maximum) conditional
     on size (which is used by `centralization' to normalize the
     observed centralization score).

_U_s_a_g_e:

     bonpow(dat, g=1, nodes=c(1:dim(dat)[2]), gmode="digraph", diag=FALSE,
         tmaxdev=FALSE, exponent=1, rescale=FALSE, tol=1e-07)

_A_r_g_u_m_e_n_t_s:

     dat: Data array to be analyzed.  By assumption, the first
          dimension of the array indexes the graph, with the next two
          indexing the actors. Alternately, this can be an n x n matrix
          (if only one graph is involved). 

       g: Integer indicating the index of the graph for which
          centralities are to be calculated.  By default, `g'=1. 

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

   gmode: String indicating the type of graph being evaluated. 
          "Digraph" indicates that edges should be interpreted as
          directed; "graph" indicates that edges are undirected.  This
          is currently ignored. 

    diag: 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.  `Diag' is `FALSE' by default. 

 tmaxdev: Boolean indicating whether or not the theoretical maximum
          absolute deviation from the maximum nodal centrality should
          be returned.  By default, `tmaxdev'=`FALSE'. 

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-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:

     The theoretical maximum deviation used here is not obtained with
     the star network, in general.  For positive exponents, at least,
     the maximum occurs for an empty graph with one complete dyad. 
     UCINET V seems not to adjust for this fact, which can cause some
     oddities in their centralization scores.

_A_u_t_h_o_r(_s):

     Carter T. Butts ctb@andrew.cmu.edu

_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:

     `centralization', `evcent'

_E_x_a_m_p_l_e_s:

     #Generate some test data
     dat<-rgraph(10,mode="graph")
     #Compute Bonpow scores
     bonpow(dat,exponent=1,tol=1e-20)
     bonpow(dat,exponent=-1,tol=1e-20)

