This study

In this study, we wanted to see if we could effectively manipulate SEB using text. We adapted the essay manipulation from Kray et al. (https://psycnet.apa.org/buy/2016-61714-002) about mindsets. See below for manipulaations used.

High SEB:

Status refers to the level of respect, admiration, and voluntary deference a person is given by others. People with high status are highly respected and admired by others, and their wishes, desires, and suggestions tend to be followed. People with low status are not well respected or admired, and their wishes, desires, and suggestions tend to be ignored.

Given the importance of status in everyday life, it is not surprising that a great deal of research has been conducted to identify the key determinants of how status is distributed in groups. While it was once believed that status was concentrated in only a few standout members, experts now agree that this view is outdated. Current research shows that status is widely attainable and based on diverse attributes.

In a comprehensive review of organizational behavior research, Smith and Wilson (2017) found that most teams today recognize most members and multiple attributes when determining who holds high status. Up to 88% of teams afford high status to a majority members simultaneously, valuing a variety of skills from problem solving and coordination, to mentoring and creativity. Only about 12% of teams show evidence of restricting high status to a narrow set of people and qualities. In other words, most modern workplaces distribute status broadly.

Distributing status widely is not only more common, it is also more effective. Teams that recognize many contributors and attributes tend to function better overall. These teams have higher performance, stronger coordination, and greater commitment. Supporting this idea, Dr. Robert Nguyen, a Harvard Business School professor specializing in team dynamics, argued in a 2024 conference presentation that “status in teams is like light from the sun—it can shine on many individuals at once.” His longitudinal research shows that when teams adopt a more expansive view of status, 95% increase both the number of members perceived as high status and their overall team performance within two years.

The bottom line is clear: status is expandable, and teams are stronger when it is shared. Recognizing a wide range of valuable contributions allows more people to earn respect and admiration, helping groups reach their full potential.

Low SEB:

Status refers to the level of respect, admiration, and voluntary deference a person is given by others. People with high status are highly respected and admired by others, and their wishes, desires, and suggestions tend to be followed. People with low status are not well respected or admired, and their wishes, desires, and suggestions tend to be ignored.

Given the importance of status in everyday life, it is not surprising that a great deal of research has been conducted to identify the key determinants of how status is distributed in groups. While it was once believed that status could be shared broadly across many group members, experts now agree that this view is outdated. Current research shows that status is concentrated in a limited number of members and based on a select set of attributes.

In a comprehensive review of organizational behavior research, Smith and Wilson (2017) found that most teams today recognize only a few members and a select set of attributes when determining who holds high status. Up to 88% of teams afford high status to a small, specific group of individuals who excel in skills such as problem solving, coordination, mentoring, and creativity. Only about 12% of teams show evidence of granting high status to a larger set of people or qualities. In other words, most modern workplaces distribute status narrowly.

Concentrating status is not only more common, it is also more effective. Teams that focus recognition on a select few standout contributors and attributes tend to function better overall. These teams have higher performance, stronger coordination, and greater commitment. Supporting this idea, Dr. Robert Nguyen, a Harvard Business School professor specializing in team dynamics, argued in a 2024 conference presentation that “status in teams is like a spotlight—it can shine brightly on only a few individuals at once.” His longitudinal research shows that when teams adopt a more concentrated view of status, 95% maintain a smaller number of members perceived as high status and improve their overall team performance within two years.

The bottom line is clear: status is concentrated, and teams are stronger when it is focused. Recognizing a select range of valuable contributions allows the most capable members to earn respect and admiration, helping groups reach their full potential.

Load packages

library(qualtRics)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Load data

data <- read_survey("~/Google drive/My Drive/YEAR 2/PROJECTS/DEREK/Status Distribution/Studies/Study 3: SEB Manipulation/pilot_raw_data_11.11.25.csv")
## 
## ── Column specification ────────────────────────────────────────────────────────
## cols(
##   .default = col_double(),
##   StartDate = col_character(),
##   EndDate = col_character(),
##   IPAddress = col_character(),
##   RecordedDate = col_character(),
##   ResponseId = col_character(),
##   RecipientLastName = col_logical(),
##   RecipientFirstName = col_logical(),
##   RecipientEmail = col_logical(),
##   ExternalReference = col_logical(),
##   DistributionChannel = col_character(),
##   UserLanguage = col_character(),
##   SEB_DO = col_character(),
##   OCBI_DO = col_character(),
##   SZSB_DO = col_character(),
##   `need for status_DO` = col_character(),
##   dom_prest_DO = col_character(),
##   sdo_DO = col_character(),
##   attn_bots = col_character(),
##   gender_4_TEXT = col_logical(),
##   race = col_number()
##   # ... with 10 more columns
## )
## ℹ Use `spec()` for the full column specifications.
# Bot / Attn Exclusions

data <- data %>% 
  filter(attn_bots != "14285733") %>% 
  filter(attn == 24)  %>%
   unite(geolocation, LocationLatitude, LocationLongitude) %>%
   group_by(geolocation) %>%
   mutate(geo_frequency = n()) %>%
   filter(geo_frequency < 3) %>%
   ungroup()

Data cleaning

Gather and clean numeric data

df_numeric <- data %>%
  select(c(ResponseId, dist_1R:attr_10, OCBI_1: OCBI_8, SZSB_1:SZSB_8R, sdo_1:sdo_8R, "need for status_1":"need for status_8", dom_1:prest_9R)) %>% 
  mutate(across(-ResponseId, as.numeric))
df_numeric <- df_numeric %>%
  mutate(across(ends_with("R"), ~ 8 - ., .names = "{.col}_Recoded")) 

Create average scores

df_numeric <- df_numeric %>%
  mutate(
    status_expansion_belief = rowMeans(select(., 
      dist_1R_Recoded,
      dist_2R_Recoded, 
      dist_5R_Recoded, 
      dist_14,
      dist_15,
      dist_16,
      attr_3, 
      attr_4, 
      attr_5, 
      attr_6, 
      attr_8, 
      attr_10), 
      na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    dist_avg = rowMeans(select(., 
      dist_1R_Recoded,
      dist_2R_Recoded, 
      dist_5R_Recoded, 
      dist_14,
      dist_15,
      dist_16), 
      na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    attribute_avg = rowMeans(select(., 
      attr_3, 
      attr_4, 
      attr_5, 
      attr_6, 
      attr_8, 
      attr_10
    ), na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    descriptive_avg = rowMeans(select(., 
      dist_1R_Recoded,
      dist_2R_Recoded, 
      dist_5R_Recoded, 
      attr_3, 
      attr_4, 
      attr_5), 
      na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    prescriptive_avg = rowMeans(select(., 
      dist_14,
      dist_15,
      dist_16, 
      attr_6, 
      attr_8, 
      attr_10), 
      na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    OCBI = rowMeans(select(., 
      OCBI_1,
      OCBI_2,
      OCBI_3,
      OCBI_4,
      OCBI_5,
      OCBI_6,
      OCBI_7,
      OCBI_8), 
      na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    szsb_avg = rowMeans(select(., 
      SZSB_1, 
      SZSB_2, 
      SZSB_3, 
      SZSB_4, 
      SZSB_5R_Recoded, 
      SZSB_6R_Recoded, 
      SZSB_7R_Recoded, 
      SZSB_8R_Recoded
    ), na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    nfs_avg = rowMeans(select(., 
      "need for status_1", 
      "need for status_2R_Recoded", 
      "need for status_3", 
      "need for status_4", 
      "need for status_5", 
      "need for status_6", 
      "need for status_7R_Recoded", 
      "need for status_8"
    ), na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    sdo_avg = rowMeans(select(., 
      sdo_1, 
      sdo_2,
      sdo_3R_Recoded,
      sdo_4R_Recoded, 
      sdo_5,
      sdo_6,
      sdo_7R_Recoded,
      sdo_8R_Recoded
    ), na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    dominance_avg = rowMeans(select(., 
      dom_1, 
      dom_2, 
      dom_3, 
      dom_4, 
      dom_5R_Recoded, 
      dom_6, 
      dom_7R_Recoded, 
      dom_8
    ), na.rm = TRUE)
  )
df_numeric <- df_numeric %>%
  mutate(
    prestige_avg = rowMeans(select(., 
      prest_1, 
      prest_2R_Recoded, 
      prest_3, 
      prest_4R_Recoded, 
      prest_5, 
      prest_6, 
      prest_7, 
      prest_8, 
      prest_9R_Recoded
    ), na.rm = TRUE)
  )

Merge back with condition data

condition <- data %>% 
  select(ResponseId, FL_31_DO, `Q47_Page Submit`, `Q50_Page Submit`) %>% 
  mutate(condition = ifelse(FL_31_DO == "manipulation-lowSEB", "low", "high")) %>% 
  mutate(low_time = `Q50_Page Submit`) %>% 
  mutate(high_time = `Q47_Page Submit`) %>% 
  select(-c(FL_31_DO, `Q47_Page Submit`, `Q50_Page Submit`))
df_full <- condition %>% 
  left_join(df_numeric, by = "ResponseId")

How long on average did it take participants to read each “article”

# Low SEB
mean(df_full$low_time, na.rm = T)
## [1] 154.8767
sd(df_full$low_time, na.rm = T)
## [1] 176.686
# Exclude people who are more than 1 sd minus the mean?
# High SEB
mean(df_full$high_time, na.rm = T)
## [1] 111.0413
sd(df_full$high_time, na.rm = T)
## [1] 64.79956
# Exclude people who are more than 1 sd minus the mean?

Is there a significant difference by condition?

df_full <- df_full %>% 
  mutate(time = ifelse(!is.na(low_time), low_time, high_time))

t.test(time ~ condition, data = df_full)
## 
##  Welch Two Sample t-test
## 
## data:  time by condition
## t = -1.6451, df = 62.178, p-value = 0.105
## alternative hypothesis: true difference in means between group high and group low is not equal to 0
## 95 percent confidence interval:
##  -97.098546   9.427798
## sample estimates:
## mean in group high  mean in group low 
##           111.0413           154.8767

Good. They take roughly the same time to read. Although they are approaching significance. Something to think about.

Does the article affect SEBs?

t.test(status_expansion_belief ~ condition, data = df_full)
## 
##  Welch Two Sample t-test
## 
## data:  status_expansion_belief by condition
## t = 4.9242, df = 96.541, p-value = 3.496e-06
## alternative hypothesis: true difference in means between group high and group low is not equal to 0
## 95 percent confidence interval:
##  0.4971917 1.1686587
## sample estimates:
## mean in group high  mean in group low 
##           5.562925           4.730000

Yes!

What about when controlling for similar constructs?

m1 <- lm(status_expansion_belief ~ condition + szsb_avg + nfs_avg + sdo_avg + dominance_avg + prestige_avg, data = df_full)
summary(m1)
## 
## Call:
## lm(formula = status_expansion_belief ~ condition + szsb_avg + 
##     nfs_avg + sdo_avg + dominance_avg + prestige_avg, data = df_full)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.75466 -0.35745 -0.04105  0.45763  1.35865 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    6.90537    0.46313  14.910  < 2e-16 ***
## conditionlow  -0.71026    0.14425  -4.924 3.72e-06 ***
## szsb_avg      -0.26355    0.08320  -3.168 0.002086 ** 
## nfs_avg        0.03744    0.10691   0.350 0.726960    
## sdo_avg       -0.13317    0.05352  -2.488 0.014646 *  
## dominance_avg -0.26142    0.07364  -3.550 0.000609 ***
## prestige_avg   0.07206    0.13575   0.531 0.596822    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.664 on 92 degrees of freedom
## Multiple R-squared:  0.5283, Adjusted R-squared:  0.4975 
## F-statistic: 17.17 on 6 and 92 DF,  p-value: 3.195e-13

Condition predicts SEBs controlling for related constructs

lm(szsb_avg ~ condition, data = df_full) %>%  summary()
## 
## Call:
## lm(formula = szsb_avg ~ condition, data = df_full)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3925 -0.8087 -0.0175  0.6075  2.4413 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    2.8087     0.1278  21.977   <2e-16 ***
## conditionlow   0.5838     0.1798   3.247   0.0016 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8946 on 97 degrees of freedom
## Multiple R-squared:  0.09801,    Adjusted R-squared:  0.08871 
## F-statistic: 10.54 on 1 and 97 DF,  p-value: 0.001604

This time it moved the needle on SZSB too. It didn’t in our first pilot.

5.2 was the mean in our Study 1. In our first pilot the high SEB mean was = 5.241830, and the mean for low SEB was 4.760204.

Now, we have high = 5.562925 and low = 4.730000. This seems to be slightly more effective.

Does the condition assignment predict OCBIs?

lm(OCBI ~ condition, data = df_full) %>%  summary()
## 
## Call:
## lm(formula = OCBI ~ condition, data = df_full)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5250 -0.7750 -0.0250  0.8957  2.4750 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    5.1837     0.1811  28.621   <2e-16 ***
## conditionlow  -0.6587     0.2549  -2.585   0.0112 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.268 on 97 degrees of freedom
## Multiple R-squared:  0.06443,    Adjusted R-squared:  0.05478 
## F-statistic:  6.68 on 1 and 97 DF,  p-value: 0.01124

Yes. People who were assigned to the low SEB condition report lower OCBIs.