Load Packages

Load Data

Sample Descriptives: Number of Participants and Average Group Size

cat(
  "Number of participants:", nrow(df_lab), "\n",
  "Number of groups:", length(unique(df_lab$GroupID)), "\n",
  "Average group size:", mean(df_lab$TeamSize), "\n",
  "Min and max group size:", range(df_lab$TeamSize), "\n"
)
## Number of participants: 219 
##  Number of groups: 62 
##  Average group size: 4.794521 
##  Min and max group size: 3 6

Impression Management and Perceptions of Likeability/Competence

Ordinary Least Squares Regression

# Regression with Cluster-Robust Standard Errors

## Model 1: Main Effect
model <- lm(cbind(Liked,Respected) ~ NewcomerGender + NewcomerRace + Promotion + Ingratiation, data = df_lab)
cluster_se <- vcovCL(model, cluster = ~SessionID)
coeftest(model, vcov = cluster_se)
## 
## t test of coefficients:
## 
##                           Estimate Std. Error t value             Pr(>|t|)    
## Liked:(Intercept)         5.861488   0.109972 53.2999 < 0.0000000000000002 ***
## Liked:NewcomerGender     -0.077118   0.089258 -0.8640              0.38857    
## Liked:NewcomerRace        0.220256   0.107641  2.0462              0.04196 *  
## Liked:Promotion           0.127676   0.109987  1.1608              0.24701    
## Liked:Ingratiation        0.176430   0.120217  1.4676              0.14369    
## Respected:(Intercept)     6.069880   0.072205 84.0650 < 0.0000000000000002 ***
## Respected:NewcomerGender  0.050584   0.070700  0.7155              0.47510    
## Respected:NewcomerRace    0.097557   0.090864  1.0737              0.28419    
## Respected:Promotion       0.167033   0.081145  2.0585              0.04076 *  
## Respected:Ingratiation    0.051484   0.088853  0.5794              0.56291    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Model 2: Interaction
model <- lm(cbind(Liked,Respected) ~ NewcomerGender + Promotion * NewcomerRace + Ingratiation * NewcomerRace, data = df_lab)
cluster_se <- vcovCL(model, cluster = ~SessionID)
coeftest(model, vcov = cluster_se)
## 
## t test of coefficients:
## 
##                                      Estimate Std. Error t value
## Liked:(Intercept)                    5.849704   0.114743 50.9809
## Liked:NewcomerGender                -0.085568   0.087816 -0.9744
## Liked:Promotion                     -0.011141   0.149373 -0.0746
## Liked:NewcomerRace                   0.252906   0.112350  2.2511
## Liked:Ingratiation                   0.364128   0.156763  2.3228
## Liked:Promotion:NewcomerRace         0.250354   0.210683  1.1883
## Liked:NewcomerRace:Ingratiation     -0.377906   0.197268 -1.9157
## Respected:(Intercept)                6.045404   0.080543 75.0584
## Respected:NewcomerGender             0.046389   0.071256  0.6510
## Respected:Promotion                  0.101713   0.101821  0.9989
## Respected:NewcomerRace               0.151601   0.158292  0.9577
## Respected:Ingratiation               0.195815   0.096290  2.0336
## Respected:Promotion:NewcomerRace     0.114123   0.206017  0.5539
## Respected:NewcomerRace:Ingratiation -0.290490   0.220805 -1.3156
##                                                 Pr(>|t|)    
## Liked:(Intercept)                   < 0.0000000000000002 ***
## Liked:NewcomerGender                             0.33097    
## Liked:Promotion                                  0.94061    
## Liked:NewcomerRace                               0.02541 *  
## Liked:Ingratiation                               0.02114 *  
## Liked:Promotion:NewcomerRace                     0.23605    
## Liked:NewcomerRace:Ingratiation                  0.05675 .  
## Respected:(Intercept)               < 0.0000000000000002 ***
## Respected:NewcomerGender                         0.51574    
## Respected:Promotion                              0.31897    
## Respected:NewcomerRace                           0.33929    
## Respected:Ingratiation                           0.04324 *  
## Respected:Promotion:NewcomerRace                 0.58020    
## Respected:NewcomerRace:Ingratiation              0.18974    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Figure 1

# Predicted values for the Ingratiation × NewcomerRace interaction
predicted_data <- ggpredict(lm(Liked ~ NewcomerGender + Promotion* NewcomerRace + Ingratiation* NewcomerRace, na.omit(df_lab)), terms = c("Ingratiation", "NewcomerRace"))

# Relabel 0/1 to Low/High (ingratiation) and White/Black (race)
predicted_data$x     <- factor(predicted_data$x,     levels = c(0, 1), labels = c("Control", "Ingratiation"))
predicted_data$group <- factor(predicted_data$group, levels = c(0, 1), labels = c("White", "Black"))

# Bar chart 
ggplot(predicted_data, aes(x = x, y = predicted, fill = group)) +
  geom_col(
    position = position_dodge(width = 0.7),
    width = 0.6) +
  scale_fill_manual(
    values = c(
      "White" = "grey70",
      "Black" = "grey30")) +
  labs(
    x = "Condition",
    y = "Perceived Likability",
    fill = "Newcomer Race"
  ) +
  coord_cartesian(ylim = c(5, 6.5)) +
  theme_minimal(base_size = 14) +
  theme(
    panel.grid = element_blank(),
    axis.line.x = element_line(color = "black"),
    axis.line.y = element_line(color = "black"),
    panel.border = element_blank())

# Simple slopes for ingratiation and self-promotion 
model <- lm(Liked ~ NewcomerGender + Promotion * NewcomerRace + Ingratiation * NewcomerRace, data = df_lab)
sim_slopes(model, pred = "Ingratiation", modx = "NewcomerRace", confint = TRUE, digits = 3)
## JOHNSON-NEYMAN INTERVAL
## 
## When NewcomerRace is INSIDE the interval [-0.556, 0.204], the slope of
## Ingratiation is p < .05.
## 
## Note: The range of observed values of NewcomerRace is [0.000, 1.000]
## 
## SIMPLE SLOPES ANALYSIS
## 
## Slope of Ingratiation when NewcomerRace = 0.000 (0): 
## 
##    Est.    S.E.    2.5%   97.5%   t val.       p
## ------- ------- ------- ------- -------- -------
##   0.361   0.175   0.016   0.707    2.060   0.041
## 
## Slope of Ingratiation when NewcomerRace = 1.000 (1): 
## 
##     Est.    S.E.     2.5%   97.5%   t val.       p
## -------- ------- -------- ------- -------- -------
##   -0.015   0.176   -0.363   0.332   -0.087   0.931

Impression Management and Supportive Behavior

Zero-Inflated Negative Binomial Regression

# Main Effects
zinb_model_M1 <- zeroinfl(
  Support ~ NewcomerGender + NewcomerRace + Ingratiation + Promotion | NewcomerGender + NewcomerRace + Promotion + Ingratiation,
  data = videoData,
  dist = "negbin")

ct <- coeftest(zinb_model_M1, vcov = sandwich)
count_coefs <- ct[grepl("^count_", rownames(ct)), ]
ZINB Count Model Coefficients
Variable Estimate SE t value p value
Intercept 0.6113 0.3812 1.6036 0.1196
Newcomer Gender -2.4114 0.5772 -4.1774 0.0002
Newcomer Race 0.1141 0.4820 0.2366 0.8146
Ingratiation 1.9381 0.6750 2.8710 0.0076
Self-Promotion -0.3009 0.4955 -0.6071 0.5485
# Interaction Effects
zinb_model_M2 <- zeroinfl(
  Support ~ NewcomerGender + Promotion* NewcomerRace + Ingratiation* NewcomerRace | NewcomerGender + NewcomerRace + Promotion + Ingratiation,
  data = videoData,
  dist = "negbin")
ZINB Count Model Coefficients
Variable Estimate SE t value p value
Intercept 1.3099 0.1714 7.6409 0.0000
Newcomer Gender -2.4237 0.4883 -4.9637 0.0000
Self-Promotion -1.1153 0.6983 -1.5973 0.1218
Newcomer Race -1.0199 0.4586 -2.2239 0.0347
Ingratiation 1.1864 0.5920 2.0041 0.0552
Promotion × Race 1.6213 0.9730 1.6662 0.1072
Ingratiation × Race -17.2189 0.9116 -18.8881 0.0000

Figure 2

# Predicted values by race and condition
predicted_data <- ggpredict(
  zinb_model_M2,
  terms = c("Ingratiation", "NewcomerRace")
)

levels(predicted_data$x) <- c("Control", "Ingratiation")

ggplot(predicted_data, aes(x = x, y = predicted, fill = group)) +
  geom_col(
    position = position_dodge(width = 0.7),
    width = 0.6) +
  scale_fill_manual(
    values = c(
      "White" = "grey70",
      "Racial Minority" = "grey30"),
    labels = c(
      "White" = "White",
      "Racial Minority" = "Black")) +
  labs(
    y = "Predicted Counts of Support",
    x = "Condition",
    fill = "Newcomer Race") +
  theme_minimal(base_size = 14) +
  theme(
    panel.grid = element_blank(),
    axis.line.x = element_line(color = "black"),
    axis.line.y = element_line(color = "black"),
    panel.border = element_blank())