[statnet_help] A couple of questions on modeling two-mode networks

Steffen Triebel steffentriebel at icloud.com
Tue Oct 18 09:25:11 PDT 2022


Hi Michal,
thanks for the detailed and well-explained response! This already helped a lot and it's great to see that the statnet- list is equally friendly and welcoming as the Siena-list. Reading your comments, I think I need to force myself to wrap my head around the concept of "what explains *this* network at this time" instead of "what shapes the network going forward" a bit more.

To that end, I do want to probe your responses a bit if you don't mind:
- The b1degree term works very well, this is great. Do I understand correctly that, given the cross-sectional nature of the data, I should try to think less in terms of tendencies ("Actors who already have a lot of ties will likely form more ties in the future.") but rather try to model observed network features ("Most actors will only have one tie.") and then leave out other features (for reference, only 14 actors out of the 9.5k have 4 ties to groups)?

- My actors do not share any attributes with the groups. So if I want to model "likelihood of being part of two firms (groups) from the same industry" I should rather use b1starmix and probably neglect b1star altogether?

- The help page has a gwb2degree, which I assume is the bipartite version of gwdegree. Say I use this with an interval-scale attribute (values 1-10) which reflects regulation of groups (I am basically modelling institutional oversight), then a positive parameter would mean that: "The more subject a group is to regulation, the higher the likelihood of having actors as members who are also present in other groups."?

Thank you so much for your time already. This is incredibly helpful to me. I am very excited to dive in deeper into ERGMs,
Steffen

Am 18.10.22, 12:23 schrieb "Michał Bojanowski" <michal2992 at gmail.com>:

Hi Steffen and welcome to the list!

My reply will not be exhaustive (I reply below to some of your
questions), but hopefully others will chip-in:


> My network specification is somewhat odd. On the first mode (actors), I have about 9.5k nodes. On the second mode (groups), I have about 500. Most of the actors are only connected to one group, while there are some who are connected to 2 groups and very few that are connected to 3+. This is not a data error – it’s just that these connections hold a lot of weight and that the actors basically connect the groups with each other and that these connections are meaningful. I am wondering if I should respect this in the model somehow by fixing certain effects (something like b1degree(1))? In a very basic specification, the model converges without issues and shows no degeneracy.

I don't think there is a straightaway answer to this question because
it depends on the context. What you write about "meaningful
connections" is convincing to me, i.e. actors have limited resources
and being a member of a group (any group) consumes them all thus it is
not viable to being "spread to thin". When modeling I think I would
first try to find a model that contains all the theory-guided effects,
including those of node attributes etc., and then add a b1degree term
as necessary to fit the degree distribution better. This seems
justified as you can find ERGM applications in which in a similar
fashion people add degree(0) to account for a unexplainably large
("unexplained" by other terms in the model) number of isolates in the
data.



> About data specification: I have an edgelist with actor attributes in the columns next to it. When I read this as a network, R rightfully turns the actors into unique nodes, omitting some rows. Is there an elegant way to keep the attributes while reading in the network or should I extract the unique actors after reading in the network and then match them with the respective attributes in an additional step?

Cultures vary, but my personal workflow is to keep two files always:
(1) nodes and their attributes and (2) edges and their attributes. I
don't think I have any bipartite network data example on a side to
explain it better, but will try to cook one up and reply separately.


> I am unsure how to interpret the by-option in some effects. Would this just mean if I have a categorial variable (let’s say sex), I could set this to by=sex and will get different estimates based on each categorial value?

By and large that's exactly what `by=` arguments are for.


> I am very interested in single actors connecting multiple groups and I reckon this is portrayed by b1star(). Am I correct to assume that b1star(2) would mean likelihood of 2 groups being connected through 1 actor and that b1star(3) would mean the same for 3 groups respectively? And adding a covariate (again, let’s say sex) in the attribute-option would mean “likelihood of 3 groups being connected through 1 actor is increased for male actors”?

Yes and no. You are correct about the `k` argument, i.e. b1star(3)
counts actors who are connected to exactly 3 groups. However the
`attr` argument serves a different purpose as it counts only those
stars, for which all the nodes have the same value of the attribute
specified, i.e. b1star(2, attr="value") needs a `value` attribute
defined on all the nodes and counts actors connected to two groups
such that the actor and the two groups have identical values on
"value".


> Let’s say I want to model that a female actor is more likely to be part of a certain group the more females are part of the group: Is b1nodematch(sex) correct?

Yes.

> Notwithstanding attributes or theory, I am structurally interested in two very basic things. First: General Popularity of groups (basically something like inPop in Siena models). My understanding is that b2sociality is picking out the role of single groups, so I assume it is b2degree. Is b2degree(1, levels=1) correct? Stupid addendum: How would I interpret a significant positive parameter here (just so I can get a good feel of wording and logic)?

b2socialty() will give you as many statistics as there are groups and
parameters will give you a per-group indication which groups, ceteris
paribus other terms, attract more ties than other groups. I don't
think we have at this moment a term that would be a bipartite
analogoue of gwdegree.


I hope this helps,
Michal





More information about the statnet_help mailing list