`consensus`

estimates a central or consensus structure given multiple observations, using one of several algorithms.

```
consensus(dat, mode="digraph", diag=FALSE, method="central.graph",
tol=1e-06, maxiter=1e3, verbose=TRUE, no.bias=FALSE)
```

dat

a set of input graphs (must have same order).

mode

`"digraph"`

for directed data, else `"graph"`

.

diag

logical; should diagonals (loops) be treated as data?

method

one of `"central.graph"`

, `"single.reweight"`

, `"iterative.reweight"`

, `"romney.batchelder"`

, `"PCA.reweight"`

, `"LAS.intersection"`

, `"LAS.union"`

, `"OR.row"`

, or `"OR.col"`

.

tol

convergence tolerance for the iterative reweighting and B-R algorithms.

maxiter

maximum number of iterations to take (regardless of convergence) for the iterative reweighting and B-R algorithms.

verbose

logical; should bias and competency parameters be reported (where computed)?

no.bias

logical; should responses be assumed to be unbiased?

An adjacency matrix representing the consensus structure

The term ``consensus structure'' is used by a number of authors to reflect a notion of shared or common perceptions of social structure among a set of observers. As there are many interpretations of what is meant by ``consensus'' (and as to how best to estimate it), several algorithms are employed here:

`central.graph`

: Estimate the consensus structure using the central graph. This corresponds to a ``median response'' notion of consensus.`single.reweight`

: Estimate the consensus structure using subject responses, reweighted by mean graph correlation. This corresponds to an ``expertise-weighted vote'' notion of consensus.`iterative.reweight`

: Similar to`single.reweight`

, but the consensus structure and accuracy parameters are estimated via an iterated proportional fitting scheme. The implementation employed here uses both bias and competency parameters.`romney.batchelder`

: Fits a Romney-Batchelder informant accuracy model using IPF. This is very similar to`iterative.reweight`

, but can be interpreted as the result of a process in which each informant report is correct with a probability equal to the informant's competency score, and otherwise equal to a Bernoulli trial with parameter equal to the informant's bias score.`PCA.reweight`

: Estimate the consensus using the (scores on the) first component of a network PCA. This corresponds to a ``shared theme'' or ``common element'' notion of consensus.`LAS.intersection`

: Estimate the consensus structure using the locally aggregated structure (intersection rule). In this model, an i->j edge exists iff i*and*j agree that it exists.`LAS.union`

: Estimate the consensus structure using the locally aggregated structure (union rule). In this model, an i->j edge exists iff i*or*j agree that it exists.`OR.row`

: Estimate the consensus structure using own report. Here, we take each informant's outgoing tie reports to be correct.`OR.col`

: Estimate the consensus structure using own report. Here, we take each informant's incoming tie reports to be correct.

Note that the results returned by the single weighting algorithms are not dichotomized by default; since some algorithms thus return valued graphs, dichotomization may be desirable prior to use.

It should be noted that a model for estimating an underlying criterion structure from multiple informant reports is provided in `bbnam`

; if your goal is to reconstruct an ``objective'' network from informant reports, this (or the R-B model) may prove more useful than the ad-hoc solutions.

Banks, D.L., and Carley, K.M. (1994). ``Metric Inference for Social Networks.'' *Journal of Classification,* 11(1), 121-49.

Butts, C.T., and Carley, K.M. (2001). ``Multivariate Methods for Inter-Structural Analysis.'' CASOS Working Paper, Carnegie Mellon University.

Krackhardt, D. (1987). ``Cognitive Social Structures.'' *Social Networks,* 9, 109-134.

Romney, A.K.; Weller, S.C.; and Batchelder, W.H. (1986). ``Culture as Consensus: A Theory of Culture and Informant Accuracy.'' *American Anthropologist,* 88(2), 313-38.

```
# NOT RUN {
#Generate some test data
g<-rgraph(5)
g.pobs<-g*0.9+(1-g)*0.5
g.obs<-rgraph(5,5,tprob=g.pobs)
#Find some consensus structures
consensus(g.obs) #Central graph
consensus(g.obs,method="single.reweight") #Single reweighting
consensus(g.obs,method="PCA.reweight") #1st component in network PCA
# }
```

Run the code above in your browser using DataLab