rgbn                   package:sna                   R Documentation

_D_r_a_w _f_r_o_m _a _S_k_v_o_r_e_t_z-_F_a_r_a_r_o _B_i_a_s_e_d _N_e_t _P_r_o_c_e_s_s

_D_e_s_c_r_i_p_t_i_o_n:

     Produces a series of draws from a Skvoretz-Fararo biased net
     process using a Gibbs sampler.

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

     rgbn(n, nv, param=list(pi=0, sigma=0, rho=0, d=0.5),
         burn=nv*nv*1000, thin=nv)

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

       n: number of draws to take. 

      nv: number of vertices in the graph to be simulated. 

   param: a list containing the biased net parameters. 

    burn: number of burn-in draws to take (and discard). 

    thin: thinning parameter. 

_D_e_t_a_i_l_s:

     The biased net model stems from early work by Rapoport, who
     attempted to model networks via a hypothetical "tracing" process. 
     This process may be described loosely as follows.  One begins with
     a small "seed" set of vertices, each member of which is assumed to
     nominate (generate ties to) other members of the population with
     some fixed probability.  These members, in turn, may nominate new
     members of the population, as well as members who have already
     been reached.  Such nominations may be "biased" in one fashion or
     another, leading to a non-uniform growth process. 

     While the original biased net model depends upon the tracing
     process, a local interpretation has been put forward by Skvoretz
     and colleagues in recent years.  Using the standard four-parameter
     process, the conditional probability of an (i,j) edge given all
     other edges in a random graph G can be written as


         Pr(i->j) = 1 - (1-rho)^z (1-sigma)^y (1-pi)^x (1-d)


     where x=1 iff j to i (and 0 otherwise), y is the number of
     vertices k!=i,j such that k->i, k->j, and z=1 iff x=1 and y>0 (and
     0 otherwise).  Thus, x is the number of "parent bias" events, y is
     the number of "sibling bias" events, and z is the number of
     "double role bias" events.  d is the probability of the baseline
     edge event; note that an edge arises if the baseline event or any
     bias event occurs, and all events are assumed conditionally
     independent.  Written in this way, it is clear that the edges of G
     are conditionally independent iff they share no endpoint.  Thus,
     the above model is a subfamily of the Markov graphs.

     It should be noted that the above process is not entirely
     consistent with the tracing-based model, which is itself not
     uniformly well-specified in the literature.  For this reason, the
     local model is referred to here as a Skvoretz-Fararo graph
     process.  One significant advantage of this process is that it is
     well-defined, and easily simulated: the above equation forms the
     basis of a Gibbs sampler, which is used by rgbn to take draws from
     the (local) biased net model.  Burn-in and thinning are controlled
     by the corresponding arguments; since degeneracy is common with
     Markov graph models, it is advisable to check for adequate mixing.

_V_a_l_u_e:

     An adjacency array containing the simulated graphs.

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

     Carter T. Butts buttsc@uci.edu

_R_e_f_e_r_e_n_c_e_s:

     Rapoport, A.  (1957).  ``A contribution to the theory of random
     and biased nets.''  _Bulletin of Mathematical Biophysics,_ 15,
     523-533.

     Skvoretz, J.; Fararo, T.J.; and Agneessens, F.  (2004). 
     ``Advances in biased net theory: definitions, derivations, and
     estimations.''  _Social Networks,_ 26, 113-139.

_S_e_e _A_l_s_o:

     'bn'

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

     #Generate draws with low density and no biases
     g1<-rgbn(50,10,param=list(pi=0, sigma=0, rho=0, d=0.17))
     apply(dyad.census(g1),2,mean) #Examine the dyad census

     #Add a reciprocity bias
     g2<-rgbn(50,10,param=list(pi=0.5, sigma=0, rho=0, d=0.17))
     apply(dyad.census(g2),2,mean) #Compare with g1

     #Alternately, add a sibling bias
     g3<-rgbn(50,10,param=list(pi=0.0, sigma=0.3, rho=0, d=0.17))
     mean(gtrans(g3))              #Compare transitivity scores
     mean(gtrans(g1))

