Differential calculus: the impact of group norms, social values and identity on altruism