# Day 13: Causal Inference on Networks

- Show All Code
- Hide All Code

- View Source

From Spillovers to Identified Causal Contrasts

Author

Shahryar Minhas

Published

July 30, 2026

NoteHow to Use This Walkthrough

Open the Day 13 teaching deck.

The deck gives the full plain-language route through the session, including the questions, intuition, numerical results, and conclusions that can be read directly from the slides. Each deck link opens the matching section here. This walkthrough then goes further into the notation, derivations, code, formal assumptions, and sensitivity questions so you can revisit the technical reasoning afterward. The rendered results are already in the document. Nothing needs to be fitted during class.

The Nickerson household experiment and the Ichino-Schündeln Ghana experiment use released data included with the download. The Paluck school-network and Egami-Tchetgen Tchetgen sections reconstruct the published result tables because their student-level data are restricted. Those sections say exactly when a number is a published estimate rather than a new reanalysis.

The only packages needed for the included analyses are on CRAN:

    install.packages(c("ggplot2", "lmtest", "sandwich"))

NoteDay 13 Route

Part | What We Do
--- | ---
Begin with the identification problem | Treat the basic causal refresher as known and identify this session’s new questions
Nickerson (2008) | Calculate direct and within-household spillover effects from released data
From two people to a network | Define exposure mappings, estimands, support, and design probabilities
Aronow and Samii (2017) | Work through the five exposure conditions in the Paluck school experiment
Ichino and Schündeln (2012) | Reproduce a published strategic-displacement result from the Ghana data
Egami and Tchetgen Tchetgen (2024) | See what an observational peer-effect argument must add
Claim ladder | Match the language in the paper to what the design and estimator actually support

# 1 Where This Lecture Begins

We already have the foundation: causal claims compare potential outcomes; selection and influence are different processes; interference violates the usual no-spillover part of SUTVA; and experiments, natural experiments, and simulations buy different kinds of leverage. We do not need to repeat that material here.

We begin one step later. For a study in which treatment can travel through relationships, we need to answer four precise questions:

1. Whose assignment can affect this unit’s outcome?
2. Which potential outcomes are we comparing?
3. Does the assignment design give units a positive chance of reaching both conditions?
4. How does the estimator use the design probabilities to recover that contrast?

The difference is important. Saying that SUTVA may fail identifies a problem. Defining exposure conditions and estimating a declared contrast is the analysis.

## 1.1 Four Published Applications, Four Different Lessons

Application | Question | Identification Strategy | Main Lesson
--- | --- | --- | ---
Nickerson (2008) | Does a voter-mobilization message delivered to one household member affect the other member’s turnout? | Randomized voting script versus recycling script, followed by a contact-conditioned comparison | A simple spillover calculation can still require care about post-assignment selection
Paluck, Shepherd, and Aronow (2016), analyzed by Aronow and Samii (2017) | Does an anti-conflict program affect students assigned directly, their peers, and the wider school? | School-level and student-level randomization plus a pretreatment friendship network | A general network requires explicit exposure conditions and unit-specific probabilities
Ichino and Schündeln (2012) | Do election observers deter questionable registrations or move them nearby? | Two-stage randomized deployment across Ghanaian constituencies and electoral areas | Interference can be strategic displacement rather than social influence
Egami and Tchetgen Tchetgen (2024) | Does friends’ earlier academic performance affect a student’s later performance? | Observational negative-control identification strategy | Dependence adjustment alone does not solve network confounding

ImportantThe Organizing Question

For every application, start with the action we want to understand, then identify the units, assignment, network exposure, outcome, and causal contrast. The estimator comes after those choices.

# 2 Published Application 1: Does Voting Mobilization Spill Across a Household?

Nickerson (2008) asks a clean question: if a canvasser gives one member of a two-registered-voter household a get-out-the-vote message, does the other household member become more likely to vote?

This is a useful first case because the network is deliberately simple. Each household contains two registered voters. The canvasser speaks to the person who answers the door. The other person’s turnout is then an outcome for someone who did not receive the message directly but was connected to the person who did.

## 2.1 What Was Randomized?

Households were assigned to a voting message, a recycling message used as a placebo, or no canvassing attempt. The published spillover comparison focuses on successfully contacted households assigned to the voting or recycling scripts. Successful contact is observed after assignment, so restricting the calculation to contacted households is not automatically protected by randomization.

Person | What They Experience | Outcome Used
--- | --- | ---
Person who answers the door | Voting message or recycling message | Administrative turnout record
Other registered voter in the household | No direct canvassing message, but possible within-household transmission | Administrative turnout record

The direct contrast compares turnout among the people who answered the door. The spillover contrast compares turnout among their household partners. The recycling group supplies a comparable baseline within the contacted sample if successful contact was not affected by script assignment, or more generally if the voting-message and recycling households that were contacted remain comparable. That contact-selection condition is separate from the original randomization.

The released dataset comes from the `inferference` package and contains 7,722 voter records in 3,861 two-voter households. We load the data directly rather than requiring the package and its heavier estimation dependencies.

    load("voters.rdata")
    stopifnot(nrow(voters) == 7722, length(unique(voters$family)) == 3861)

    voters$family_key <- interaction(voters$city, voters$family, drop = TRUE)
    reached_in_household <- ave(voters$reached, voters$family_key, FUN = sum)

    nickerson <- subset(
      voters,
      treatment %in% c(1, 2) &
        hsecontact == 1 &
        reached_in_household <= 1
    )
    nickerson$gotv <- as.integer(nickerson$treatment == 1)
    nickerson$message <- factor(
      nickerson$gotv,
      levels = c(0, 1),
      labels = c("Recycling message", "Voting message")
    )

    c(
      voter_records = nrow(nickerson),
      contacted_households = length(unique(nickerson$family_key)),
      cities = length(unique(nickerson$city))
    )

    #>        voter_records contacted_households               cities
    #>                 1908                  954                    2

The package extract contains 955 successfully contacted voting-message or recycling households. The original package analysis removes one household with an ambiguous record in which more than one person is marked as reached, leaving 954 households for the calculation below. The paper reports 956 contacted households. This released-data reanalysis yields 9.7 and 5.9 percentage points, close to the paper’s pooled 9.8 and 6.0.

## 2.2 Estimate the Direct and Spillover Contrasts

We fit a linear probability model separately for the person reached and the other household member:

\[ Y_{ih}=\alpha+\tau Z_h+\lambda\,\text{Minneapolis}_h+\varepsilon_{ih}, \]

where \(Z_h=1\) means household \(h\) received the voting message, \(Y_{ih}\) records whether person \(i\) voted, and \(\tau\) is the city-adjusted difference from the recycling script. For the answerer, \(\tau\) is the direct message contrast. For the partner, \(\tau\) is the within-household spillover contrast.

    direct_data <- subset(nickerson, reached == 1)
    spillover_data <- subset(nickerson, other == 1)

    fit_direct <- lm(voted02p ~ gotv + city, data = direct_data)
    fit_spillover <- lm(voted02p ~ gotv + city, data = spillover_data)

    extract_gotv <- function(fit, label) {
      robust <- lmtest::coeftest(
        fit,
        vcov. = sandwich::vcovHC(fit, type = "HC2")
      )
      estimate <- unname(coef(fit)["gotv"])
      se <- unname(robust["gotv", "Std. Error"])
      data.frame(
        contrast = label,
        estimate = estimate,
        conf.low = estimate - 1.96 * se,
        conf.high = estimate + 1.96 * se
      )
    }

    nickerson_effects <- rbind(
      extract_gotv(fit_direct, "Person who heard the message"),
      extract_gotv(fit_spillover, "Other household member")
    )

    transform(
      nickerson_effects,
      estimate_pp = round(100 * estimate, 1),
      interval_pp = sprintf("[%.1f, %.1f]", 100 * conf.low, 100 * conf.high)
    )[, c("contrast", "estimate_pp", "interval_pp")]

contrast | estimate_pp | interval_pp
--- | --- | ---
Person who heard the message | 9.7 | [3.8, 15.5]
Other household member | 5.9 | [0.2, 11.7]

    ggplot(
      nickerson_effects,
      aes(x = estimate, y = reorder(contrast, estimate))
    ) +
      geom_vline(xintercept = 0, color = "grey70", linewidth = 0.7) +
      geom_errorbarh(
        aes(xmin = conf.low, xmax = conf.high),
        height = 0.12,
        color = msu_green,
        linewidth = 0.9
      ) +
      geom_point(size = 3.5, color = msu_kelly) +
      scale_x_continuous(
        labels = function(x) paste0(round(100 * x), " pp"),
        limits = c(-0.02, 0.18)
      ) +
      labs(
        x = "Increase in turnout relative to the recycling script",
        y = NULL,
        title = "Turnout Was Higher Under the Voting Message",
        subtitle = "Contacted-household estimates with robust 95% intervals"
      )

City-adjusted turnout differences within successfully contacted households. The first row compares the person who answered the door under the voting and recycling scripts. The second makes the same comparison for the other registered voter. Contact-conditional causal interpretation requires the contact-selection condition discussed above.

Within the successfully contacted sample, turnout was about 9.7 percentage points higher among the people assigned the voting script than among those assigned the recycling script. Turnout among the other registered voter was about 5.9 percentage points higher under the voting rather than recycling assignment. The two city-specific partner differences in the published paper were 5.5 percentage points in Denver and 6.4 percentage points in Minneapolis, so the same pattern appeared in both field experiments. Interpreting these voting-versus-recycling differences as contact-conditional causal effects requires the contact-selection condition stated above.

The partner increase is about 62% as large as the direct increase. That is what the paper means when it says roughly 60% of the mobilization carried across the household. It does not mean turnout rose by 60 percentage points.

CautionWhat This Result Does and Does Not Establish

If successful contact was unaffected by script assignment, assigning the voting rather than recycling script raised partner turnout among successfully contacted two-voter households. The voting-versus-recycling contrast does not require us to assume that recycling was behaviorally inert. That extra assumption is needed only if we want to reinterpret the estimate as voting mobilization relative to receiving no turnout-relevant message. The experiment also does not identify the effect of the answerer’s realized vote on the partner’s realized vote. That mediated claim would require a well-defined intervention on the answerer’s voting, credible temporal ordering, no unmeasured mediator-outcome confounding, and an exclusion argument for any direct message effect on the partner. An instrumental-variable interpretation would additionally require relevance, exclusion, monotonicity, and a clearly defined complier effect. Cross-household spillovers must also be negligible for the household contrast.

# 3 From One Household Tie to a General Network

Nickerson’s design is manageable because each focal person has one household partner. A school, village, organization, or international system creates many possible routes of exposure. The notation has to expand with the question.

Without interference, we write two potential outcomes for unit \(i\):

\[ Y_i(1),\qquad Y_i(0). \]

With interference, the outcome can depend on the full assignment vector \(\mathbf{z}=(z_1,\ldots,z_N)\):

\[ Y_i(\mathbf{z}). \]

That expression is mathematically complete but not yet usable. With \(N\) units under binary assignment, it allows as many as \(2^N\) potential outcomes per unit. An exposure mapping reduces the full assignment vector to the parts the substantive process says matter:

\[ D_i=f_i(\mathbf{z},G), \]

where \(G\) is the measured network and \(D_i\) is unit \(i\)’s exposure condition.

Writing \(Y_i(d)\) requires an additional consistency claim: whenever two assignment vectors give unit \(i\) the same mapped exposure \(d\), they give that unit the same potential outcome. Formally, if \(f_i(\mathbf z,G)=f_i(\mathbf z',G)=d\), then \(Y_i(\mathbf z)=Y_i(\mathbf z')=Y_i(d)\). The observed outcome is then \(Y_i=Y_i(D_i)\). Randomization does not make this mapping correct. The mapping has to capture the versions of treatment and spillover that matter for the outcome.

## 3.1 The Exposure Mapping Is Part of the Theory

Suppose \(G_{ij}=1\) means that \(i\) is connected to \(j\). Several plausible mappings answer different questions:

\[ E_i^{\text{any}}(\mathbf{z},G) = \mathbb{1}\left(\sum_jG_{ij}z_j>0\right), \]

\[ E_i^{\text{count}}(\mathbf{z},G) = \sum_jG_{ij}z_j, \]

\[ E_i^{\text{share}}(\mathbf{z},G) = \frac{\sum_jG_{ij}z_j}{\sum_jG_{ij}}. \]

The first says one treated connection is enough. The second says each additional treated connection matters. The third says exposure depends on the share of a unit’s connections that are treated and is defined as written only for units with degree greater than zero. Isolates need a separate convention. None of these mappings is automatically correct. Each makes a claim about how the intervention travels.

An exposure mapping can also distinguish which neighbors matter. In a campaign study, a household member, close friend, and casual acquaintance may not carry the same message. In an election-monitoring study, a nearby observed polling place may matter more than one 40 kilometers away.

## 3.2 Name the Causal Contrast Before Estimating It

Once conditions are defined and the exposure-consistency claim is credible, the causal estimand is a contrast between their average potential outcomes:

\[ \tau(d,d') = \frac{1}{N}\sum_{i=1}^{N}\left\{Y_i(d)-Y_i(d')\right\}. \]

Common contrasts include:

- Direct effect: Change a unit’s own treatment while holding its network exposure fixed.
- Spillover effect: Change network exposure while holding the unit’s own treatment fixed.
- Total effect: Compare a treated-and-exposed condition with an untreated-and-unexposed condition.

These exposure-condition contrasts are different questions. A design can identify one well and provide almost no information about another.

A policy effect is related but not generally the same kind of \(d\)-versus-\(d'\) contrast. It compares average outcomes under two rules for allocating treatment across the network, such as treating 10% versus 30% of eligible units. Each rule can generate a mixture of exposure conditions, so the policy estimand averages over the assignments and exposures generated by that rule.

## 3.3 How Horvitz-Thompson Estimation Works

Under a known randomization and a correctly specified exposure mapping, let

\[ \pi_i(d)=\Pr\{D_i=d\} \]

be unit \(i\)’s probability of reaching exposure condition \(d\). The Horvitz-Thompson estimator for the average outcome under that condition is

\[ \widehat{\mu}_{HT}(d) = \frac{1}{N}\sum_{i=1}^{N} \frac{\mathbb{1}(D_i=d)Y_i}{\pi_i(d)}. \]

Read the estimator from the inside out:

1. \(\mathbb{1}(D_i=d)\) keeps the observed outcome only when unit \(i\) actually reached condition \(d\).
2. Dividing by \(\pi_i(d)\) gives more weight to a unit that had a smaller chance of reaching that condition.
3. Summing and dividing by \(N\) returns the result to the target population scale.
4. Subtracting \(\widehat{\mu}_{HT}(d')\) from \(\widehat{\mu}_{HT}(d)\) estimates the declared contrast \(\tau(d,d')\).

The probabilities are often unit-specific. A student with ten eligible friends has a different chance of having at least one treated friend than a student with one eligible friend. The network and assignment design jointly determine those probabilities.

### 3.3.1 Why Joint Exposure Probabilities Enter the Variance

For uncertainty, the calculation also needs joint exposure probabilities,

\[ \pi_{ij}(d,d')=\Pr(D_i=d,D_j=d'), \]

because shared neighbors, fixed treatment totals, and other features of the design can make two units’ exposure conditions dependent. Joint probabilities are therefore required for design-based variance calculations, so independent-observation standard errors are generally not justified even when treatment itself was randomized. For a contrast between two exposure means, some covariance terms involve potential outcomes that are never jointly observed. Aronow and Samii therefore use a conservative design-based variance estimator rather than claiming that the exact randomization variance is identified.

NoteHorvitz-Thompson and Hájek in One Paragraph

The Horvitz-Thompson estimator divides by known exposure probabilities and is design-unbiased for the corresponding finite-population mean when the exposure mapping is correctly specified, observed outcomes are consistent with mapped exposure, and the declared randomization design is followed. The Hájek estimator divides the weighted outcome total by the realized sum of weights. That ratio often behaves more stably when exposure probabilities vary sharply, although it is not exactly unbiased in finite samples. Aronow and Samii report both, along with a covariate-adjusted weighted least-squares estimate, so we can see whether the substantive result depends on that choice.

## 3.4 Positivity Is About Exposure Conditions

For unit \(i\) to contribute to a contrast between \(d\) and \(d'\), the design must give it a positive probability of both:

\[ \pi_i(d)>0 \qquad\text{and}\qquad \pi_i(d')>0. \]

An isolate can never have a treated friend. A student who was not eligible for the program can never be directly treated. No amount of weighting can recover a potential outcome under a condition the design makes impossible.

ImportantRandomization Does Not Choose the Exposure Mapping

Randomization supplies known assignment probabilities. It does not prove that only first-degree friends matter, that the measured graph is correct, or that one treated friend is equivalent to five. Those remain substantive and measurement assumptions.

# 4 Published Application 2: Anti-Conflict Messages in School Networks

Paluck, Shepherd, and Aronow (2016) studied whether a student-led program could change visible anti-conflict norms in 56 New Jersey middle schools. Aronow and Samii (2017) use that experiment to show how exposure mappings and design probabilities work in a general social network.

The question is no longer simply whether a student assigned to the program changes. We also want to know whether a student responds when a friend is assigned and whether merely attending a program school changes behavior.

## 4.1 The Two-Stage Design

The assignment happened at two levels:

1. The researchers block-randomized 28 of 56 schools to host the program.
2. A deterministic, nonrandom algorithm selected 40 to 64 seed-eligible students in each school before treatment assignment.
3. Within program schools, half of the eligible students were block-randomized to receive an invitation to join the program. Twenty-four percent of assigned seed students did not accept, so the intention-to-treat analysis classifies students and peers by randomized assignment rather than actual participation.

Before randomization, students could nominate up to ten schoolmates with whom they had chosen to spend time. The analysis symmetrized those nominations, so two students counted as peers if either nominated the other. Measuring the network before treatment matters because a network measured afterward could itself have changed in response to the program.

The outcome in the Aronow-Samii analysis is whether a student reported wearing the program wristband, a visible expression of support for the anti-conflict campaign. It is not a direct measure of conflict reduction.

This is an exposure-construction schematic rather than a complete causal DAG. It shows how the randomized assignments and the pretreatment network create the conditions being compared. It does not claim that the network is a causal mediator or that a peer’s actual participation is the treatment.

## 4.2 Turn the Design Into Five Exposure Conditions

Let \(s_i\) indicate whether student \(i\) attends a program school, \(z_i\) indicate whether the student was assigned to the program, and

\[ q_i(\mathbf{z},G) = \mathbb{1}\left(\sum_jG_{ij}z_j>0\right) \]

indicate whether at least one peer was assigned to the program. Aronow and Samii order the three positions in \(d_{zqs}\) as own assignment, peer-assignment exposure, and program-school assignment:

Condition | Own Assignment | At Least One Peer Assigned | Program School | What the Student Experiences
--- | --- | --- | --- | ---
\(d_{000}\) | No | No | No | No program exposure
\(d_{001}\) | No | No | Yes | Program-school context only
\(d_{011}\) | No | Yes | Yes | Not assigned, with at least one peer assigned
\(d_{101}\) | Yes | No | Yes | Assigned, with no peer assigned
\(d_{111}\) | Yes | Yes | Yes | Assigned, with at least one peer assigned

The labels record direct, indirect, and school-level exposure. They do not rank students from low to high treatment dose. They name qualitatively different conditions created by the two-stage design and the friendship network.

Only eligible students had positive probability of all five relevant conditions. Aronow and Samii therefore target 2,050 eligible students with the required support. This is not a nuisance deletion. It defines the population for which the full set of contrasts is identified by the design.

## 4.3 Reconstruct the Published Horvitz-Thompson Results

The student-level data are restricted, so the next chunk records the published Horvitz-Thompson estimates from Aronow and Samii (2017). Each estimate compares an exposure condition with \(d_{000}\), the no-program condition.

    paluck_ht <- data.frame(
      condition = factor(
        c("Program school only", "Not assigned; peer assigned",
          "Assigned; no peer assigned", "Assigned; peer assigned"),
        levels = rev(c(
          "Program school only", "Not assigned; peer assigned",
          "Assigned; no peer assigned", "Assigned; peer assigned"
        ))
      ),
      code = c("d001", "d011", "d101", "d111"),
      estimate = c(0.057, 0.154, 0.305, 0.299),
      se = c(0.062, 0.029, 0.141, 0.020),
      conf.low = c(-0.065, 0.097, 0.029, 0.260),
      conf.high = c(0.179, 0.211, 0.581, 0.338)
    )

    transform(
      paluck_ht,
      estimate_pp = round(100 * estimate, 1),
      interval_pp = sprintf("[%.1f, %.1f]", 100 * conf.low, 100 * conf.high)
    )[, c("code", "condition", "estimate_pp", "interval_pp")]

code | condition | estimate_pp | interval_pp
--- | --- | --- | ---
d001 | Program school only | 5.7 | [-6.5, 17.9]
d011 | Not assigned; peer assigned | 15.4 | [9.7, 21.1]
d101 | Assigned; no peer assigned | 30.5 | [2.9, 58.1]
d111 | Assigned; peer assigned | 29.9 | [26.0, 33.8]

    ggplot(paluck_ht, aes(x = estimate, y = condition)) +
      geom_vline(xintercept = 0, color = "grey70", linewidth = 0.7) +
      geom_errorbarh(
        aes(xmin = conf.low, xmax = conf.high),
        height = 0.12,
        color = msu_green,
        linewidth = 0.9
      ) +
      geom_point(size = 3.5, color = msu_kelly) +
      scale_x_continuous(
        labels = function(x) paste0(round(100 * x), " pp"),
        limits = c(-0.10, 0.62)
      ) +
      labs(
        x = "Change in reported wristband wearing relative to no program exposure",
        y = NULL,
        title = "Published Wristband-Reporting Contrasts",
        subtitle = "Published design-based estimates with 95% intervals"
      )

Published Horvitz-Thompson estimates from Aronow and Samii (2017). Every point compares the named assignment-exposure condition with eligible students in control schools.

The program-school context without direct or peer-assignment exposure is estimated to raise reported wristband wearing by 5.7 percentage points, but the interval is wide and crosses zero. An eligible student who was not assigned but had at least one peer assigned is estimated to be 15.4 percentage points more likely to report wearing the wristband than an eligible student in a control school. Assignment to the program is associated with an increase of about 30 percentage points, whether or not the student also had a peer assigned.

## 4.4 Make the Comparison Match the Sentence

The 15.4-point \(d_{011}-d_{000}\) contrast is often described as indirect exposure, but it changes two things at once: the student moves from a control school into a program school and gains a peer assigned to the program. It is not a peer-assignment effect holding school context fixed.

The point contrast that holds program-school context fixed is

\[ \widehat{\mu}(d_{011})-\widehat{\mu}(d_{001}) = 0.154-0.057 = 0.097. \]

That is a 9.7-point difference between having and not having a peer assigned among students who were themselves not assigned in program schools. We cannot construct its confidence interval by subtracting the two published standard errors because the estimates are correlated. We would need their estimated covariance.

Similarly,

\[ \widehat{\mu}(d_{111})-\widehat{\mu}(d_{011}) = 0.299-0.154 = 0.145 \]

is the point difference associated with the student’s own assignment among students who have a peer assigned. Again, the point contrast is easy to calculate, while valid uncertainty requires the covariance.

TipA Clear Substantive Summary

Students assigned to the program were much more likely to report wearing the program wristband. Students who were not assigned but had at least one peer assigned also reported wearing it more often than students with no program exposure. Under the published exposure mapping, wristband reporting was therefore higher beyond the students assigned directly. The design identifies contrasts between assignment-exposure conditions. It does not by itself establish the behavioral route through which peers mattered.

## 4.5 What If the Mapping Is Wrong?

The published mapping treats these students as equally exposed:

- A student with one peer assigned to the program and a student with six assigned peers
- A student connected to a highly visible assigned peer and a student connected to someone rarely nominated by others
- A student whose assigned peer named them and a student who named the assigned peer

That simplification may be reasonable for a first analysis, but it is not innocuous. Alternatives could use the number or share of peers assigned to the program, distinguish social referents, preserve tie direction, or define exposure through best-friend rather than spent-time nominations. Each alternative changes the estimand, the support, and the assignment probabilities.

NoteData and Replication Access

The public-use study deposit is ICPSR Study 37070. The original replication code is archived at Harvard Dataverse. The student-level data used in the published network analysis are subject to disclosure and IRB restrictions, so they are not redistributed in this course download. The rendered table and figure above reproduce the published Aronow-Samii result table exactly.

Pause and reset We have moved from one household tie to a full exposure mapping. The next case changes the mechanism: actors respond strategically by moving activity away from monitored locations.

# 5 Published Application 3: Do Election Observers Deter or Displace Irregularities?

Ichino and Schündeln (2012) study Ghana’s 2008 voter-registration period. Domestic observers were deployed to discourage questionable registration practices. The central question is whether observers reduced unusual registration growth or merely pushed it into nearby electoral areas that were not assigned an observer.

This is interference without a peer-influence story. Political party agents could communicate, move people, and redirect activity. Treatment at one electoral area could therefore change outcomes at another.

## 5.1 The Two-Stage Randomization

The experiment covered 868 electoral areas in 39 constituencies across four regions:

1. Within each of the four regions, constituencies were grouped into blocks using the previous NPP-NDC vote-share difference.
2. Within each block, one constituency was assigned to treatment and two to control, producing 13 treatment and 26 control constituencies.
3. Within treated constituencies, roughly 25% of electoral areas were randomly assigned to receive an observer visit. The analysis follows that assignment rather than conditioning on realized observer activity.

The outcome is the proportional change in registered voters from 2004 to 2008. The exposure specification includes the focal area’s own observer assignment, whether its constituency received any observers, the number of observer-assigned areas within 5 kilometers, and the number between 5 and 10 kilometers.

This is a spatial assignment and exposure schematic. It shows which randomized conditions enter the fitted comparison. It does not prove that deterrence or displacement produced the pattern.

The released data are included with this walkthrough:

    ghana <- read.delim(
      "ghana_observers.tab",
      stringsAsFactors = FALSE,
      check.names = FALSE
    )

    stopifnot(
      nrow(ghana) == 868,
      length(unique(ghana$constituencyname06)) == 39
    )

    c(
      electoral_areas = nrow(ghana),
      constituencies = length(unique(ghana$constituencyname06)),
      treatment_constituencies = length(unique(
        ghana$constituencyname06[ghana$Tcon == 1]
      )),
      areas_assigned_observer = sum(ghana$Tela)
    )

    #>          electoral_areas           constituencies treatment_constituencies
    #>                      868                       39                       13
    #>  areas_assigned_observer
    #>                       77

## 5.2 What the Published Model Estimates

The main specification can be written as

\[ \begin{aligned} Y_{ij} =\;& \beta_0 +\beta_1T_{ij} +\beta_2T_i^C +\beta_3N_{ij}^{0-5} +\beta_4N_{ij}^{5-10}\\ &+\beta_5T_{ij}N_{ij}^{0-5} +\beta_6T_{ij}N_{ij}^{5-10} +\text{local-density terms} +\text{block fixed effects} +\varepsilon_{ij}, \end{aligned} \]

where:

- \(Y_{ij}\) is registration growth in electoral area \(j\) of constituency \(i\).
- \(T_{ij}\) indicates that the focal electoral area was assigned an observer.
- \(T_i^C\) indicates that the constituency was assigned to the observer program.
- \(N_{ij}^{0-5}\) counts assigned observer areas within 5 kilometers.
- \(N_{ij}^{5-10}\) counts assigned observer areas between 5 and 10 kilometers.
- The local-density terms distinguish treatment exposure from simply being in a place with many nearby electoral areas.
- Block fixed effects respect the first-stage randomization.

The coefficients are estimated by OLS. The uncertainty calculation allows residuals from electoral areas in the same constituency to move together.

    ghana_fit <- lm(
      percchangeregELA0804 ~
        Tcon + Tela +
        assignedTin5C + assignedTin0510C +
        Tela:assignedTin5C + Tela:assignedTin0510C +
        totalELAin5C + totalELAin0510C +
        Tela:totalELAin5C + Tela:totalELAin0510C +
        factor(block),
      data = ghana
    )

    ghana_vcov <- sandwich::vcovCL(
      ghana_fit,
      cluster = ghana$constituencyname06,
      type = "HC1",
      cadjust = TRUE
    )
    ghana_coefs <- lmtest::coeftest(ghana_fit, vcov. = ghana_vcov)

    key_terms <- c("Tcon", "Tela", "assignedTin5C", "assignedTin0510C")
    data.frame(
      term = key_terms,
      estimate = round(ghana_coefs[key_terms, "Estimate"], 3),
      cluster_se = round(ghana_coefs[key_terms, "Std. Error"], 3)
    )

| term | estimate | cluster_se
--- | --- | --- | ---
Tcon | Tcon | -0.041 | 0.023
Tela | Tela | -0.035 | 0.017
assignedTin5C | assignedTin5C | 0.027 | 0.008
assignedTin0510C | assignedTin0510C | 0.011 | 0.007

This reproduces Table 3, Column 3 of Ichino and Schündeln (2012). Because the model contains interactions, these are reference-cell coefficients rather than universal effects. The focal-area coefficient of about -0.035 is the own-area assignment contrast when the two assigned-area counts and the interacted local-density counts are zero. The treatment-constituency coefficient of about -0.041 is the program-constituency contrast for an area not assigned an observer at those same reference values. The +0.027 coefficient is the slope for one additional observer-assigned area within 5 kilometers when the focal area is not assigned an observer.

    ghana_plot <- data.frame(
      term = factor(
        c("Own-area assignment at reference values",
          "Constituency assigned to observer program",
          "Nearby assignment slope for an unassigned focal area"),
        levels = rev(c(
          "Own-area assignment at reference values",
          "Constituency assigned to observer program",
          "Nearby assignment slope for an unassigned focal area"
        ))
      ),
      estimate = unname(ghana_coefs[c("Tela", "Tcon", "assignedTin5C"), "Estimate"]),
      se = unname(ghana_coefs[c("Tela", "Tcon", "assignedTin5C"), "Std. Error"])
    )
    ghana_critical <- qt(
      0.975,
      df = length(unique(ghana$constituencyname06)) - 1
    )
    ghana_plot$conf.low <- ghana_plot$estimate - ghana_critical * ghana_plot$se
    ghana_plot$conf.high <- ghana_plot$estimate + ghana_critical * ghana_plot$se

    ggplot(ghana_plot, aes(x = estimate, y = term)) +
      geom_vline(xintercept = 0, color = "grey70", linewidth = 0.7) +
      geom_errorbarh(
        aes(xmin = conf.low, xmax = conf.high),
        height = 0.12,
        color = msu_green,
        linewidth = 0.9
      ) +
      geom_point(size = 3.5, color = msu_kelly) +
      scale_x_continuous(
        labels = function(x) paste0(round(100 * x, 1), " pp"),
        limits = c(-0.10, 0.07)
      ) +
      labs(
        x = "Change in registration growth",
        y = NULL,
        title = "Deterrence Here, Displacement Nearby",
        subtitle = "Released-data replication"
      )

Replication of three key coefficients from Ichino and Schündeln (2012). The outcome is proportional registration growth from 2004 to 2008. Intervals use constituency-clustered standard errors and a t critical value with 38 degrees of freedom.

## 5.3 Put the Nearby-Assignment Coefficients Back Into the Intervention

The most interpretable fitted comparison asks how predicted registration growth changes with one additional observer-assigned area within 5 kilometers, holding the total number of nearby areas and the other model terms fixed. Under the constrained two-stage design, this conditional slope should not be described as a literal isolated assignment toggle. For a focal area not assigned an observer, the fitted slope is \(\beta_3\). For a focal area assigned an observer, the interaction makes it \(\beta_3+\beta_5\).

    b <- coef(ghana_fit)
    L_nearby <- matrix(
      0,
      nrow = 2,
      ncol = length(b),
      dimnames = list(
        c("Focal area not assigned", "Focal area assigned"),
        names(b)
      )
    )
    L_nearby[1, "assignedTin5C"] <- 1
    L_nearby[2, c("assignedTin5C", "Tela:assignedTin5C")] <- 1
    nearby_est <- as.vector(L_nearby %*% b)
    nearby_se <- sqrt(diag(L_nearby %*% ghana_vcov %*% t(L_nearby)))
    nearby_critical <- qt(
      0.975,
      df = length(unique(ghana$constituencyname06)) - 1
    )
    data.frame(
      focal_area = rownames(L_nearby),
      difference_pp = round(100 * nearby_est, 1),
      lower_pp = round(100 * (nearby_est - nearby_critical * nearby_se), 1),
      upper_pp = round(100 * (nearby_est + nearby_critical * nearby_se), 1)
    )

| focal_area | difference_pp | lower_pp | upper_pp
--- | --- | --- | --- | ---
Focal area not assigned | Focal area not assigned | 2.7 | 1.0 | 4.4
Focal area assigned | Focal area assigned | 1.7 | -1.2 | 4.7

For an unassigned focal area, one additional observer-assigned area within 5 kilometers corresponds to 2.7 percentage points more fitted registration growth, with a 95% interval of about [1.0, 4.4], holding the number of nearby electoral areas and the other model terms fixed. For a focal area already assigned an observer, the corresponding fitted slope is 1.7 points, with an interval of about [-1.2, 4.7]. The second comparison adds the nearby main effect and the focal-by-nearby interaction.

The positive nearby-assignment slope for unassigned focal areas is consistent with some activity shifting toward nearby locations, while the less precise slope for already assigned areas does not show a clear additional change. This is a conditional comparison within the published linear distance-ring model, not a national saturation-policy effect and not direct observation of displacement.

CautionKeep the Claim at the Level of the Outcome

The experiment can tell us how observer assignment changed registration growth in the sampled areas under the published exposure model. It does not directly observe fraud. Interpreting unusually high growth as irregular registration uses additional evidence about the 2008 process. The analysis also assumes the chosen distance rings capture the relevant interference, the linear exposure-response model is adequate, and the 39 constituencies provide a reasonable basis for clustered inference. The authors supplement the regression with a Fisher randomization test for the joint null, which gives a two-sided randomization p-value of 0.03.

## 5.4 Why the Naive Treatment Comparison Is Wrong

Suppose we compare areas assigned and not assigned an observer but omit nearby assignment exposure. A nearby observer assignment can change registration growth and is possible only inside program constituencies. Its contribution is then folded into the focal-area and constituency coefficients. Randomization does not rescue a regression that asks the wrong exposure question.

The lesson is broader than this application: if actors can redirect behavior around an intervention, the exposure mapping must represent where the redirected behavior can go.

# 6 Published Application 4: Observational Peer Effects and Hidden Selection

The first three applications use randomized assignment. Many network questions do not. Egami and Tchetgen Tchetgen (2024) ask whether a one-point increase in friends’ average baseline GPA raises a student’s later GPA in the Add Health network.

A conventional regression can adjust for measured student characteristics and school fixed effects, but friends select one another and share environments. The positive association could therefore reflect unmeasured ambition, family resources, course placement, or other common causes rather than a causal peer effect.

## 6.1 A Placebo Check Is the Starting Point, Not the Estimator

A basic negative control is often used as a placebo check. Researchers choose a variable that should not plausibly cause the outcome but could be exposed to the same hidden selection or shared environment. If it still predicts the outcome, the analysis has found a warning that unmeasured bias remains. In this application, friends’ headaches provide that intuition: friends’ headaches should not directly improve a student’s GPA, but they may reflect the same social sorting and shared context that complicate the friends’ GPA comparison.

Egami and Tchetgen Tchetgen (2024) go farther than this diagnostic. They use one negative-control exposure together with one negative-control outcome to learn about hidden confounding and adjust the peer-effect estimate. This is a specialized double-negative-control estimator, not a regression that simply adds headaches as another control variable.

Role | Variable in the application | What it contributes
--- | --- | ---
Main exposure, \(A\) | Friends’ average baseline GPA | The peer characteristic whose effect is being studied
Outcome, \(Y\) | Student’s later GPA | The academic outcome
Negative-control exposure, \(Z\) | Friends’ headaches or peers-of-peers’ baseline GPA | Information about hidden friendship selection and shared context
Negative-control outcome, \(W\) | Student’s own baseline GPA | An earlier outcome that the later peer exposure cannot cause

The two controls satisfy different proposed exclusion restrictions. The outcome control may predict the later outcome, and the exposure control may be associated with friends’ GPA. What is ruled out is an effect of friends’ baseline GPA on the student’s earlier GPA and a direct effect of the negative-control exposure on the student’s earlier or later GPA after conditioning on friends’ GPA, latent confounding, measured covariates, and the network.

- Negative-control outcome, \(W\): the student’s own baseline GPA. It is an outcome-inducing proxy for hidden factors that also shape later GPA. Its validity requires friends’ baseline GPA, \(A\), not to affect it under the proposed model.
- Negative-control exposure, \(Z\): either peers-of-peers’ baseline GPA or peers’ baseline headache levels. It is an exposure-inducing proxy that may predict friends’ GPA. Conditional on \(A\), latent confounding, measured covariates, and the network, it must not directly affect the student’s later GPA or baseline GPA.

In less technical terms, hidden selection should leave a fingerprint in both controls. Under the exclusions, a relevance condition formalized through completeness, and the bridge assumptions, those fingerprints identify a bridge used to adjust the peer-exposure contrast. The controls do not estimate the latent confounder \(U\) for each student or directly reveal which share of the conventional association is selection or influence.

## 6.2 How GMM Estimates the Confounding Bridge

- Confounding bridge: a function estimated by generalized method of moments that uses the proxy relationships to adjust the focal peer-exposure contrast for latent confounding.
- Network-HAC uncertainty: a covariance estimator that allows sufficiently close observations in the network to remain dependent.

At a high level, GMM proposes values for the bridge parameters, calculates the sample relationships that the model says should equal zero, and chooses the values that make those mismatches collectively as small as possible. It minimizes a weighted moment mismatch. It does not maximize a likelihood or estimate a latent position.

The bridge relation can be written as

\[ E[Y\mid Z,A,X,G] = E\{h(W,A,X,G)\mid Z,A,X,G\}. \]

GMM estimates a parameterized version \(h(W,A,X,G;\theta)\) through moment conditions such as

\[ E\!\left[ q(Z,A,X,G) \{Y-h(W,A,X,G;\theta)\} \right]=0. \]

The function \(q(\cdot)\) supplies observed transformations used as instruments for the moments. GMM estimates the bridge parameters \(\theta\); it never estimates each student’s unobserved \(U\).

## 6.3 Compare the Published Estimates

The Add Health data are restricted, so the next chunk records the published estimates and intervals.

    egami_results <- data.frame(
      method = factor(
        c(
          "Conventional adjusted regression",
          "Negative control: peers of peers' GPA",
          "Negative control: peers' headaches"
        ),
        levels = rev(c(
          "Conventional adjusted regression",
          "Negative control: peers of peers' GPA",
          "Negative control: peers' headaches"
        ))
      ),
      estimate = c(0.176, 0.033, 0.078),
      conf.low = c(0.147, -0.063, -0.280),
      conf.high = c(0.206, 0.129, 0.437)
    )

    egami_results

method | estimate | conf.low | conf.high
--- | --- | --- | ---
Conventional adjusted regression | 0.176 | 0.147 | 0.206
Negative control: peers of peers’ GPA | 0.033 | -0.063 | 0.129
Negative control: peers’ headaches | 0.078 | -0.280 | 0.437

    ggplot(egami_results, aes(x = estimate, y = method)) +
      geom_vline(xintercept = 0, color = "grey70", linewidth = 0.7) +
      geom_errorbarh(
        aes(xmin = conf.low, xmax = conf.high),
        height = 0.12,
        color = msu_green,
        linewidth = 0.9
      ) +
      geom_point(size = 3.5, color = msu_kelly) +
      scale_x_continuous(
        limits = c(-0.32, 0.48),
        breaks = c(-0.3, -0.1, 0, 0.1, 0.2, 0.3, 0.4),
        labels = function(x) formatC(x, format = "f", digits = 1)
      ) +
      labs(
        x = "Estimated change in the student's later GPA",
        y = NULL,
        title = "Negative Controls Weaken the Association",
        subtitle = "Published estimates with 95% intervals"
      )

Published Add Health estimates from Egami and Tchetgen Tchetgen (2024). The estimand is the change in a student’s later GPA associated with a one-point intervention on friends’ average baseline GPA.

The conventional adjusted regression estimates that a one-point increase in friends’ average GPA corresponds to a 0.176-point increase in the student’s later GPA. Each double-negative-control estimate pairs the student’s baseline GPA as the outcome control with one of two alternative exposure controls. The estimates are much smaller and substantially less precise. The reported relevance statistic is strong for peers-of-peers’ GPA (\(F=81.44\)) and weak for peers’ headaches (\(F=4.76\)), which helps explain the extremely wide interval for the headache-based estimate. This does not establish that the peer effect is zero. It shows that the large, precise regression association is not stable when the analysis uses additional assumptions to probe hidden network confounding.

The reported \(F\) statistics are strength checks for the fitted linear proxy relationships. They do not prove either exclusion restriction, validate the negative controls, or establish the unrestricted completeness condition used in the identification argument.

## 6.4 The Negative Controls Need a Defense

This method is not an observational substitute for randomization. Its causal interpretation requires:

1. After conditioning on measured covariates, the network, and latent confounding, friends’ baseline GPA is independent of the student’s potential later GPA. This is the latent-ignorability condition, \(Y(a)\perp A\mid U,X,G\).
2. The intervention on friends’ average GPA is well defined, and the observed outcome is consistent with that exposure.
3. The negative-control outcome is not affected by the focal peer exposure, including contemporaneously at baseline.
4. Conditional on the focal exposure, latent confounding, measured covariates, and the network, the negative-control exposure has no direct effect on either the later GPA outcome or the negative-control outcome.
5. The exposure control remains sufficiently informative about the outcome control after conditioning on the focal exposure and measured covariates. This relevance requirement is formalized through a completeness condition for identifying the bridge.
6. The confounding-bridge model is sufficiently informative and correctly specified.
7. The network timing and dependence conditions used for the network-HAC calculation are credible.

Those are substantive assumptions. A reader should be able to disagree with them after seeing them stated clearly.

## 6.5 Can Latent Variable Models Help?

Friends can resemble one another for two different reasons. Similar people may become friends, and friends may later influence one another. Shalizi and Thomas (2011) show why observational network data usually cannot separate those stories on their own.

A latent variable network model asks whether the larger pattern of ties contains clues about the hidden traits that helped form those ties. If students become friends partly because of an unmeasured trait such as academic orientation, that trait may leave a recognizable footprint in the friendship network. Researchers can estimate latent groups or positions from the network and include that recovered structure when comparing students’ outcomes.

McFowland and Shalizi (2023) develop this strategy for networks generated by particular blockmodel or continuous latent-space processes. Under their assumptions, the inferred latent structure can capture enough of the hidden homophily to improve peer-influence estimation.

The important limit is simple: an estimated latent position is not a direct measurement of motivation, family resources, or another omitted cause. The approach helps only when the network model recovers the part of hidden similarity that matters for both friendship and the outcome. A latent model can improve prediction without making a causal comparison valid.

NoteWhat Must Be True for Latent Adjustment to Help?

The hidden cause of friendship must leave enough information in the observed network for the chosen latent model to recover it. The recovered groups or positions must capture the part of that hidden cause that also affects the outcome. The outcome model must use that structure correctly, and uncertainty from estimating the latent structure should be carried into the final peer-effect estimate. Fitting an AME model, blockmodel, latent-space model, or embedding does not automatically satisfy these conditions.

# 7 What the Earlier Network Models Do Not Supply

Days 9 through 12 gave us stronger ways to represent dependence. None creates a randomized assignment mechanism:

Method | What It Helps With | What It Does Not Establish by Itself
--- | --- | ---
SRM or AME | Actor heterogeneity and latent relational dependence in the outcome model | That an observed predictor is independent of omitted causes
Blockmodel | Discrete role structure and role-to-role tie patterns | That block membership can be treated as randomly assigned
ERGM | Dependence in the probability of a graph | A causal effect of changing one network statistic while holding the rest fixed
SAOM | A model of network and behavior change between waves | Random assignment of peers or behavior
Spatial or network lag | Dependence between connected outcomes | A causal peer effect without a separate identification argument
DCR or network-HAC | More credible uncertainty under a declared dependence pattern | A corrected coefficient, an exposure mapping, or causal identification

The distinction is the same across these methods. Representing network dependence can strengthen a statistical model, but a causal interpretation still needs a credible comparison and explicit assumptions about the omitted causes of both ties and outcomes.

NoteWhere Dyadic Cluster-Robust Inference Fits

Carlson, Incerti, and Aronow (2024) reanalyzed 691 key explanatory variables across 174 models from 22 studies in International Organization. The inverse-study-frequency-weighted average ratio of dyadic-cluster-robust to originally reported standard errors was 1.74, while roughly 68% of originally significant findings remained significant. That is important evidence about overstated precision, but it is a different question from causal identification. DCR leaves the coefficient fixed and recalculates its covariance when dyads sharing an actor may be dependent.

Network-HAC addresses a related but different data structure. It allows outcomes for units that are close in a graph to remain dependent under an assumption that this dependence weakens with network distance. DCR is organized around dyadic rows sharing endpoints; network-HAC is organized around units and graph distance. Both change uncertainty rather than the fitted coefficient, exposure mapping, or identification strategy.

# 8 What Can We Say After the Analysis?

The wording should match the source of identification:

## 8.1 Nickerson

> Among successfully contacted two-voter households in the Denver and Minneapolis experiments, turnout was about six percentage points higher for the other household member under the voting-message assignment than under the recycling-message assignment. Interpreting that difference as a contact-conditional intervention spillover requires successful contact to be unaffected by assignment, or an equivalent comparability condition. It is not by itself an estimate of one person’s vote causing the other person’s vote.

## 8.2 Aronow and Samii

> Among students eligible for all exposure conditions, students who were not assigned to the program but had at least one peer assigned were about 15 percentage points more likely to report wearing the program wristband than eligible students in control schools. The point difference between peer-exposed and unexposed students who were themselves not assigned within program schools was about ten points, although uncertainty for that derived contrast requires the covariance between the two estimates.

## 8.3 Ichino and Schündeln

> Within the sampled constituencies and under the published linear distance-ring exposure model, assignment of an observer reduced registration growth at the focal area at the stated reference values, while the positive nearby-assignment slope is consistent with some activity moving toward nearby areas. Evaluating only locations assigned an observer would therefore give an incomplete account of the intervention’s local effect.

## 8.4 Egami and Tchetgen Tchetgen

> The positive association between friends’ earlier GPA and a student’s later GPA became much smaller and less precise under the proposed negative-control strategies. A causal interpretation therefore depends on the negative-control and confounding-bridge assumptions, not on the conventional adjusted regression alone.

# 9 A Reusable Analysis Sequence

For your own project, work through these steps in order:

1. State the intervention or exposure as an action. What is assigned, changed, encouraged, monitored, or withheld?
2. Name the unit and outcome. Whose outcome could change?
3. Draw an indexed causal path or exposure schematic appropriate to the design. Through which ties, distances, groups, or institutions can another unit’s assignment matter?
4. Define the exposure mapping. Which parts of the full assignment vector are assumed to matter?
5. Name the contrast. Direct, spillover, total, or policy effect?
6. Check support. Can each target unit reach both exposure conditions under the design?
7. Match the estimator to the design. Known randomization probabilities, an observational identification strategy, or only an associational model?
8. Use a dependence-aware uncertainty calculation. Exposure dependence, clusters, or network distance must match the study.
9. Interpret the outcome that was actually measured. Wristband wearing is not conflict reduction; registration growth is not directly observed fraud.
10. State the remaining assumption. The strongest remaining assumption belongs in the result paragraph, not only in an appendix.

# 10 Exercises

## 10.1 1. Change the Nickerson Estimand

Suppose the policy question is the effect of assigning the voting rather than recycling script among successfully contacted households on whether either registered voter turns out, rather than the effect on each person separately. Define that household-level outcome, write the treatment contrast, explain why the direct/spillover decomposition is no longer the estimand, and state the additional contact-selection condition needed for a causal interpretation.

## 10.2 2. Redesign the Paluck Exposure Mapping

Replace “at least one peer assigned to the program” with the proportion of a student’s peers who are assigned. Define the exposure for isolates, explain what happens to support for low-degree and high-degree students, and identify one reason the new mapping could be more credible and one reason it could be harder to estimate.

## 10.3 3. Evaluate Observer Deployment

Using the Ghana coefficients, compare a sparse policy that observes isolated locations with a dense policy that places observers near one another. Explain why the published local coefficients cannot be extrapolated mechanically to observing every electoral area.

## 10.4 4. Audit Your Own Causal Sentence

Write the strongest causal sentence you would like to make with your project. Underline the treatment, outcome, exposure mapping, target population, and identifying assumption. If one of those objects is missing, rewrite the sentence as an association that the current design can support.

# 11 Reading

- Nickerson (2008), “Is voting contagious? Evidence from two field experiments,” American Political Science Review 102(1):49-57. A two-person network that makes the direct and spillover outcomes unusually clear.
- Aronow and Samii (2017), “Estimating average causal effects under general interference, with application to a social network experiment,” Annals of Applied Statistics 11(4):1912-1947. The formal exposure-mapping and design-based framework used for the school experiment.
- Paluck, Shepherd, and Aronow (2016), “Changing climates of conflict: A social network experiment in 56 schools,” Proceedings of the National Academy of Sciences 113(3):566-571. The substantive design behind the school-network application.
- Ichino and Schündeln (2012), “Deterring or displacing electoral irregularities? Spillover effects of observers in a randomized field experiment in Ghana,” Journal of Politics 74(1):292-307. A strategic-displacement application with a two-stage design.
- Egami and Tchetgen Tchetgen (2024), “Identification and estimation of causal peer effects using double negative controls for unmeasured network confounding,” Journal of the Royal Statistical Society, Series B 86(2):487-511. An observational identification strategy and a useful example of how much the result can change.
- Shalizi and Thomas (2011), “Homophily and contagion are generically confounded in observational social network studies,” Sociological Methods & Research 40(2):211-239. The identification problem that observational peer-effect studies must answer.
- McFowland and Shalizi (2023), “Estimating causal peer influence in homophilous social networks by inferring latent locations,” Journal of the American Statistical Association 118(541):707-718. A strategy that uses specified latent network structure to adjust for hidden homophily under explicit assumptions.
- Carlson, Incerti, and Aronow (2024), “Dyadic clustering in international relations,” Political Analysis 32(2):186-198. Evidence that dependence-aware uncertainty can change precision without creating causal identification.

Session information

    sessionInfo()

    #> R version 4.3.3 (2024-02-29)
    #> Platform: x86_64-pc-linux-gnu (64-bit)
    #> Running under: Ubuntu 24.04.3 LTS
    #>
    #> Matrix products: default
    #> BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.12.0
    #> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0
    #>
    #> locale:
    #>  [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8
    #>  [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8
    #>  [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C
    #> [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
    #>
    #> time zone: America/New_York
    #> tzcode source: system (glibc)
    #>
    #> attached base packages:
    #> [1] stats     graphics  grDevices utils     datasets  methods   base
    #>
    #> other attached packages:
    #> [1] ggplot2_4.0.3
    #>
    #> loaded via a namespace (and not attached):
    #>  [1] vctrs_0.7.3        cli_3.6.6          knitr_1.51         rlang_1.2.0
    #>  [5] xfun_0.55          otel_0.2.0         generics_0.1.4     S7_0.2.2
    #>  [9] jsonlite_2.0.0     labeling_0.4.3     zoo_1.8-15         glue_1.8.1
    #> [13] htmltools_0.5.9    lmtest_0.9-40      scales_1.4.0       rmarkdown_2.30
    #> [17] grid_4.3.3         tibble_3.3.1       evaluate_1.0.5     fastmap_1.2.0
    #> [21] yaml_2.3.12        lifecycle_1.0.5    compiler_4.3.3     dplyr_1.2.1
    #> [25] sandwich_3.1-1     RColorBrewer_1.1-3 pkgconfig_2.0.3    htmlwidgets_1.6.4
    #> [29] lattice_0.22-5     farver_2.1.2       digest_0.6.39      R6_2.6.1
    #> [33] tidyselect_1.2.1   pillar_1.11.1      magrittr_2.0.5     withr_3.0.2
    #> [37] tools_4.3.3        gtable_0.3.6

##### Source Code

    ---
    title: "Day 13: Causal Inference on Networks"
    subtitle: "From Spillovers to Identified Causal Contrasts"
    author: "Shahryar Minhas"
    date: last-modified
    engine: knitr
    editor: source
    format:
      html:
        theme: [cosmo, _theme.scss]
        toc: true
        toc-depth: 2
        toc-location: left
        toc-title: "Day 13"
        number-sections: true
        embed-resources: true
        code-copy: true
        code-tools: true
        fig-width: 8
        fig-height: 5
        fig-align: center
        df-print: kable
    execute:
      echo: true
      warning: false
      message: false
      freeze: false
    knitr:
      opts_chunk:
        comment: "#>"
    ---

    ```{r}
    #| label: setup
    #| include: false
    source("_setup.R")
    require_pkgs(c("ggplot2", "lmtest", "sandwich"))
    library(ggplot2)
    set.seed(6886)

    msu_green <- "#18453B"
    msu_kelly <- "#008208"
    msu_lime <- "#7BBD00"
    msu_gray <- "#535054"

    theme_set(
      theme_minimal(base_size = 14) +
        theme(
          plot.title = element_text(face = "bold", color = msu_green),
          plot.subtitle = element_text(color = msu_gray),
          panel.grid.minor = element_blank(),
          legend.position = "bottom"
        )
    )

    pp <- function(x, digits = 1) paste0(format(round(100 * x, digits), nsmall = digits), " percentage points")
    ```

    ::: {.callout-note appearance="simple"}
    ## How to Use This Walkthrough

    [Open the Day 13 teaching deck](day13_causal_teaching_deck.html){target="_blank"}.

    The deck gives the full plain-language route through the session, including the questions, intuition, numerical results, and conclusions that can be read directly from the slides. Each deck link opens the matching section here. This walkthrough then goes further into the notation, derivations, code, formal assumptions, and sensitivity questions so you can revisit the technical reasoning afterward. The rendered results are already in the document. Nothing needs to be fitted during class.

    The Nickerson household experiment and the Ichino-Schündeln Ghana experiment use released data included with the download. The Paluck school-network and Egami-Tchetgen Tchetgen sections reconstruct the published result tables because their student-level data are restricted. Those sections say exactly when a number is a published estimate rather than a new reanalysis.

    The only packages needed for the included analyses are on CRAN:

    ```r
    install.packages(c("ggplot2", "lmtest", "sandwich"))
    ```
    :::

    ::: {.callout-note collapse="true"}
    ## Day 13 Route

    | Part | What We Do |
    |---|---|
    | Begin with the identification problem | Treat the basic causal refresher as known and identify this session's new questions |
    | Nickerson (2008) | Calculate direct and within-household spillover effects from released data |
    | From two people to a network | Define exposure mappings, estimands, support, and design probabilities |
    | Aronow and Samii (2017) | Work through the five exposure conditions in the Paluck school experiment |
    | Ichino and Schündeln (2012) | Reproduce a published strategic-displacement result from the Ghana data |
    | Egami and Tchetgen Tchetgen (2024) | See what an observational peer-effect argument must add |
    | Claim ladder | Match the language in the paper to what the design and estimator actually support |
    :::

    # Where This Lecture Begins {#sec-continuity}

    We already have the foundation: causal claims compare potential outcomes; selection and influence are different processes; interference violates the usual no-spillover part of SUTVA; and experiments, natural experiments, and simulations buy different kinds of leverage. We do not need to repeat that material here.

    We begin one step later. For a study in which treatment can travel through relationships, we need to answer four precise questions:

    1. **Whose assignment can affect this unit's outcome?**
    2. **Which potential outcomes are we comparing?**
    3. **Does the assignment design give units a positive chance of reaching both conditions?**
    4. **How does the estimator use the design probabilities to recover that contrast?**

    The difference is important. Saying that SUTVA may fail identifies a problem. Defining exposure conditions and estimating a declared contrast is the analysis.

    ## Four Published Applications, Four Different Lessons {#sec-cases}

    | Application | Question | Identification Strategy | Main Lesson |
    |---|---|---|---|
    | Nickerson (2008) | Does a voter-mobilization message delivered to one household member affect the other member's turnout? | Randomized voting script versus recycling script, followed by a contact-conditioned comparison | A simple spillover calculation can still require care about post-assignment selection |
    | Paluck, Shepherd, and Aronow (2016), analyzed by Aronow and Samii (2017) | Does an anti-conflict program affect students assigned directly, their peers, and the wider school? | School-level and student-level randomization plus a pretreatment friendship network | A general network requires explicit exposure conditions and unit-specific probabilities |
    | Ichino and Schündeln (2012) | Do election observers deter questionable registrations or move them nearby? | Two-stage randomized deployment across Ghanaian constituencies and electoral areas | Interference can be strategic displacement rather than social influence |
    | Egami and Tchetgen Tchetgen (2024) | Does friends' earlier academic performance affect a student's later performance? | Observational negative-control identification strategy | Dependence adjustment alone does not solve network confounding |

    ::: {.callout-important}
    ## The Organizing Question

    For every application, start with the action we want to understand, then identify the units, assignment, network exposure, outcome, and causal contrast. The estimator comes after those choices.
    :::

    # Published Application 1: Does Voting Mobilization Spill Across a Household? {#sec-nickerson}

    Nickerson (2008) asks a clean question: if a canvasser gives one member of a two-registered-voter household a get-out-the-vote message, does the other household member become more likely to vote?

    This is a useful first case because the network is deliberately simple. Each household contains two registered voters. The canvasser speaks to the person who answers the door. The other person's turnout is then an outcome for someone who did not receive the message directly but was connected to the person who did.

    ## What Was Randomized? {#sec-nickerson-design}

    Households were assigned to a voting message, a recycling message used as a placebo, or no canvassing attempt. The published spillover comparison focuses on successfully contacted households assigned to the voting or recycling scripts. Successful contact is observed after assignment, so restricting the calculation to contacted households is not automatically protected by randomization.

    | Person | What They Experience | Outcome Used |
    |---|---|---|
    | Person who answers the door | Voting message or recycling message | Administrative turnout record |
    | Other registered voter in the household | No direct canvassing message, but possible within-household transmission | Administrative turnout record |

    <svg style="width:100%;height:auto;max-height:330px" viewBox="0 0 1200 330" role="img" aria-labelledby="walk-nickerson-title walk-nickerson-desc">
      <title id="walk-nickerson-title">Nickerson household assignment and outcomes</title>
      <desc id="walk-nickerson-desc">Within successfully contacted households, randomized message assignment points separately to the answerer's turnout and the other household member's turnout. The experiment does not identify an arrow from the answerer's realized vote to the partner's realized vote.</desc>
      <defs>
        <marker id="walk-nickerson-arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0,0 L12,6 L0,12 z" fill="#18453B"/></marker>
      </defs>
      <rect x="18" y="18" width="1164" height="294" rx="18" fill="#FFFFFF" stroke="#6E7476" stroke-width="4" stroke-dasharray="12 10"/>
      <text x="600" y="52" text-anchor="middle" font-size="24" font-weight="700" fill="#535054">Analysis conditions on successful household contact: C<tspan baseline-shift="sub" font-size="17">h</tspan> = 1</text>
      <rect x="400" y="76" width="400" height="78" rx="14" fill="#18453B"/>
      <text x="600" y="108" text-anchor="middle" font-size="26" font-weight="700" fill="#FFFFFF">Randomized script assignment</text>
      <text x="600" y="137" text-anchor="middle" font-size="23" fill="#FFFFFF">Voting or recycling, Z<tspan baseline-shift="sub" font-size="16">h</tspan></text>
      <path d="M600,154 L600,188 L292,188 L292,218" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-nickerson-arrow)"/>
      <path d="M600,188 L908,188 L908,218" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-nickerson-arrow)"/>
      <text x="440" y="176" text-anchor="middle" font-size="20" font-weight="700" fill="#18453B">Direct script contrast</text>
      <text x="760" y="176" text-anchor="middle" font-size="20" font-weight="700" fill="#18453B">Intervention spillover</text>
      <rect x="82" y="224" width="420" height="68" rx="14" fill="#E8F2F0" stroke="#008208" stroke-width="4"/>
      <text x="292" y="254" text-anchor="middle" font-size="26" font-weight="700" fill="#18453B">Answerer's turnout</text>
      <text x="292" y="281" text-anchor="middle" font-size="22" fill="#000000">Administrative record, Y<tspan baseline-shift="sub" font-size="16">A</tspan></text>
      <rect x="698" y="224" width="420" height="68" rx="14" fill="#EFF6E8" stroke="#7BBD00" stroke-width="4"/>
      <text x="908" y="254" text-anchor="middle" font-size="26" font-weight="700" fill="#18453B">Other voter's turnout</text>
      <text x="908" y="281" text-anchor="middle" font-size="22" fill="#000000">Administrative record, Y<tspan baseline-shift="sub" font-size="16">P</tspan></text>
    </svg>

    The direct contrast compares turnout among the people who answered the door. The spillover contrast compares turnout among their household partners. The recycling group supplies a comparable baseline within the contacted sample if successful contact was not affected by script assignment, or more generally if the voting-message and recycling households that were contacted remain comparable. That contact-selection condition is separate from the original randomization.

    The released dataset comes from the `inferference` package and contains 7,722 voter records in 3,861 two-voter households. We load the data directly rather than requiring the package and its heavier estimation dependencies.

    ```{r}
    #| label: nickerson-load
    load("voters.rdata")
    stopifnot(nrow(voters) == 7722, length(unique(voters$family)) == 3861)

    voters$family_key <- interaction(voters$city, voters$family, drop = TRUE)
    reached_in_household <- ave(voters$reached, voters$family_key, FUN = sum)

    nickerson <- subset(
      voters,
      treatment %in% c(1, 2) &
        hsecontact == 1 &
        reached_in_household <= 1
    )
    nickerson$gotv <- as.integer(nickerson$treatment == 1)
    nickerson$message <- factor(
      nickerson$gotv,
      levels = c(0, 1),
      labels = c("Recycling message", "Voting message")
    )

    c(
      voter_records = nrow(nickerson),
      contacted_households = length(unique(nickerson$family_key)),
      cities = length(unique(nickerson$city))
    )
    ```

    The package extract contains 955 successfully contacted voting-message or recycling households. The original package analysis removes one household with an ambiguous record in which more than one person is marked as reached, leaving `r length(unique(nickerson$family_key))` households for the calculation below. The paper reports 956 contacted households. This released-data reanalysis yields 9.7 and 5.9 percentage points, close to the paper's pooled 9.8 and 6.0.

    ## Estimate the Direct and Spillover Contrasts {#sec-nickerson-estimation}

    We fit a linear probability model separately for the person reached and the other household member:

    $$
    Y_{ih}=\alpha+\tau Z_h+\lambda\,\text{Minneapolis}_h+\varepsilon_{ih},
    $$

    where $Z_h=1$ means household $h$ received the voting message, $Y_{ih}$ records whether person $i$ voted, and $\tau$ is the city-adjusted difference from the recycling script. For the answerer, $\tau$ is the direct message contrast. For the partner, $\tau$ is the within-household spillover contrast.

    ```{r}
    #| label: nickerson-fits
    direct_data <- subset(nickerson, reached == 1)
    spillover_data <- subset(nickerson, other == 1)

    fit_direct <- lm(voted02p ~ gotv + city, data = direct_data)
    fit_spillover <- lm(voted02p ~ gotv + city, data = spillover_data)

    extract_gotv <- function(fit, label) {
      robust <- lmtest::coeftest(
        fit,
        vcov. = sandwich::vcovHC(fit, type = "HC2")
      )
      estimate <- unname(coef(fit)["gotv"])
      se <- unname(robust["gotv", "Std. Error"])
      data.frame(
        contrast = label,
        estimate = estimate,
        conf.low = estimate - 1.96 * se,
        conf.high = estimate + 1.96 * se
      )
    }

    nickerson_effects <- rbind(
      extract_gotv(fit_direct, "Person who heard the message"),
      extract_gotv(fit_spillover, "Other household member")
    )

    transform(
      nickerson_effects,
      estimate_pp = round(100 * estimate, 1),
      interval_pp = sprintf("[%.1f, %.1f]", 100 * conf.low, 100 * conf.high)
    )[, c("contrast", "estimate_pp", "interval_pp")]
    ```

    ```{r}
    #| label: nickerson-plot
    #| fig-cap: "City-adjusted turnout differences within successfully contacted households. The first row compares the person who answered the door under the voting and recycling scripts. The second makes the same comparison for the other registered voter. Contact-conditional causal interpretation requires the contact-selection condition discussed above."
    ggplot(
      nickerson_effects,
      aes(x = estimate, y = reorder(contrast, estimate))
    ) +
      geom_vline(xintercept = 0, color = "grey70", linewidth = 0.7) +
      geom_errorbarh(
        aes(xmin = conf.low, xmax = conf.high),
        height = 0.12,
        color = msu_green,
        linewidth = 0.9
      ) +
      geom_point(size = 3.5, color = msu_kelly) +
      scale_x_continuous(
        labels = function(x) paste0(round(100 * x), " pp"),
        limits = c(-0.02, 0.18)
      ) +
      labs(
        x = "Increase in turnout relative to the recycling script",
        y = NULL,
        title = "Turnout Was Higher Under the Voting Message",
        subtitle = "Contacted-household estimates with robust 95% intervals"
      )
    ```

    Within the successfully contacted sample, turnout was about `r pp(nickerson_effects$estimate[1])` higher among the people assigned the voting script than among those assigned the recycling script. Turnout among the other registered voter was about `r pp(nickerson_effects$estimate[2])` higher under the voting rather than recycling assignment. The two city-specific partner differences in the published paper were 5.5 percentage points in Denver and 6.4 percentage points in Minneapolis, so the same pattern appeared in both field experiments. Interpreting these voting-versus-recycling differences as contact-conditional causal effects requires the contact-selection condition stated above.

    The partner increase is about `r round(100 * nickerson_effects$estimate[2] / nickerson_effects$estimate[1])`% as large as the direct increase. That is what the paper means when it says roughly 60% of the mobilization carried across the household. It does **not** mean turnout rose by 60 percentage points.

    []{#sec-nickerson-ratio}

    ::: {.callout-caution}
    ## What This Result Does and Does Not Establish

    If successful contact was unaffected by script assignment, assigning the voting rather than recycling script raised partner turnout among successfully contacted two-voter households. The voting-versus-recycling contrast does not require us to assume that recycling was behaviorally inert. That extra assumption is needed only if we want to reinterpret the estimate as voting mobilization relative to receiving no turnout-relevant message. The experiment also does not identify the effect of the answerer's realized vote on the partner's realized vote. That mediated claim would require a well-defined intervention on the answerer's voting, credible temporal ordering, no unmeasured mediator-outcome confounding, and an exclusion argument for any direct message effect on the partner. An instrumental-variable interpretation would additionally require relevance, exclusion, monotonicity, and a clearly defined complier effect. Cross-household spillovers must also be negligible for the household contrast.
    :::

    # From One Household Tie to a General Network {#sec-formal}

    Nickerson's design is manageable because each focal person has one household partner. A school, village, organization, or international system creates many possible routes of exposure. The notation has to expand with the question.

    Without interference, we write two potential outcomes for unit $i$:

    $$
    Y_i(1),\qquad Y_i(0).
    $$

    With interference, the outcome can depend on the full assignment vector $\mathbf{z}=(z_1,\ldots,z_N)$:

    $$
    Y_i(\mathbf{z}).
    $$

    That expression is mathematically complete but not yet usable. With $N$ units under binary assignment, it allows as many as $2^N$ potential outcomes per unit. An **exposure mapping** reduces the full assignment vector to the parts the substantive process says matter:

    $$
    D_i=f_i(\mathbf{z},G),
    $$

    where $G$ is the measured network and $D_i$ is unit $i$'s exposure condition.

    Writing $Y_i(d)$ requires an additional consistency claim: whenever two assignment vectors give unit $i$ the same mapped exposure $d$, they give that unit the same potential outcome. Formally, if $f_i(\mathbf z,G)=f_i(\mathbf z',G)=d$, then $Y_i(\mathbf z)=Y_i(\mathbf z')=Y_i(d)$. The observed outcome is then $Y_i=Y_i(D_i)$. Randomization does not make this mapping correct. The mapping has to capture the versions of treatment and spillover that matter for the outcome.

    ## The Exposure Mapping Is Part of the Theory {#sec-exposure}

    Suppose $G_{ij}=1$ means that $i$ is connected to $j$. Several plausible mappings answer different questions:

    $$
    E_i^{\text{any}}(\mathbf{z},G)
    =
    \mathbb{1}\left(\sum_jG_{ij}z_j>0\right),
    $$

    $$
    E_i^{\text{count}}(\mathbf{z},G)
    =
    \sum_jG_{ij}z_j,
    $$

    $$
    E_i^{\text{share}}(\mathbf{z},G)
    =
    \frac{\sum_jG_{ij}z_j}{\sum_jG_{ij}}.
    $$

    The first says one treated connection is enough. The second says each additional treated connection matters. The third says exposure depends on the share of a unit's connections that are treated and is defined as written only for units with degree greater than zero. Isolates need a separate convention. None of these mappings is automatically correct. Each makes a claim about how the intervention travels.

    An exposure mapping can also distinguish which neighbors matter. In a campaign study, a household member, close friend, and casual acquaintance may not carry the same message. In an election-monitoring study, a nearby observed polling place may matter more than one 40 kilometers away.

    ## Name the Causal Contrast Before Estimating It {#sec-estimands}

    Once conditions are defined and the exposure-consistency claim is credible, the causal estimand is a contrast between their average potential outcomes:

    $$
    \tau(d,d')
    =
    \frac{1}{N}\sum_{i=1}^{N}\left\{Y_i(d)-Y_i(d')\right\}.
    $$

    Common contrasts include:

    - **Direct effect:** Change a unit's own treatment while holding its network exposure fixed.
    - **Spillover effect:** Change network exposure while holding the unit's own treatment fixed.
    - **Total effect:** Compare a treated-and-exposed condition with an untreated-and-unexposed condition.

    These exposure-condition contrasts are different questions. A design can identify one well and provide almost no information about another.

    A **policy effect** is related but not generally the same kind of $d$-versus-$d'$ contrast. It compares average outcomes under two rules for allocating treatment across the network, such as treating 10% versus 30% of eligible units. Each rule can generate a mixture of exposure conditions, so the policy estimand averages over the assignments and exposures generated by that rule.

    ## How Horvitz-Thompson Estimation Works {#sec-ht}

    Under a known randomization and a correctly specified exposure mapping, let

    $$
    \pi_i(d)=\Pr\{D_i=d\}
    $$

    be unit $i$'s probability of reaching exposure condition $d$. The Horvitz-Thompson estimator for the average outcome under that condition is

    $$
    \widehat{\mu}_{HT}(d)
    =
    \frac{1}{N}\sum_{i=1}^{N}
    \frac{\mathbb{1}(D_i=d)Y_i}{\pi_i(d)}.
    $$

    Read the estimator from the inside out:

    1. $\mathbb{1}(D_i=d)$ keeps the observed outcome only when unit $i$ actually reached condition $d$.
    2. Dividing by $\pi_i(d)$ gives more weight to a unit that had a smaller chance of reaching that condition.
    3. Summing and dividing by $N$ returns the result to the target population scale.
    4. Subtracting $\widehat{\mu}_{HT}(d')$ from $\widehat{\mu}_{HT}(d)$ estimates the declared contrast $\tau(d,d')$.

    The probabilities are often unit-specific. A student with ten eligible friends has a different chance of having at least one treated friend than a student with one eligible friend. The network and assignment design jointly determine those probabilities.

    ### Why Joint Exposure Probabilities Enter the Variance {#sec-ht-joint}

    For uncertainty, the calculation also needs joint exposure probabilities,

    $$
    \pi_{ij}(d,d')=\Pr(D_i=d,D_j=d'),
    $$

    because shared neighbors, fixed treatment totals, and other features of the design can make two units' exposure conditions dependent. Joint probabilities are therefore required for design-based variance calculations, so independent-observation standard errors are generally not justified even when treatment itself was randomized. For a contrast between two exposure means, some covariance terms involve potential outcomes that are never jointly observed. Aronow and Samii therefore use a conservative design-based variance estimator rather than claiming that the exact randomization variance is identified.

    ::: {.callout-note collapse="true"}
    ## Horvitz-Thompson and Hájek in One Paragraph

    The Horvitz-Thompson estimator divides by known exposure probabilities and is design-unbiased for the corresponding finite-population mean when the exposure mapping is correctly specified, observed outcomes are consistent with mapped exposure, and the declared randomization design is followed. The Hájek estimator divides the weighted outcome total by the realized sum of weights. That ratio often behaves more stably when exposure probabilities vary sharply, although it is not exactly unbiased in finite samples. Aronow and Samii report both, along with a covariate-adjusted weighted least-squares estimate, so we can see whether the substantive result depends on that choice.
    :::

    ## Positivity Is About Exposure Conditions {#sec-positivity}

    For unit $i$ to contribute to a contrast between $d$ and $d'$, the design must give it a positive probability of both:

    $$
    \pi_i(d)>0
    \qquad\text{and}\qquad
    \pi_i(d')>0.
    $$

    An isolate can never have a treated friend. A student who was not eligible for the program can never be directly treated. No amount of weighting can recover a potential outcome under a condition the design makes impossible.

    ::: {.callout-important}
    ## Randomization Does Not Choose the Exposure Mapping

    Randomization supplies known assignment probabilities. It does not prove that only first-degree friends matter, that the measured graph is correct, or that one treated friend is equivalent to five. Those remain substantive and measurement assumptions.
    :::

    # Published Application 2: Anti-Conflict Messages in School Networks {#sec-paluck}

    Paluck, Shepherd, and Aronow (2016) studied whether a student-led program could change visible anti-conflict norms in 56 New Jersey middle schools. Aronow and Samii (2017) use that experiment to show how exposure mappings and design probabilities work in a general social network.

    The question is no longer simply whether a student assigned to the program changes. We also want to know whether a student responds when a friend is assigned and whether merely attending a program school changes behavior.

    ## The Two-Stage Design {#sec-paluck-design}

    The assignment happened at two levels:

    1. The researchers block-randomized 28 of 56 schools to host the program.
    2. A deterministic, nonrandom algorithm selected 40 to 64 seed-eligible students in each school before treatment assignment.
    3. Within program schools, half of the eligible students were block-randomized to receive an invitation to join the program. Twenty-four percent of assigned seed students did not accept, so the intention-to-treat analysis classifies students and peers by randomized assignment rather than actual participation.

    Before randomization, students could nominate up to ten schoolmates with whom they had chosen to spend time. The analysis symmetrized those nominations, so two students counted as peers if either nominated the other. Measuring the network before treatment matters because a network measured afterward could itself have changed in response to the program.

    The outcome in the Aronow-Samii analysis is whether a student reported wearing the program wristband, a visible expression of support for the anti-conflict campaign. It is not a direct measure of conflict reduction.

    <svg style="width:100%;height:auto;max-height:360px" viewBox="0 0 1400 360" role="img" aria-labelledby="walk-paluck-title walk-paluck-desc">
      <title id="walk-paluck-title">Paluck school assignment and exposure construction</title>
      <desc id="walk-paluck-desc">School assignment, assignments among eligible students, and the pretreatment friendship network combine to determine a student's own-assignment, peer-assignment, and school exposure condition, which is compared on reported wristband wearing.</desc>
      <defs>
        <marker id="walk-paluck-arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0,0 L12,6 L0,12 z" fill="#18453B"/></marker>
      </defs>
      <rect x="38" y="25" width="365" height="78" rx="14" fill="#18453B"/>
      <text x="220" y="57" text-anchor="middle" font-size="25" font-weight="700" fill="#FFFFFF">School assignment, S<tspan baseline-shift="sub" font-size="17">s</tspan></text>
      <text x="220" y="86" text-anchor="middle" font-size="21" fill="#FFFFFF">Program or control school</text>
      <rect x="38" y="139" width="365" height="78" rx="14" fill="#18453B"/>
      <text x="220" y="171" text-anchor="middle" font-size="25" font-weight="700" fill="#FFFFFF">Student assignments, Z<tspan baseline-shift="sub" font-size="17">j</tspan></text>
      <text x="220" y="200" text-anchor="middle" font-size="21" fill="#FFFFFF">Among eligible students</text>
      <rect x="38" y="253" width="365" height="78" rx="14" fill="#F2F2F2" stroke="#535054" stroke-width="4"/>
      <text x="220" y="285" text-anchor="middle" font-size="25" font-weight="700" fill="#18453B">Pretreatment network, G<tspan baseline-shift="sub" font-size="17">ij</tspan></text>
      <text x="220" y="314" text-anchor="middle" font-size="21" fill="#000000">Who counts as a peer</text>
      <path d="M403,64 C510,64 500,146 585,158" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-paluck-arrow)"/>
      <path d="M403,178 L585,178" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-paluck-arrow)"/>
      <path d="M403,292 C510,292 500,210 585,198" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-paluck-arrow)"/>
      <rect x="600" y="105" width="410" height="146" rx="16" fill="#EFF6E8" stroke="#7BBD00" stroke-width="5"/>
      <text x="805" y="143" text-anchor="middle" font-size="27" font-weight="700" fill="#18453B">Exposure condition, D<tspan baseline-shift="sub" font-size="18">i</tspan></text>
      <text x="805" y="180" text-anchor="middle" font-size="23" fill="#000000">Own assignment</text>
      <text x="805" y="210" text-anchor="middle" font-size="23" fill="#000000">Peer-assignment exposure</text>
      <text x="805" y="240" text-anchor="middle" font-size="23" fill="#000000">Program-school context</text>
      <path d="M1010,178 L1100,178" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-paluck-arrow)"/>
      <rect x="1115" y="125" width="250" height="106" rx="16" fill="#E8F2F0" stroke="#008208" stroke-width="5"/>
      <text x="1240" y="158" text-anchor="middle" font-size="24" font-weight="700" fill="#18453B">Reported wristband</text>
      <text x="1240" y="193" text-anchor="middle" font-size="24" font-weight="700" fill="#18453B">wearing, Y<tspan baseline-shift="sub" font-size="18">i</tspan></text>
      <text x="805" y="304" text-anchor="middle" font-size="21" font-weight="700" fill="#535054">Eligibility determines who can reach the own-assignment conditions.</text>
    </svg>

    This is an exposure-construction schematic rather than a complete causal DAG. It shows how the randomized assignments and the pretreatment network create the conditions being compared. It does not claim that the network is a causal mediator or that a peer's actual participation is the treatment.

    ## Turn the Design Into Five Exposure Conditions {#sec-paluck-mapping}

    Let $s_i$ indicate whether student $i$ attends a program school, $z_i$ indicate whether the student was assigned to the program, and

    $$
    q_i(\mathbf{z},G)
    =
    \mathbb{1}\left(\sum_jG_{ij}z_j>0\right)
    $$

    indicate whether at least one peer was assigned to the program. Aronow and Samii order the three positions in $d_{zqs}$ as own assignment, peer-assignment exposure, and program-school assignment:

    | Condition | Own Assignment | At Least One Peer Assigned | Program School | What the Student Experiences |
    |---|---:|---:|---:|---|
    | $d_{000}$ | No | No | No | No program exposure |
    | $d_{001}$ | No | No | Yes | Program-school context only |
    | $d_{011}$ | No | Yes | Yes | Not assigned, with at least one peer assigned |
    | $d_{101}$ | Yes | No | Yes | Assigned, with no peer assigned |
    | $d_{111}$ | Yes | Yes | Yes | Assigned, with at least one peer assigned |

    The labels record direct, indirect, and school-level exposure. They do not rank students from low to high treatment dose. They name qualitatively different conditions created by the two-stage design and the friendship network.

    Only eligible students had positive probability of all five relevant conditions. Aronow and Samii therefore target 2,050 eligible students with the required support. This is not a nuisance deletion. It defines the population for which the full set of contrasts is identified by the design.

    ## Reconstruct the Published Horvitz-Thompson Results {#sec-paluck-results}

    The student-level data are restricted, so the next chunk records the published Horvitz-Thompson estimates from Aronow and Samii (2017). Each estimate compares an exposure condition with $d_{000}$, the no-program condition.

    ```{r}
    #| label: paluck-table
    paluck_ht <- data.frame(
      condition = factor(
        c("Program school only", "Not assigned; peer assigned",
          "Assigned; no peer assigned", "Assigned; peer assigned"),
        levels = rev(c(
          "Program school only", "Not assigned; peer assigned",
          "Assigned; no peer assigned", "Assigned; peer assigned"
        ))
      ),
      code = c("d001", "d011", "d101", "d111"),
      estimate = c(0.057, 0.154, 0.305, 0.299),
      se = c(0.062, 0.029, 0.141, 0.020),
      conf.low = c(-0.065, 0.097, 0.029, 0.260),
      conf.high = c(0.179, 0.211, 0.581, 0.338)
    )

    transform(
      paluck_ht,
      estimate_pp = round(100 * estimate, 1),
      interval_pp = sprintf("[%.1f, %.1f]", 100 * conf.low, 100 * conf.high)
    )[, c("code", "condition", "estimate_pp", "interval_pp")]
    ```

    ```{r}
    #| label: paluck-plot
    #| fig-cap: "Published Horvitz-Thompson estimates from Aronow and Samii (2017). Every point compares the named assignment-exposure condition with eligible students in control schools."
    ggplot(paluck_ht, aes(x = estimate, y = condition)) +
      geom_vline(xintercept = 0, color = "grey70", linewidth = 0.7) +
      geom_errorbarh(
        aes(xmin = conf.low, xmax = conf.high),
        height = 0.12,
        color = msu_green,
        linewidth = 0.9
      ) +
      geom_point(size = 3.5, color = msu_kelly) +
      scale_x_continuous(
        labels = function(x) paste0(round(100 * x), " pp"),
        limits = c(-0.10, 0.62)
      ) +
      labs(
        x = "Change in reported wristband wearing relative to no program exposure",
        y = NULL,
        title = "Published Wristband-Reporting Contrasts",
        subtitle = "Published design-based estimates with 95% intervals"
      )
    ```

    The program-school context without direct or peer-assignment exposure is estimated to raise reported wristband wearing by 5.7 percentage points, but the interval is wide and crosses zero. An eligible student who was not assigned but had at least one peer assigned is estimated to be 15.4 percentage points more likely to report wearing the wristband than an eligible student in a control school. Assignment to the program is associated with an increase of about 30 percentage points, whether or not the student also had a peer assigned.

    ## Make the Comparison Match the Sentence {#sec-paluck-interpretation}

    The 15.4-point $d_{011}-d_{000}$ contrast is often described as indirect exposure, but it changes two things at once: the student moves from a control school into a program school **and** gains a peer assigned to the program. It is not a peer-assignment effect holding school context fixed.

    The point contrast that holds program-school context fixed is

    $$
    \widehat{\mu}(d_{011})-\widehat{\mu}(d_{001})
    =
    0.154-0.057
    =
    0.097.
    $$

    That is a 9.7-point difference between having and not having a peer assigned among students who were themselves not assigned in program schools. We cannot construct its confidence interval by subtracting the two published standard errors because the estimates are correlated. We would need their estimated covariance.

    Similarly,

    $$
    \widehat{\mu}(d_{111})-\widehat{\mu}(d_{011})
    =
    0.299-0.154
    =
    0.145
    $$

    is the point difference associated with the student's own assignment among students who have a peer assigned. Again, the point contrast is easy to calculate, while valid uncertainty requires the covariance.

    ::: {.callout-tip}
    ## A Clear Substantive Summary

    Students assigned to the program were much more likely to report wearing the program wristband. Students who were not assigned but had at least one peer assigned also reported wearing it more often than students with no program exposure. Under the published exposure mapping, wristband reporting was therefore higher beyond the students assigned directly. The design identifies contrasts between assignment-exposure conditions. It does not by itself establish the behavioral route through which peers mattered.
    :::

    ## What If the Mapping Is Wrong? {#sec-mapping-sensitivity}

    The published mapping treats these students as equally exposed:

    - A student with one peer assigned to the program and a student with six assigned peers
    - A student connected to a highly visible assigned peer and a student connected to someone rarely nominated by others
    - A student whose assigned peer named them and a student who named the assigned peer

    That simplification may be reasonable for a first analysis, but it is not innocuous. Alternatives could use the number or share of peers assigned to the program, distinguish social referents, preserve tie direction, or define exposure through best-friend rather than spent-time nominations. Each alternative changes the estimand, the support, and the assignment probabilities.

    ::: {.callout-note collapse="true"}
    ## Data and Replication Access

    The public-use study deposit is [ICPSR Study 37070](https://www.icpsr.umich.edu/web/ICPSR/studies/37070). The original replication code is archived at [Harvard Dataverse](https://doi.org/10.7910/DVN/29199). The student-level data used in the published network analysis are subject to disclosure and IRB restrictions, so they are not redistributed in this course download. The rendered table and figure above reproduce the published Aronow-Samii result table exactly.
    :::

    ::: {.brk}
    Pause and reset
    <span class="sub">We have moved from one household tie to a full exposure mapping. The next case changes the mechanism: actors respond strategically by moving activity away from monitored locations.</span>
    :::

    # Published Application 3: Do Election Observers Deter or Displace Irregularities? {#sec-ghana}

    Ichino and Schündeln (2012) study Ghana's 2008 voter-registration period. Domestic observers were deployed to discourage questionable registration practices. The central question is whether observers reduced unusual registration growth or merely pushed it into nearby electoral areas that were not assigned an observer.

    This is interference without a peer-influence story. Political party agents could communicate, move people, and redirect activity. Treatment at one electoral area could therefore change outcomes at another.

    ## The Two-Stage Randomization {#sec-ghana-design}

    The experiment covered 868 electoral areas in 39 constituencies across four regions:

    1. Within each of the four regions, constituencies were grouped into blocks using the previous NPP-NDC vote-share difference.
    2. Within each block, one constituency was assigned to treatment and two to control, producing 13 treatment and 26 control constituencies.
    3. Within treated constituencies, roughly 25% of electoral areas were randomly assigned to receive an observer visit. The analysis follows that assignment rather than conditioning on realized observer activity.

    The outcome is the proportional change in registered voters from 2004 to 2008. The exposure specification includes the focal area's own observer assignment, whether its constituency received any observers, the number of observer-assigned areas within 5 kilometers, and the number between 5 and 10 kilometers.

    <svg style="width:100%;height:auto;max-height:350px" viewBox="0 0 1400 350" role="img" aria-labelledby="walk-ghana-title walk-ghana-desc">
      <title id="walk-ghana-title">Ghana observer assignment and spatial exposure</title>
      <desc id="walk-ghana-desc">Constituency assignment determines whether focal and nearby observer assignments are possible. Program-constituency context, assignment at the focal area, and assignments in nearby distance rings enter the model for focal registration growth.</desc>
      <defs>
        <marker id="walk-ghana-arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0,0 L12,6 L0,12 z" fill="#18453B"/></marker>
      </defs>
      <rect x="25" y="118" width="310" height="100" rx="15" fill="#18453B"/>
      <text x="180" y="155" text-anchor="middle" font-size="25" font-weight="700" fill="#FFFFFF">Constituency assigned</text>
      <text x="180" y="187" text-anchor="middle" font-size="25" font-weight="700" fill="#FFFFFF">to observer program, T<tspan baseline-shift="sub" font-size="17">c</tspan></text>
      <path d="M335,152 C390,152 400,66 465,66" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-ghana-arrow)"/>
      <path d="M335,168 L465,168" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-ghana-arrow)"/>
      <path d="M335,184 C390,184 400,270 465,270" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-ghana-arrow)"/>
      <rect x="480" y="20" width="330" height="92" rx="15" fill="#EFF6E8" stroke="#7BBD00" stroke-width="4"/>
      <text x="645" y="57" text-anchor="middle" font-size="25" font-weight="700" fill="#18453B">Program-constituency</text>
      <text x="645" y="88" text-anchor="middle" font-size="23" fill="#000000">context</text>
      <rect x="480" y="122" width="330" height="92" rx="15" fill="#E8F2F0" stroke="#008208" stroke-width="4"/>
      <text x="645" y="159" text-anchor="middle" font-size="25" font-weight="700" fill="#18453B">Observer assigned here, T<tspan baseline-shift="sub" font-size="17">i</tspan></text>
      <text x="645" y="190" text-anchor="middle" font-size="23" fill="#000000">Own-area assignment</text>
      <rect x="480" y="224" width="330" height="92" rx="15" fill="#F2F2F2" stroke="#535054" stroke-width="4"/>
      <text x="645" y="260" text-anchor="middle" font-size="25" font-weight="700" fill="#18453B">Observers assigned nearby</text>
      <text x="645" y="291" text-anchor="middle" font-size="23" fill="#000000">Distance-ring exposure, N<tspan baseline-shift="sub" font-size="17">i</tspan></text>
      <path d="M810,66 C920,66 950,139 1050,151" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-ghana-arrow)"/>
      <path d="M810,168 L1050,168" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-ghana-arrow)"/>
      <path d="M810,270 C920,270 950,197 1050,185" fill="none" stroke="#18453B" stroke-width="5" marker-end="url(#walk-ghana-arrow)"/>
      <rect x="1065" y="116" width="310" height="104" rx="16" fill="#FFFFFF" stroke="#18453B" stroke-width="5"/>
      <text x="1220" y="155" text-anchor="middle" font-size="25" font-weight="700" fill="#18453B">Registration growth</text>
      <text x="1220" y="190" text-anchor="middle" font-size="25" font-weight="700" fill="#18453B">at focal area, Y<tspan baseline-shift="sub" font-size="17">i</tspan></text>
      <text x="925" y="337" text-anchor="middle" font-size="20" font-weight="700" fill="#535054">The fitted model also includes interactions, local-density terms, and randomization blocks.</text>
    </svg>

    This is a spatial assignment and exposure schematic. It shows which randomized conditions enter the fitted comparison. It does not prove that deterrence or displacement produced the pattern.

    The released data are included with this walkthrough:

    ```{r}
    #| label: ghana-load
    ghana <- read.delim(
      "ghana_observers.tab",
      stringsAsFactors = FALSE,
      check.names = FALSE
    )

    stopifnot(
      nrow(ghana) == 868,
      length(unique(ghana$constituencyname06)) == 39
    )

    c(
      electoral_areas = nrow(ghana),
      constituencies = length(unique(ghana$constituencyname06)),
      treatment_constituencies = length(unique(
        ghana$constituencyname06[ghana$Tcon == 1]
      )),
      areas_assigned_observer = sum(ghana$Tela)
    )
    ```

    ## What the Published Model Estimates {#sec-ghana-estimation}

    The main specification can be written as

    $$
    \begin{aligned}
    Y_{ij}
    =\;&
    \beta_0
    +\beta_1T_{ij}
    +\beta_2T_i^C
    +\beta_3N_{ij}^{0-5}
    +\beta_4N_{ij}^{5-10}\\
    &+\beta_5T_{ij}N_{ij}^{0-5}
    +\beta_6T_{ij}N_{ij}^{5-10}
    +\text{local-density terms}
    +\text{block fixed effects}
    +\varepsilon_{ij},
    \end{aligned}
    $$

    where:

    - $Y_{ij}$ is registration growth in electoral area $j$ of constituency $i$.
    - $T_{ij}$ indicates that the focal electoral area was assigned an observer.
    - $T_i^C$ indicates that the constituency was assigned to the observer program.
    - $N_{ij}^{0-5}$ counts assigned observer areas within 5 kilometers.
    - $N_{ij}^{5-10}$ counts assigned observer areas between 5 and 10 kilometers.
    - The local-density terms distinguish treatment exposure from simply being in a place with many nearby electoral areas.
    - Block fixed effects respect the first-stage randomization.

    The coefficients are estimated by OLS. The uncertainty calculation allows residuals from electoral areas in the same constituency to move together.

    ```{r}
    #| label: ghana-fit
    ghana_fit <- lm(
      percchangeregELA0804 ~
        Tcon + Tela +
        assignedTin5C + assignedTin0510C +
        Tela:assignedTin5C + Tela:assignedTin0510C +
        totalELAin5C + totalELAin0510C +
        Tela:totalELAin5C + Tela:totalELAin0510C +
        factor(block),
      data = ghana
    )

    ghana_vcov <- sandwich::vcovCL(
      ghana_fit,
      cluster = ghana$constituencyname06,
      type = "HC1",
      cadjust = TRUE
    )
    ghana_coefs <- lmtest::coeftest(ghana_fit, vcov. = ghana_vcov)

    key_terms <- c("Tcon", "Tela", "assignedTin5C", "assignedTin0510C")
    data.frame(
      term = key_terms,
      estimate = round(ghana_coefs[key_terms, "Estimate"], 3),
      cluster_se = round(ghana_coefs[key_terms, "Std. Error"], 3)
    )
    ```

    This reproduces Table 3, Column 3 of Ichino and Schündeln (2012). Because the model contains interactions, these are reference-cell coefficients rather than universal effects. The focal-area coefficient of about -0.035 is the own-area assignment contrast when the two assigned-area counts and the interacted local-density counts are zero. The treatment-constituency coefficient of about -0.041 is the program-constituency contrast for an area not assigned an observer at those same reference values. The +0.027 coefficient is the slope for one additional observer-assigned area within 5 kilometers when the focal area is not assigned an observer.

    ```{r}
    #| label: ghana-key-plot
    #| fig-cap: "Replication of three key coefficients from Ichino and Schündeln (2012). The outcome is proportional registration growth from 2004 to 2008. Intervals use constituency-clustered standard errors and a t critical value with 38 degrees of freedom."
    ghana_plot <- data.frame(
      term = factor(
        c("Own-area assignment at reference values",
          "Constituency assigned to observer program",
          "Nearby assignment slope for an unassigned focal area"),
        levels = rev(c(
          "Own-area assignment at reference values",
          "Constituency assigned to observer program",
          "Nearby assignment slope for an unassigned focal area"
        ))
      ),
      estimate = unname(ghana_coefs[c("Tela", "Tcon", "assignedTin5C"), "Estimate"]),
      se = unname(ghana_coefs[c("Tela", "Tcon", "assignedTin5C"), "Std. Error"])
    )
    ghana_critical <- qt(
      0.975,
      df = length(unique(ghana$constituencyname06)) - 1
    )
    ghana_plot$conf.low <- ghana_plot$estimate - ghana_critical * ghana_plot$se
    ghana_plot$conf.high <- ghana_plot$estimate + ghana_critical * ghana_plot$se

    ggplot(ghana_plot, aes(x = estimate, y = term)) +
      geom_vline(xintercept = 0, color = "grey70", linewidth = 0.7) +
      geom_errorbarh(
        aes(xmin = conf.low, xmax = conf.high),
        height = 0.12,
        color = msu_green,
        linewidth = 0.9
      ) +
      geom_point(size = 3.5, color = msu_kelly) +
      scale_x_continuous(
        labels = function(x) paste0(round(100 * x, 1), " pp"),
        limits = c(-0.10, 0.07)
      ) +
      labs(
        x = "Change in registration growth",
        y = NULL,
        title = "Deterrence Here, Displacement Nearby",
        subtitle = "Released-data replication"
      )
    ```

    ## Put the Nearby-Assignment Coefficients Back Into the Intervention {#sec-ghana-interpretation}

    The most interpretable fitted comparison asks how predicted registration growth changes with one additional observer-assigned area within 5 kilometers, holding the total number of nearby areas and the other model terms fixed. Under the constrained two-stage design, this conditional slope should not be described as a literal isolated assignment toggle. For a focal area not assigned an observer, the fitted slope is $\beta_3$. For a focal area assigned an observer, the interaction makes it $\beta_3+\beta_5$.

    ```{r}
    #| label: ghana-nearby-contrasts
    b <- coef(ghana_fit)
    L_nearby <- matrix(
      0,
      nrow = 2,
      ncol = length(b),
      dimnames = list(
        c("Focal area not assigned", "Focal area assigned"),
        names(b)
      )
    )
    L_nearby[1, "assignedTin5C"] <- 1
    L_nearby[2, c("assignedTin5C", "Tela:assignedTin5C")] <- 1
    nearby_est <- as.vector(L_nearby %*% b)
    nearby_se <- sqrt(diag(L_nearby %*% ghana_vcov %*% t(L_nearby)))
    nearby_critical <- qt(
      0.975,
      df = length(unique(ghana$constituencyname06)) - 1
    )
    data.frame(
      focal_area = rownames(L_nearby),
      difference_pp = round(100 * nearby_est, 1),
      lower_pp = round(100 * (nearby_est - nearby_critical * nearby_se), 1),
      upper_pp = round(100 * (nearby_est + nearby_critical * nearby_se), 1)
    )
    ```

    For an unassigned focal area, one additional observer-assigned area within 5 kilometers corresponds to 2.7 percentage points more fitted registration growth, with a 95% interval of about [1.0, 4.4], holding the number of nearby electoral areas and the other model terms fixed. For a focal area already assigned an observer, the corresponding fitted slope is 1.7 points, with an interval of about [-1.2, 4.7]. The second comparison adds the nearby main effect and the focal-by-nearby interaction.

    The positive nearby-assignment slope for unassigned focal areas is consistent with some activity shifting toward nearby locations, while the less precise slope for already assigned areas does not show a clear additional change. This is a conditional comparison within the published linear distance-ring model, not a national saturation-policy effect and not direct observation of displacement.

    []{#sec-ghana-caution}

    ::: {.callout-caution}
    ## Keep the Claim at the Level of the Outcome

    The experiment can tell us how observer assignment changed **registration growth** in the sampled areas under the published exposure model. It does not directly observe fraud. Interpreting unusually high growth as irregular registration uses additional evidence about the 2008 process. The analysis also assumes the chosen distance rings capture the relevant interference, the linear exposure-response model is adequate, and the 39 constituencies provide a reasonable basis for clustered inference. The authors supplement the regression with a Fisher randomization test for the joint null, which gives a two-sided randomization p-value of 0.03.
    :::

    ## Why the Naive Treatment Comparison Is Wrong {#sec-ghana-naive}

    Suppose we compare areas assigned and not assigned an observer but omit nearby assignment exposure. A nearby observer assignment can change registration growth and is possible only inside program constituencies. Its contribution is then folded into the focal-area and constituency coefficients. Randomization does not rescue a regression that asks the wrong exposure question.

    The lesson is broader than this application: if actors can redirect behavior around an intervention, the exposure mapping must represent where the redirected behavior can go.

    # Published Application 4: Observational Peer Effects and Hidden Selection {#sec-egami}

    The first three applications use randomized assignment. Many network questions do not. Egami and Tchetgen Tchetgen (2024) ask whether a one-point increase in friends' average baseline GPA raises a student's later GPA in the Add Health network.

    A conventional regression can adjust for measured student characteristics and school fixed effects, but friends select one another and share environments. The positive association could therefore reflect unmeasured ambition, family resources, course placement, or other common causes rather than a causal peer effect.

    ## A Placebo Check Is the Starting Point, Not the Estimator {#sec-negative-controls}

    A basic negative control is often used as a placebo check. Researchers choose a variable that should not plausibly cause the outcome but could be exposed to the same hidden selection or shared environment. If it still predicts the outcome, the analysis has found a warning that unmeasured bias remains. In this application, friends' headaches provide that intuition: friends' headaches should not directly improve a student's GPA, but they may reflect the same social sorting and shared context that complicate the friends' GPA comparison.

    Egami and Tchetgen Tchetgen (2024) go farther than this diagnostic. They use one negative-control exposure together with one negative-control outcome to learn about hidden confounding and adjust the peer-effect estimate. This is a specialized double-negative-control estimator, not a regression that simply adds headaches as another control variable.

    | Role | Variable in the application | What it contributes |
    |---|---|---|
    | Main exposure, $A$ | Friends' average baseline GPA | The peer characteristic whose effect is being studied |
    | Outcome, $Y$ | Student's later GPA | The academic outcome |
    | Negative-control exposure, $Z$ | Friends' headaches or peers-of-peers' baseline GPA | Information about hidden friendship selection and shared context |
    | Negative-control outcome, $W$ | Student's own baseline GPA | An earlier outcome that the later peer exposure cannot cause |

    The two controls satisfy different proposed exclusion restrictions. The outcome control may predict the later outcome, and the exposure control may be associated with friends' GPA. What is ruled out is an effect of friends' baseline GPA on the student's earlier GPA and a direct effect of the negative-control exposure on the student's earlier or later GPA after conditioning on friends' GPA, latent confounding, measured covariates, and the network.

    <svg style="width:100%;height:auto;max-height:390px" viewBox="0 0 1400 390" role="img" aria-labelledby="walk-egami-title walk-egami-desc">
      <title id="walk-egami-title">Double-negative-control causal diagram</title>
      <desc id="walk-egami-desc">Unmeasured network confounding points to the negative-control exposure, friends' baseline GPA, the student's later GPA, and the student's baseline GPA. The negative-control exposure may predict friends' GPA, and baseline GPA may predict later GPA. The target arrow is from friends' baseline GPA to later GPA. Exclusions rule out effects from friends' baseline GPA to the student's baseline GPA and direct effects from the negative-control exposure to later GPA or baseline GPA.</desc>
      <defs>
        <marker id="walk-egami-arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0,0 L12,6 L0,12 z" fill="#535054"/></marker>
        <marker id="walk-egami-target-arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M0,0 L12,6 L0,12 z" fill="#008208"/></marker>
      </defs>
      <rect x="440" y="16" width="520" height="72" rx="15" fill="#535054"/>
      <text x="700" y="45" text-anchor="middle" font-size="23" font-weight="700" fill="#FFFFFF">Unmeasured network confounding</text>
      <text x="700" y="73" text-anchor="middle" font-size="19" fill="#FFFFFF">U: hidden selection and shared context</text>
      <path d="M570,88 C500,125 248,125 205,176" fill="none" stroke="#535054" stroke-width="4" marker-end="url(#walk-egami-arrow)"/>
      <path d="M650,88 C625,125 575,125 550,176" fill="none" stroke="#535054" stroke-width="4" marker-end="url(#walk-egami-arrow)"/>
      <path d="M750,88 C775,125 825,125 850,176" fill="none" stroke="#535054" stroke-width="4" marker-end="url(#walk-egami-arrow)"/>
      <path d="M830,88 C900,125 1152,125 1195,176" fill="none" stroke="#535054" stroke-width="4" marker-end="url(#walk-egami-arrow)"/>
      <rect x="35" y="185" width="340" height="108" rx="15" fill="#F2F2F2" stroke="#535054" stroke-width="4"/>
      <text x="205" y="217" text-anchor="middle" font-size="23" font-weight="700" fill="#18453B">Exposure control, Z</text>
      <text x="205" y="249" text-anchor="middle" font-size="20" fill="#000000">Peers-of-peers GPA</text>
      <text x="205" y="277" text-anchor="middle" font-size="20" fill="#000000">or peers' headaches</text>
      <rect x="400" y="185" width="300" height="108" rx="15" fill="#18453B"/>
      <text x="550" y="223" text-anchor="middle" font-size="23" font-weight="700" fill="#FFFFFF">Focal exposure, A</text>
      <text x="550" y="256" text-anchor="middle" font-size="20" fill="#FFFFFF">Friends' average</text>
      <text x="550" y="282" text-anchor="middle" font-size="20" fill="#FFFFFF">baseline GPA</text>
      <rect x="735" y="185" width="300" height="108" rx="15" fill="#E8F2F0" stroke="#008208" stroke-width="4"/>
      <text x="885" y="223" text-anchor="middle" font-size="23" font-weight="700" fill="#18453B">Outcome, Y</text>
      <text x="885" y="256" text-anchor="middle" font-size="20" fill="#000000">Student's later</text>
      <text x="885" y="282" text-anchor="middle" font-size="20" fill="#000000">GPA</text>
      <rect x="1070" y="185" width="295" height="108" rx="15" fill="#EFF6E8" stroke="#7BBD00" stroke-width="4"/>
      <text x="1218" y="217" text-anchor="middle" font-size="22" font-weight="700" fill="#18453B">Outcome control, W</text>
      <text x="1218" y="249" text-anchor="middle" font-size="20" fill="#000000">Student's own</text>
      <text x="1218" y="277" text-anchor="middle" font-size="20" fill="#000000">baseline GPA</text>
      <path d="M375,239 L385,239" fill="none" stroke="#535054" stroke-width="5" marker-end="url(#walk-egami-arrow)"/>
      <path d="M700,239 L720,239" fill="none" stroke="#008208" stroke-width="7" marker-end="url(#walk-egami-target-arrow)"/>
      <path d="M1070,239 L1050,239" fill="none" stroke="#535054" stroke-width="5" marker-end="url(#walk-egami-arrow)"/>
      <text x="700" y="333" text-anchor="middle" font-size="21" font-weight="700" fill="#535054">Required exclusions: A does not affect W; Z does not directly affect Y or W.</text>
      <text x="700" y="364" text-anchor="middle" font-size="19" fill="#535054">Bridge and relevance assumptions are additional and cannot be read from the arrows alone.</text>
    </svg>

    - **Negative-control outcome, $W$:** the student's own baseline GPA. It is an outcome-inducing proxy for hidden factors that also shape later GPA. Its validity requires friends' baseline GPA, $A$, not to affect it under the proposed model.
    - **Negative-control exposure, $Z$:** either peers-of-peers' baseline GPA or peers' baseline headache levels. It is an exposure-inducing proxy that may predict friends' GPA. Conditional on $A$, latent confounding, measured covariates, and the network, it must not directly affect the student's later GPA or baseline GPA.

    In less technical terms, hidden selection should leave a fingerprint in both controls. Under the exclusions, a relevance condition formalized through completeness, and the bridge assumptions, those fingerprints identify a bridge used to adjust the peer-exposure contrast. The controls do not estimate the latent confounder $U$ for each student or directly reveal which share of the conventional association is selection or influence.

    ## How GMM Estimates the Confounding Bridge {#sec-negative-gmm}

    - **Confounding bridge:** a function estimated by generalized method of moments that uses the proxy relationships to adjust the focal peer-exposure contrast for latent confounding.
    - **Network-HAC uncertainty:** a covariance estimator that allows sufficiently close observations in the network to remain dependent.

    At a high level, GMM proposes values for the bridge parameters, calculates the sample relationships that the model says should equal zero, and chooses the values that make those mismatches collectively as small as possible. It minimizes a weighted moment mismatch. It does not maximize a likelihood or estimate a latent position.

    The bridge relation can be written as

    $$
    E[Y\mid Z,A,X,G]
    =
    E\{h(W,A,X,G)\mid Z,A,X,G\}.
    $$

    GMM estimates a parameterized version $h(W,A,X,G;\theta)$ through moment conditions such as

    $$
    E\!\left[
    q(Z,A,X,G)
    \{Y-h(W,A,X,G;\theta)\}
    \right]=0.
    $$

    The function $q(\cdot)$ supplies observed transformations used as instruments for the moments. GMM estimates the bridge parameters $\theta$; it never estimates each student's unobserved $U$.

    ## Compare the Published Estimates {#sec-egami-results}

    The Add Health data are restricted, so the next chunk records the published estimates and intervals.

    ```{r}
    #| label: egami-table
    egami_results <- data.frame(
      method = factor(
        c(
          "Conventional adjusted regression",
          "Negative control: peers of peers' GPA",
          "Negative control: peers' headaches"
        ),
        levels = rev(c(
          "Conventional adjusted regression",
          "Negative control: peers of peers' GPA",
          "Negative control: peers' headaches"
        ))
      ),
      estimate = c(0.176, 0.033, 0.078),
      conf.low = c(0.147, -0.063, -0.280),
      conf.high = c(0.206, 0.129, 0.437)
    )

    egami_results
    ```

    ```{r}
    #| label: egami-plot
    #| fig-cap: "Published Add Health estimates from Egami and Tchetgen Tchetgen (2024). The estimand is the change in a student's later GPA associated with a one-point intervention on friends' average baseline GPA."
    ggplot(egami_results, aes(x = estimate, y = method)) +
      geom_vline(xintercept = 0, color = "grey70", linewidth = 0.7) +
      geom_errorbarh(
        aes(xmin = conf.low, xmax = conf.high),
        height = 0.12,
        color = msu_green,
        linewidth = 0.9
      ) +
      geom_point(size = 3.5, color = msu_kelly) +
      scale_x_continuous(
        limits = c(-0.32, 0.48),
        breaks = c(-0.3, -0.1, 0, 0.1, 0.2, 0.3, 0.4),
        labels = function(x) formatC(x, format = "f", digits = 1)
      ) +
      labs(
        x = "Estimated change in the student's later GPA",
        y = NULL,
        title = "Negative Controls Weaken the Association",
        subtitle = "Published estimates with 95% intervals"
      )
    ```

    The conventional adjusted regression estimates that a one-point increase in friends' average GPA corresponds to a 0.176-point increase in the student's later GPA. Each double-negative-control estimate pairs the student's baseline GPA as the outcome control with one of two alternative exposure controls. The estimates are much smaller and substantially less precise. The reported relevance statistic is strong for peers-of-peers' GPA ($F=81.44$) and weak for peers' headaches ($F=4.76$), which helps explain the extremely wide interval for the headache-based estimate. This does not establish that the peer effect is zero. It shows that the large, precise regression association is not stable when the analysis uses additional assumptions to probe hidden network confounding.

    The reported $F$ statistics are strength checks for the fitted linear proxy relationships. They do not prove either exclusion restriction, validate the negative controls, or establish the unrestricted completeness condition used in the identification argument.

    ## The Negative Controls Need a Defense {#sec-negative-assumptions}

    This method is not an observational substitute for randomization. Its causal interpretation requires:

    1. After conditioning on measured covariates, the network, and latent confounding, friends' baseline GPA is independent of the student's potential later GPA. This is the latent-ignorability condition, $Y(a)\perp A\mid U,X,G$.
    2. The intervention on friends' average GPA is well defined, and the observed outcome is consistent with that exposure.
    3. The negative-control outcome is not affected by the focal peer exposure, including contemporaneously at baseline.
    4. Conditional on the focal exposure, latent confounding, measured covariates, and the network, the negative-control exposure has no direct effect on either the later GPA outcome or the negative-control outcome.
    5. The exposure control remains sufficiently informative about the outcome control after conditioning on the focal exposure and measured covariates. This relevance requirement is formalized through a completeness condition for identifying the bridge.
    6. The confounding-bridge model is sufficiently informative and correctly specified.
    7. The network timing and dependence conditions used for the network-HAC calculation are credible.

    Those are substantive assumptions. A reader should be able to disagree with them after seeing them stated clearly.

    ## Can Latent Variable Models Help? {#sec-latent-adjustment}

    Friends can resemble one another for two different reasons. Similar people may become friends, and friends may later influence one another. Shalizi and Thomas (2011) show why observational network data usually cannot separate those stories on their own.

    A latent variable network model asks whether the larger pattern of ties contains clues about the hidden traits that helped form those ties. If students become friends partly because of an unmeasured trait such as academic orientation, that trait may leave a recognizable footprint in the friendship network. Researchers can estimate latent groups or positions from the network and include that recovered structure when comparing students' outcomes.

    McFowland and Shalizi (2023) develop this strategy for networks generated by particular blockmodel or continuous latent-space processes. Under their assumptions, the inferred latent structure can capture enough of the hidden homophily to improve peer-influence estimation.

    The important limit is simple: an estimated latent position is not a direct measurement of motivation, family resources, or another omitted cause. The approach helps only when the network model recovers the part of hidden similarity that matters for both friendship and the outcome. A latent model can improve prediction without making a causal comparison valid.

    ::: {.callout-note collapse="true"}
    ## What Must Be True for Latent Adjustment to Help?

    The hidden cause of friendship must leave enough information in the observed network for the chosen latent model to recover it. The recovered groups or positions must capture the part of that hidden cause that also affects the outcome. The outcome model must use that structure correctly, and uncertainty from estimating the latent structure should be carried into the final peer-effect estimate. Fitting an AME model, blockmodel, latent-space model, or embedding does not automatically satisfy these conditions.
    :::

    # What the Earlier Network Models Do Not Supply {#sec-boundary}

    Days 9 through 12 gave us stronger ways to represent dependence. None creates a randomized assignment mechanism:

    | Method | What It Helps With | What It Does Not Establish by Itself |
    |---|---|---|
    | SRM or AME | Actor heterogeneity and latent relational dependence in the outcome model | That an observed predictor is independent of omitted causes |
    | Blockmodel | Discrete role structure and role-to-role tie patterns | That block membership can be treated as randomly assigned |
    | ERGM | Dependence in the probability of a graph | A causal effect of changing one network statistic while holding the rest fixed |
    | SAOM | A model of network and behavior change between waves | Random assignment of peers or behavior |
    | Spatial or network lag | Dependence between connected outcomes | A causal peer effect without a separate identification argument |
    | DCR or network-HAC | More credible uncertainty under a declared dependence pattern | A corrected coefficient, an exposure mapping, or causal identification |

    The distinction is the same across these methods. Representing network dependence can strengthen a statistical model, but a causal interpretation still needs a credible comparison and explicit assumptions about the omitted causes of both ties and outcomes.

    <span id="sec-dcr"></span>

    ::: {.callout-note collapse="true"}
    ## Where Dyadic Cluster-Robust Inference Fits

    Carlson, Incerti, and Aronow (2024) reanalyzed 691 key explanatory variables across 174 models from 22 studies in *International Organization*. The inverse-study-frequency-weighted average ratio of dyadic-cluster-robust to originally reported standard errors was 1.74, while roughly 68% of originally significant findings remained significant. That is important evidence about overstated precision, but it is a different question from causal identification. DCR leaves the coefficient fixed and recalculates its covariance when dyads sharing an actor may be dependent.

    Network-HAC addresses a related but different data structure. It allows outcomes for units that are close in a graph to remain dependent under an assumption that this dependence weakens with network distance. DCR is organized around dyadic rows sharing endpoints; network-HAC is organized around units and graph distance. Both change uncertainty rather than the fitted coefficient, exposure mapping, or identification strategy.
    :::

    # What Can We Say After the Analysis? {#sec-claims}

    The wording should match the source of identification:

    ## Nickerson

    > Among successfully contacted two-voter households in the Denver and Minneapolis experiments, turnout was about six percentage points higher for the other household member under the voting-message assignment than under the recycling-message assignment. Interpreting that difference as a contact-conditional intervention spillover requires successful contact to be unaffected by assignment, or an equivalent comparability condition. It is not by itself an estimate of one person's vote causing the other person's vote.

    ## Aronow and Samii

    > Among students eligible for all exposure conditions, students who were not assigned to the program but had at least one peer assigned were about 15 percentage points more likely to report wearing the program wristband than eligible students in control schools. The point difference between peer-exposed and unexposed students who were themselves not assigned within program schools was about ten points, although uncertainty for that derived contrast requires the covariance between the two estimates.

    ## Ichino and Schündeln

    > Within the sampled constituencies and under the published linear distance-ring exposure model, assignment of an observer reduced registration growth at the focal area at the stated reference values, while the positive nearby-assignment slope is consistent with some activity moving toward nearby areas. Evaluating only locations assigned an observer would therefore give an incomplete account of the intervention's local effect.

    ## Egami and Tchetgen Tchetgen

    > The positive association between friends' earlier GPA and a student's later GPA became much smaller and less precise under the proposed negative-control strategies. A causal interpretation therefore depends on the negative-control and confounding-bridge assumptions, not on the conventional adjusted regression alone.

    # A Reusable Analysis Sequence {#sec-sequence}

    For your own project, work through these steps in order:

    1. **State the intervention or exposure as an action.** What is assigned, changed, encouraged, monitored, or withheld?
    2. **Name the unit and outcome.** Whose outcome could change?
    3. **Draw an indexed causal path or exposure schematic appropriate to the design.** Through which ties, distances, groups, or institutions can another unit's assignment matter?
    4. **Define the exposure mapping.** Which parts of the full assignment vector are assumed to matter?
    5. **Name the contrast.** Direct, spillover, total, or policy effect?
    6. **Check support.** Can each target unit reach both exposure conditions under the design?
    7. **Match the estimator to the design.** Known randomization probabilities, an observational identification strategy, or only an associational model?
    8. **Use a dependence-aware uncertainty calculation.** Exposure dependence, clusters, or network distance must match the study.
    9. **Interpret the outcome that was actually measured.** Wristband wearing is not conflict reduction; registration growth is not directly observed fraud.
    10. **State the remaining assumption.** The strongest remaining assumption belongs in the result paragraph, not only in an appendix.

    # Exercises {#sec-exercises}

    ## 1. Change the Nickerson Estimand

    Suppose the policy question is the effect of assigning the voting rather than recycling script among successfully contacted households on whether **either** registered voter turns out, rather than the effect on each person separately. Define that household-level outcome, write the treatment contrast, explain why the direct/spillover decomposition is no longer the estimand, and state the additional contact-selection condition needed for a causal interpretation.

    ## 2. Redesign the Paluck Exposure Mapping

    Replace “at least one peer assigned to the program” with the proportion of a student's peers who are assigned. Define the exposure for isolates, explain what happens to support for low-degree and high-degree students, and identify one reason the new mapping could be more credible and one reason it could be harder to estimate.

    ## 3. Evaluate Observer Deployment

    Using the Ghana coefficients, compare a sparse policy that observes isolated locations with a dense policy that places observers near one another. Explain why the published local coefficients cannot be extrapolated mechanically to observing every electoral area.

    ## 4. Audit Your Own Causal Sentence

    Write the strongest causal sentence you would like to make with your project. Underline the treatment, outcome, exposure mapping, target population, and identifying assumption. If one of those objects is missing, rewrite the sentence as an association that the current design can support.

    # Reading {#sec-reading}

    - **Nickerson (2008), "Is voting contagious? Evidence from two field experiments," *American Political Science Review* 102(1):49-57.** A two-person network that makes the direct and spillover outcomes unusually clear.
    - **Aronow and Samii (2017), "Estimating average causal effects under general interference, with application to a social network experiment," *Annals of Applied Statistics* 11(4):1912-1947.** The formal exposure-mapping and design-based framework used for the school experiment.
    - **Paluck, Shepherd, and Aronow (2016), "Changing climates of conflict: A social network experiment in 56 schools," *Proceedings of the National Academy of Sciences* 113(3):566-571.** The substantive design behind the school-network application.
    - **Ichino and Schündeln (2012), "Deterring or displacing electoral irregularities? Spillover effects of observers in a randomized field experiment in Ghana," *Journal of Politics* 74(1):292-307.** A strategic-displacement application with a two-stage design.
    - **Egami and Tchetgen Tchetgen (2024), "Identification and estimation of causal peer effects using double negative controls for unmeasured network confounding," *Journal of the Royal Statistical Society, Series B* 86(2):487-511.** An observational identification strategy and a useful example of how much the result can change.
    - **Shalizi and Thomas (2011), "Homophily and contagion are generically confounded in observational social network studies," *Sociological Methods & Research* 40(2):211-239.** The identification problem that observational peer-effect studies must answer.
    - **McFowland and Shalizi (2023), "Estimating causal peer influence in homophilous social networks by inferring latent locations," *Journal of the American Statistical Association* 118(541):707-718.** A strategy that uses specified latent network structure to adjust for hidden homophily under explicit assumptions.
    - **Carlson, Incerti, and Aronow (2024), "Dyadic clustering in international relations," *Political Analysis* 32(2):186-198.** Evidence that dependence-aware uncertainty can change precision without creating causal identification.

    ```{r}
    #| label: session
    #| code-fold: true
    #| code-summary: "Session information"
    sessionInfo()
    ```