Introduction

This report documents the effect sizes (Cohen’s d) of all manipulations attempts of heroism, for all occupations. It will be updated with future manipulations. Just below, you will find tables summarising effect sizes for each occupation, across all studies conducted as of the moment the document was created.

If you keep scrolling, you will find some details for each study, including sample sizes, design, types of manipulation.

Scroll a little longer, and you will find all vignettes ever used.

Synthesis per Occupation

Set1<-read.csv("dataPilot1.csv")
# str(Set1)
F1 <- subset(Set1, Set1$Job == "Firefighter") 
Ps1 <- subset(Set1, Set1$Job == "Psychiatrist")
M1 <- subset(Set1, Set1$Job == "Military")
N1 <- subset(Set1, Set1$Job == "HealthCare")
P1 <- subset(Set1, Set1$Job == "Police")


Set2<-read.csv("Pilot2.csv")

Set2$Risk <- factor(Set2$Risk, levels = c("R", "B")) # Just reordering the factor so that ppositive d means R > B

# str(Set1)
F2 <- subset(Set2, Set2$Job == "F") 
Ps2 <- subset(Set2, Set2$Job == "Ps")
W2 <- subset(Set2, Set2$Job == "W")
N2 <- subset(Set2, Set2$Job == "N")
P2 <- subset(Set2, Set2$Job == "P")


Set3<-read.csv("Pilot3.csv")
# str(Set2)
Set3$Motivation <- factor(Set3$Motivation, levels = c("Selfless", "Selfish")) # Just reordering the factor so that ppositive d means R > B

F3 <- subset(Set3, Set3$Job == "Firefighters") 
Ps3 <- subset(Set3, Set3$Job == "Psychiatrists")
W3 <- subset(Set3, Set3$Job == "Welders")


Set4<-read.csv("Exp1.csv")
# str(Set2)

Set4$Risk_cond <- factor(Set4$Risk_cond, levels = c("0.5", "-0.5")) # Just reordering the factor so that ppositive d means R > B

Set4$Help_cond <- factor(Set4$Help_cond, levels = c("0.5", "-0.5")) # Just reordering the factor so that ppositive d means R > B

P4 <- subset(Set4, Set4$dataset == "Psych")
W4 <- subset(Set4, Set4$dataset == "Weld")

make_d_row <- function(data, study, predictor_label, outcome, predictor) {
  
  formula_text <- paste(outcome, "~", predictor)
  d_obj <- effectsize::cohens_d(as.formula(formula_text), data = data)
  
  data.frame(
    Study = study,
    Predictor = predictor_label,
    d = round(d_obj$Cohens_d, 2),
    CI = paste0("[", round(d_obj$CI_low, 2), ", ", round(d_obj$CI_high, 2), "]"),
    stringsAsFactors = FALSE
  )
}

Firefighters

table_firefighters <- bind_rows(
  make_d_row(F1, "Pilot 1", "Risk",         "Heroes",  "Risk"),
  make_d_row(F1, "Pilot 1", "Altruism",   "Heroes",  "Motiv"),
  make_d_row(F2, "Pilot 2", "Risk",         "Heroism", "Risk"),
  make_d_row(F2, "Pilot 2", "Altruism",  "Heroism", "Help"),
  make_d_row(F3, "Pilot 3", "Helpfulness",  "Heroism", "Help"),
  make_d_row(F3, "Pilot 3", "Selflessness",   "Heroism", "Motivation")
)

names(table_firefighters)[names(table_firefighters) == "d"] <- "Cohen's d"

knitr::kable(
  table_firefighters[, c("Predictor", "Cohen's d", "CI")],
  caption = "Firefighters: Cohen's d across studies",
  align = "c"
) %>%
  kableExtra::kable_styling(full_width = FALSE) %>%
  kableExtra::pack_rows(index = c("Pilot 1" = 2, "Pilot 2" = 2, "Pilot 3" = 2))
Firefighters: Cohen’s d across studies
Predictor Cohen’s d CI
Pilot 1
Risk -0.02 [-0.18, 0.14]
Altruism 0.04 [-0.12, 0.2]
Pilot 2
Risk 0.25 [0.01, 0.49]
Altruism 0.01 [-0.23, 0.24]
Pilot 3
Helpfulness 0.15 [-0.08, 0.39]
Selflessness 0.13 [-0.11, 0.37]

Nurses/Healthcare workers

table_nurses <- bind_rows(
  make_d_row(N1, "Pilot 1", "Risk",         "Heroes",  "Risk"),
  make_d_row(N1, "Pilot 1", "Altruism",   "Heroes",  "Motiv"),
  make_d_row(N2, "Pilot 2", "Risk",         "Heroism", "Risk"),
  make_d_row(N2, "Pilot 2", "Altruism",  "Heroism", "Help")
)

names(table_nurses)[names(table_nurses) == "d"] <- "Cohen's d"

knitr::kable(
  table_nurses,
  caption = "Nurses / Healthcare workers: Cohen's d across studies",
  align = "c"
)  %>%
  kableExtra::kable_styling(full_width = FALSE) %>%
  kableExtra::pack_rows(index = c("Pilot 1" = 2, "Pilot 2" = 2))
Nurses / Healthcare workers: Cohen’s d across studies
Study Predictor Cohen’s d CI
Pilot 1
Pilot 1 Risk -0.08 [-0.24, 0.08]
Pilot 1 Altruism 0.02 [-0.14, 0.18]
Pilot 2
Pilot 2 Risk 0.14 [-0.1, 0.37]
Pilot 2 Altruism 0.03 [-0.2, 0.27]

Psychiatrists

table_psychiatrists <- bind_rows(
  make_d_row(Ps1, "Pilot 1", "Risk",         "Heroes",  "Risk"),
  make_d_row(Ps1, "Pilot 1", "Altruism",   "Heroes",  "Motiv"),
  make_d_row(Ps2, "Pilot 2", "Risk",         "Heroism", "Risk"),
  make_d_row(Ps2, "Pilot 2", "Altruism",  "Heroism", "Help"),
  make_d_row(Ps3, "Pilot 3", "Helpfulness",  "Heroism", "Help"),
  make_d_row(Ps3, "Pilot 3", "Selflessness",   "Heroism", "Motivation"),
  make_d_row(P4,  "Exp 1",   "Risk",         "Heroism", "Risk_cond"),
  make_d_row(P4,  "Exp 1",   "Helpfulness",  "Heroism", "Help_cond")
)

names(table_psychiatrists)[names(table_psychiatrists) == "d"] <- "Cohen's d"

knitr::kable(
  table_psychiatrists,
  caption = "Psychiatrists: Cohen's d across studies",
  align = "c"
)  %>%
  kableExtra::kable_styling(full_width = FALSE) %>%
  kableExtra::pack_rows(index = c("Pilot 1" = 2, "Pilot 2" = 2, "Pilot 3" = 2, "Exp 1" = 2))
Psychiatrists: Cohen’s d across studies
Study Predictor Cohen’s d CI
Pilot 1
Pilot 1 Risk -0.10 [-0.26, 0.06]
Pilot 1 Altruism 0.10 [-0.06, 0.26]
Pilot 2
Pilot 2 Risk 0.37 [0.13, 0.61]
Pilot 2 Altruism 0.25 [0.01, 0.49]
Pilot 3
Pilot 3 Helpfulness 0.27 [0.03, 0.51]
Pilot 3 Selflessness 0.19 [-0.05, 0.42]
Exp 1
Exp 1 Risk 0.09 [-0.07, 0.25]
Exp 1 Helpfulness 0.02 [-0.14, 0.18]

Underwater welders

table_welders <- bind_rows(
  make_d_row(W2, "Pilot 2", "Risk",         "Heroism", "Risk"),
  make_d_row(W2, "Pilot 2", "Altruism",  "Heroism", "Help"),
  make_d_row(W3, "Pilot 3", "Helpfulness",  "Heroism", "Help"),
  make_d_row(W3, "Pilot 3", "Selflessness",   "Heroism", "Motivation"),
  make_d_row(W4, "Exp 1",   "Risk",         "Heroism", "Risk_cond"),
  make_d_row(W4, "Exp 1",   "Helpfulness",  "Heroism", "Help_cond")
)

names(table_welders)[names(table_welders) == "d"] <- "Cohen's d"

knitr::kable(
  table_welders,
  caption = "Underwater welders: Cohen's d across studies",
  align = "c"
)  %>%
  kableExtra::kable_styling(full_width = FALSE) %>%
  kableExtra::pack_rows(index = c("Pilot 2" = 2, "Pilot 3" = 2, "Exp 1" = 2))
Underwater welders: Cohen’s d across studies
Study Predictor Cohen’s d CI
Pilot 2
Pilot 2 Risk 0.89 [0.64, 1.14]
Pilot 2 Altruism 0.27 [0.03, 0.51]
Pilot 3
Pilot 3 Helpfulness 1.14 [0.88, 1.39]
Pilot 3 Selflessness 0.09 [-0.15, 0.33]
Exp 1
Exp 1 Risk 0.30 [0.13, 0.46]
Exp 1 Helpfulness 0.25 [0.08, 0.41]

Soldiers

table_soldiers <- bind_rows(
  make_d_row(M1, "Pilot 1", "Risk",         "Heroes",  "Risk"),
  make_d_row(M1, "Pilot 1", "Altruism",   "Heroes",  "Motiv")
)

names(table_soldiers)[names(table_soldiers) == "d"] <- "Cohen's d"

knitr::kable(
  table_soldiers,
  caption = "Soldiers: Cohen's d across studies",
  align = "c"
)  %>%
  kableExtra::kable_styling(full_width = FALSE)
Soldiers: Cohen’s d across studies
Study Predictor Cohen’s d CI
Pilot 1 Risk -0.03 [-0.19, 0.13]
Pilot 1 Altruism 0.00 [-0.16, 0.16]

Police officers

table_police <- bind_rows(
  make_d_row(P1, "Pilot 1", "Risk",         "Heroes",  "Risk"),
  make_d_row(P1, "Pilot 1", "Altruism",   "Heroes",  "Motiv"),
  make_d_row(P2, "Pilot 2", "Risk",         "Heroism", "Risk"),
  make_d_row(P2, "Pilot 2", "Altruism",  "Heroism", "Help")
)

names(table_police)[names(table_police) == "d"] <- "Cohen's d"

knitr::kable(
  table_police,
  caption = "Police officers: Cohen's d across studies",
  align = "c"
)  %>%
  kableExtra::kable_styling(full_width = FALSE) %>%
  kableExtra::pack_rows(index = c("Pilot 1" = 2, "Pilot 2" = 2))
Police officers: Cohen’s d across studies
Study Predictor Cohen’s d CI
Pilot 1
Pilot 1 Risk 0.16 [0, 0.32]
Pilot 1 Altruism -0.01 [-0.17, 0.15]
Pilot 2
Pilot 2 Risk 0.18 [-0.06, 0.42]
Pilot 2 Altruism 0.09 [-0.14, 0.33]

Pilot 1 (details)

In the first study of the project, we attempted to manipulate perceived occupational heroism through bullet points. Target occupations were described as exposed to physical risk vs psychological risk; having selfless motivations vs self-improvement motivations.

  • Target occupations: Healthcare workers; Soldiers; Firefighters; Police officers; Psychiatrists
  • Sample size: 600 (representative UK residents)

*Note that this study followed a within participant design: each participant saw descriptions of each occupation – this is the only exception to a between-participant design applied in all the other studies: each participant is assigned to one occupation.**

Examples (Firefighters)

Below is an example of the conditions used within the firefighters condition. Other vignettes used in pilot 1 are displayed in the appendix

Physical risk x selflessness

Physical risk x selflessness
Physical risk x selflessness

Psychological risk x selflessness

Psychological risk x selflessness
Psychological risk x selflessness

Physical risk x self-centered

Physical risk x self-centered
Physical risk x self-centered

Psychological risk x self-centered

Psychological risk x self-centered ___

Results

Set1<-read.csv("dataPilot1.csv")
# str(Set1)
Firef <- subset(Set1, Set1$Job == "Firefighter") 
Psych <- subset(Set1, Set1$Job == "Psychiatrist")
Military <- subset(Set1, Set1$Job == "Military")
Nurses <- subset(Set1, Set1$Job == "HealthCare")
Police <- subset(Set1, Set1$Job == "Police")


d_F_risk <- cohens_d(Heroes ~ Risk,       data = Firef)
d_F_Help  <- cohens_d(Heroes ~ Motiv, data = Firef)
d_Ps_risk <- cohens_d(Heroes ~ Risk,       data = Psych)
d_Ps_Help  <- cohens_d(Heroes ~ Motiv, data = Psych)
d_M_risk <- cohens_d(Heroes ~ Risk,       data = Military)
d_M_Help  <- cohens_d(Heroes ~ Motiv, data = Military)
d_N_risk  <- cohens_d(Heroes ~ Risk, data = Nurses)
d_N_Help <- cohens_d(Heroes ~ Motiv,       data = Nurses)
d_P_risk  <- cohens_d(Heroes ~ Risk, data = Police)
d_P_Help <- cohens_d(Heroes ~ Motiv,       data = Police)

# assemble into a single data.frame
table2 <- bind_rows(
  data.frame(
    Occupation = "Firefighters",
    Predictor  = "Risk",
    d          = round(d_F_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_F_risk$CI_low, 2), ", ", round(d_F_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Firefighters",
    Predictor  = "Help",
    d          = round(d_F_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_F_Help$CI_low, 2), ", ", round(d_F_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Psychiatrists",
    Predictor  = "Risk",
    d          = round(d_Ps_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_Ps_risk$CI_low, 2), ", ", round(d_Ps_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Psychiatrists",
    Predictor  = "Help",
    d          = round(d_Ps_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_Ps_Help$CI_low, 2), ", ", round(d_Ps_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Soldiers",
    Predictor  = "Risk",
    d          = round(d_M_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_M_risk$CI_low, 2), ", ", round(d_M_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Soldiers",
    Predictor  = "Help",
    d          = round(d_M_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_M_Help$CI_low, 2), ", ", round(d_M_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Healthcare workers",
    Predictor  = "Risk",
    d          = round(d_N_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_N_risk$CI_low, 2), ", ", round(d_N_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Healthcare workers",
    Predictor  = "Help",
    d          = round(d_N_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_N_Help$CI_low, 2), ", ", round(d_N_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Police officers",
    Predictor  = "Risk",
    d          = round(d_P_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_P_risk$CI_low, 2), ", ", round(d_P_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Police officers",
    Predictor  = "Help",
    d          = round(d_P_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_P_Help$CI_low, 2), ", ", round(d_P_Help$CI_high, 2), "]")
  )
) %>%
  rename(`Cohen's d` = d)

# render
kable(
  table2,
  caption = "Table 1. Cohen's d in pilot study 1",
  align   = "c"
)
Table 1. Cohen’s d in pilot study 1
Occupation Predictor Cohen’s d CI
Firefighters Risk -0.02 [-0.18, 0.14]
Firefighters Help 0.04 [-0.12, 0.2]
Psychiatrists Risk -0.10 [-0.26, 0.06]
Psychiatrists Help 0.10 [-0.06, 0.26]
Soldiers Risk -0.03 [-0.19, 0.13]
Soldiers Help 0.00 [-0.16, 0.16]
Healthcare workers Risk -0.08 [-0.24, 0.08]
Healthcare workers Help 0.02 [-0.14, 0.18]
Police officers Risk 0.16 [0, 0.32]
Police officers Help -0.01 [-0.17, 0.15]
  • Only the police officers were a tad bit perceived as more heroic when described as exposed to physical vs psychological risks.

Failure. We believe the manipulations failed in creating large enough contrasts between each condition: physical vs psychological risk might not make that much of a difference; and being driven by self-improvement is a generally valued trait that could be applied to heroes. Moreover, being driven by self-improvement does not mean one is not motivated by selflessness and vice versa.

We thus started developping measures that would more dramatically contrast conditions.

Pilot 2 (details)

In a second attempt to manipulate occupational heroism, we tested a more narrative approach. Three paragraphs depicted target occupations as exposed to risk (vs bored most of the time) and being motivated by selflessness (vs not being motivated by selflessness).

  • Target occupations: Nurses, Police officers, Firefighters, Psychiatrists and Underwater welders
  • Sample size: 1360 (representative UK residents)

Examples (Psychiatrists)

Below is an example of the conditions used within the psychiatrist condition. Other vignettes used in pilot 2 are displayed in the appendix

Risk x Selfless

Risk x Selfless
Risk x Selfless

Boredom x Selfless

Boredom x Selfless
Boredom x Selfless

Risk x Selfishness

Risk x Selfishness
Risk x Selfishness

Boredom x Selfishness

Boredom x Selfishness
Boredom x Selfishness

Results

Set1<-read.csv("Pilot2.csv")

Set1$Risk <- factor(Set1$Risk, levels = c("R", "B")) # Just reordering the factor so that ppositive d means R > B

# str(Set1)
Firef <- subset(Set1, Set1$Job == "F") 
Psych <- subset(Set1, Set1$Job == "Ps")
Weld <- subset(Set1, Set1$Job == "W")
Nurses <- subset(Set1, Set1$Job == "N")
Police <- subset(Set1, Set1$Job == "P")


d_F_risk <- cohens_d(Heroism ~ Risk,       data = Firef)
d_F_Help  <- cohens_d(Heroism ~ Help, data = Firef)
d_Ps_risk <- cohens_d(Heroism ~ Risk,       data = Psych)
d_Ps_Help  <- cohens_d(Heroism ~ Help, data = Psych)
d_W_risk <- cohens_d(Heroism ~ Risk,       data = Weld)
d_W_Help  <- cohens_d(Heroism ~ Help, data = Weld)
d_N_risk  <- cohens_d(Heroism ~ Risk, data = Nurses)
d_N_Help <- cohens_d(Heroism ~ Help,       data = Nurses)
d_P_risk  <- cohens_d(Heroism ~ Risk, data = Police)
d_P_Help <- cohens_d(Heroism ~ Help,       data = Police)

# assemble into a single data.frame
table2 <- bind_rows(
  data.frame(
    Occupation = "Firefighters",
    Predictor  = "Risk",
    d          = round(d_F_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_F_risk$CI_low, 2), ", ", round(d_F_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Firefighters",
    Predictor  = "Help",
    d          = round(d_F_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_F_Help$CI_low, 2), ", ", round(d_F_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Psychiatrists",
    Predictor  = "Risk",
    d          = round(d_Ps_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_Ps_risk$CI_low, 2), ", ", round(d_Ps_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Psychiatrists",
    Predictor  = "Help",
    d          = round(d_Ps_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_Ps_Help$CI_low, 2), ", ", round(d_Ps_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Welders",
    Predictor  = "Risk",
    d          = round(d_W_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_W_risk$CI_low, 2), ", ", round(d_W_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Welders",
    Predictor  = "Help",
    d          = round(d_W_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_W_Help$CI_low, 2), ", ", round(d_W_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Nurses",
    Predictor  = "Risk",
    d          = round(d_N_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_N_risk$CI_low, 2), ", ", round(d_N_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Nurses",
    Predictor  = "Help",
    d          = round(d_N_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_N_Help$CI_low, 2), ", ", round(d_N_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Police officers",
    Predictor  = "Risk",
    d          = round(d_P_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_P_risk$CI_low, 2), ", ", round(d_P_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Police officers",
    Predictor  = "Help",
    d          = round(d_P_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_P_Help$CI_low, 2), ", ", round(d_P_Help$CI_high, 2), "]")
  )
) %>%
  rename(`Cohen's d` = d)

# render
kable(
  table2,
  caption = "Table 2. Cohen's d in pilot study 2",
  align   = "c"
)
Table 2. Cohen’s d in pilot study 2
Occupation Predictor Cohen’s d CI
Firefighters Risk 0.25 [0.01, 0.49]
Firefighters Help 0.01 [-0.23, 0.24]
Psychiatrists Risk 0.37 [0.13, 0.61]
Psychiatrists Help 0.25 [0.01, 0.49]
Welders Risk 0.89 [0.64, 1.14]
Welders Help 0.27 [0.03, 0.51]
Nurses Risk 0.14 [-0.1, 0.37]
Nurses Help 0.03 [-0.2, 0.27]
Police officers Risk 0.18 [-0.06, 0.42]
Police officers Help 0.09 [-0.14, 0.33]
  • Firefighters were significantly more heroic in the risk (vs boredom) condition

  • Psychiatrists were significantly more heroic in the risk (vs boredom) condition

  • Welders were significantly more heroic in the risk (vs boredom) condition

  • Psychiatrists were significantly more heroic in the Altruistic (vs self-centered) condition

  • Welders were significantly more heroic in the Altruistic (vs self-centered) condition

Overall, the risk (vs boredom) manipulation was a success. However, the manipulation of selflessness failed to manipulate perceived heroism.

We reasonned that 1) not being motivated by selflessness did not invalidate that one is selfless; or helpful; 2) maybe rather than the motivation of being selfless (which is something shared by common humans as much as heroes, for I too want to help people), it might be the actual help that workers provide that would characterise heroes. In other words, maybe heroism is more about actual helpfulness rather than selflessness. Behaviour, rather than character.

Pilot 3 (details)

In this last pilot study, we tested whether heroism was a consequence of being described as helpful, or selfless. We manipulated descriptions of target occupations as actually helpful, or actually not very helpful. In addition, target occupations were described as being motivated by selfless motives, vs not motivated by selfless motives.

  • Target occupations: Firefighters; Psychiatrists; Underwater welders
  • Sample size: 816 (representative UK residents)

Example (Welders)

Below is an example of the conditions used within the welder condition. Other vignettes used in pilot 3 are displayed in the appendix

Helpful x Selfless

Not Helpful x Selfless

Helpful x Selfish

Not helpful x Selfish


Results

Set2<-read.csv("Pilot3.csv")
# str(Set2)

Set2$Motivation <- factor(Set2$Motivation, levels = c("Selfless", "Selfish")) # Just reordering the factor so that ppositive d means R > B

Firef <- subset(Set2, Set2$Job == "Firefighters") 
Psych <- subset(Set2, Set2$Job == "Psychiatrists")
Weld <- subset(Set2, Set2$Job == "Welders")


d_F_Help <- cohens_d(Heroism ~ Help,       data = Firef)
d_F_Mot  <- cohens_d(Heroism ~ Motivation, data = Firef)
d_P_Help <- cohens_d(Heroism ~ Help,       data = Psych)
d_P_Mot  <- cohens_d(Heroism ~ Motivation, data = Psych)
d_W_Help <- cohens_d(Heroism ~ Help,       data = Weld)
d_W_Mot  <- cohens_d(Heroism ~ Motivation, data = Weld)

# assemble into a single data.frame
table2 <- bind_rows(
  data.frame(
    Occupation = "Firefighters",
    Predictor  = "Helpfulness",
    d          = round(d_F_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_F_Help$CI_low, 2), ", ", round(d_F_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Firefighters",
    Predictor  = "Motivation",
    d          = round(d_F_Mot$Cohens_d, 2),
    CI         = paste0("[", round(d_F_Mot$CI_low, 2), ", ", round(d_F_Mot$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Psychiatrists",
    Predictor  = "Helpfulness",
    d          = round(d_P_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_P_Help$CI_low, 2), ", ", round(d_P_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Psychiatrists",
    Predictor  = "Motivation",
    d          = round(d_P_Mot$Cohens_d, 2),
    CI         = paste0("[", round(d_P_Mot$CI_low, 2), ", ", round(d_P_Mot$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Welders",
    Predictor  = "Helpfulness",
    d          = round(d_W_Help$Cohens_d, 2),
    CI         = paste0("[", round(d_W_Help$CI_low, 2), ", ", round(d_W_Help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Welders",
    Predictor  = "Motivation",
    d          = round(d_W_Mot$Cohens_d, 2),
    CI         = paste0("[", round(d_W_Mot$CI_low, 2), ", ", round(d_W_Mot$CI_high, 2), "]")
  )
) %>%
  rename(`Cohen's d` = d)

# render
kable(
  table2,
  caption = "Table 3. Cohen's d in pilot study 3",
  align   = "c"
)
Table 3. Cohen’s d in pilot study 3
Occupation Predictor Cohen’s d CI
Firefighters Helpfulness 0.15 [-0.08, 0.39]
Firefighters Motivation 0.13 [-0.11, 0.37]
Psychiatrists Helpfulness 0.27 [0.03, 0.51]
Psychiatrists Motivation 0.19 [-0.05, 0.42]
Welders Helpfulness 1.14 [0.88, 1.39]
Welders Motivation 0.09 [-0.15, 0.33]
  • Psychiatrists were significantly more heroic in the helpfulness vs not helpfulness condition
  • Welders were significantly more heroic in the helpfulness vs not helpfulness condition

As expected, it is helpfulness, rather than selflessness, that drives heroic perception. Reasons for this effect, as registered, might be: - Selflessness does not distinguish heroes from the crowd (we’re all selfless), but helpfulness does (i seldom save people) - While character (they are selfless) can be inferred from actions - one cannot infer actions from character. - When describing a group as selfless, it is easy to downplay the argument by stating that not all workers are selfless – but it is harder to downplay a factual argument that workers help people. Helpfulness frames might stick better because they can not be dismissed as easily as a judgment of the character of a group.

Experimental study 1 (details)

In a first large test of our manipulation, we used the risk (vs boredom) manipulation and the helpfulness (vs not helpfulness) manipulations to see how it would influence the perceived occupational heroism of two non-heroic occupations that proved to be sensitive to previous manipulations: Welders and Psychiatrists.

The manipulations were revised to make them more impactful.

  • Target occupations: Psychiatrists, Underwater welders
  • Sample size: 1192 (representative UK residents)

Examples (Psychiatrists)

Below is an example of the conditions used within the psychiatrist condition. Other vignettes used in the experimental study 1 are displayed in the appendix

Risk x Helpful

Bored x Helpful

Risk x Unhelpful

Bored x Unhelpful

Results

Set2<-read.csv("Exp1.csv")
# str(Set2)

Set2$Risk_cond <- factor(Set2$Risk_cond, levels = c("0.5", "-0.5")) # Just reordering the factor so that ppositive d means R > B

Set2$Help_cond <- factor(Set2$Help_cond, levels = c("0.5", "-0.5")) # Just reordering the factor so that ppositive d means R > B

Psych <- subset(Set2, Set2$dataset == "Psych")
Weld <- subset(Set2, Set2$dataset == "Weld")
d_P_risk <- cohens_d(Heroism ~ Risk_cond,       data = Psych)
d_P_help  <- cohens_d(Heroism ~ Help_cond, data = Psych)
d_W_risk <- cohens_d(Heroism ~ Risk_cond,       data = Weld)
d_W_help  <- cohens_d(Heroism ~ Help_cond, data = Weld)

# assemble into a single data.frame
table2 <- bind_rows(
  data.frame(
    Occupation = "Psychiatrists",
    Predictor  = "Risk",
    d          = round(d_P_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_P_risk$CI_low, 2), ", ", round(d_P_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Psychiatrists",
    Predictor  = "Helpfulness",
    d          = round(d_P_help$Cohens_d, 2),
    CI         = paste0("[", round(d_P_help$CI_low, 2), ", ", round(d_P_help$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Welders",
    Predictor  = "Risk",
    d          = round(d_W_risk$Cohens_d, 2),
    CI         = paste0("[", round(d_W_risk$CI_low, 2), ", ", round(d_W_risk$CI_high, 2), "]")
  ),
  data.frame(
    Occupation = "Welders",
    Predictor  = "Helpfulness",
    d          = round(d_W_help$Cohens_d, 2),
    CI         = paste0("[", round(d_W_help$CI_low, 2), ", ", round(d_W_help$CI_high, 2), "]")
  )
) %>%
  rename(`Cohen's d` = d)

# render
kable(
  table2,
  caption = "Table 4. Cohen's d in experimental study 1",
  align   = "c"
)
Table 4. Cohen’s d in experimental study 1
Occupation Predictor Cohen’s d CI
Psychiatrists Risk 0.09 [-0.07, 0.25]
Psychiatrists Helpfulness 0.02 [-0.14, 0.18]
Welders Risk 0.30 [0.13, 0.46]
Welders Helpfulness 0.25 [0.08, 0.41]
  • Welders were perceived as more heroic in the risk (vs boredom) condition
  • Welders were perceived as more heroic in the helfpulness (vs not helpful) condition

Appendix

Full lists of vignettes used in the studies.

Pilot 1

Firefighter Vignettes

Physical risk x selflessness

Physical risk x selflessness
Physical risk x selflessness

Psychological risk x selflessness

Psychological risk x selflessness
Psychological risk x selflessness

Physical risk x self-centered

Physical risk x self-centered
Physical risk x self-centered

Psychological risk x self-centered

Psychological risk x self-centered ___

Soldiers Vignettes

Physical risk x selflessness

Physical risk x selflessness
Physical risk x selflessness

Psychological risk x selflessness

Psychological risk x selflessness
Psychological risk x selflessness

Physical risk x self-centered

Physical risk x self-centered
Physical risk x self-centered

Psychological risk x self-centered

Psychological risk x self-centered
Psychological risk x self-centered

Psychiatrist Vignettes

Physical risk x selflessness

Physical risk x selflessness
Physical risk x selflessness

Psychological risk x selflessness

Psychological risk x selflessness
Psychological risk x selflessness

Physical risk x self-centered

Physical risk x self-centered
Physical risk x self-centered

Psychological risk x self-centered

Psychological risk x self-centered
Psychological risk x self-centered

Healtcare workers Vignettes

Physical risk x selflessness

Physical risk x selflessness
Physical risk x selflessness

Psychological risk x selflessness

Psychological risk x selflessness
Psychological risk x selflessness

Physical risk x self-centered

Physical risk x self-centered
Physical risk x self-centered

Psychological risk x self-centered

Psychological risk x self-centered
Psychological risk x self-centered

Police officers Vignettes

Physical risk x selflessness

Physical risk x selflessness
Physical risk x selflessness

Psychological risk x selflessness

Psychological risk x selflessness
Psychological risk x selflessness

Physical risk x self-centered

Physical risk x self-centered
Physical risk x self-centered

Psychological risk x self-centered

Psychological risk x self-centered
Psychological risk x self-centered

Pilot 2

Firefighter vignettes

Risk x Selfless

Risk x Selfless
Risk x Selfless

Boredom x Selfless

Boredom x Selfless
Boredom x Selfless

Risk x Selfishness

Risk x Selfishness
Risk x Selfishness

Boredom x Selfishness

Boredom x Selfishness
Boredom x Selfishness

Psychiatrists vignettes

Risk x Selfless

Risk x Selfless
Risk x Selfless

Boredom x Selfless

Boredom x Selfless
Boredom x Selfless

Risk x Selfishness

Risk x Selfishness
Risk x Selfishness

Boredom x Selfishness

Boredom x Selfishness
Boredom x Selfishness

Welders vignettes

Risk x Selfless

Risk x Selfless
Risk x Selfless

Boredom x Selfless

Boredom x Selfless
Boredom x Selfless

Risk x Selfishness

Risk x Selfishness
Risk x Selfishness

Boredom x Selfishness

Boredom x Selfishness
Boredom x Selfishness

Nurses vignettes

Risk x Selfless

Risk x Selfless
Risk x Selfless

Boredom x Selfless

Boredom x Selfless
Boredom x Selfless

Risk x Selfishness

Risk x Selfishness
Risk x Selfishness

Boredom x Selfishness

Boredom x Selfishness
Boredom x Selfishness

Police officers vignettes

Risk x Selfless

Risk x Selfless
Risk x Selfless

Boredom x Selfless

Boredom x Selfless
Boredom x Selfless

Risk x Selfishness

Risk x Selfishness
Risk x Selfishness

Boredom x Selfishness

Boredom x Selfishness
Boredom x Selfishness

Pilot 3

Firefighters vignettes

Helpful x Selfless

Not Helpful x Selfless

Helpful x Selfish

Not helpful x Selfish


Psychiatrists vignettes

Helpful x Selfless

Not Helpful x Selfless

Helpful x Selfish

Not helpful x Selfish


Welders vignettes

Helpful x Selfless

Not Helpful x Selfless

Helpful x Selfish

Not helpful x Selfish

Experimental study 1

Psychiatrist vignettes

Risk x Helpful

Bored x Helpful

Risk x Unhelpful

Bored x Unhelpful


Welders vignettes

Risk x Helpful

Bored x Helpful

Risk x Unhelpful

Bored x Unhelpful