Fits a biased net model to an input graph, using moment-based or maximum pseudolikelihood techniques.
bn(dat, method = c("mple.triad", "mple.dyad", "mple.edge",
"mtle"), param.seed = NULL, param.fixed = NULL,
optim.method = "BFGS", optim.control = list(),
epsilon = 1e-05)
a single input graph.
the fit method to use (see below).
seed values for the parameter estimates.
parameter values to fix, if any.
method to be used by optim
.
control parameter for optim
.
tolerance for convergence to extreme parameter values (i.e., 0 or 1).
An object of class bn
.
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. Specifically, let \(e_{ij}\) be the random event that vertex \(i\) nominates vertex \(j\) when reached. Then the conditional probability of \(e_{ij}\) is given by
$$ \Pr(e_{ij}|T) = 1-\left(1-\Pr(B_e)\right) \prod_k \left(1-\Pr(B_k|T)\right) $$
where \(T\) is the current state of the trace, \(B_e\) is the a Bernoulli event corresponding to the baseline probability of \(e_{ij}\), and the \(B_k\) are "bias events." Bias events are taken to be independent Bernoulli trials, given \(T\), such that \(e_{ij}\) is observed with certainty if any bias event occurs. The specification of a biased net model, then, involves defining the various bias events (which, in turn, influence the structure of the network).
Although other events have been proposed, the primary bias events employed in current biased net models are the "parent bias" (a tendency to return nominations); the "sibling bias" (a tendency to nominate alters who were nominated by the same third party); and the "double role bias" (a tendency to nominate alters who are both siblings and parents). These bias events, together with the baseline edge events, are used to form the standard biased net model. It is standard to assume homogeneity within bias class, leading to the four parameters \(\pi\) (probability of a parent bias event), \(\sigma\) (probability of a sibling bias event), \(\rho\) (probability of a double role bias event), and \(d\) (probability of a baseline event).
Unfortunately, there is no simple expression for the likelihood of a graph given these parameters (and hence, no basis for likelihood based inference). However, Skvoretz et al. have derived a class of maximum pseudo-likelihood estimators for the the biased net model, based on local approximations to the likelihood at the edge, dyad, or triad level. These estimators may be employed within bn
by selecting the appropriate MPLE for the method argument. Alternately, it is also possible to derive expected triad census rates for the biased net model, allowing an estimator which maximizes the likelihood of the observed triad census (essentially, a method of moments procedure). This last may be selected via the argument mode="mtle"
. In addition to estimating model parameters, bn
generates predicted edge, dyad, and triad census statistics, as well as structure statistics (using the Fararo-Sunshine recurrence). These can be used to evaluate goodness-of-fit.
print
, summary
, and plot
methods are available for bn
objects. See rgbn
for simulation from biased net models.
Fararo, T.J. and Sunshine, M.H. (1964). ``A study of a biased friendship net.'' Syracuse, NY: Youth Development Center.
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.
# NOT RUN {
#Generate a random graph
g<-rgraph(25)
#Fit a biased net model, using the triadic MPLE
gbn<-bn(g)
#Examine the results
summary(gbn)
plot(gbn)
#Now, fit a model containing only a density parameter
gbn<-bn(g,param.fixed=list(pi=0,sigma=0,rho=0))
summary(gbn)
plot(gbn)
# }
Run the code above in your browser using DataLab