Skip to contents

Overview

The Social Relations Model (SRM) was originally developed by Kenny and La Voie (1984) for round-robin designs in psychology, where every individual both rates and is rated by every other individual. The framework decomposes observed relational data into additive components that capture systematic patterns at the actor level and relationship-specific patterns at the dyadic level.

The srm package implements the SRM decomposition for network data, extending its applicability to political science, international relations, and other domains where relational data arises naturally.

The Model

For a directed network with nn actors, let XijX_{ij} denote the observed tie from actor ii to actor jj. The SRM decomposes this as:

Xij=μ+ai+bj+gijX_{ij} = \mu + a_i + b_j + g_{ij}

where:

  • μ\mu is the grand mean of the network
  • aia_i is the actor effect for individual ii (sender tendency)
  • bjb_j is the partner effect for individual jj (receiver tendency)
  • gijg_{ij} is the unique (dyadic) effect for the iji \to j relationship

Interpretation

  • Actor effect (aia_i): How much actor ii sends ties above or below the network average, after adjusting for partner characteristics. A high positive aia_i means actor ii is an unusually active sender.

  • Partner effect (bjb_j): How much actor jj receives ties above or below the network average, after adjusting for actor characteristics. A high positive bjb_j means actor jj is an unusually attractive receiver.

  • Unique effect (gijg_{ij}): The component of the iji \to j tie that cannot be explained by ii’s general sending tendency or jj’s general receiving tendency. This captures relationship-specific dynamics.

Estimation

Effect Estimates

The SRM effects are estimated using the following formulas. Let:

  • Xi=1n1jiXijX_{i \cdot} = \frac{1}{n-1} \sum_{j \neq i} X_{ij} (row mean for actor ii)
  • Xj=1n1ijXijX_{\cdot j} = \frac{1}{n-1} \sum_{i \neq j} X_{ij} (column mean for actor jj)
  • X=1n(n1)ijXij\bar{X} = \frac{1}{n(n-1)} \sum_{i \neq j} X_{ij} (grand mean)

The estimated actor effect is:

âi=(n1)2n(n2)Xi+n1n(n2)Xin1n2X\hat{a}_i = \frac{(n-1)^2}{n(n-2)} X_{i \cdot} + \frac{n-1}{n(n-2)} X_{\cdot i} - \frac{n-1}{n-2} \bar{X}

The estimated partner effect is:

b̂j=(n1)2n(n2)Xj+n1n(n2)Xjn1n2X\hat{b}_j = \frac{(n-1)^2}{n(n-2)} X_{\cdot j} + \frac{n-1}{n(n-2)} X_{j \cdot} - \frac{n-1}{n-2} \bar{X}

The estimated unique effect is simply the residual:

ĝij=Xijâib̂jX\hat{g}_{ij} = X_{ij} - \hat{a}_i - \hat{b}_j - \bar{X}

Note that these formulas include a correction for the finite-sample bias that arises because row and column means are not independent.

Variance Components

The SRM framework also estimates variance components that summarize the importance of each level of the decomposition.

Unique variance (σg2\sigma^2_g) and relationship covariance (σgg\sigma_{gg'}) are estimated from the unique effects:

q1=ij(ĝij+ĝji2)2,q2=12ij(ĝijĝji)2q_1 = \sum_{i \neq j} \left(\frac{\hat{g}_{ij} + \hat{g}_{ji}}{2}\right)^2, \quad q_2 = \frac{1}{2}\sum_{i \neq j} \left(\hat{g}_{ij} - \hat{g}_{ji}\right)^2

σ̂g2=12(q1d5+q2d4),σ̂gg=12(q1d5q2d4)\hat{\sigma}^2_g = \frac{1}{2}\left(\frac{q_1}{d_5} + \frac{q_2}{d_4}\right), \quad \hat{\sigma}_{gg'} = \frac{1}{2}\left(\frac{q_1}{d_5} - \frac{q_2}{d_4}\right)

where d4=(n1)(n2)d_4 = (n-1)(n-2) and d5=(n1)(n2)/21d_5 = (n-1)(n-2)/2 - 1.

Actor variance (σa2\sigma^2_a):

σ̂a2=iâi2n1σ̂g2(n1)n(n2)σ̂ggn(n2)\hat{\sigma}^2_a = \frac{\sum_i \hat{a}_i^2}{n-1} - \frac{\hat{\sigma}^2_g (n-1)}{n(n-2)} - \frac{\hat{\sigma}_{gg'}}{n(n-2)}

Partner variance (σb2\sigma^2_b):

σ̂b2=jb̂j2n1σ̂g2(n1)n(n2)σ̂ggn(n2)\hat{\sigma}^2_b = \frac{\sum_j \hat{b}_j^2}{n-1} - \frac{\hat{\sigma}^2_g (n-1)}{n(n-2)} - \frac{\hat{\sigma}_{gg'}}{n(n-2)}

Actor-partner covariance (σab\sigma_{ab}):

σ̂ab=iâib̂in1σ̂gg(n1)n(n2)σ̂g2n(n2)\hat{\sigma}_{ab} = \frac{\sum_i \hat{a}_i \hat{b}_i}{n-1} - \frac{\hat{\sigma}_{gg'} (n-1)}{n(n-2)} - \frac{\hat{\sigma}^2_g}{n(n-2)}

Variance Partition

A key summary of the SRM is the variance partition, which expresses the proportion of total network variation attributable to each component:

%Actor=σ̂a2σ̂a2+σ̂b2+σ̂g2×100\text{\% Actor} = \frac{\hat{\sigma}^2_a}{\hat{\sigma}^2_a + \hat{\sigma}^2_b + \hat{\sigma}^2_g} \times 100

This tells us whether network structure is primarily driven by differences in sending behavior (actor effects), receiving behavior (partner effects), or relationship-specific factors (unique effects).

Negative variance estimates

Because the SRM uses method-of-moments estimation, variance component estimates are not constrained to be non-negative. With small networks (roughly n<15n < 15), sampling variability can produce negative estimates for σ̂a2\hat{\sigma}^2_a or σ̂b2\hat{\sigma}^2_b. A negative estimate does not mean the true variance is negative — it means the data do not contain enough information to estimate that component reliably. When computing variance partitions, negative estimates are clipped to zero before calculating percentages.

Negative estimates are most common when one component dominates (e.g., nearly all variation is dyadic) and the network is small. With larger networks, the estimators stabilize and negative values become rare. If you encounter negative variance estimates, treat the decomposition as exploratory rather than definitive.

Example

We illustrate with the classroom dataset, a 12-student directed friendship network at North Shore High (inspired by Mean Girls) where students rate each other. The data is designed to reflect the movie’s social dynamics: Regina is the Queen Bee (most popular but stingiest rater), Damian is the warmest friend, and Gretchen is liked least despite being a Plastic. Because the network is directed, senders and receivers can have different roles.

library(srm)
data(classroom)

fit = srm(classroom)
summary(fit)
Social Relations Model - Variance Decomposition
================================================== 

Component                Variance  % Total
------------------------------------------ 
Actor                      1.4000    42.3%
Partner                    0.8539    25.8%
Unique                     1.0546    31.9%
Relationship (cov)         0.6885       --
Actor-Partner (cov)       -0.2525       --

Actor effects account for 42% of the variation (students differ in how generously they rate), partner effects for 26% (some students are rated higher by everyone), and unique dyadic effects for 32% (specific pairwise relationships). The dominance of actor variance reflects the wide range of sender tendencies at North Shore High — from Damian’s warmth to Regina’s selectivity. The positive relationship covariance (0.69) indicates reciprocity: when one student rates another highly, the favor tends to be returned. The negative actor-partner covariance (-0.25) captures the Queen Bee dynamic: generous raters are not the most popular, and the most popular student (Regina) rates others the lowest.

plot(fit, type = "variance")

The variance partition plot shows that sender tendencies are the largest source of variation, consistent with the strong personality differences in the movie. Receiver popularity and relationship-specific effects each contribute about a quarter to a third of the total.

plot(fit, type = "actor", n = 8)

The actor effect plot reveals which students deviate most from the network average. Damian (+2.36) is the warmest rater, followed by Karen (+1.05) and Cady (+1.01). Regina (-2.64) rates others far below average, followed by Shane (-0.89). Because this is a directed network, these actor effects are distinct from the partner effects, which capture who receives the most.

Permutation Inference

Because the sampling distributions of SRM variance components are not straightforward, the srm package provides permutation-based inference via permute_srm(). The procedure:

  1. Compute the observed variance components from the original matrix.
  2. Repeatedly permute rows and columns of the matrix independently, destroying actor/partner structure while preserving the marginal distribution.
  3. Recompute variance components on each permuted matrix.
  4. Compare observed values to the null distribution to obtain p-values.
pt = permute_srm(classroom, n_perms = 500, seed = 6886)
print(pt)
SRM Permutation Test
Permutations: 500
-------------------------------------------------- 
Component                Observed Mean(Null)      p
-------------------------------------------------- 
Actor Var                  1.4000     1.1212  0.034 *
Partner Var                0.8539     0.6576  0.046 *
Unique Var                 1.0546     2.2189  1.000 
Relationship Cov           0.6885    -0.0048  0.018 *
Actor-Partner Cov         -0.2525     0.0315  0.806 
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1

The permutation test confirms that actor variance and partner variance are both significantly larger than expected under random relabeling (p<0.05p < 0.05). The relationship covariance is also significant (p<0.05p < 0.05), confirming genuine reciprocity in the friendship ratings. The unique variance is not significant against the null (p=1.0p = 1.0) because permutation preserves overall variability but destroys structure. The actor-partner covariance is not significant (p>0.8p > 0.8), meaning the Queen Bee pattern is not strong enough to rule out chance at this sample size.

Bipartite Extension

For two-mode (bipartite) networks where senders and receivers are from different populations (e.g., countries sending aid to organizations), the decomposition simplifies because there are no self-ties and no reciprocity structure:

Xij=μ+ai+bj+gijX_{ij} = \mu + a_i + b_j + g_{ij}

Effects are estimated as simple deviations from the grand mean: âi=XiX\hat{a}_i = \bar{X}_{i\cdot} - \bar{X} and b̂j=XjX\hat{b}_j = \bar{X}_{\cdot j} - \bar{X}. Because row and column actors are distinct populations, the bias corrections on the effect estimates themselves (needed in the unipartite case) do not apply. However, the variance components are bias-corrected using two-way ANOVA degrees of freedom: σ̂g2=SSresid/[(nr1)(nc1)]\hat{\sigma}^2_g = \text{SS}_{\text{resid}} / [(n_r - 1)(n_c - 1)], with actor and partner variances adjusted for the noise contribution (σ̂a2=Var(â)σ̂g2/nc\hat{\sigma}^2_a = \text{Var}(\hat{a}) - \hat{\sigma}^2_g / n_c, and similarly for partners). Only actor variance, partner variance, and unique variance are computed; covariance components (reciprocity, actor-partner) are not defined when senders and receivers come from different sets.

Longitudinal Analysis

When network data is observed over multiple time periods, the srm package fits the SRM separately for each period and provides tools for tracking how effects evolve:

  • srm_trends(): Extracts effects over time as a tidy data frame.
  • srm_trend_plot(): Visualizes temporal trajectories.
  • srm_stability(): Computes correlations between consecutive time points to assess rank-order stability.
data(trade_net)
fit_long = srm(trade_net)
srm_stability(fit_long, type = "actor")
  time1 time2 correlation  n
1  2015  2017  0.08276307 10
2  2017  2019  0.20194660 10

The low correlations between consecutive periods (0.08 and 0.20) indicate that countries’ relative sending positions shift substantially across time. Unlike the ATOP data where the network is mostly static, the simulated trade data has independently generated effects at each period, so low stability is expected.

References

Dorff, Cassy, and Michael D. Ward. (2013). Networks, Dyads, and the Social Relations Model. Political Science Research Methods 1(2):159-178.

Dorff, Cassy, and Shahryar Minhas. (2017). When Do States Say Uncle? Network Dependence and Sanction Compliance. International Interactions 43(4):563-588.

Kenny, David A., and Lawrence La Voie. (1984). The Social Relations Model. Advances in Experimental Social Psychology 18:141-182.

Warner, Rebecca M., David A. Kenny, and Michael Stoto. (1979). A New Round Robin Analysis of Variance for Social Interaction Data. Journal of Personality and Social Psychology 37:1742-1757.