Collective Action: How Groups Mobilize to Produce Social Change

Last Updated May 20, 2026

Collective action is the coordinated effort of people who act together to transform shared grievance, identity, moral concern, or political demand into organized social change. Within social psychology, collective action research examines why individuals participate in protests, campaigns, strikes, boycotts, petitions, mutual-aid networks, workplace organizing, digital mobilization, community advocacy, and other forms of coordinated action directed toward institutions, norms, policies, or systems of power.

Collective action matters because social change rarely emerges from isolated dissatisfaction alone. Individuals may experience inequality, exclusion, exploitation, discrimination, or institutional failure privately, but public change usually requires shared interpretation, collective identity, perceived injustice, emotional energy, coordination, resources, and some belief that action can matter. Social psychology helps explain how private grievance becomes public demand, how group identity turns concern into commitment, and how networks transform isolated actors into organized movements.

This article examines collective action as both psychological and institutional. It connects identity, injustice, moral outrage, efficacy, network support, participation cost, free-riding, digital mobilization, repression, democratic accountability, and long-term social change. It also treats collective action with moral seriousness but not romantic simplification: the same psychological mechanisms that can support emancipatory movements can also support exclusionary, authoritarian, violent, or reactionary mobilization.

Restrained institutional research illustration showing collective action as a cycle of issue recognition, social networks, communication, coordination, resources, leadership, identity, strategy, action, institutional response, and social change.
Collective action mobilizes groups through shared issues, networks, communication, coordination, resources, leadership, identity, strategy, public action, institutional response, and social change.

Collective action connects closely to other topics in this series, including social identity theory, social norms, group polarization, intergroup conflict, prosocial behavior, conformity and social influence, and obedience to authority. Together, these frameworks help explain how people move from perception of injustice to shared identity, from shared identity to mobilization, and from mobilization to institutional pressure.


What is collective action?

Collective action occurs when individuals coordinate their behavior to pursue goals that would be difficult or impossible to achieve alone. These goals may involve policy change, civil rights, labor protections, environmental regulation, democratic accountability, community safety, public health, institutional reform, mutual aid, or resistance to domination. The action may be formal or informal, legal or illegal, institutional or disruptive, online or offline, symbolic or materially costly.

Examples include:

  • workers organizing for safer conditions or fair wages;
  • residents mobilizing against environmental harm;
  • students organizing around educational policy;
  • communities protesting discrimination or police violence;
  • citizens defending voting rights or democratic institutions;
  • patients and families organizing for medical recognition or access;
  • tenants coordinating against displacement;
  • digital communities amplifying campaigns, fundraising, or public testimony;
  • mutual-aid groups coordinating care where institutions fail;
  • movements challenging exclusion, exploitation, or state violence.

The defining feature is not simply that many people act at the same time. It is that action becomes coordinated around shared interpretation, shared stakes, and shared objectives. Collective action therefore links psychology to organization. It asks how people come to understand themselves as part of a “we,” how they interpret conditions as unjust, how they believe coordinated effort can matter, and how social networks convert motivation into participation.

Collective action is analytically important because it connects individual cognition and emotion to structural transformation. It shows how people move from private experience to public agency, from grievance to mobilization, and from mobilization to institutional change or institutional conflict.

Back to top ↑


Why collective action is a social-psychological problem

Collective action is not explained by hardship alone. Many people experience inequality, frustration, or institutional failure without participating in collective mobilization. Social psychology therefore asks why some grievances become organized while others remain private, why some people join movements while others remain spectators, and why some movements endure while others dissipate.

Several questions define the field:

  • How do people come to see a problem as shared rather than individual?
  • How does group identity make collective outcomes personally meaningful?
  • How does injustice become morally urgent?
  • When does anger lead to action rather than withdrawal?
  • Why does belief in collective efficacy increase participation?
  • How do networks reduce uncertainty and spread mobilization?
  • Why do some people participate despite risk, cost, or repression?
  • How do digital platforms change the speed, scale, and durability of mobilization?
  • How do institutions respond to movements through reform, repression, co-optation, or backlash?

The social-psychological contribution is to show that collective action depends on meaning, identity, emotion, efficacy, norms, and social connection. It is not only a rational calculation of benefits and costs. Nor is it simply spontaneous crowd behavior. It is a patterned form of group-based agency shaped by both psychological mechanisms and institutional conditions.

This makes collective action a bridge between micro-level psychology and macro-level change. It reveals how individual beliefs and emotions can become collective force when embedded in networks, organizations, public narratives, and political opportunities.

Back to top ↑


Collective action and social identity

One of the strongest social-psychological explanations of collective action comes from social identity theory. Individuals are more likely to participate when they identify with a group whose interests, dignity, rights, safety, or recognition appear threatened. Social identity changes the meaning of participation. A movement is no longer only an external cause; it becomes connected to who “we” are and what happens to “us.”

Identity matters because it transforms the psychological unit of analysis. A person who thinks only as an isolated individual may weigh private costs heavily and remain inactive. A person who thinks as a member of a group may experience the same costs differently because the group’s fate becomes personally meaningful. In that case, participation can express loyalty, dignity, solidarity, obligation, or moral commitment.

Social identity also helps explain why collective action is often strongest when people perceive a shared condition as illegitimate. Workers may identify as a labor group, residents as a threatened community, students as a collective constituency, or marginalized people as members of a group whose rights and recognition are at stake. The stronger the identity, the more likely that group outcomes will matter to the self.

Identity does not guarantee mobilization. People may identify with a group and still remain inactive if they believe nothing can change, if costs are too high, if norms discourage participation, or if networks are weak. But identity often provides the foundation on which injustice, efficacy, and norms become action-relevant.

Back to top ↑


Perceived injustice and moral outrage

Another major driver of collective action is perceived injustice. People are more likely to mobilize when they interpret conditions not merely as unfortunate, but as unfair, illegitimate, avoidable, discriminatory, exploitative, or morally intolerable. This distinction is crucial. Suffering does not automatically generate action; suffering must often be interpreted as unjust before it becomes politically mobilizing.

Perceived injustice can involve:

  • unequal treatment;
  • exclusion from rights or resources;
  • discrimination or marginalization;
  • exploitation of labor or land;
  • state violence or institutional neglect;
  • environmental harm imposed on vulnerable communities;
  • democratic exclusion;
  • historical injustice denied or erased;
  • lack of recognition, voice, or accountability.

Moral outrage can become an energizing emotion when people believe that injustice violates collective values or group dignity. Anger, indignation, resentment, and moral urgency can move people from passive discontent toward action. These emotions are not irrational additions to politics; they are often part of how people recognize that a condition demands response.

At the same time, moral outrage must be socially organized to become sustained collective action. Anger alone can dissipate, burn out, or become misdirected. Movements often transform emotion into durable action through framing, leadership, institutions, rituals, goals, strategy, and networks of support.

Back to top ↑


Collective efficacy and agency

Participation also depends on whether people believe coordinated action can succeed. Social psychologists refer to this belief as collective efficacy. A person may strongly identify with a group and perceive severe injustice, but still disengage if they believe institutions are immovable, repression is overwhelming, or participation will make no difference.

Collective efficacy is not the same as individual confidence. It is a belief about the group’s capacity. It asks whether “we” can achieve something together. This belief may be based on past victories, visible participation, organizational strength, leadership, public support, legal opportunity, media attention, elite allies, resource availability, or a weakening opponent.

Movements often cultivate efficacy through narratives of possibility. They show that people are not alone, that others are willing to act, that institutions have changed before, and that participation can produce pressure. This is why visible turnout, public commitments, successful early actions, and collective rituals can matter so much. They do not merely express mobilization; they can increase the belief that mobilization is viable.

Collective efficacy also helps explain movement decline. When repeated action appears ineffective, participants may become exhausted or demoralized. Repression, co-optation, symbolic nonresponse, fragmentation, and organizational failure can reduce efficacy even when injustice remains visible.

Back to top ↑


The free-rider problem

One of the classic puzzles in collective action is the free-rider problem. If a movement succeeds, many people may benefit from the outcome even if they did not personally participate. A worker may benefit from a contract won by others, a citizen may benefit from rights secured by others, and a resident may benefit from environmental protections won through organizing they did not join.

Mancur Olson’s classic formulation emphasized that when benefits are public and costs are private, individuals may have incentives to withhold participation while still enjoying the benefits of collective success. This creates a serious coordination problem. If too many people wait for others to act, the movement may never reach the level of participation needed to succeed.

Social psychology helps explain why collective action nevertheless occurs. People may act because participation is tied to identity, moral commitment, solidarity, anger, efficacy, duty, reciprocity, reputation, social norms, or relational obligation. In many cases, people do not experience participation as a narrow private cost weighed against a small share of public benefit. They experience it as part of who they are, whom they stand with, or what they believe justice requires.

The free-rider problem remains important, but it is incomplete when treated as the whole story. Collective action is not reducible to economic self-interest. It is also shaped by identity, meaning, moral emotion, social ties, and the legitimacy of action.

Back to top ↑


Networks, mobilization, and recruitment

People rarely join collective action in isolation. Participation often spreads through networks: friends, coworkers, classmates, neighbors, kinship ties, congregations, unions, civic associations, activist organizations, digital communities, and trusted local institutions. These networks provide information, encouragement, legitimacy, logistical support, emotional support, and social proof.

Networks matter because they reduce uncertainty. A person may be more likely to participate when they know who else is attending, how to get there, what the risks are, what the purpose is, and whether others will stand with them. Networks also help people interpret events. They shape whether a situation is understood as isolated misfortune, systemic injustice, or a call to action.

Mobilization often depends on several network functions:

  • Information transmission — people learn about issues, events, risks, and opportunities.
  • Norm formation — participation becomes expected, admired, or morally appropriate.
  • Trust — people rely on known others to assess credibility and safety.
  • Coordination — groups organize transportation, timing, roles, materials, and strategy.
  • Protection — networks reduce isolation and distribute risk.
  • Identity reinforcement — repeated interaction strengthens group belonging.
  • Recruitment — existing participants bring new participants into the movement.

This helps explain why grievance alone does not predict mobilization evenly. Similar injustices may produce different levels of action depending on whether people are embedded in networks capable of turning shared interpretation into coordinated participation.

Back to top ↑


Formalizing collective action

Collective action can be represented as a function of identity, injustice, efficacy, networks, cost, and risk. Let \(P(A_i)\) represent the probability that individual \(i\) participates in collective action:

\[
P(A_i)=f(I_i,J_i,E_i,N_i,C_i,R_i)
\]

Interpretation: Participation depends on identity strength \(I_i\), perceived injustice \(J_i\), collective efficacy \(E_i\), network support \(N_i\), participation cost \(C_i\), and perceived repression risk \(R_i\).

A logistic version of this model can be written as:

\[
Pr(A_i=1)=\frac{1}{1+e^{-Z_i}}
\]

Interpretation: Participation probability is modeled as a nonlinear function of an underlying action propensity score \(Z_i\).

\[
Z_i=\beta_0+\beta_1I_i+\beta_2J_i+\beta_3O_i+\beta_4E_i+\beta_5N_i-\beta_6C_i-\beta_7R_i-\beta_8F_i
\]

Interpretation: Action propensity increases with identity, injustice, moral outrage \(O_i\), efficacy, and network support, and decreases with cost, repression risk, and free-rider incentive \(F_i\).

The free-rider problem can be represented by contrasting private cost and distributed public benefit:

\[
C_i>\frac{B_p}{n}
\]

Interpretation: If private participation cost \(C_i\) exceeds the individual’s share of public benefit \(B_p/n\), narrow instrumental reasoning may discourage participation.

But social psychology complicates this narrow model because subjective value is not only material. Identity, moral commitment, social norms, and solidarity can transform what participation means. A revised subjective utility model can include expressive and identity-based value:

\[
U_i(A)=B_i-C_i+\phi I_i+\omega O_i+\eta N_i+\kappa E_i
\]

Interpretation: The subjective utility of action includes private benefit and cost, but also identity value, moral outrage, network support, and efficacy.

Collective efficacy can also change dynamically. Visible participation can increase belief in success:

\[
E_{t+1}=E_t+\mu M_t-\rho R_t
\]

Interpretation: Collective efficacy rises with visible mobilization \(M_t\) and may decline with repression, backlash, or institutional defeat \(R_t\).

These models are simplifications, but they help clarify why collective action is not reducible to grievance alone. Mobilization is more likely when identity, injustice, efficacy, and network support align while costs and risks remain survivable or morally outweighed.

Back to top ↑


Thresholds, cascades, and critical mass

Collective action often unfolds through thresholds. Some people participate early, even when few others have joined. Others wait until a critical number of participants makes action seem safe, legitimate, or effective. Still others participate only after organizations, leaders, or social networks create enough momentum to lower uncertainty.

A threshold model can be expressed as:

\[
A_i=1 \quad \text{if} \quad I_i+J_i+E_i+N_i-C_i-R_i\geq T_i
\]

Interpretation: Individual \(i\) participates when identity, injustice, efficacy, and network support outweigh costs, risks, and that individual’s participation threshold \(T_i\).

Network exposure can be represented as:

\[
X_i=\sum_{j=1}^{n}A_{ij}A_j
\]

Interpretation: Network exposure \(X_i\) depends on whether connected others \(j\) are participating, weighted by the network relation \(A_{ij}\).

As more people participate, the perceived risk of joining may fall, the perceived legitimacy of action may rise, and collective efficacy may increase. This can produce cascades in which early participation stimulates wider mobilization. Conversely, repression, fragmentation, misinformation, fear, or organizational weakness can prevent a cascade from forming even when many people privately support the cause.

The threshold perspective is useful because it links individual motivation to system-level dynamics. It shows why movements can appear suddenly even when grievances have existed for years: the underlying attitudes may have been present, but the visible social conditions for participation had not yet crossed the threshold necessary for broad mobilization.

Back to top ↑


Collective action frames: injustice, agency, and identity

Collective action depends not only on material conditions, but on how those conditions are interpreted. Movement scholars often describe this interpretive work through collective action frames. Frames help people answer three central questions: What is wrong? Who are we? What can be done?

Three frame components are especially important:

  • Injustice — the condition is unfair, illegitimate, or morally unacceptable.
  • Agency — change is possible through collective effort.
  • Identity — a relevant “we” exists that is affected, responsible, or capable of action.

Frames do not simply decorate movements with language. They organize perception and motivation. A frame can turn isolated frustration into shared grievance, private pain into political claim, and dispersed concern into coordinated action.

Frames also compete. Institutions, movements, media, counter-movements, and elites may offer different interpretations of the same event. One frame may describe protest as democratic accountability; another may describe it as disorder. One may describe labor organizing as justice; another may describe it as disruption. Social psychology helps explain why some frames resonate: they connect with identity, emotion, lived experience, perceived legitimacy, and available networks.

Back to top ↑


Emotion, moral urgency, and group-based anger

Emotion is central to collective action. Movements are not sustained by information alone. People often act because they feel anger at injustice, hope for change, solidarity with others, grief over harm, fear of future loss, pride in group resistance, or moral obligation to intervene.

Group-based anger is especially important when people identify with a group and believe that group has been harmed unfairly. Moral outrage can make injustice feel urgent rather than abstract. Hope can make difficult action feel possible. Solidarity can make participation meaningful even when success is uncertain. Shame or guilt may motivate allies or members of advantaged groups when they recognize complicity or responsibility.

Emotion also shapes risk. People may accept costs they would otherwise avoid when participation becomes tied to dignity, loyalty, protection, or moral duty. This is one reason that purely instrumental models often underpredict participation. People do not always join movements because participation is easy or privately profitable. They may join because inaction becomes psychologically or morally unbearable.

Emotion can also be dangerous when mobilized toward dehumanization, scapegoating, authoritarian identity, conspiracy, or exclusion. A research-grade account must therefore study emotional mobilization without assuming that all mobilizing emotion is emancipatory.

Back to top ↑


Collective action in democratic societies

Collective action occupies a central place in democratic life. Protest movements, civil rights campaigns, labor organizing, environmental movements, tenant organizing, feminist movements, disability-rights movements, student movements, and grassroots advocacy have historically expanded participation, altered public norms, and forced institutions to respond to excluded voices.

Collective action is especially important when formal representation fails. Elections, courts, legislatures, agencies, and bureaucracies may be slow, captured, exclusionary, or unresponsive. Mobilization becomes one way that groups make claims visible, impose costs on inaction, and challenge institutional complacency.

Democratic collective action can:

  • bring hidden injustice into public view;
  • expand the boundaries of political voice;
  • pressure institutions to respond;
  • shift public norms;
  • build solidarity across groups;
  • create new organizational capacity;
  • challenge illegitimate authority;
  • protect rights threatened by concentrated power.

At the same time, collective action can generate conflict, polarization, disruption, backlash, and repression. Democracy does not eliminate conflict; it provides contested channels through which conflict can become publicly visible and institutionally negotiable. Collective action is therefore not outside democracy. It is one of the ways democratic societies are pressured, corrected, and transformed.

Back to top ↑


Power, repression, backlash, and institutional response

Collective action always occurs within power relations. Institutions do not merely observe mobilization; they respond. Responses may include negotiation, reform, symbolic recognition, co-optation, surveillance, repression, legal sanction, misinformation, backlash, or strategic delay.

Institutional response matters because it changes both material opportunity and psychological meaning. A concession may increase efficacy. Repression may increase fear, but it may also intensify moral outrage. Symbolic recognition may validate participants, but it may also demobilize if not followed by material change. Co-optation may absorb movement language while preserving existing power.

Power also shapes who can safely participate. The same action may carry different risks for workers, immigrants, racialized communities, disabled people, students, public employees, undocumented people, precarious workers, or those already exposed to policing or surveillance. A serious social psychology of collective action must therefore treat cost and repression as unequal, not abstract.

Institutional analysis also prevents a common error: reducing movement outcomes to participant motivation alone. Movements emerge within political opportunity structures, media systems, legal regimes, organizational fields, and economic conditions. Social psychology explains why people act; institutional analysis helps explain when action can reshape power.

Back to top ↑


Digital mobilization and connective action

Digital communication has changed the speed, scale, visibility, and structure of collective action. Online platforms allow people to circulate evidence, coordinate events, frame injustice, raise funds, share testimony, identify allies, document repression, and recruit participants across geographic distance.

Digital mobilization can reduce barriers to participation. People can learn about events quickly, contribute small acts of support, share resources, amplify claims, and build identity across dispersed networks. Digital platforms can also make marginalized experiences visible when traditional institutions or media ignore them.

But digital mobilization creates tensions. Participation may become episodic, symbolic, or shallow. Platforms can amplify outrage without building durable organization. Algorithmic visibility can distort which claims are seen. Surveillance and harassment can increase risk. Misinformation can fragment trust. Metrics such as likes, shares, signatures, and impressions may overstate the depth of organizational capacity.

Bennett and Segerberg’s idea of connective action helps explain digitally networked mobilization in which personalized sharing and flexible digital coordination become central. Yet even digitally mediated mobilization still depends on identity, injustice, efficacy, trust, and network structure. Technology changes the channels of collective action, but it does not erase the underlying social psychology of mobilization.

Back to top ↑


Collective action and social change

Collective action can become a mechanism of social change when coordinated participation shifts public attention, institutional incentives, policy agendas, legal claims, organizational routines, cultural norms, or power relations. Not every action succeeds, and not every success is immediate. Movements often operate across long time horizons, with partial victories, setbacks, repression, internal conflict, and delayed influence.

Social change can occur through several pathways:

  • Agenda change — making an issue publicly visible.
  • Norm change — shifting what people see as acceptable, legitimate, or shameful.
  • Policy change — pressuring institutions to adopt new rules or protections.
  • Legal change — creating litigation, rights claims, or legal recognition.
  • Organizational change — altering workplace, school, agency, or institutional practice.
  • Identity change — strengthening group consciousness or solidarity.
  • Resource change — redistributing money, land, services, recognition, or access.
  • Counterpower — building organizations capable of contesting dominant institutions.

Collective action also changes participants themselves. Participation can increase political confidence, solidarity, identity, skill, knowledge, and a sense of agency. Movements can therefore produce psychological change even when institutional victories are incomplete.

The relationship between action and change is not mechanical. Movements must navigate strategy, timing, alliances, repression, resources, legitimacy, public framing, internal democracy, and institutional opportunity. But collective action remains one of the most powerful ways that social psychology becomes historical force.

Back to top ↑


Collective action in the architecture of social influence

Within the broader architecture of social influence, collective action brings together processes often studied separately. Social identity theory explains why group membership becomes psychologically meaningful. Social norms explain how participation becomes expected, legitimate, or morally valued. Group polarization helps explain how discussion can intensify commitment. Intergroup conflict shows how threat and grievance become socially organized. Prosocial behavior helps explain why people may act for others even at personal cost.

Collective action integrates these dynamics into coordinated public behavior. It is one of the clearest cases in which identity, emotion, norms, networks, strategy, and institutions combine to produce visible social change.

This makes collective action especially important for a social psychology knowledge series. It shows that social psychology is not limited to interpersonal influence or small-group dynamics. It also helps explain movements, institutions, democracy, inequality, repression, public claims, and the contested process by which societies change.

Back to top ↑


Ethical and interpretive cautions

Collective action should not be romanticized. Not every movement pursues justice. People can mobilize around exclusion, authoritarianism, racial hierarchy, misogyny, sectarian identity, conspiracy, xenophobia, or violence. Identity, emotion, efficacy, and networks can support emancipatory movements, but they can also support reactionary or oppressive ones.

Several cautions are necessary:

  • Do not equate mobilization with moral legitimacy.
  • Do not reduce collective action to individual psychology alone.
  • Do not ignore institutions, repression, media systems, and resources.
  • Do not treat digital engagement as equivalent to durable organizing.
  • Do not assume all participants experience the same risks.
  • Do not erase marginalized organizers whose labor is often underrecognized.
  • Do not treat state or institutional records as neutral accounts of movements.
  • Do not use movement data in ways that expose vulnerable participants.

Research ethics are especially important. Collective action data can be politically sensitive. Network data may identify organizers. Protest data can expose participants to surveillance or retaliation. Research involving marginalized groups, authoritarian settings, workplace organizing, immigration status, or policing must protect participants and avoid reproducing institutional harm.

A serious social psychology of collective action must therefore study mobilization with both analytical rigor and ethical care.

Back to top ↑


Measurement, data, and research design

Collective action research uses surveys, experiments, interviews, ethnography, protest-event datasets, digital trace data, network analysis, panel studies, field experiments, archival analysis, and mixed methods. Each approach captures a different part of the process.

Key variables include:

  • social identity strength;
  • perceived injustice;
  • moral outrage;
  • collective efficacy;
  • network support;
  • mobilization exposure;
  • participation cost;
  • perceived repression risk;
  • free-rider incentive;
  • participation intention;
  • actual participation;
  • digital engagement;
  • offline engagement;
  • recruitment source;
  • institutional response;
  • movement outcome.

Research designs should distinguish intention from behavior. Many people express support but do not participate. Others participate only when recruited through trusted ties. Some engage digitally but not offline. Some take high-cost action despite severe risk. These distinctions matter because collective action is not a single behavior but a spectrum of participation forms.

Quantitative work should also account for clustering: participants are nested in groups, networks, organizations, neighborhoods, workplaces, schools, or movements. Network dependence, repeated measures, missing data, selection bias, and measurement invariance are major concerns. For that reason, relational data structures and reproducible SQL workflows can strengthen the research infrastructure behind social psychology articles.

Back to top ↑


R code for collective action research

The following R workflow models collective action participation, intention, digital engagement, offline engagement, movement outcomes, and response time. It is designed for survey-experimental or observational data with participant and group-level clustering.

# Install packages if needed:
# pak::pak(c("tidyverse", "lme4", "lmerTest", "emmeans", "broom.mixed", "performance"))

library(tidyverse)
library(lme4)
library(lmerTest)
library(emmeans)
library(broom.mixed)
library(performance)

# Expected columns:
# participant, group_id, condition, trial, movement_domain,
# identity_strength, perceived_injustice, moral_outrage,
# collective_efficacy, network_support, mobilization_exposure,
# participation_cost, perceived_repression_risk, free_rider_incentive,
# participation_intention, action_participation,
# digital_engagement, offline_engagement, recruitment_source,
# institutional_response, perceived_legitimacy, movement_outcome,
# response_time_ms

dat <- read_csv("collective_action_trials.csv") %>%
  mutate(
    participant = factor(participant),
    group_id = factor(group_id),
    condition = factor(condition),
    movement_domain = factor(movement_domain),
    recruitment_source = factor(recruitment_source),
    institutional_response = factor(institutional_response),
    action_participation = as.integer(action_participation),
    log_response_time = log(response_time_ms)
  )

# -----------------------------
# 1. Descriptive summary
# -----------------------------

condition_summary <- dat %>%
  group_by(condition) %>%
  summarise(
    n = n(),
    participants = n_distinct(participant),
    groups = n_distinct(group_id),
    participation_rate = mean(action_participation, na.rm = TRUE),
    mean_intention = mean(participation_intention, na.rm = TRUE),
    mean_identity = mean(identity_strength, na.rm = TRUE),
    mean_injustice = mean(perceived_injustice, na.rm = TRUE),
    mean_outrage = mean(moral_outrage, na.rm = TRUE),
    mean_efficacy = mean(collective_efficacy, na.rm = TRUE),
    mean_network_support = mean(network_support, na.rm = TRUE),
    mean_cost = mean(participation_cost, na.rm = TRUE),
    mean_repression_risk = mean(perceived_repression_risk, na.rm = TRUE),
    mean_digital_engagement = mean(digital_engagement, na.rm = TRUE),
    mean_offline_engagement = mean(offline_engagement, na.rm = TRUE),
    mean_outcome = mean(movement_outcome, na.rm = TRUE),
    .groups = "drop"
  )

print(condition_summary)

# -----------------------------
# 2. Participation model
# -----------------------------

participation_model <- glmer(
  action_participation ~
    condition +
    movement_domain +
    identity_strength +
    perceived_injustice +
    moral_outrage +
    collective_efficacy +
    network_support +
    mobilization_exposure +
    participation_cost +
    perceived_repression_risk +
    free_rider_incentive +
    perceived_legitimacy +
    (1 | participant) +
    (1 | group_id),
  data = dat,
  family = binomial(),
  control = glmerControl(optimizer = "bobyqa")
)

summary(participation_model)
emmeans(participation_model, ~ condition, type = "response")

# -----------------------------
# 3. Participation intention model
# -----------------------------

intention_model <- lmer(
  participation_intention ~
    condition +
    movement_domain +
    identity_strength +
    perceived_injustice +
    moral_outrage +
    collective_efficacy +
    network_support +
    mobilization_exposure +
    participation_cost +
    perceived_repression_risk +
    free_rider_incentive +
    (1 | participant) +
    (1 | group_id),
  data = dat,
  REML = FALSE
)

summary(intention_model)

# -----------------------------
# 4. Digital engagement model
# -----------------------------

digital_model <- lmer(
  digital_engagement ~
    condition +
    movement_domain +
    participation_intention +
    identity_strength +
    network_support +
    mobilization_exposure +
    participation_cost +
    perceived_repression_risk +
    (1 | participant) +
    (1 | group_id),
  data = dat,
  REML = FALSE
)

summary(digital_model)

# -----------------------------
# 5. Offline engagement model
# -----------------------------

offline_model <- lmer(
  offline_engagement ~
    condition +
    movement_domain +
    participation_intention +
    identity_strength +
    network_support +
    collective_efficacy +
    participation_cost +
    perceived_repression_risk +
    (1 | participant) +
    (1 | group_id),
  data = dat,
  REML = FALSE
)

summary(offline_model)

# -----------------------------
# 6. Movement outcome model
# -----------------------------

outcome_model <- lmer(
  movement_outcome ~
    condition +
    action_participation +
    collective_efficacy +
    network_support +
    digital_engagement +
    offline_engagement +
    perceived_repression_risk +
    perceived_legitimacy +
    (1 | group_id),
  data = dat,
  REML = FALSE
)

summary(outcome_model)

# -----------------------------
# 7. Response-time model
# -----------------------------

rt_model <- lmer(
  log_response_time ~
    condition +
    participation_intention +
    identity_strength +
    perceived_injustice +
    collective_efficacy +
    participation_cost +
    perceived_repression_risk +
    free_rider_incentive +
    (1 | participant) +
    (1 | group_id),
  data = dat %>% filter(response_time_ms >= 150),
  REML = FALSE
)

summary(rt_model)

# -----------------------------
# 8. Export model summaries
# -----------------------------

write_csv(
  tidy(participation_model, effects = "fixed", conf.int = TRUE),
  "collective_action_participation_coefficients.csv"
)

write_csv(
  tidy(intention_model, effects = "fixed", conf.int = TRUE),
  "collective_action_intention_coefficients.csv"
)

write_csv(
  condition_summary,
  "collective_action_condition_summary.csv"
)

# -----------------------------
# 9. Visualization
# -----------------------------

ggplot(dat, aes(x = identity_strength, y = participation_intention, color = condition)) +
  geom_point(alpha = 0.35) +
  geom_smooth(method = "lm", se = FALSE) +
  labs(
    title = "Identity strength and collective action intention",
    x = "Identity strength",
    y = "Participation intention"
  ) +
  theme_minimal()

This R workflow is useful for estimating whether identity, injustice, moral outrage, efficacy, and network support predict participation after accounting for cost, repression risk, movement domain, participant clustering, and group-level clustering. In real research, investigators should check scale reliability, measurement invariance, model diagnostics, missingness, and whether intention predicts actual participation.

Back to top ↑


Python code for collective action research

The Python workflow below parallels the R analysis and adds a simple network-mobilization simulation. It can be adapted for survey experiments, protest-participation datasets, digital mobilization studies, and network diffusion research.

import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
import statsmodels.api as sm
import matplotlib.pyplot as plt

try:
    import networkx as nx
except ImportError:
    nx = None

# Expected columns:
# participant, group_id, condition, trial, movement_domain,
# identity_strength, perceived_injustice, moral_outrage,
# collective_efficacy, network_support, mobilization_exposure,
# participation_cost, perceived_repression_risk, free_rider_incentive,
# participation_intention, action_participation,
# digital_engagement, offline_engagement, recruitment_source,
# institutional_response, perceived_legitimacy, movement_outcome,
# response_time_ms

df = pd.read_csv("collective_action_trials.csv")

categorical_cols = [
    "participant", "group_id", "condition", "movement_domain",
    "recruitment_source", "institutional_response"
]

for col in categorical_cols:
    df[col] = df[col].astype("category")

df["action_participation"] = df["action_participation"].astype(int)
df["log_response_time"] = np.log(df["response_time_ms"])

# -----------------------------
# 1. Descriptive summaries
# -----------------------------

condition_summary = (
    df.groupby("condition", observed=True)
    .agg(
        n=("action_participation", "size"),
        participants=("participant", "nunique"),
        groups=("group_id", "nunique"),
        participation_rate=("action_participation", "mean"),
        mean_intention=("participation_intention", "mean"),
        mean_identity=("identity_strength", "mean"),
        mean_injustice=("perceived_injustice", "mean"),
        mean_outrage=("moral_outrage", "mean"),
        mean_efficacy=("collective_efficacy", "mean"),
        mean_network_support=("network_support", "mean"),
        mean_cost=("participation_cost", "mean"),
        mean_repression_risk=("perceived_repression_risk", "mean"),
        mean_digital_engagement=("digital_engagement", "mean"),
        mean_offline_engagement=("offline_engagement", "mean"),
        mean_outcome=("movement_outcome", "mean"),
    )
    .reset_index()
)

print(condition_summary)

# -----------------------------
# 2. Action participation model
# -----------------------------

participation_model = smf.glm(
    "action_participation ~ condition + movement_domain "
    "+ identity_strength + perceived_injustice + moral_outrage "
    "+ collective_efficacy + network_support + mobilization_exposure "
    "+ participation_cost + perceived_repression_risk "
    "+ free_rider_incentive + perceived_legitimacy",
    data=df,
    family=sm.families.Binomial(),
)

participation_result = participation_model.fit(
    cov_type="cluster",
    cov_kwds={"groups": df["participant"]},
)

print(participation_result.summary())

# -----------------------------
# 3. Participation intention model
# -----------------------------

intention_model = smf.ols(
    "participation_intention ~ condition + movement_domain "
    "+ identity_strength + perceived_injustice + moral_outrage "
    "+ collective_efficacy + network_support + mobilization_exposure "
    "+ participation_cost + perceived_repression_risk "
    "+ free_rider_incentive",
    data=df,
)

intention_result = intention_model.fit(
    cov_type="cluster",
    cov_kwds={"groups": df["participant"]},
)

print(intention_result.summary())

# -----------------------------
# 4. Digital and offline engagement
# -----------------------------

digital_model = smf.ols(
    "digital_engagement ~ condition + movement_domain "
    "+ participation_intention + identity_strength + network_support "
    "+ mobilization_exposure + participation_cost + perceived_repression_risk",
    data=df,
)

digital_result = digital_model.fit(
    cov_type="cluster",
    cov_kwds={"groups": df["participant"]},
)

print(digital_result.summary())

offline_model = smf.ols(
    "offline_engagement ~ condition + movement_domain "
    "+ participation_intention + identity_strength + network_support "
    "+ collective_efficacy + participation_cost + perceived_repression_risk",
    data=df,
)

offline_result = offline_model.fit(
    cov_type="cluster",
    cov_kwds={"groups": df["participant"]},
)

print(offline_result.summary())

# -----------------------------
# 5. Movement outcome model
# -----------------------------

outcome_model = smf.ols(
    "movement_outcome ~ condition + action_participation "
    "+ collective_efficacy + network_support + digital_engagement "
    "+ offline_engagement + perceived_repression_risk + perceived_legitimacy",
    data=df,
)

outcome_result = outcome_model.fit(
    cov_type="cluster",
    cov_kwds={"groups": df["group_id"]},
)

print(outcome_result.summary())

# -----------------------------
# 6. Response-time model
# -----------------------------

rt_df = df[df["response_time_ms"] >= 150].copy()

rt_model = smf.ols(
    "log_response_time ~ condition + participation_intention "
    "+ identity_strength + perceived_injustice + collective_efficacy "
    "+ participation_cost + perceived_repression_risk + free_rider_incentive",
    data=rt_df,
)

rt_result = rt_model.fit(
    cov_type="cluster",
    cov_kwds={"groups": rt_df["participant"]},
)

print(rt_result.summary())

# -----------------------------
# 7. Network mobilization simulation
# -----------------------------

def simulate_threshold_mobilization(n=250, seed=42):
    rng = np.random.default_rng(seed)

    if nx is not None:
        graph = nx.watts_strogatz_graph(n=n, k=6, p=0.12, seed=seed)
        edges = list(graph.edges())
    else:
        edges = []
        for i in range(n):
            for j in range(i + 1, n):
                if rng.random() < 0.025:
                    edges.append((i, j))

    identity = rng.uniform(0, 10, n)
    injustice = rng.uniform(0, 10, n)
    efficacy = rng.uniform(0, 10, n)
    cost = rng.uniform(1, 9, n)
    threshold = rng.normal(8.5, 1.2, n)

    active = np.zeros(n, dtype=int)
    active[rng.choice(n, size=max(3, n // 25), replace=False)] = 1

    history = []

    for step in range(1, 16):
        exposure = np.zeros(n)

        for a, b in edges:
            exposure[a] += active[b]
            exposure[b] += active[a]

        next_active = active.copy()

        for i in range(n):
            if active[i] == 0:
                propensity = (
                    0.22 * identity[i]
                    + 0.22 * injustice[i]
                    + 0.22 * efficacy[i]
                    + 0.55 * exposure[i]
                    - 0.20 * cost[i]
                )

                if propensity >= threshold[i]:
                    next_active[i] = 1

        active = next_active

        history.append({
            "step": step,
            "active_count": int(active.sum()),
            "active_rate": float(active.mean()),
        })

    node_data = pd.DataFrame({
        "node": np.arange(n),
        "identity_strength": identity,
        "perceived_injustice": injustice,
        "collective_efficacy": efficacy,
        "participation_cost": cost,
        "threshold": threshold,
        "final_active": active,
    })

    edge_data = pd.DataFrame(edges, columns=["source", "target"])
    history_data = pd.DataFrame(history)

    return node_data, edge_data, history_data

nodes, edges, history = simulate_threshold_mobilization()

print(history)

fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(history["step"], history["active_rate"], marker="o")
ax.set_xlabel("Mobilization step")
ax.set_ylabel("Active participation rate")
ax.set_title("Simulated threshold mobilization cascade")
plt.tight_layout()
plt.show()

# -----------------------------
# 8. Export summaries
# -----------------------------

condition_summary.to_csv("collective_action_condition_summary.csv", index=False)
nodes.to_csv("collective_action_network_nodes.csv", index=False)
edges.to_csv("collective_action_network_edges.csv", index=False)
history.to_csv("collective_action_network_history.csv", index=False)

This Python workflow is useful when collective action is treated as both an individual-level decision and a network-level diffusion process. The statistical models estimate individual predictors of intention, participation, engagement, and outcome. The simulation shows how local network exposure can create mobilization cascades once participation thresholds are crossed.

Back to top ↑


Research data architecture

Collective action research often depends on relational data: participants, movement groups, survey waves, network ties, mobilization events, digital engagement records, offline participation, institutional responses, and movement outcomes. Rather than embedding database code directly in the article body, the companion GitHub repository includes the full SQL schema and example queries for researchers who want to reproduce or extend the data model.

The research data model is designed to support questions such as:

  • How do identity strength, perceived injustice, moral outrage, and collective efficacy predict participation?
  • How does network support influence mobilization?
  • How do digital engagement and offline participation differ?
  • How does repression risk change participation intention?
  • How do institutional responses relate to perceived movement outcomes?
  • How can participant-level, group-level, event-level, and network-level data be connected without flattening the research design?

The GitHub repository contains the full database schema, example analytical queries, validation logic, and reproducible data workflow. Keeping the executable SQL in GitHub avoids WordPress hosting restrictions while preserving the research-grade infrastructure for readers who want to inspect or reuse the model.

View the SQL research data architecture in GitHub.

Back to top ↑


GitHub repository

The companion repository provides reusable code and research scaffolding for studying collective action and social change, including workflows for identity, injustice, moral outrage, collective efficacy, network support, participation cost, free-riding, digital engagement, offline participation, repression risk, institutional response, threshold mobilization, and social-change outcomes.

Back to top ↑


Why collective action matters

Collective action is essential for understanding how societies change because it shows how people transform shared identity, perceived injustice, moral outrage, network support, and collective efficacy into coordinated public action. Social psychology demonstrates that mobilization does not arise automatically from hardship. It emerges when people interpret hardship as unjust, understand it as shared, believe coordinated action can matter, and become connected through networks capable of sustaining participation.

Collective action is therefore one of the clearest bridges between psychology and power. It reveals how individual motivations become organized into collective force, how groups challenge institutional arrangements, how democratic systems are pressured and corrected, and how marginalized communities can make claims visible against systems that often ignore them.

At the same time, collective action must be studied critically. It can support justice, rights, recognition, and accountability; it can also support exclusion, repression, and authoritarian identity. The task of social psychology is not to celebrate mobilization uncritically, but to explain the conditions under which people act together, the meanings they attach to action, and the consequences that follow when groups attempt to reshape the social world.

Back to top ↑


Further reading

Back to top ↑

References

Back to top ↑

Scroll to Top