blockmodeling-package {blockmodeling} | R Documentation |
This package is primarily meant as an implementation of Generalized blockmodeling. In addition, functions for computation of (dis)similarities in terms of structural and regular equivalence, plotting and other "utility" functions are provided.
Aleš Žiberna
ŽIBERNA, Aleš (2006): Generalized Blockmodeling of Valued Networks. Social Networks (in press). http://dx.doi.org/10.1016/j.socnet.2006.04.002.
DOREIAN, Patrick, BATAGELJ, Vladimir, FERLIGOJ, Anuška (2005): Generalized blockmodeling, (Structural analysis in the social sciences, 25). Cambridge [etc.]: Cambridge University Press, 2005. XV, 384 p., ISBN 0-521-84085-6.
Žiberna, Aleš (2006): Direct and Indirect Methods for Regular Equivalence in Valued networks. Paper presented on Applied statistics 2005 [http://ablejec.nib.si/AS2005/AS2005_Abstracts.pdf]
White, D. R., K. P. Reitz (1983): "Graph and semigroup homomorphisms on networks of relations". Social Networks, 5, p. 193-234.
White, Douglas R.(2005): REGGE (web page). http://eclectic.ss.uci.edu/~drwhite/REGGE/ (12.5.2005).
Functions inside this package:
crit.fun
, opt.par
, opt.random.par
, opt.these.par
, check.these.par
, REGE
, plot.mat
n<-8 #if larger, the number of partitions increases dramaticaly, as does if we increase the number of clusters net<-matrix(NA,ncol=n,nrow=n) clu<-rep(1:2,times=c(3,5)) tclu<-table(clu) net[clu==1,clu==1]<-rnorm(n=tclu[1]*tclu[1],mean=0,sd=1) net[clu==1,clu==2]<-rnorm(n=tclu[1]*tclu[2],mean=4,sd=1) net[clu==2,clu==1]<-rnorm(n=tclu[2]*tclu[1],mean=0,sd=1) net[clu==2,clu==2]<-rnorm(n=tclu[2]*tclu[2],mean=0,sd=1) #we select a random parition and then optimise it all.par<-nkpartitions(n=n, k=length(tclu)) #forming the partitions all.par<-lapply(apply(all.par,1,list),function(x)x[[1]]) # to make a list out of the matrix #optimizing one partition res<-opt.par(M=net,clu=all.par[sample(1:length(all.par),size=1)],approach="ss",blocks="com") plot(res) #Hopefully we get the original partition #optimizing 10 random chosen partitions which are suplied to opt.these.par res<-opt.these.par(M=net,partitions=all.par[sample(1:length(all.par),size=10)],approach="ss",blocks="com") plot(res) #Hopefully we get the original partition #optimizing 10 random chosen partitions with opt.random.par res<-opt.random.par(M=net,k=2,npar=10,approach="ss",blocks="com") plot(res) #Hopefully we get the original partition #Checking all possible partitions nkpar(n=n, k=length(tclu)) #computing the number of partitions all.par<-nkpartitions(n=n, k=length(tclu)) #forming the partitions all.par<-lapply(apply(all.par,1,list),function(x)x[[1]]) # to make a list out of the matrix res<-check.these.par(M=net,partitions=all.par,approach="ss",blocks="com") plot(res) #we get the original partition #using indidect approach - structural equivalence D<-sedist(M=net) plot.mat(net, clu=cutree(hclust(d=D,method="ward"),k=2))