Logistic Regression for Network Data
netlogit
performs a logistic regression of the network variable in y
on the network variables in set x
. The resulting fits (and coefficients) are then tested against the indicated null hypothesis.
netlogit(y, x, intercept=TRUE, mode="digraph", diag=FALSE, nullhyp=c("qap", "qapspp", "qapy", "qapx", "qapallx", "cugtie", "cugden", "cuguman", "classical"), test.statistic = c("z-value","beta"), tol=1e-7, reps=1000)
y |
dependent network variable. |
x |
the stack of independent network variables. Note that |
intercept |
logical; should an intercept term be fitted? |
mode |
string indicating the type of graph being evaluated. |
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. |
nullhyp |
string indicating the particular null hypothesis against which to test the observed estimands. |
test.statistic |
string indicating the test statistic to be used for the Monte Carlo procedures. |
tol |
tolerance parameter for |
reps |
integer indicating the number of draws to use for quantile estimation. (Relevant to the null hypothesis test only – the analysis itself is unaffected by this parameter.) Note that, as for all Monte Carlo procedures, convergence is slower for more extreme quantiles. By default, |
Logistic network regression using is directly analogous to standard logistic regression elementwise on the appropriately vectorized adjacency matrices of the networks involved. As such, it is often a more appropriate model for fitting dichotomous response networks than is linear network regression.
Because of the frequent presence of row/column/block autocorrelation in network data, classical hull hypothesis tests (and associated standard errors) are generally suspect. Further, it is sometimes of interest to compare fitted parameter values to those arising from various baseline models (e.g., uniform random graphs conditional on certain observed statistics). The tests supported by netlogit
are as follows:
classical
tests based on classical asymptotics.
cug
conditional uniform graph test (see cugtest
) controlling for order.
cugden
conditional uniform graph test, controlling for order and density.
cugtie
conditional uniform graph test, controlling for order and tie distribution.
qap
QAP permutation test (see qaptest
); currently identical to qapspp
.
qapallx
QAP permutation test, using independent x-permutations.
qapspp
QAP permutation test, using Dekker's “semi-partialling plus” procedure.
qapx
QAP permutation test, using (single) x-permutations.
qapy
QAP permutation test, using y-permutations.
Note that interpretation of quantiles for single coefficients can be complex in the presence of multicollinearity or third variable effects. Although qapspp
is known to be robust to these conditions in the OLS case, there are no equivalent results for logistic regression. Caution is thus advised.
The statistic to be employed in the above tests may be selected via test.statistic
. By default, the z-statistic (rather than estimated coefficient) is used, as this is more approximately pivotal; coefficient-based tests are not recommended for QAP null hypotheses, although they are provided here for legacy purposes.
Reasonable printing and summarizing of netlogit
objects is provided by print.netlogit
and summary.netlogit
, respectively. No plot methods exist at this time.
An object of class netlogit
Carter T. Butts buttsc@uci.edu
Butts, C.T., and Carley, K.M. (2001). “Multivariate Methods for Interstructural Analysis.” CASOS working paper, Carnegie Mellon University.
## Not run: #Create some input graphs x<-rgraph(20,4) #Create a response structure y.l<-x[1,,]+4*x[2,,]+2*x[3,,] #Note that the fourth graph is #unrelated y.p<-apply(y.l,c(1,2),function(a){1/(1+exp(-a))}) y<-rgraph(20,tprob=y.p) #Fit a netlogit model nl<-netlogit(y,x,reps=100) #Examine the results summary(nl) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.