Last Updated May 20, 2026
Altruism refers to behavior intended to benefit another person, group, living being, or public good at a potential cost to oneself. Within social psychology, altruism addresses one of the central questions of human social life: why do people sometimes sacrifice time, money, safety, status, comfort, or opportunity in order to improve the welfare of others?
The question is not only moral. It is also empirical, evolutionary, economic, institutional, and political. Altruism challenges narrow models of self-interest because it shows that human behavior is often shaped by empathy, attachment, moral identity, shared norms, reciprocity, reputation, obligation, kinship, group belonging, and concern for collective welfare. At the same time, altruism should not be romanticized. Helping is often selective, socially patterned, institutionally exploited, and mixed with self-regarding motives.
Altruism must therefore hold together several truths. Humans are capable of genuinely other-regarding concern. Much helping is also shaped by indirect benefits, identity, reputation, emotional reward, reciprocity, social norms, and institutional design. Altruism is not reducible to pure selflessness, but neither is it easily dismissed as disguised selfishness. It is one of the places where psychology, ethics, biology, economics, and social structure meet.
Main Library
Publications
Article Map
Social Psychology
Related Topic
Stewardship & Ethics
Related Topic
Behavioral Economics
Related Topic
Institutions & Governance

Altruism connects directly to prosocial behavior, the bystander effect, diffusion of responsibility, social norms, social identity theory, in-group bias, collective action, social dilemmas, and the tragedy of the commons. Together these frameworks explain how empathy, identity, reciprocity, obligation, and institutional context shape patterns of helping.
What is altruism?
Altruism is behavior intended to benefit another at some cost to the actor. The cost may be material, physical, emotional, social, reputational, temporal, or opportunity-based. The benefit may involve direct help to another person, support for a group, contribution to a public good, protection of a vulnerable person, donation, caregiving, volunteering, rescue, advocacy, or costly punishment of those who undermine cooperation.
Altruism is more specific than prosocial behavior. Prosocial behavior is the broad category of actions that benefit others or society. Altruism is a narrower and more demanding concept because it focuses on helping that involves cost and, in its strongest sense, is motivated by concern for the other rather than by direct personal gain.
This distinction matters because the same behavior can be interpreted differently depending on motivation. A donation may be altruistic if motivated primarily by concern for recipients. It may be reputational if motivated primarily by public approval. It may be reciprocal if motivated by expectation of future return. It may be norm-driven if motivated by obligation. In real life, motives often mix. A person may genuinely care, feel moral duty, expect emotional satisfaction, and know that others will approve — all at the same time.
Social psychology studies altruism by asking which psychological conditions make costly helping more likely. These include empathy, perceived responsibility, moral identity, recipient need, perceived efficacy, shared identity, social norms, expected reciprocity, reputation, and the cost or risk of intervention.
Altruism is therefore not simply a virtue word. It is a measurable pattern of action and motivation in which another’s welfare becomes behaviorally important enough to justify personal cost.
Conceptual foundations of altruism
Altruism has different meanings across disciplines. In moral philosophy, it often refers to other-regarding action or concern for others’ good. In evolutionary biology, it refers to behavior that benefits another organism while reducing the actor’s direct fitness. In economics, it can refer to preferences in which another person’s welfare enters the actor’s utility function. In social psychology, it refers to helping behavior shaped by motives such as empathy, care, moral responsibility, identity, and norms.
These disciplinary meanings overlap but should not be collapsed. Biological altruism does not require conscious benevolence. A behavior can be biologically altruistic if it reduces direct reproductive fitness while benefiting another organism. Psychological altruism, by contrast, concerns motivation. It asks whether the actor intends to benefit another and whether concern for the other is a central motive.
This distinction prevents conceptual confusion. A soldier ant may behave altruistically in evolutionary terms without conscious intention. A human donor may behave altruistically in psychological terms if they act from concern for recipients. A public donor may behave prosocially but with mixed motives involving reputation, identity, or emotional reward. All of these cases matter, but they are not the same kind of altruism.
Altruism also differs from obligation. A person may help because the law requires it, because a role demands it, or because an institution assigns responsibility. Such behavior may still be socially valuable, but it is not always altruism in the strong motivational sense. Altruism becomes most analytically interesting when the person could avoid the cost, yet chooses to help because another’s welfare matters.
The concept therefore sits between action and motive. Behavior alone is not enough. Motivation alone is not enough. Altruism requires a relationship between costly action and other-regarding concern.
Psychological egoism and the possibility of genuine altruism
One of the oldest debates in altruism research concerns psychological egoism: the claim that all human behavior is ultimately motivated by self-interest. According to this view, apparently selfless acts are driven by hidden rewards such as praise, guilt reduction, moral self-image, social approval, future reciprocity, emotional relief, or avoidance of shame.
Psychological egoism is difficult to disprove because it can reinterpret almost any helping behavior as self-benefiting. If a person helps and feels good afterward, the egoist may say the good feeling was the real motive. If a person helps anonymously, the egoist may say the motive was self-respect. If a person risks harm for another, the egoist may say the person avoided guilt or protected identity.
The opposing view is that genuine altruistic motivation is possible. This does not mean that every helping act is pure. It means that concern for another’s welfare can be an ultimate motive rather than only an instrument for self-benefit. C. Daniel Batson’s work is central here because it attempted to test whether empathic concern predicts helping even when egoistic explanations are reduced.
The strongest contemporary position is often neither naïve purity nor total egoism. Mixed motives are common. A person can care about another’s welfare and also experience satisfaction, identity reinforcement, or social approval. The presence of self-benefit does not automatically erase other-regarding concern.
Analytically, the question is not whether helping produces any benefit to the helper. Many actions do. The question is whether the other person’s welfare has motivational weight in its own right. If it does, altruism remains a meaningful and empirically important concept.
Empathy and the motivation to help
Empathy is one of the most important psychological pathways into altruism. It allows another person’s condition to become emotionally and cognitively salient. When someone perceives another’s pain, need, fear, exclusion, or vulnerability, empathy can convert that perception into motivation to help.
Social psychology often distinguishes empathic concern from personal distress. Empathic concern is other-oriented: compassion, tenderness, concern, or care for the person in need. Personal distress is self-oriented: discomfort, anxiety, or aversive arousal caused by witnessing suffering. Both can motivate action, but they do so differently.
Empathic concern may motivate helping because the other person’s welfare matters. Personal distress may motivate action because helping reduces the observer’s own discomfort, or because escape from the distressing situation is difficult. This distinction is central to the empathy–altruism debate.
Empathy can support altruism by increasing attention to need, lowering psychological distance, making suffering vivid, and expanding the moral relevance of the recipient. It can also increase perceived responsibility: if another’s distress is emotionally present to me, it becomes harder to treat it as irrelevant.
But empathy also has limits. It can be partial, selective, biased, and unevenly distributed. People may feel stronger empathy for those who are nearby, similar, identifiable, innocent, familiar, attractive, or part of an in-group. Large-scale suffering can become psychologically abstract. Statistical victims often evoke less emotional urgency than identifiable individuals.
For that reason, empathy is powerful but insufficient. Ethical and institutional systems cannot depend entirely on spontaneous empathic response. They must also build norms, rights, duties, procedures, and structures that protect those whose suffering is less visible or less easily empathized with.
The empathy–altruism hypothesis
The empathy–altruism hypothesis argues that empathic concern can produce genuinely altruistic motivation. According to this view, when a person feels empathic concern for someone in need, the person may help primarily in order to improve the other’s welfare, not merely to gain reward or avoid distress.
Batson and colleagues developed experimental paradigms to separate altruistic motivation from egoistic alternatives. One influential design manipulated both empathy and ease of escape. If helping is motivated only by reducing one’s own distress, then people should avoid helping when they can easily escape the distressing situation. If empathic concern produces altruistic motivation, then high-empathy participants should help even when escape is easy.
Findings from this research program supported the claim that empathic concern can motivate helping under conditions where egoistic explanations are less plausible. The conclusion is not that all helping is pure, or that self-interest is absent. Rather, the claim is that other-oriented concern can be an independent motivational force.
The hypothesis remains debated because motivation is difficult to measure. Internal rewards, moral self-image, anticipated guilt, warm glow, and identity can be hard to separate from concern for the other. Still, the empathy–altruism research program remains one of the strongest empirical challenges to strict psychological egoism.
The broader importance of the hypothesis is that it gives social psychology a way to study moral concern experimentally. It asks not only whether people help, but why they help, and whether another person’s welfare can become an end in itself.
Evolutionary foundations of altruism
Altruism initially appears difficult to explain in evolutionary terms. If natural selection favors traits that improve survival and reproductive success, why would organisms behave in ways that benefit others at personal cost?
Several major frameworks address this puzzle. Kin selection explains how helping relatives can promote the survival of shared genetic material. Reciprocal altruism explains how cooperation can evolve among non-relatives when repeated interaction makes future return possible. Indirect reciprocity explains helping that improves reputation and future cooperative opportunities. Network reciprocity explains how clusters of cooperators can sustain one another. Group-selection and multilevel-selection frameworks examine whether groups with more cooperative members can outcompete less cooperative groups under certain conditions.
These models show that costly helping can emerge within competitive systems when the long-run structure of interaction supports cooperation. Altruism does not require that organisms ignore fitness. It may arise because kinship, reciprocity, reputation, group structure, or repeated interaction makes helping adaptive over time.
However, evolutionary explanations should not be confused with psychological motives. A behavior may have evolved because it supported inclusive fitness or cooperation, while the individual actor experiences the immediate motive as empathy, loyalty, care, duty, anger at injustice, or moral commitment.
This distinction matters for human altruism. People do not usually calculate genetic relatedness, reciprocal payoff, or group-level selection in everyday helping. They feel concern, obligation, love, solidarity, or moral urgency. Evolutionary models explain why such capacities may exist; social psychology explains how they operate in lived situations.
Kin selection and Hamilton’s rule
Kin selection explains altruistic behavior toward relatives through inclusive fitness. The core idea is that helping a genetic relative can indirectly support the propagation of shared genes. W. D. Hamilton formalized this logic in what became known as Hamilton’s rule.
The rule states that altruistic behavior can be favored when the genetic relatedness between actor and recipient multiplied by the benefit to the recipient exceeds the cost to the actor:
rB>C
\]
Interpretation: Helping is favored when relatedness \(r\) times the benefit to the recipient \(B\) is greater than the cost to the actor \(C\).
Kin selection helps explain why costly helping is often stronger among relatives. Parents sacrifice for children. Siblings help siblings. Extended kin networks often carry obligations of care, rescue, inheritance, and support. These patterns are not purely biological; they are also shaped by culture, family structure, law, religion, and moral obligation. But kinship provides one powerful foundation for altruistic behavior.
Hamilton’s rule is not a complete theory of human altruism. Humans often help strangers, non-kin, out-groups, animals, future generations, and abstract public goods. Kin selection explains one domain of altruism, not all domains.
Its importance lies in showing that costly helping need not be evolutionarily irrational. It can be favored when the welfare of the recipient is connected to the actor’s inclusive fitness. In human societies, that biological foundation becomes layered with attachment, culture, moral norms, and institutions.
Reciprocal altruism
Reciprocal altruism explains cooperation among non-relatives through repeated interaction. Robert Trivers argued that organisms may help non-kin when there is a sufficient probability that help will later be returned. In such cases, short-term cost can be outweighed by long-term cooperative benefit.
A simplified reciprocity condition can be written as:
pB_{future}>C
\]
Interpretation: Helping is more likely when the probability of future return \(p\) multiplied by future benefit \(B_{future}\) exceeds the present cost \(C\).
Reciprocal altruism depends on memory, repeated interaction, recognition, trust, and mechanisms for detecting cheaters. If people can help and never return benefits, cooperation may collapse. If communities can remember, reward cooperators, and sanction persistent defectors, reciprocity becomes more stable.
In human life, reciprocal altruism appears in friendship, neighborly support, professional networks, mutual aid, gift exchange, labor cooperation, and informal caregiving. People often help because they expect not a direct transaction, but a relationship of mutual responsiveness over time.
Reciprocity can be direct or indirect. In direct reciprocity, I help you and later you help me. In indirect reciprocity, I help you and others observe my helpfulness, increasing my reputation and future cooperative opportunities. This makes altruism socially visible and reputationally consequential.
Reciprocal altruism complicates the boundary between altruism and self-interest. Helping may be costly and genuinely other-benefiting, while also embedded in long-term expectations of trust and mutual aid. Rather than treating this as hypocrisy, social psychology can treat reciprocity as one of the mechanisms through which altruistic systems become durable.
Cooperation, public goods, and altruistic punishment
Altruism is closely related to cooperation, but the terms are not identical. Cooperation involves coordinated behavior that produces mutual or collective benefit. Altruism involves cost to the actor for the benefit of another or a public good. Many cooperative systems depend on some degree of altruistic contribution, especially when individuals can free ride.
Public-goods problems reveal this tension. A public good benefits multiple people whether or not each individual contributes. Clean air, public health, neighborhood safety, shared knowledge, democratic institutions, ecological stability, and community resilience all depend on contributions that may exceed immediate personal gain.
Altruistic punishment adds another layer. In experiments by Fehr and Gächter, individuals sometimes paid costs to punish free riders even when punishment did not produce direct personal benefit. This behavior can protect cooperative systems by making norm violation costly. It is altruistic in the sense that the punisher pays a cost to defend a cooperative order from which others benefit.
Altruistic punishment should be interpreted carefully. Punishment can stabilize cooperation, but it can also become excessive, biased, retaliatory, or morally distorted. Not all costly punishment is ethically justified. Its social function depends on proportionality, fairness, due process, legitimacy, and whether it protects vulnerable people or merely enforces group dominance.
Still, altruistic punishment reveals that altruism is not limited to kindness. Sometimes people incur costs to defend norms, fairness, and public goods. Altruism can appear as care, rescue, donation, solidarity, whistleblowing, civic duty, or resistance to exploitation.
Warm-glow giving and mixed motives
James Andreoni’s warm-glow theory offers an important bridge between altruism and self-regarding motivation. The theory suggests that people may give partly because giving itself feels good, supports moral self-image, or produces satisfaction from “doing one’s part.”
This is sometimes called impure altruism. The actor may care about the recipient or public good, but also derive emotional reward from giving. This does not make the behavior meaningless or cynical. It simply recognizes that human motivation is often layered.
Warm glow is especially important in charitable giving, public-goods contribution, volunteerism, environmental behavior, and civic participation. People may donate because the cause matters, because the recipient matters, because the act confirms identity, because the gift is socially visible, or because giving produces emotional satisfaction.
The presence of warm glow complicates the search for pure altruism. If helping generates positive feeling, does that mean it is egoistic? Not necessarily. A person can care about another’s welfare and feel good when that welfare improves. Emotional reward may accompany altruism without replacing it.
The research implication is that studies should measure multiple motives rather than forcing a binary distinction between altruism and self-interest. Empathy, warm glow, moral identity, reputation, reciprocity, and norm compliance can all contribute to the same helping act.
For institutional design, warm glow can be useful. Systems that make contributions meaningful, visible, and emotionally connected can increase giving. But the design should avoid turning generosity into mere status performance or making aid dependent on donor satisfaction rather than recipient need.
Identity, moral community, and the boundaries of altruism
Altruism is often celebrated as universal, but helping is frequently bounded by identity. People tend to show stronger concern for family members, friends, neighbors, co-nationals, co-religionists, teammates, fellow citizens, or members of groups with whom they share identity.
Social identity shapes altruism by defining who counts as “one of us.” When another person is included within the moral community, their welfare becomes more psychologically relevant. When they are excluded, their suffering may be ignored, minimized, blamed, or treated as deserved.
This is why altruism must be studied alongside social identity theory, in-group bias, stereotypes, prejudice, and discrimination, and intergroup conflict. Helping is not evenly distributed across social space. Race, class, gender, disability, nationality, religion, immigration status, age, political identity, and perceived deservingness can all shape who receives care.
Identity can support powerful altruism. Mutual aid networks, liberation movements, religious charity, labor solidarity, disaster response, and community caregiving often depend on shared identity. But identity can also narrow altruism, restricting care to the in-group while permitting neglect or harm toward outsiders.
The ethical challenge is to expand moral concern without erasing real community bonds. Human beings often begin with local attachment. The task is to build institutions, narratives, and norms that extend care beyond immediate kin and in-groups toward strangers, marginalized communities, future generations, and nonhuman life.
In this sense, altruism is not only a personal trait. It is a boundary problem: who is included in the circle of care?
Formalizing altruism
Altruism can be represented as a decision in which another person’s welfare enters the actor’s utility function with positive weight. Let \(U_i\) represent the actor’s utility, \(x_i\) the actor’s own payoff, \(c\) the cost of helping, \(x_j\) the recipient’s welfare, and \(\alpha\) the weight placed on the recipient’s welfare:
U_i=x_i-c+\alpha x_j
\]
Interpretation: The actor’s utility includes both personal payoff and the weighted welfare of another person.
Helping becomes more likely when the weighted benefit to the recipient exceeds the actor’s subjective cost:
\alpha\Delta x_j>C
\]
Interpretation: Costly helping is predicted when concern for the recipient’s welfare gain \(\Delta x_j\) outweighs the cost \(C\).
At the psychological level, helping propensity can be modeled as a function of empathy, need, efficacy, moral identity, norms, costs, distress, and self-regarding rewards:
H_i^*=\beta_0+\beta_1E_i+\beta_2N_i+\beta_3F_i+\beta_4M_i+\beta_5S_i-\beta_6C_i-\beta_7D_i+\beta_8R_i+\beta_9W_i
\]
Interpretation: Helping propensity \(H_i^*\) rises with empathy \(E\), recipient need \(N\), perceived efficacy \(F\), moral identity \(M\), and norm salience \(S\), but falls with cost \(C\) and distress \(D\). Reputation \(R\) and warm glow \(W\) capture mixed motives.
A binary altruistic decision can be modeled with a logistic function:
P(A_i=1)=\operatorname{logit}^{-1}(H_i^*)
\]
Interpretation: The probability of altruistic action increases as latent helping propensity rises.
Kin selection can be represented through Hamilton’s rule:
rB>C
\]
Interpretation: Helping a relative is favored when relatedness-weighted benefit exceeds cost.
Reciprocal altruism can be expressed as a repeated-interaction condition:
pB_{future}-C>0
\]
Interpretation: Helping is sustainable when expected future reciprocal benefit exceeds present cost.
Public-goods altruism can be represented as contribution to collective welfare:
W_{t+1}=W_t+\sum_{i=1}^{n}a_i-\sum_{i=1}^{n}d_i
\]
Interpretation: Collective welfare \(W\) increases with altruistic contributions \(a_i\) and decreases with defection, depletion, or harm \(d_i\).
These models are simplified, but they clarify a central point: altruism becomes intelligible when the welfare of others is treated as motivationally relevant, socially structured, and empirically measurable.
Altruism and social institutions
Institutions depend on altruism more than they often admit. Families, schools, hospitals, nonprofits, emergency systems, scientific communities, religious organizations, mutual-aid networks, public agencies, and civic systems all rely on people who do more than the minimum required.
Caregiving is one of the most important examples. Parents, relatives, nurses, teachers, social workers, volunteers, community organizers, and informal caregivers often absorb costs for the welfare of others. Some of this work is paid, some unpaid, and much of it is morally expected. Altruism here becomes entangled with labor, gender, class, race, and institutional responsibility.
Public health also depends on altruistic and prosocial behavior: vaccination, masking during infectious outbreaks, staying home when ill, donating blood, participating in mutual aid, and accepting burdens to protect vulnerable people. These behaviors often require individuals to act beyond narrow self-interest in order to protect collective welfare.
Scientific and knowledge institutions also depend on altruistic contribution. Peer review, open-source software, public education, data sharing, mentoring, community moderation, and civic knowledge work often rely on people who contribute because they believe the work matters.
But institutions should not exploit altruism. When organizations depend on unpaid sacrifice while withholding support, recognition, resources, or justice, altruism can become a cover for structural failure. A society that relies on caregivers but underpays them is not simply celebrating altruism; it is distributing sacrifice unequally.
Institutional design should therefore support altruism without exploiting it. That means reducing unnecessary cost, protecting helpers, recognizing contribution, sharing burdens fairly, and building systems where care does not require self-destruction.
Power, exploitation, and the politics of sacrifice
Altruism is morally powerful, but it can also be politically dangerous when invoked without attention to power. Institutions often praise sacrifice most loudly when asking less powerful people to absorb burdens that should be shared more fairly.
Care labor is a central example. Women, migrants, racialized workers, low-wage workers, family caregivers, teachers, nurses, and community volunteers are often expected to perform emotionally demanding work in the name of love, duty, vocation, or service. The language of altruism can dignify this work, but it can also hide exploitation when institutions fail to provide material support.
Altruism can also be manipulated through guilt. People may be pressured to donate, volunteer, overwork, forgive harm, tolerate abuse, or accept unequal sacrifice because refusing would appear selfish. A critical account of altruism must distinguish freely chosen care from coerced sacrifice.
This does not mean altruism is suspect. It means altruism must be protected from institutional abuse. Genuine altruism requires agency. It should not be extracted through shame, dependency, coercion, or structural inequality.
A justice-oriented view asks: who is expected to be altruistic, who benefits from that sacrifice, who receives recognition, who receives material support, and who is allowed to set boundaries?
Altruism is ethically strongest when it expands care without normalizing exploitation. Societies should honor sacrifice while also building institutions that make sacrifice less necessary and less unequally distributed.
Effective altruism, efficacy, and moral prioritization
Altruism is not only about willingness to help. It is also about whether help is effective. Perceived efficacy — the belief that one’s action will actually improve welfare — is a major determinant of helping behavior. It also raises difficult ethical questions about prioritization.
Some forms of altruism are emotionally compelling but low-impact. Others are less visible but highly effective. People may donate to identifiable victims while ignoring larger-scale but less vivid needs. They may help those nearby while overlooking distant suffering. They may support causes that provide emotional satisfaction but produce limited measurable benefit.
Effective altruism, as a contemporary movement and research-adjacent moral framework, emphasizes using evidence and reasoning to do the most good possible with available resources. Its strongest contribution is the insistence that good intentions are not enough: altruistic action should also consider impact, scale, neglectedness, and tractability.
At the same time, effective altruism has generated criticism. Critics worry that highly quantified approaches can undervalue local knowledge, relational obligation, justice, political context, dignity, and democratic accountability. A narrow focus on aggregate utility may miss the historical and institutional causes of suffering.
A balanced view treats efficacy as essential but not sufficient. Altruism should ask whether help works, but also who defines the problem, who is accountable to affected communities, whose knowledge counts, and whether aid addresses symptoms or structures.
Research on altruism can contribute to this debate by measuring not only willingness to help, but perceived efficacy, actual outcomes, moral priorities, recipient voice, and institutional context.
Altruism in the architecture of social influence
Within the broader architecture of social influence, altruism occupies a distinctive place. Prosocial behavior identifies the broad category of actions that benefit others. The bystander effect explains why people sometimes fail to help when others are present. Diffusion of responsibility explains how obligation weakens in groups. Social norms define when helping is expected. Social identity theory explains why helping often follows group boundaries.
Altruism adds the question of costly other-regarding motivation. It asks when another person’s welfare becomes important enough that the actor accepts personal cost. This makes altruism central to cooperation, public goods, care, solidarity, rescue, mutual aid, and moral courage.
Altruism also helps explain why social systems do not collapse entirely into opportunism. Laws and incentives matter, but societies also depend on people who care, help, forgive, volunteer, give, rescue, protest, protect, and contribute beyond immediate self-interest.
Yet altruism alone cannot substitute for justice. A society that depends on charity while tolerating preventable suffering has not solved the problem of care. It has privatized responsibility. The strongest architecture of social influence connects altruism with institutions that reduce avoidable need, protect vulnerable people, and distribute burdens fairly.
Seen in this framework, altruism is not merely a private virtue. It is a social force that can sustain cooperation, reveal moral concern, and expose where institutions fail.
Interpretive cautions and debates
Altruism is indispensable, but it should not be used casually. Several cautions are essential.
- Do not equate all helping with altruism; motivation matters.
- Do not assume altruism is pure because behavior is costly.
- Do not assume self-benefit eliminates other-regarding concern.
- Do not ignore mixed motives such as warm glow, reputation, guilt reduction, reciprocity, and moral identity.
- Do not treat empathy as universal or unbiased.
- Do not ignore in-group boundaries and unequal moral attention.
- Do not use altruism language to romanticize unpaid or coerced care labor.
- Do not confuse charity with structural justice.
- Do not treat costly punishment as automatically moral.
- Do not assume that good intentions produce effective outcomes.
The strongest approach treats altruism as a layered phenomenon. A helping act can be motivated by empathy, duty, identity, moral principle, social norms, reputation, reciprocity, and emotional reward. The task is not always to find a single pure motive. The task is to understand how motives interact and under what conditions they produce real benefit.
Altruism should also be studied across levels: individual emotion, interpersonal relationship, group identity, institutional structure, economic incentive, and cultural meaning. A person’s willingness to help is shaped by all of these.
Finally, altruism should be connected to justice. Helping matters, but the need for helping often arises from preventable harm. A serious theory of altruism asks not only why people help, but why some people are repeatedly placed in need of help and why some groups are expected to sacrifice more than others.
Measurement, data, and research design
Altruism research uses laboratory experiments, economic games, donation studies, volunteerism measures, public-goods games, dictator games, prisoner’s dilemma designs, empathy manipulations, costly-helping paradigms, field experiments, surveys, organizational data, and multilevel modeling.
Key variables include:
- participant, session, recipient, scenario, site, and group identifiers;
- experimental condition;
- empathic concern;
- personal distress;
- helping cost;
- recipient need;
- recipient closeness;
- identity overlap;
- kinship coefficient or kin-category proxy;
- reciprocity expectation;
- reputation visibility;
- moral identity;
- social norm salience;
- warm-glow expectation;
- perceived efficacy;
- intervention risk;
- altruistic decision;
- donation amount;
- time volunteered;
- altruistic punishment;
- punishment cost;
- public-goods contribution;
- response time.
Strong designs should distinguish empathic concern from personal distress. If helping is driven by self-oriented distress, it may decline when escape is easy. If helping is driven by empathic concern, it may persist even when the person can avoid the distressing situation. This distinction is central to testing the empathy–altruism hypothesis.
Researchers should also distinguish anonymous from public helping. Public helping may include reputational reward. Anonymous helping does not eliminate all self-regarding motives, but it reduces one important class of explanation. Similarly, studies should measure warm glow, moral identity, and anticipated guilt rather than treating them as invisible background variables.
For institutional and public-goods research, perceived efficacy is essential. People may decline to help not because they lack care, but because they doubt that their action will matter. Conversely, high efficacy can make costly contribution more meaningful.
Finally, altruism research should measure distributional patterns. Who receives help? Who is ignored? Who is expected to sacrifice? Who has the power to define helping? These questions connect social psychology to institutions, governance, ethics, and social justice.
R code for altruism research
The following R workflow models altruistic decisions, donation amounts, public-goods contributions, altruistic punishment, and response time as functions of empathy, helping cost, recipient need, recipient closeness, identity overlap, kinship, reciprocity, reputation, moral identity, helping norms, warm glow, perceived efficacy, and intervention risk.
# 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, session_id, recipient_id, scenario_id, site_id,
# condition, context_type, trial, empathy_score, personal_distress,
# helping_cost, recipient_need, recipient_closeness, identity_overlap,
# kinship_coefficient, reciprocity_expectation, reputation_visibility,
# moral_identity, social_norm_salience, warm_glow_expectation,
# perceived_efficacy, intervention_risk, altruistic_decision,
# donation_amount, time_volunteered_minutes, altruistic_punishment,
# punishment_cost, public_goods_contribution, response_time_ms
dat <- read_csv("altruism_trials.csv") %>%
mutate(
participant = factor(participant),
session_id = factor(session_id),
recipient_id = factor(recipient_id),
scenario_id = factor(scenario_id),
site_id = factor(site_id),
condition = factor(condition),
context_type = factor(context_type),
altruistic_decision = as.integer(altruistic_decision),
altruistic_punishment = as.integer(altruistic_punishment),
other_regarding_weight = (
empathy_score +
recipient_need +
identity_overlap +
moral_identity +
perceived_efficacy -
helping_cost -
intervention_risk
) / 5,
egoistic_reward_index = (
reciprocity_expectation +
reputation_visibility +
warm_glow_expectation
) / 3,
cost_pressure_index = (
helping_cost +
intervention_risk +
personal_distress
) / 3,
inclusive_fitness_score =
kinship_coefficient * recipient_need - helping_cost / 10,
log_response_time = log(response_time_ms)
)
summary_table <- dat %>%
group_by(condition, context_type) %>%
summarise(
n = n(),
participants = n_distinct(participant),
altruism_rate = mean(altruistic_decision, na.rm = TRUE),
punishment_rate = mean(altruistic_punishment, na.rm = TRUE),
mean_donation = mean(donation_amount, na.rm = TRUE),
mean_volunteer_minutes = mean(time_volunteered_minutes, na.rm = TRUE),
mean_public_goods = mean(public_goods_contribution, na.rm = TRUE),
mean_empathy = mean(empathy_score, na.rm = TRUE),
mean_cost = mean(helping_cost, na.rm = TRUE),
mean_recipient_need = mean(recipient_need, na.rm = TRUE),
mean_identity_overlap = mean(identity_overlap, na.rm = TRUE),
mean_moral_identity = mean(moral_identity, na.rm = TRUE),
mean_efficacy = mean(perceived_efficacy, na.rm = TRUE),
mean_other_regarding_weight = mean(other_regarding_weight, na.rm = TRUE),
mean_egoistic_reward = mean(egoistic_reward_index, na.rm = TRUE),
mean_response_time = mean(response_time_ms, na.rm = TRUE),
.groups = "drop"
)
print(summary_table)
altruistic_decision_model <- glmer(
altruistic_decision ~
empathy_score +
personal_distress +
helping_cost +
recipient_need +
recipient_closeness +
identity_overlap +
kinship_coefficient +
reciprocity_expectation +
reputation_visibility +
moral_identity +
social_norm_salience +
warm_glow_expectation +
perceived_efficacy +
intervention_risk +
condition +
context_type +
(1 | participant) +
(1 | recipient_id) +
(1 | scenario_id) +
(1 | site_id),
data = dat,
family = binomial(),
control = glmerControl(optimizer = "bobyqa")
)
summary(altruistic_decision_model)
emmeans(altruistic_decision_model, ~ condition, type = "response")
donation_model <- lmer(
donation_amount ~
empathy_score +
helping_cost +
recipient_need +
recipient_closeness +
identity_overlap +
reciprocity_expectation +
reputation_visibility +
moral_identity +
social_norm_salience +
warm_glow_expectation +
perceived_efficacy +
intervention_risk +
altruistic_decision +
condition +
context_type +
(1 | participant) +
(1 | recipient_id) +
(1 | scenario_id) +
(1 | site_id),
data = dat,
REML = FALSE
)
summary(donation_model)
public_goods_model <- lmer(
public_goods_contribution ~
social_norm_salience +
perceived_efficacy +
moral_identity +
reciprocity_expectation +
reputation_visibility +
warm_glow_expectation +
helping_cost +
altruistic_decision +
condition +
context_type +
(1 | participant) +
(1 | scenario_id) +
(1 | site_id),
data = dat,
REML = FALSE
)
summary(public_goods_model)
punishment_model <- glmer(
altruistic_punishment ~
social_norm_salience +
moral_identity +
identity_overlap +
personal_distress +
perceived_efficacy +
punishment_cost +
helping_cost +
intervention_risk +
condition +
context_type +
(1 | participant) +
(1 | scenario_id) +
(1 | site_id),
data = dat,
family = binomial(),
control = glmerControl(optimizer = "bobyqa")
)
summary(punishment_model)
response_time_model <- lmer(
log_response_time ~
empathy_score +
helping_cost +
personal_distress +
recipient_need +
perceived_efficacy +
intervention_risk +
altruistic_decision +
condition +
context_type +
(1 | participant) +
(1 | scenario_id) +
(1 | site_id),
data = dat %>% filter(response_time_ms >= 150),
REML = FALSE
)
summary(response_time_model)
cost_summary <- dat %>%
mutate(
cost_band = cut(
helping_cost,
breaks = c(-0.1, 2.5, 5, 7.5, 10.1),
labels = c("low_cost", "moderate_cost", "high_cost", "very_high_cost")
)
) %>%
group_by(condition, cost_band) %>%
summarise(
n = n(),
altruism_rate = mean(altruistic_decision, na.rm = TRUE),
mean_donation = mean(donation_amount, na.rm = TRUE),
mean_public_goods = mean(public_goods_contribution, na.rm = TRUE),
mean_empathy = mean(empathy_score, na.rm = TRUE),
mean_efficacy = mean(perceived_efficacy, na.rm = TRUE),
.groups = "drop"
)
write_csv(summary_table, "altruism_summary.csv")
write_csv(cost_summary, "altruism_cost_band_summary.csv")
write_csv(
tidy(altruistic_decision_model, effects = "fixed", conf.int = TRUE),
"altruism_decision_coefficients.csv"
)
ggplot(
cost_summary,
aes(x = cost_band, y = altruism_rate, color = condition, group = condition)
) +
geom_line() +
geom_point() +
labs(
title = "Altruistic decisions by helping cost and condition",
x = "Helping-cost band",
y = "Altruistic decision rate"
) +
theme_minimal()
This workflow supports altruism research by separating costly helping from donation amount, public-goods contribution, altruistic punishment, empathic concern, personal distress, moral identity, reputation, reciprocity, and perceived efficacy.
Python code for altruism research
The Python workflow below parallels the R analysis and adds simulation logic for empathy, helping cost, kinship, identity overlap, reputation, public-goods contribution, and altruistic punishment.
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
import statsmodels.api as sm
import matplotlib.pyplot as plt
# Expected columns:
# participant, session_id, recipient_id, scenario_id, site_id,
# condition, context_type, trial, empathy_score, personal_distress,
# helping_cost, recipient_need, recipient_closeness, identity_overlap,
# kinship_coefficient, reciprocity_expectation, reputation_visibility,
# moral_identity, social_norm_salience, warm_glow_expectation,
# perceived_efficacy, intervention_risk, altruistic_decision,
# donation_amount, time_volunteered_minutes, altruistic_punishment,
# punishment_cost, public_goods_contribution, response_time_ms
df = pd.read_csv("altruism_trials.csv")
for col in [
"participant",
"session_id",
"recipient_id",
"scenario_id",
"site_id",
"condition",
"context_type"
]:
df[col] = df[col].astype("category")
df["altruistic_decision"] = df["altruistic_decision"].astype(int)
df["altruistic_punishment"] = df["altruistic_punishment"].astype(int)
df["other_regarding_weight"] = (
df["empathy_score"]
+ df["recipient_need"]
+ df["identity_overlap"]
+ df["moral_identity"]
+ df["perceived_efficacy"]
- df["helping_cost"]
- df["intervention_risk"]
) / 5
df["egoistic_reward_index"] = (
df["reciprocity_expectation"]
+ df["reputation_visibility"]
+ df["warm_glow_expectation"]
) / 3
df["cost_pressure_index"] = (
df["helping_cost"]
+ df["intervention_risk"]
+ df["personal_distress"]
) / 3
df["inclusive_fitness_score"] = (
df["kinship_coefficient"] * df["recipient_need"]
- df["helping_cost"] / 10
)
df["log_response_time"] = np.log(df["response_time_ms"])
summary_table = (
df.groupby(["condition", "context_type"], observed=True)
.agg(
n=("participant", "size"),
participants=("participant", "nunique"),
altruism_rate=("altruistic_decision", "mean"),
punishment_rate=("altruistic_punishment", "mean"),
mean_donation=("donation_amount", "mean"),
mean_volunteer_minutes=("time_volunteered_minutes", "mean"),
mean_public_goods=("public_goods_contribution", "mean"),
mean_empathy=("empathy_score", "mean"),
mean_cost=("helping_cost", "mean"),
mean_recipient_need=("recipient_need", "mean"),
mean_identity_overlap=("identity_overlap", "mean"),
mean_moral_identity=("moral_identity", "mean"),
mean_efficacy=("perceived_efficacy", "mean"),
mean_other_regarding_weight=("other_regarding_weight", "mean"),
mean_egoistic_reward=("egoistic_reward_index", "mean"),
mean_response_time=("response_time_ms", "mean"),
)
.reset_index()
)
print(summary_table)
decision_model = smf.glm(
"altruistic_decision ~ empathy_score + personal_distress "
"+ helping_cost + recipient_need + recipient_closeness "
"+ identity_overlap + kinship_coefficient "
"+ reciprocity_expectation + reputation_visibility "
"+ moral_identity + social_norm_salience "
"+ warm_glow_expectation + perceived_efficacy "
"+ intervention_risk + condition + context_type",
data=df,
family=sm.families.Binomial()
)
decision_result = decision_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]}
)
print(decision_result.summary())
donation_model = smf.ols(
"donation_amount ~ empathy_score + helping_cost "
"+ recipient_need + recipient_closeness + identity_overlap "
"+ reciprocity_expectation + reputation_visibility "
"+ moral_identity + social_norm_salience "
"+ warm_glow_expectation + perceived_efficacy "
"+ intervention_risk + altruistic_decision "
"+ condition + context_type",
data=df,
)
donation_result = donation_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]}
)
print(donation_result.summary())
public_goods_model = smf.ols(
"public_goods_contribution ~ social_norm_salience "
"+ perceived_efficacy + moral_identity "
"+ reciprocity_expectation + reputation_visibility "
"+ warm_glow_expectation + helping_cost "
"+ altruistic_decision + condition + context_type",
data=df,
)
public_goods_result = public_goods_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]}
)
print(public_goods_result.summary())
punishment_model = smf.glm(
"altruistic_punishment ~ social_norm_salience "
"+ moral_identity + identity_overlap + personal_distress "
"+ perceived_efficacy + punishment_cost + helping_cost "
"+ intervention_risk + condition + context_type",
data=df,
family=sm.families.Binomial()
)
punishment_result = punishment_model.fit(
cov_type="cluster",
cov_kwds={"groups": df["participant"]}
)
print(punishment_result.summary())
def simulate_altruism(n_cases=8000, seed=42):
rng = np.random.default_rng(seed)
rows = []
conditions = [
"high_empathy",
"high_cost",
"anonymous_helping",
"public_helping",
"kin_recipient",
"public_goods",
"altruistic_punishment"
]
for condition in conditions:
for _ in range(n_cases):
empathy = {
"high_empathy": 8.5,
"public_helping": 6.2,
"altruistic_punishment": 5.5
}.get(condition, 7.0) + rng.normal(0, 0.8)
cost = {
"high_cost": 8.5,
"kin_recipient": 5.5,
"altruistic_punishment": 5.0
}.get(condition, 4.0) + rng.normal(0, 0.8)
need = 7.0 + rng.normal(0, 0.8)
identity = {
"kin_recipient": 8.5,
"public_goods": 5.0,
"altruistic_punishment": 5.0
}.get(condition, 4.0) + rng.normal(0, 0.8)
kin = 0.5 if condition == "kin_recipient" else 0.0
reciprocity = 4.0 if condition == "public_goods" else 2.0
reputation = {
"public_helping": 8.0,
"anonymous_helping": 0.5
}.get(condition, 3.0)
moral = 7.0 + rng.normal(0, 1.0)
norms = 8.0 if condition in ["public_goods", "altruistic_punishment"] else 5.5
warm = 6.0 + rng.normal(0, 0.8)
efficacy = 8.5 if condition == "public_goods" else 6.5
risk = {
"high_cost": 7.5,
"altruistic_punishment": 4.0
}.get(condition, 3.0)
latent = (
-4.2
+ 0.34 * empathy
+ 0.20 * need
+ 0.25 * identity
+ 1.4 * kin
+ 0.16 * reciprocity
+ 0.10 * reputation
+ 0.28 * moral
+ 0.20 * norms
+ 0.18 * warm
+ 0.30 * efficacy
- 0.36 * cost
- 0.24 * risk
)
probability = 1 / (1 + np.exp(-latent))
decision = int(rng.random() < probability)
donation = np.clip(
4
+ 8.5 * decision
+ 4.2 * empathy
+ 2.2 * moral
+ 2.0 * efficacy
+ 1.7 * warm
+ 1.2 * reputation
- 3.0 * cost
- 1.5 * risk
+ rng.normal(0, 7),
0,
100
)
rows.append({
"condition": condition,
"empathy_score": empathy,
"helping_cost": cost,
"recipient_need": need,
"identity_overlap": identity,
"kinship_coefficient": kin,
"reciprocity_expectation": reciprocity,
"reputation_visibility": reputation,
"moral_identity": moral,
"social_norm_salience": norms,
"warm_glow_expectation": warm,
"perceived_efficacy": efficacy,
"intervention_risk": risk,
"altruism_probability": probability,
"altruistic_decision": decision,
"donation_amount": donation,
})
simulation = pd.DataFrame(rows)
simulation_summary = (
simulation.groupby("condition")
.agg(
n=("condition", "size"),
mean_empathy=("empathy_score", "mean"),
mean_cost=("helping_cost", "mean"),
mean_probability=("altruism_probability", "mean"),
altruism_rate=("altruistic_decision", "mean"),
mean_donation=("donation_amount", "mean"),
)
.reset_index()
)
return simulation, simulation_summary
simulation, simulation_summary = simulate_altruism()
print(simulation_summary)
cost_summary = (
df.assign(
cost_band=pd.cut(
df["helping_cost"],
bins=[-0.1, 2.5, 5, 7.5, 10.1],
labels=["low_cost", "moderate_cost", "high_cost", "very_high_cost"]
)
)
.groupby(["condition", "cost_band"], observed=True)
.agg(altruism_rate=("altruistic_decision", "mean"))
.reset_index()
)
fig, ax = plt.subplots(figsize=(8, 5))
for condition, group in cost_summary.groupby("condition", observed=True):
ax.plot(
group["cost_band"].astype(str),
group["altruism_rate"],
marker="o",
label=condition
)
ax.set_xlabel("Helping-cost band")
ax.set_ylabel("Altruistic decision rate")
ax.set_title("Altruistic decisions by helping cost and condition")
ax.legend()
plt.tight_layout()
plt.show()
summary_table.to_csv("altruism_summary.csv", index=False)
simulation.to_csv("altruism_simulation.csv", index=False)
simulation_summary.to_csv("altruism_simulation_summary.csv", index=False)
This Python workflow supports experimental, evolutionary, behavioral-economic, and institutional altruism research by modeling costly helping, donation, public-goods contribution, and altruistic punishment across other-regarding and self-regarding motives.
Research data architecture
Altruism research often depends on relational data: participants, sessions, recipients, scenarios, sites, conditions, context types, empathy, personal distress, helping cost, recipient need, recipient closeness, identity overlap, kinship, reciprocity expectation, reputation visibility, moral identity, norm salience, warm glow, perceived efficacy, intervention risk, altruistic decisions, donation amounts, volunteer time, altruistic punishment, punishment cost, public-goods contribution, and response time.
Rather than embedding executable database code directly in the WordPress 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:
- Does empathic concern predict costly helping after controlling for reputation and reciprocity?
- Does helping cost reduce altruistic decisions?
- Does perceived efficacy increase donation or public-goods contribution?
- Does identity overlap expand the scope of helping?
- Does reputation visibility change donation amount?
- Does warm glow predict giving independently of empathy?
- Does kinship predict high-cost helping?
- Do social norms predict altruistic punishment?
- Are anonymous helping and public helping driven by different motivational profiles?
The GitHub repository contains the full database schema, example analytical queries, validation logic, and reproducible data workflow. Keeping 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.
GitHub repository
The companion repository provides reusable code and research scaffolding for studying altruism, including workflows for empathy-induced helping, costly helping, donation, kinship, reciprocity, reputation visibility, warm-glow giving, moral identity, social norms, perceived efficacy, public-goods contribution, and altruistic punishment.
Complete Code Repository
Access the full companion repository for this article, including reproducible analysis materials and multi-language code workflows for altruism research.
Why altruism matters
Altruism matters because it shows that human social life cannot be explained by narrow self-interest alone. People give, help, rescue, protect, volunteer, care, punish free riders, defend public goods, and sacrifice for others under conditions where immediate personal gain is uncertain or absent.
At the same time, altruism is not simple purity. It is shaped by empathy, identity, kinship, reciprocity, reputation, norms, warm glow, perceived efficacy, institutional trust, and social power. Helping may be generous and mixed-motive at the same time. It may sustain cooperation while also being unevenly distributed. It may express moral care while also revealing institutional failure.
The strongest account of altruism therefore treats it as both a psychological capacity and a social design problem. People are more likely to help when need is visible, empathy is activated, costs are manageable, efficacy is credible, norms support care, institutions protect helpers, and moral communities are expansive rather than exclusionary.
Read alongside prosocial behavior, the bystander effect, social norms, social identity theory, collective action, Behavioral Economics, and Stewardship & Ethics, altruism becomes more than an individual virtue. It becomes a framework for understanding how care becomes action, how cooperation survives, and how societies decide whose welfare matters.
Related articles
- Social Psychology
- Prosocial Behavior in Social Psychology
- The Bystander Effect
- Diffusion of Responsibility
- Social Norms in Social Psychology
- Social Identity Theory
- In-Group Bias
- Collective Action and Social Change
- Social Dilemmas
- The Tragedy of the Commons
- Behavioral Economics
- Stewardship & Ethics
Further reading
- American Psychological Association (2018) ‘Altruism’, APA Dictionary of Psychology. Available at: https://dictionary.apa.org/altruism.
- Andreoni, J. (1990) ‘Impure altruism and donations to public goods: A theory of warm-glow giving’, The Economic Journal, 100(401), pp. 464–477. Available at: https://doi.org/10.2307/2234133.
- Batson, C.D. (2011) Altruism in Humans. New York: Oxford University Press. Available at: https://global.oup.com/academic/product/altruism-in-humans-9780195341065.
- Batson, C.D., Duncan, B.D., Ackerman, P., Buckley, T. and Birch, K. (1981) ‘Is empathic emotion a source of altruistic motivation?’, Journal of Personality and Social Psychology, 40(2), pp. 290–302. Available at: https://greatergood.berkeley.edu/images/uploads/Baston-EmpathySourceAltruism.pdf.
- Fehr, E. and Gächter, S. (2002) ‘Altruistic punishment in humans’, Nature, 415, pp. 137–140. Available at: https://doi.org/10.1038/415137a.
- Hamilton, W.D. (1964) ‘The genetical evolution of social behaviour. I’, Journal of Theoretical Biology, 7(1), pp. 1–16. Available at: https://doi.org/10.1016/0022-5193(64)90038-4.
- Hamilton, W.D. (1964) ‘The genetical evolution of social behaviour. II’, Journal of Theoretical Biology, 7(1), pp. 17–52. Available at: https://doi.org/10.1016/0022-5193(64)90039-6.
- Nowak, M.A. (2006) ‘Five rules for the evolution of cooperation’, Science, 314(5805), pp. 1560–1563. Available at: https://doi.org/10.1126/science.1133755.
- Penner, L.A., Dovidio, J.F., Piliavin, J.A. and Schroeder, D.A. (2005) ‘Prosocial behavior: Multilevel perspectives’, Annual Review of Psychology, 56, pp. 365–392. Available at: https://doi.org/10.1146/annurev.psych.56.091103.070141.
- Trivers, R.L. (1971) ‘The evolution of reciprocal altruism’, The Quarterly Review of Biology, 46(1), pp. 35–57. Available at: https://doi.org/10.1086/406755.
- Warneken, F. and Tomasello, M. (2006) ‘Altruistic helping in human infants and young chimpanzees’, Science, 311(5765), pp. 1301–1303. Available at: https://doi.org/10.1126/science.1121448.
References
- American Psychological Association (2018) ‘Altruism’, APA Dictionary of Psychology. Available at: https://dictionary.apa.org/altruism.
- Andreoni, J. (1990) ‘Impure altruism and donations to public goods: A theory of warm-glow giving’, The Economic Journal, 100(401), pp. 464–477. Available at: https://doi.org/10.2307/2234133.
- Batson, C.D. (2011) Altruism in Humans. New York: Oxford University Press. Available at: https://global.oup.com/academic/product/altruism-in-humans-9780195341065.
- Batson, C.D., Duncan, B.D., Ackerman, P., Buckley, T. and Birch, K. (1981) ‘Is empathic emotion a source of altruistic motivation?’, Journal of Personality and Social Psychology, 40(2), pp. 290–302. Available at: https://greatergood.berkeley.edu/images/uploads/Baston-EmpathySourceAltruism.pdf.
- Fehr, E. and Gächter, S. (2002) ‘Altruistic punishment in humans’, Nature, 415, pp. 137–140. Available at: https://doi.org/10.1038/415137a.
- Hamilton, W.D. (1964) ‘The genetical evolution of social behaviour. I’, Journal of Theoretical Biology, 7(1), pp. 1–16. Available at: https://doi.org/10.1016/0022-5193(64)90038-4.
- Hamilton, W.D. (1964) ‘The genetical evolution of social behaviour. II’, Journal of Theoretical Biology, 7(1), pp. 17–52. Available at: https://doi.org/10.1016/0022-5193(64)90039-6.
- Nowak, M.A. (2006) ‘Five rules for the evolution of cooperation’, Science, 314(5805), pp. 1560–1563. Available at: https://doi.org/10.1126/science.1133755.
- Penner, L.A., Dovidio, J.F., Piliavin, J.A. and Schroeder, D.A. (2005) ‘Prosocial behavior: Multilevel perspectives’, Annual Review of Psychology, 56, pp. 365–392. Available at: https://doi.org/10.1146/annurev.psych.56.091103.070141.
- Trivers, R.L. (1971) ‘The evolution of reciprocal altruism’, The Quarterly Review of Biology, 46(1), pp. 35–57. Available at: https://doi.org/10.1086/406755.
- Warneken, F. and Tomasello, M. (2006) ‘Altruistic helping in human infants and young chimpanzees’, Science, 311(5765), pp. 1301–1303. Available at: https://doi.org/10.1126/science.1121448.
