Generalized Prestige Scoring in Two-Mode Networks
In the lecture note on Status and Prestige in Two-Mode Netwoks we examine various ways of assigning scores to the row and column objects of the biadjacency matrix to derive status scores for the nodes of a two-mode network.
The dual scoring approach due to Bonacich (1991) (the dual “Eigenvector Centrality”) serves as the standard here, with other approaches (e.g., PageRank-style scoring) serving as deviations and tweaks on the general formula. All can be modeled as the “prismatic” (Podolny 2001) distribution of status within a system, where nodes in one mode get status from the status of the nodes in each mode and vice versa.
In formulese, the iterative two-mode network status scoring can formalized as follows. At each iteration \(q\), the vector of status scores for the row nodes \(\mathbf{s}^R\) and the column nodes \(\mathbf{s}^C\) is given by:
\[ s^R_i(q) = \sum_j\mathbf{A}_{ij}s^C_j(q-1) \tag{1}\]
\[ s^C_j(q) = \sum_i\mathbf{A}_{ij}s^R_i(q-1) \tag{2}\]
Where \(\mathbf{A}\) is the two-mode network’s biadjacency matrix, and with the restriction that at the initial step \(\mathbf{s}(0)^C = \mathbf{1}\) where \(\mathbf{1}\) is the all ones vector of length equals to the number of columns of the biadjacency matrix \(\mathbf{A}\).
At each iteration \(q > 0\) we normalize both score vectors:
\[ \mathbf{s}^R(q) = \frac{\mathbf{s}^R(q)}{\left\langle\mathbf{s}^R(q)\right\rangle} \tag{3}\]
\[ \mathbf{s}^C(q) = \frac{\mathbf{s}^C(q)}{\left\langle\mathbf{s}^C(q)\right\rangle} \tag{4}\]
Where \(\left\langle \mathbf{s} \right\rangle\) is the mean of the vector scores, indicating that we normalize the status score vector so that its expected value equals one (we could use other normalizations like the maximum, sum, or Euclidean norm).
As noted before.qmd), one way to generalize the Bonacich scoring is by substituting some other matrix other than \(\mathbf{A}\) like the row-stochastic matrix \(\mathbf{P}\) into the above equations and let the process run until convergence.
In a technical paper, Pugliese et al. (2016, 1909) hint at an alternative way to generalize the usual status scoring in two-mode networks that involves changing the status scores themselves while keeping the standard biadjacency matrix \(\mathbf{A}\) in place.
Their basic idea is that at each time step in the iteration we can substitute the following for the current status scores:
\[ s^R_i(q) = \left(\sum_j\mathbf{A}_{ij}\left[s^C_j(q-1)\right]^{-\delta}\right)^{-\frac{1}{\delta}} \tag{5}\]
\[ s^C_j(q) = \left(\sum_i\mathbf{A}_{ij}\left[s^R_i(q-1)\right]^{-\gamma}\right)^{-\frac{1}{\gamma}} \tag{6}\]
This generalization works like this: When the parameter \(\gamma = 1\) it has the effect of inverting the row object’s status scores (\(s^R_i(q-1)\)) that go into the calculation of the column object’s status (inside the parentheses), meaning that column objects that connect to low status row objects receive more status. However, the same parameter outside the parentheses reverses the first inversion, such that column objects receive more status when they connect almost exclusively to high-status row objects and shun the low status ones.
The \(\delta\) parameters work similarly. When \(\delta = 1\) the column object’s status scores (\(s^C_i(q-1)\)) that go into the calculation of the focal row object’s status are reversed, so that row objects receive more status when they connect to low status row objects (inside the parentheses). The same parameter (outside the parentheses) reverses this inversion, such that the status of a given row object increases when they connect to high status column objects and shun the low status ones.
Note that when both parameters \(\{\gamma, \delta\} = -1\) the equations above reduce to the usual Bonacich dual scoring. Different parameter value combinations \(\{\gamma, \delta\}\) in the \(\{+1, -1\}\) range instantiate different ways in which status operates in a given system.
Why would we want to generalize status scoring in this way? Recall that the basic principle of Bonacich scoring is based on the equation of status and popularity/activity. In the canonical case of persons and groups (Breiger 1974), an event receives status from being attended by high-status individuals and an individual receives status from being affiliated with a high status event; in each case, status from the point of view of the event means having highly active members, and from the point of view of the individual it means being affiliated with popular events.
1 Column Object Contamination
But status may not always work this way. Consider the world-economic network linking countries to the products they have a competitive advantage in producing. Analysts noticed that the most developed countries produce both “complex” (i.e., high status) products that only a select few of other highly developed economies produce (like semiconductors) and also less “complex” (i.e., low status, like extractive natural resources) products that the other less developed economics produce (Tacchella et al. 2012). That means that the “complexity” (i.e., status score) of a product cannot be derived simply taking a summary (e.g., sum or average) of the status score of the countries that produce it, because high status countries engage in both high and low status forms of production.
In the more general and sociologically apposite case of persons and groups (Breiger 1974), an equivalent situation would go as follows. Imagine there is a set of elite women and a set of elite events that only the elite women attend. However, elite women are also endowed with a spirit of noblesse oblige, which means that the most elite of them also attend non-elite events. This means that when determining the status of the events it is not very informative to know that elites affiliate with them; rather, we should weigh more heavily whether non-elites affiliate with an event in determining an event’s status, such that as the number of non-elite women who affiliate with an event increases, a given event’s status is downgraded in a non-linear way. In formal terms, the status of column objects is heavily contaminated by having non-elite row-object affiliates, which we may refer to as a column object contamination system.
Note that the aforementioned dynamics would apply to any status system in which elites are likely to have both elite and non-elite affiliations, and in which elite status is not necessarily threatened by having such non-elite affiliations. However, in this system the status of objects of affiliation (e.g., groups, events, cultural genres) is negatively and steeply affected by having non-elite affiliates. Such a system approximates the description of the “omnivore” regime that, as argued by cultural sociologists, organizes contemporary cultural consumption choices.
One approach to modeling this type of elite-omnivorousness status system is to set \(\delta = -1\) and \(\gamma = 1\) in en1 and en2 so that a column object’s status is the sum of the reciprocal of the inverse of the status of the row objects affiliated with it. This means that a column object’s status decreases non-linearly when it is affiliated with low status row objects, and this feeds back into the calculation of each row object’s status.
2 Row Object Contamination
Setting \(\delta = 1\) and \(\gamma = -1\) in en1 and en2 produce scores consistent with a different status distribution system. This system operates according to the same “status contamination” logic we just described, but it does so asymmetrically in determining the status of the row objects, not the column objects in the biadjacency matrix. In formal terms, the status of row objects is heavily contaminated by having non-elite column-object affiliations; accordingly, we may refer to this status accounting process as a row object contamination system.
How would this work? In the case of person and groups, imagine a status system in which the status of persons is fragile, so that any affiliation with low status events will drive a person’s status downward non-linearly. This then feeds back into the determination of each event’s status, such that events likely to be attended by these contaminated individuals themselves rapidly lose status. Note, however, that since we are not transforming the way we calculate status for events, high-status in the case of events reverts to Bonacich-style popularity among high status persons; the highest status events are those who draw a relatively big crowd of high-status people.
This status system is therefore in many ways the opposite of the elite omnivorousness one. At the level of individuals, this system rewards being picky about which event to attend, but this pickiness is driven by event popularity. This means that rather than being “omnivores,” the highest status individuals in this accounting system will be popularity seeking univores; that is, people who restrict their attendance only to a select set of highly popular events. For instance, social systems like high-schools or fashion (were status is determined by selecting the most popular objects) may operate in this way.
3 Contaminating Dualities
Of course, it is likely that the most empirically accurate model of really existing status systems combines the two logics just described; that is following the principle of duality (Breiger 1974), the status of persons is contaminated (and thus non-linearly driven downwards) by affiliation with low status objects, and the status of objects is contaminated by affiliation with low status persons. This is what Wood and Ashby (2025) refer to as the principle of “contaminating dualities,” which mutually feed into one another in determining the status of both persons and groups.
Accordingly, to model the contaminating dualities status accounting system, we would have to set both \(\delta = 1\) and \(\gamma = 1\) in en1 and en2.
The generalized status scoring model above thus allows us to consider analytically distinct status distribution regimes, which we can summarize as in Table 1.
| \(\gamma\) | \(\delta\) | Status Distribution Regime | ||
|---|---|---|---|---|
| -1 | -1 | Symmetric Duality of Status via Activity and Popularity | ||
| -1 | 1 | Asymmetric Row Low-Status Contamination for Column Objects | ||
| -1 | 1 | Asymmetric Column Low-Status Contamination for Row Objects | ||
| 1 | 1 | Contaminating Dualities for Row and Column Objects |
Let’s see how this would work with real data. Let’s load up the trusty Southern Women (SW) data:
Here’s the SW biadjacency matrix in table form:
| 9/16 | 4/8 | 3/15 | 2/25 | 5/19 | 4/12 | 4/7 | 6/10 | 9/26 | 2/23 | 6/27 | 3/2 | 11/21 | 8/3 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EVELYN | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
| THERESA | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
| NORA | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 |
| LAURA | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
| BRENDA | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
| SYLVIA | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
| KATHERINE | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
| HELEN | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
| CHARLOTTE | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| FRANCES | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ELEANOR | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| RUTH | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| VERNE | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| MYRNA | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| PEARL | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| DOROTHY | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| OLIVIA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| FLORA | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| * Row and Columns Ordered by Degree Centrality. |
And here’s a function that modifies the status distribution game function to incorporate generalized status scores parameters:
Code
tm.status <- function(w, gamma = -1, delta = -1) {
y <- matrix(1, ncol(w), 1) # initial group status column vector set to a constant
z <- t(w)
epsilon <- 1
k <- 0
while (epsilon > 1e-10) {
o.y <- y
x <- (w %*% (o.y^-delta))^-(1 / delta) # generalized status scores for people
x <- x / norm(x, type = "F") # normalizing new people status scores
y <- (z %*% (x^-gamma))^-(1 / gamma) # generalized status scores for groups
y <- y / norm(y, type = "F") # normalizing new group status scores
if (k > 1) {
epsilon <- abs(sum(abs(y) - abs(o.y)))
}
k <- k + 1
}
return(list(p.s = x, g.s = y, k = k))
}We then run the function for the four status distribution regimes:
Now we check out the different status orderings. For people, this looks like this:
| Person | Bonacich | Person | Col. Contamination | Person | Row Contamination | Person | Double Contamination |
|---|---|---|---|---|---|---|---|
| THERESA | 1.00 | NORA | 1.00 | DOROTHY | 1.00 | OLIVIA | 1.00 |
| EVELYN | 0.90 | SYLVIA | 1.00 | PEARL | 0.53 | FLORA | 1.00 |
| BRENDA | 0.84 | KATHERINE | 1.00 | RUTH | 0.30 | CHARLOTTE | 0.61 |
| LAURA | 0.83 | HELEN | 0.02 | ELEANOR | 0.29 | DOROTHY | 0.41 |
| SYLVIA | 0.75 | MYRNA | 0.02 | FRANCES | 0.20 | HELEN | 0.37 |
| NORA | 0.71 | VERNE | 0.00 | CHARLOTTE | 0.06 | FRANCES | 0.36 |
| RUTH | 0.64 | OLIVIA | 0.00 | BRENDA | 0.02 | NORA | 0.36 |
| ELEANOR | 0.62 | FLORA | 0.00 | THERESA | 0.02 | MYRNA | 0.35 |
| KATHERINE | 0.59 | EVELYN | 0.00 | LAURA | 0.01 | PEARL | 0.34 |
| VERNE | 0.59 | LAURA | 0.00 | EVELYN | 0.01 | KATHERINE | 0.34 |
| FRANCES | 0.56 | THERESA | 0.00 | OLIVIA | 0.00 | ELEANOR | 0.31 |
| HELEN | 0.54 | BRENDA | 0.00 | FLORA | 0.00 | VERNE | 0.29 |
| MYRNA | 0.50 | CHARLOTTE | 0.00 | VERNE | 0.00 | RUTH | 0.27 |
| PEARL | 0.49 | FRANCES | 0.00 | MYRNA | 0.00 | LAURA | 0.27 |
| CHARLOTTE | 0.45 | ELEANOR | 0.00 | HELEN | 0.00 | BRENDA | 0.27 |
| DOROTHY | 0.35 | RUTH | 0.00 | SYLVIA | 0.00 | SYLVIA | 0.27 |
| OLIVIA | 0.19 | PEARL | 0.00 | KATHERINE | 0.00 | EVELYN | 0.25 |
| FLORA | 0.19 | DOROTHY | 0.00 | NORA | 0.00 | THERESA | 0.22 |
| * Scores normalized by dividing by the maximum. |
And for the groups:
| Group | Bonacich | Group | Col. Contamination | Group | Row Contamination | Group | Double Contamination |
|---|---|---|---|---|---|---|---|
| 9/16 | 1.00 | 11/21 | 1.00 | 9/16 | 1.00 | 2/23 | 1.00 |
| 3/15 | 0.76 | 8/3 | 1.00 | 4/8 | 0.45 | 11/21 | 1.00 |
| 4/8 | 0.75 | 6/10 | 0.03 | 2/25 | 0.37 | 8/3 | 1.00 |
| 5/19 | 0.65 | 4/7 | 0.01 | 5/19 | 0.35 | 6/27 | 0.83 |
| 2/25 | 0.64 | 2/23 | 0.00 | 3/15 | 0.21 | 3/2 | 0.77 |
| 4/12 | 0.50 | 3/2 | 0.00 | 4/12 | 0.10 | 9/26 | 0.52 |
| 4/7 | 0.40 | 6/27 | 0.00 | 9/26 | 0.03 | 6/10 | 0.38 |
| 9/26 | 0.35 | 9/26 | 0.00 | 6/27 | 0.01 | 4/7 | 0.26 |
| 6/10 | 0.34 | 4/12 | 0.00 | 3/2 | 0.01 | 4/12 | 0.24 |
| 3/2 | 0.30 | 3/15 | 0.00 | 2/23 | 0.00 | 2/25 | 0.13 |
| 6/27 | 0.28 | 5/19 | 0.00 | 4/7 | 0.00 | 5/19 | 0.13 |
| 11/21 | 0.22 | 2/25 | 0.00 | 6/10 | 0.00 | 3/15 | 0.09 |
| 8/3 | 0.22 | 4/8 | 0.00 | 11/21 | 0.00 | 4/8 | 0.07 |
| 2/23 | 0.18 | 9/16 | 0.00 | 8/3 | 0.00 | 9/16 | 0.04 |
| * Scores normalized by dividing by the maximum. |
4 Bonacich Rankings
As we can see in the first two columns of Table 3 and Table 4, the Bonacich Eigenvector ranking is pretty similar to the ranking we obtain using degree. Theresa, Evelyn, Brenda, and Laura are the top women, and events 9/16, 3/15, 4/8, 5/19, and 2/25 are ranked toward the top.
5 Asymmetric Column Contamination Rankings
However, as the third and fourth columns of Table 4 shows, the event ranking obtained in the asymmetric column contamination model is completely different from the usual Eigenvector ranking and in many ways reversed (\(r =\) -0.42). Events 3/2, 6/27, 11/21, and 8/3 come toward the top and most of the events ranked highly by the eigenvector score are toward the bottom. The reason for that, is that while events 3/2, 6/27, 11/21, and 8/3 are relatively small events by attendance, they are attended almost exclusively by the highest status women and are avoided by the lower status women. The column contamination model thus uncovers the most elite set of events.
Because women’s status scores are computed in the usual way (\(\delta = -1\)), they end up being similar to those obtained via the standard Bonacich scoring; elite women attend many elite events and non-elite women just a few non-elite ones. This is shown in the first four columns of Table 3. Ranking the women using the column contamination model’s event scores serves to magnify the Bonacich dual scoring status differences between them, while also partially re-ordering the top of the ranks. The top four women receive very high normalized scores (\(\mathbf{s}^R > 0.8\)) and the bottom seven meager scores (\(\mathbf{s}^R < 0.2\)). This ranking reveals Evelyn as the top woman, followed closely by Nora (who was sixth by the Bonacich scoring), Laura, and Sylvia. Note that the reason for Nora’s rise in standing according to the column contamination metric is that she attends almost all of the elite events uncovered by the same metric, as we can see in Table 2.
6 Asymmetric Row Contamination Rankings
Rows five and six of Table 3 show how the person ranking would change if instead we computed it using the asymmetric row contamination model. As we can see, the asymmetric row contamination status order of women is almost a complete reversal from that implied by the asymmetric column contamination model (\(r =\) -0.27). Here, Dorothy emerges as to the top person, followed somewhat distantly by Olivia, Flora, and Pearl, all undisputed low status women according to the Bonacich and especially the column contamination model’s scores. Instead, all of the high status women according to these other two status metrics are lumped in the bottom.
Checking the event ranking in columns five and six of Table 2, we can see that the reason for this inversion of the status order is that only two events, namely, 4/8 and 9/16 emerge as high status events in the asymmetric row contamination metric, and these, as expected given the earlier discussion, are the top-two most popular events. Dorothy attends both and shuns every other event, which puts her at the top. She is a popular event univore, and thus the top dog by this metric. Olivia and Flora have a similar event profile to Dorothy. They attend 4/8 (the second most popular event) and just one other event (2/23). Pearl, the fourth woman ranked by this metric, attends only two events, and two of them are high-status. However, she also attends a relatively low status event (5/19) which degrades her position. Overall, it is easy to see that the asymmetric row contamination status metric rewards high status selectivity toward popular events and heavily punishes the omnivore strategy.
7 Contaminating Dualities Rankings
As we can see in the last two columns of Table 4, the contaminating dualities model, combining the elite omnivorousness and popular univorousness status dynamics, provides yet another picture of the event status system, which is, in fact, almost an exact reversal of that implied by the usual Bonacich scores (\(r =\) -0.88). Events 4/8, 3/15, and 9/16, the top events in the asymmetric row-contaminaton model, are now towards the bottom of the status order, while events 2/23, 11/21, and 8/3 (the lowest status events according to the Eigenvector centrality scoring) are now the highest status events. As we ca see in Table 2, all of this last set of events are relatively restrictive in terms of attendance (they are on the right side of the table); what they have in common is that they combine memberships of the two types of elite women uncovered by the asymmetric row and column-object contamination models; that is, their membership include both high-status membership omnivores like Nora, and popular event exclusivists like Olivia and Flora, the last two of whom emerge as the top status women in the contaminating dualities dynamic, just like they did in the asymmetric row contamination scoring. Nevertheless, even though Flora and Olivia appear toward the top in the row contamination and contaminating dualities models, the two scorings imply very different rankings on the person side (\(r =\) -0.65).