From: Gabor Csardi <csardi_at_rmki.kfki.hu>

Date: Thu, 24 May 2007 16:43:40 +0200

}

}

c(good, bad)

}

Date: Thu, 24 May 2007 16:43:40 +0200

Tom, thank you for the detailed answer and sorry for the long delay, i'm at a conference right now. This sadly means that i have no access to the papers, it will take more time.

But in the meanwhile, here's a little program which might be useful,

structural.balance <- function(g) {

triples <- combn(1:vcount(g)-1, 3)

good <- bad <- 0

for (t in 1:ncol(triples)) {

tri <- triples[,t]

edges <- E(g) [ tri %--% tri ] if (length(unique(get.edges(g, edges))) < 3) { next } if (prod(E(g)[edges]$sign) > 0) { good <- good +1 } else { bad <- bad +1

}

}

c(good, bad)

}

It uses the igraph package, version 0.4 or higher. Basically it extracts all possible triples from the network and first checks whether it is connected or not. If it is a connected triple then it simply multiples the values of the edges to see whether it is positive or negative.

Here is a little test with a directed random graph with random edge values:

g <- erdos.renyi.game(20, p=5/20, directed=TRUE) E(g)$sign <- sample( c(-1,1), ecount(g), repl=TRUE, prob=c(0.5,0.5))

structural.balance(g)

The code is of course suboptimal, it is brute-force, but if your networks are small it might be good enough.

Best Regards,

Gabor

On Mon, May 14, 2007 at 11:13:11PM +0200, Tom Backer Johnsen wrote:

> Gabor Csardi wrote:

*> > Tom,
**> >
**> > check the igraph package. Although structural balance is not implemented,
**> > for three or four nodes it might be straightforward to do a quick
**> > implemntation which works for small graphs.
**>
**> I will do so. My graphs are small, but not very small, having from 8
**> to 11 members (actually military units tested four points in time from
**> their formation as strangers and with the last data collection two
**> months later.
**> >
**> > Btw. what is exactly you want to do? List the number of balanced and
**> > unbalanced triangles? Ot the triangles themselves? What is a semi-cycle?
**>
**> Consider a directed and signed graph having three points (also called
**> vertices) with all possible relations (called lines or arcs) present
**> (which does not have to be the case in empirical situations). In that
**> case there are six possible semicycles, unique sequences of single
**> lines or arcs between the three points. The sign of a semicycle is
**> the product of the signs of the arcs, a positive semicycle has none or
**> an even number of negative arcs. (e.g. John dislikes James as well as
**> Peter, but Peter likes James, a balanced triad).
**>
**> A structural balance index is the number of positive semicycles over
**> the total number of semicycles. This concept was introduced by:
**>
**> @ARTICLE{Cartwright56,
**> author = {Cartwright, Dorwin and Harary, Frank},
**> title = {Structural Balance: A Generalization of {H}eider's Theory},
**> journal = {Psychological Review},
**> year = {1956},
**> volume = {63},
**> pages = {277-293}
**> }
**>
**> and:
**>
**> @BOOK{Harary65,
**> title = {Structural {M}odels: {A}n {I}ntroduction to the {T}heory
**> of {D}irected {G}raphs},
**> publisher = {John Wiley \& Sons Inc},
**> year = {1965},
**> author = {Harary, Frank and Norman, Robert Z. and Cartwright, Dorwin},
**> keywords = {Graph theory, balance},
**> address={New York}
**> }
**>
**> to use the BibTex format. This was a generalization in graph
**> theoretical terms to larger structures involving more than three
**> persons (points, vertices) based on the writings of a social
**> psychologist by the name of Fritz Heider. References:
**>
**> @ARTICLE{Heider46,
**> author = {Heider, Fritz},
**> title = {Attitudes and {C}ognitive {O}rganization},
**> journal = {J. of Psychology},
**> year = {1946},
**> volume = {21},
**> pages = {107-112}
**> }
**>
**> @BOOK{Heider58,
**> title = {The Psychology of Interpersonal Relations},
**> publisher = {Wiley},
**> year = {1958},
**> author = {Heider, Fritz},
**> address = {New York}
**> }
**>
**> > Could you point me to a good online reference about structureal balance?
**>
**> As to more recent and online references I am on quite thin ice. I
**> know of a a few really trustworthy ones, the problem is simply that
**> parts of the field has been occupied by fringe elements within what is
**> called "sociometry". One evidently good and recent reference to be
**> used as a point of departure is the following:
**>
**> @ARTICLE{Hummon03,
**> author = {Hummon, Norman P. and Doreian, Patrick},
**> title = {Some dynamics of social balance processes: {B}ringing
**> {H}eider back into balance theory},
**> journal = {Social Networks},
**> year = {2003},
**> volume = {25},
**> pages = {17-48}
**> }
**>
**> I have been in contact with the second author of that article, but he
**> did not have time to respond in full, he was on his way to a social
**> networks conference on Corfu (which I would have attended were it not
**> for family matters which had priority).
**>
**> I have a *very* preliminary draft of a paper which you may have if you
**> are interested.
**>
**> Tom
**>
**> >
**> > Thanks,
**> > Gabor
**> >
**> > On Sat, May 12, 2007 at 11:44:21PM +0200, Tom Backer Johnsen wrote:
**> >> R-Netters:
**> >>
**> >> for (partial sentimental reasons) I am at the the moment working on
**> >> some old data of mine (actually collected 40 years ago this year for
**> >> my thesis) covering development of of social networks in small groups
**> >> over time. These data consists of signed and directed graphs.
**> >>
**> >> Apart from the programs I write myself, I am looking for R functions
**> >> for computing what at that time was called "Structural Balance",
**> >> mainly to check on my own programs, where the results are almost to
**> >> good to be true. I want to limit myself to cycles (semicycles?) of
**> >> length two and three.
**> >>
**> >> I am aware of the "network" package as well as the "sna" which do not
**> >> seem to quite cover what I need. On the other hand, the terminology
**> >> may have changed since I looked into the field 40 years ago. I am
**> >> also aware of the Pajek program and the corresponding book by Nooy,
**> >> Mrvrar, and Batagelj.
**> >>
**> >> Any other suggestions or pointers?
**> >>
**> >> Tom
**> >> --
**> >> +----------------------------------------------------------------+
**> >> | Tom Backer Johnsen, Psychometrics Unit, Faculty of Psychology |
**> >> | University of Bergen, Christies gt. 12, N-5015 Bergen, NORWAY |
**> >> | Tel : +47-5558-9185 Fax : +47-5558-9879 |
**> >> | Email : backer@psych.uib.no URL : http://www.galton.uib.no/ |
**> >> +----------------------------------------------------------------+
**> >>
**> >> ______________________________________________
**> >> R-help_at_stat.math.ethz.ch mailing list
**> >> https://stat.ethz.ch/mailman/listinfo/r-help
**> >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
**> >> and provide commented, minimal, self-contained, reproducible code.
**> >
**>
**>
**> --
**> +----------------------------------------------------------------+
**> | Tom Backer Johnsen, Psychometrics Unit, Faculty of Psychology |
**> | University of Bergen, Christies gt. 12, N-5015 Bergen, NORWAY |
**> | Tel : +47-5558-9185 Fax : +47-5558-9879 |
**> | Email : backer@psych.uib.no URL : http://www.galton.uib.no/ |
**> +----------------------------------------------------------------+
**>
**> ______________________________________________
**> R-help_at_stat.math.ethz.ch mailing list
**> https://stat.ethz.ch/mailman/listinfo/r-help
**> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
**> and provide commented, minimal, self-contained, reproducible code.
*

-- Csardi Gabor <csardi_at_rmki.kfki.hu> MTA RMKI, ELTE TTK ______________________________________________ R-help_at_stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.Received on Thu 24 May 2007 - 14:54:26 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Thu 24 May 2007 - 15:01:28 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*