For this exercise, please try to reproduce the results from Experiment 1 of the associated paper (Ko, Sadler & Galinsky, 2015). The PDF of the paper is included in the same folder as this Rmd file.

Methods summary:

A sense of power has often been tied to how we perceive each other’s voice. Social hierarchy is embedded into the structure of society and provides a metric by which others relate to one another. In 1956, the Brunswik Lens Model was introduced to examine how vocal cues might influence hierarchy. In “The Sound of Power: Conveying and Detecting Hierarchical Rank Through Voice,” Ko and colleagues investigated how manipulation of hierarchal rank within a situation might impact vocal acoustic cues. Using the Brunswik Model, six acoustic metrics were utilized (pitch mean & variability, loudness mean & variability, and resonance mean & variability) to isolate a potential contribution between individuals of different hierarchal rank. In the first experiment, Ko, Sadler & Galinsky examined the vocal acoustic cues of individuals before and after being assigned a hierarchal rank in a sample of 161 subjects (80 male). Each of the six hierarchy acoustic cues were analyzed with a 2 (high vs. low rank condition) x 2 (male vs. female) analysis of covariance, controlling for the baseline of the respective acoustic cue.


Target outcomes:

Below is the specific result you will attempt to reproduce (quoted directly from the results section of Experiment 1):

The impact of hierarchical rank on speakers’ acoustic cues. Each of the six hierarchy-based (i.e., postmanipulation) acoustic variables was submitted to a 2 (condition: high rank, low rank) × 2 (speaker’s sex: female, male) between-subjects analysis of covariance, controlling for the corresponding baseline acoustic variable. Table 4 presents the adjusted means by condition. Condition had a significant effect on pitch, pitch variability, and loudness variability. Speakers’ voices in the high-rank condition had higher pitch, F(1, 156) = 4.48, p < .05; were more variable in loudness, F(1, 156) = 4.66, p < .05; and were more monotone (i.e., less variable in pitch), F(1, 156) = 4.73, p < .05, compared with speakers’ voices in the low-rank condition (all other Fs < 1; see the Supplemental Material for additional analyses of covariance involving pitch and loudness). (from Ko et al., 2015, p. 6; emphasis added)

The adjusted means for these analyses are reported in Table 4 (Table4_AdjustedMeans.png, included in the same folder as this Rmd file).


Step 1: Load packages

library(tidyverse) # for data munging
library(knitr) # for kable table formating
library(haven) # import and export 'SPSS', 'Stata' and 'SAS' Files
library(readxl) # import excel files
library(emmeans)
library(car)


# #optional packages:
# library(psych)
#library(car) # for ANCOVA
#library(compute.es) # for ANCOVA
#library(lsmeans) # for ANCOVA

Step 2: Load data

# Just Experiment 1
d <-read_csv("data/S1_voice_level_Final.csv", show_col_types = FALSE)
# DT::datatable(d)
head(d, 181)
## # A tibble: 161 × 45
##    voice form_smean form_svar form_rmean form_rvar intense_smean intense_svar
##    <dbl>      <dbl>     <dbl>      <dbl>     <dbl>         <dbl>        <dbl>
##  1     1      1043.    38805.      1259.    68275.          65.5        157. 
##  2     2      1083.    35609.      1278.    54612.          65.5        301. 
##  3     3      1092.    25979.      1334.    55175.          53.6         71.2
##  4     4      1268.    71346.      1298.    74340.          60.7        201. 
##  5     5      1071.    38246.      1256.    67846.          60.1        204. 
##  6     6      1095.    40716.      1278.    76674.          60.1        150. 
##  7     7      1060.    38855.      1310.    88947.          60.5        127. 
##  8     8      1051.    28191.      1223.    52682.          57.3        207. 
##  9     9      1038.    34105.      1256.    68508.          57.9        199. 
## 10    10      1346.    69260.      1314.    55400.          60.3        149. 
## # ℹ 151 more rows
## # ℹ 38 more variables: intense_rmean <dbl>, intense_rvar <dbl>,
## #   pitch_smean <dbl>, pitch_svar <dbl>, pitch_rmean <dbl>, pitch_rvar <dbl>,
## #   pow <dbl>, age <dbl>, sex <chr>, race <chr>, native <chr>, feelpower <dbl>,
## #   plev <dbl>, vsex <dbl>, pitch_rmeanMD <dbl>, pitch_rvarMD <dbl>,
## #   intense_rmeanMD <dbl>, intense_rvarMD <dbl>, formant_rmeanMD <dbl>,
## #   formant_rvarMD <dbl>, pitch_smeanMD <dbl>, pitch_svarMD <dbl>, …

Step 3: Tidy data

select_d <- d %>%
  select(voice, plev, vsex, form_smean, form_svar, intense_smean, intense_svar, pitch_smean, pitch_svar)

#plev = hierarchy rank (+1 = high, -1 = low)
#vsex = speaker sex (+1 = female, -1 = male)
head(select_d, 182)
## # A tibble: 161 × 9
##    voice  plev  vsex form_smean form_svar intense_smean intense_svar pitch_smean
##    <dbl> <dbl> <dbl>      <dbl>     <dbl>         <dbl>        <dbl>       <dbl>
##  1     1     1    -1      1043.    38805.          65.5        157.         116.
##  2     2     1    -1      1083.    35609.          65.5        301.         146.
##  3     3     1    -1      1092.    25979.          53.6         71.2        106.
##  4     4     1    -1      1268.    71346.          60.7        201.         102.
##  5     5     1    -1      1071.    38246.          60.1        204.         122.
##  6     6     1    -1      1095.    40716.          60.1        150.         137.
##  7     7     1    -1      1060.    38855.          60.5        127.         106.
##  8     8    -1    -1      1051.    28191.          57.3        207.         105.
##  9     9     1    -1      1038.    34105.          57.9        199.         161.
## 10    10    -1    -1      1346.    69260.          60.3        149.         132.
## # ℹ 151 more rows
## # ℹ 1 more variable: pitch_svar <dbl>

Step 4: Run analysis

Pre-processing

select_d <- na.omit(select_d)

Descriptive statistics

In the paper, the adjusted means by condition are reported (see Table 4, or Table4_AdjustedMeans.png, included in the same folder as this Rmd file). Reproduce these values below:

# 1) Running ANCOVA and getting the adjusted means
ancova_model <- lm(pitch_smean ~ plev + vsex, data = select_d)
summary(ancova_model) # To see the ANCOVA summary
## 
## Call:
## lm(formula = pitch_smean ~ plev + vsex, data = select_d)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -48.367 -12.788  -2.987  13.910  58.689 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 156.83692    1.49178 105.134   <2e-16 ***
## plev          0.08299    1.49248   0.056    0.956    
## vsex         39.13184    1.49224  26.223   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 18.92 on 158 degrees of freedom
## Multiple R-squared:  0.8133, Adjusted R-squared:  0.8109 
## F-statistic: 344.1 on 2 and 158 DF,  p-value: < 2.2e-16
# Now use the emmeans package to get the adjusted means for each level of IV (plev)
adjusted_means <- emmeans(ancova_model, specs = "plev")
print(adjusted_means)
##  plev emmean   SE  df lower.CL upper.CL
##    -1    157 2.13 158      153      161
##     1    157 2.09 158      153      161
## 
## Results are averaged over the levels of: vsex 
## Confidence level used: 0.95
# Get the adjusted means for each level of IV (plev)
adjusted_means <- emmeans(ancova_model, specs = "plev")

# View the adjusted means in a tabular format
adjusted_means_summary <- summary(adjusted_means)
print(adjusted_means_summary)
##  plev emmean   SE  df lower.CL upper.CL
##    -1    157 2.13 158      153      161
##     1    157 2.09 158      153      161
## 
## Results are averaged over the levels of: vsex 
## Confidence level used: 0.95
# Now, to write this table to a CSV file:
write.csv(adjusted_means_summary, file = "AdjustedMeans.csv", row.names = FALSE)

# If you prefer a nicer format for viewing within R, you can use the 'knitr' package to create a nice table
if (!require(knitr)) install.packages("knitr")
library(knitr)

# Create a nicer table view
kable(adjusted_means_summary)
plev emmean SE df lower.CL upper.CL
-1 156.7539 2.129971 158 152.5470 160.9608
1 156.9199 2.090222 158 152.7915 161.0483

Inferential statistics

The impact of hierarchical rank on speakers’ acoustic cues. Each of the six hierarchy-based (i.e., postmanipulation) acoustic variables was submitted to a 2 (condition: high rank, low rank) × 2 (speaker’s sex: female, male) between-subjects analysis of covariance, controlling for the corresponding baseline acoustic variable. […] Condition had a significant effect on pitch, pitch variability, and loudness variability. Speakers’ voices in the high-rank condition had higher pitch, F(1, 156) = 4.48, p < .05; were more variable in loudness, F(1, 156) = 4.66, p < .05; and were more monotone (i.e., less variable in pitch), F(1, 156) = 4.73, p < .05, compared with speakers’ voices in the low-rank condition (all other Fs < 1; see the Supplemental Material for additional analyses of covariance involving pitch and loudness).

Step 5: Reflection

Were you able to reproduce the results you attempted to reproduce? If not, what part(s) were you unable to reproduce?

Upon attempting to reproduce the specified results, I encountered difficulties and ultimately, was unable to replicate them. Specifically, while applying the ANCOVA as per the study’s design—processing the six hierarchy-based acoustic variables through a dual-factor analysis and controlling for the baseline variables—the adjusted mean for pitch did not correspond with the original findings. This deviation, including a mismatch in the degrees of freedom, prompts concerns regarding my understanding or implementation of the methodology.

How difficult was it to reproduce your results?

Despite dedicating over four hours to this task, the complexities of executing ANCOVA in R proved to be a significant barrier. While the initial setup of the experimental design was clear, the practical application of the statistical analysis was where the challenges arose.

What aspects made it difficult? What aspects made it easy?

The primary challenge I encountered was the complexity inherent in conducting the ANCOVA itself, particularly within the R framework, which I found to be a substantial hurdle. This complexity stands in stark contrast to the initial stages of the analysis, where delineating the experimental design and understanding the requirements for controlling the various acoustic variables were relatively straightforward due to the clear descriptions provided in the study.