Learn R Programming

sna (version 0.3)

pstar: Fit a p* Model Using a Logistic Approximation

Description

Fits a p* model to the adjacency matrix in dat containing the effects listed in effects. The result is returned as a glm object.

Usage

pstar(dat, effects=c("choice", "mutuality", "density", "reciprocity",
    "transitivity", "outdegree", "indegree", "betweenness", 
    "closeness", "degcentralization", "betcentralization", 
    "clocentralization"), attr=NULL, memb=NULL, diag=FALSE, 
    mode="digraph")

Arguments

dat
A single adjacency matrix
effects
A vector of strings indicating which effects should be fit
attr
A matrix whose columns contain individual attributes (one row per vertex) whose differences should be used as supplemental predictors
memb
A matrix whose columns contain group memberships whose categorical similarities (same group/not same group) should be used as supplemental predictors
diag
A boolean indicating whether or not diagonal entries (loops) should be counted as meaningful data
mode
``digraph'' if dat is directed, else ``graph''

Value

Details

p* is a loglinear model specification for network data. Under p*, it is assumed that $$p(G=g) \propto \exp(\beta_0 \gamma_0(g) + \beta_1 \gamma_1(g) + \dots)$$ for all g, where the betas represent real coefficients and the gammas represent functions of g. Unfortunately, the unknown constant of proportionality in the above expression makes evaluation difficult in the general case. One solution to this problem is to operate instead on the edgewise log odds; in this case, the p* can be approximated by a logistic regression of each edge on the differences in the gamma scores induced by the presence and absence of said edge in the graph (conditional on all other edges). It is this approximation (known as autologistic regression) which is employed here.

Using the effects argument, a range of different potential parameters can be estimated. The network measure associated with each is, in turn, the edge-perturbed difference in:

  1. choice: the number of edges in the graph (acts as a constant)
  2. mutuality: the number of reciprocated edges in the graph
  3. density: the density of the graph
  4. reciprocity: the dyadic reciprocity of the graph
  5. transitivity: the transitivity of the graph
  6. outdegree: the outdegree of each actor (|V| parameters)
  7. indegree: the indegree of each actor (|V| parameters)
  8. betweenness: the betweenness of each actor (|V| parameters)
  9. closeness: the closeness of each actor (|V| parameters)
  10. degcentralization: the Freeman degree centralization of the graph
  11. betcentralization: the betweenness centralization of the graph
  12. clocentralization: the closeness centralization of the graph
(Note that some of these do differ somewhat from the common p* parameter formulation, e.g. quantities such as density and reciprocity are computed as per the gden and grecip functions rather than via the unnormalized "choice" and "mutual" quantities one often finds in the p* literature.) Please do not attempt to use all effects simultaneously!!! In addition to the above, the user may specify a matrix of individual attributes whose absolute dyadic differences are to be used as predictors, as well as a matrix of individual memberships whose dyadic categorical similarities (same/different) are used in the same manner.

Although the p* framework is quite versatile in its ability to accommodate a range of structural predictors, it should be noted that the substantial collinearity of many of the standard p* predictors can lead to very unstable model fits. Measurement and specification errors compound this problem; thus, it is somewhat risky to use p* in an exploratory capacity (i.e., when there is little prior knowledge to constrain choice of parameters). While raw instability due to multicollinearity should decline with graph size, improper specification will still result in biased coefficient estimates so long as an omitted predictor correlates with an included predictor. Caution is advised.

References

Anderson, C.; Wasserman, S.; and Crouch, B. (1999). ``A p* Primer: Logit Models for Social Networks. Social Networks, 21,37-66.

Holland, P.W., and Leinhardt, S. (1981). ``An Exponential Family of Probability Distributions for Directed Graphs.'' Journal of the American statistical Association, 81, 51-67.

Wasserman, S., and Pattison, P. (1996). ``Logit Models and Logistic Regressions for Social Networks: I. An introduction to Markov Graphs and p*.'' Psychometrika, 60, 401-426.

See Also

eval.edgeperturbation

Examples

Run this code
#Create a graph with expansiveness and popularity effects
in.str<-rnorm(20,0,3)
out.str<-rnorm(20,0,3)
tie.str<-outer(out.str,in.str,"+")
tie.p<-apply(tie.str,c(1,2),function(a){1/(1+exp(-a))})
g<-rgraph(20,tprob=tie.p)

#Fit a model with expansiveness only
p1<-pstar(g,effects="outdegree")
#Fit a model with expansiveness and popularity
p2<-pstar(g,effects=c("outdegree","indegree"))
#Fit a model with expansiveness, popularity, and mutuality
p3<-pstar(g,effects=c("outdegree","indegree","mutuality"))

#Compare the model AICs
extractAIC(p1)
extractAIC(p2)
extractAIC(p3)

Run the code above in your browser using DataLab