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.
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.
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).
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
# #optional packages:
# library(psych)
# library(car) # for ANCOVA
# library(compute.es) # for ANCOVA
# library(lsmeans) # for ANCOVA
# Just Experiment 1
d <-read_csv("data/S1_voice_level_Final.csv")
# DT::datatable(d)
d_clean <- d %>%
select(voice, plev, vsex, intense_rmean, intense_smean, intense_rvar, intense_svar, pitch_rmean, pitch_smean, pitch_rvar, pitch_svar, form_rmean, form_smean, form_rvar, form_svar)
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:
if (!require("emmeans")) install.packages("emmeans")
library(emmeans)
emm_options(opt.digits = F)
pitch_smean <- lm(pitch_smean~plev*vsex + pitch_rmean, data=d_clean)
emmeans(pitch_smean, ~ plev)
## plev emmean SE df lower.CL upper.CL
## -1 155.5227 1.037984 156 153.4724 157.5730
## 1 158.6098 1.019801 156 156.5954 160.6242
##
## Results are averaged over the levels of: vsex
## Confidence level used: 0.95
pitch_svar <- lm(pitch_svar~plev*vsex + pitch_rvar, data=d_clean)
emmeans(pitch_svar, ~ plev)
## plev emmean SE df lower.CL upper.CL
## -1 1648.367 73.31500 156 1503.549 1793.185
## 1 1425.016 71.93725 156 1282.920 1567.113
##
## Results are averaged over the levels of: vsex
## Confidence level used: 0.95
intense_smean <- lm(intense_smean~plev*vsex + intense_rmean, data=d_clean)
emmeans(intense_smean, ~ plev)
## plev emmean SE df lower.CL upper.CL
## -1 58.66784 0.3205314 156 58.03470 59.30098
## 1 59.33567 0.3144773 156 58.71449 59.95685
##
## Results are averaged over the levels of: vsex
## Confidence level used: 0.95
intense_svar <- lm(intense_svar~plev*vsex + intense_rvar, data=d_clean)
emmeans(intense_svar, ~ plev)
## plev emmean SE df lower.CL upper.CL
## -1 183.4795 4.378414 156 174.8308 192.1281
## 1 196.7301 4.295270 156 188.2457 205.2144
##
## Results are averaged over the levels of: vsex
## Confidence level used: 0.95
form_smean <- lm(form_smean~plev*vsex + form_rmean, data=d_clean)
emmeans(form_smean, ~ plev)
## plev emmean SE df lower.CL upper.CL
## -1 1128.806 9.418957 156 1110.201 1147.411
## 1 1129.384 9.240729 156 1111.131 1147.637
##
## Results are averaged over the levels of: vsex
## Confidence level used: 0.95
form_svar <- lm(form_svar~plev*vsex + form_rvar, data=d_clean)
emmeans(form_svar, ~ plev)
## plev emmean SE df lower.CL upper.CL
## -1 43654.54 1540.799 156 40611.01 46698.06
## 1 42170.78 1510.769 156 39186.58 45154.98
##
## Results are averaged over the levels of: vsex
## Confidence level used: 0.95
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).
# reproduce the above results here
if (!require("car")) install.packages("car")
library(car)
pitchmean <- aov(pitch_smean ~ plev*vsex + pitch_rmean, data = d_clean)
Anova(pitchmean, type="III")
## Anova Table (Type III tests)
##
## Response: pitch_smean
## Sum Sq Df F value Pr(>F)
## (Intercept) 359 1 4.2359 0.04124 *
## plev 380 1 4.4837 0.03581 *
## vsex 396 1 4.6687 0.03224 *
## pitch_rmean 43334 1 511.2208 < 2e-16 ***
## plev:vsex 222 1 2.6156 0.10783
## Residuals 13223 156
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
pitchvar <- aov(pitch_svar ~ plev*vsex + pitch_rvar, data = d_clean)
Anova(pitchvar, type="III")
## Anova Table (Type III tests)
##
## Response: pitch_svar
## Sum Sq Df F value Pr(>F)
## (Intercept) 45439310 1 107.1878 < 2.2e-16 ***
## plev 2003882 1 4.7270 0.0312 *
## vsex 26179681 1 61.7558 5.939e-13 ***
## pitch_rvar 27760551 1 65.4850 1.548e-13 ***
## plev:vsex 37857 1 0.0893 0.7655
## Residuals 66131879 156
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
intensemean <- aov(intense_smean ~ plev*vsex + intense_rmean, data = d_clean)
Anova(intensemean, type="III")
## Anova Table (Type III tests)
##
## Response: intense_smean
## Sum Sq Df F value Pr(>F)
## (Intercept) 208.90 1 25.7761 1.08e-06 ***
## plev 17.93 1 2.2118 0.1389771
## vsex 103.84 1 12.8131 0.0004591 ***
## intense_rmean 1195.54 1 147.5165 < 2.2e-16 ***
## plev:vsex 11.69 1 1.4424 0.2315772
## Residuals 1264.30 156
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
intensevar <- aov(intense_svar ~ plev*vsex + intense_rvar, data = d_clean)
Anova(intensevar, type="III")
## Anova Table (Type III tests)
##
## Response: intense_svar
## Sum Sq Df F value Pr(>F)
## (Intercept) 61767 1 40.8930 1.777e-09 ***
## plev 7042 1 4.6620 0.03236 *
## vsex 29895 1 19.7923 1.634e-05 ***
## intense_rvar 184927 1 122.4323 < 2.2e-16 ***
## plev:vsex 40 1 0.0262 0.87160
## Residuals 235630 156
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
resomean <- aov(form_smean ~ plev*vsex + form_rmean, data = d_clean)
Anova(resomean, type="III")
## Anova Table (Type III tests)
##
## Response: form_smean
## Sum Sq Df F value Pr(>F)
## (Intercept) 35300 1 5.0525 0.0259916 *
## plev 13 1 0.0019 0.9651132
## vsex 80646 1 11.5431 0.0008630 ***
## form_rmean 89319 1 12.7845 0.0004656 ***
## plev:vsex 170 1 0.0243 0.8763623
## Residuals 1089894 156
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
resovar <- aov(form_svar ~ plev*vsex + form_rvar, data = d_clean)
Anova(resovar, type="III")
## Anova Table (Type III tests)
##
## Response: form_svar
## Sum Sq Df F value Pr(>F)
## (Intercept) 5.3682e+09 1 28.8227 2.826e-07 ***
## plev 8.7633e+07 1 0.4705 0.4938
## vsex 4.5357e+07 1 0.2435 0.6224
## form_rvar 4.9801e+08 1 2.6739 0.1040
## plev:vsex 1.5279e+07 1 0.0820 0.7749
## Residuals 2.9055e+10 156
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Were you able to reproduce the results you attempted to reproduce? If not, what part(s) were you unable to reproduce?
I managed to reproduce all the results except the effect of rank on loudness (i.e., mean intensity), which had an F-value > 1, though it was still non-significant, so it did not influence the conclusion of the findings.
How difficult was it to reproduce your results?
Not too difficult.
What aspects made it difficult? What aspects made it easy?
Finding the right packages and commands to carry out the analyses required a bit of time and effort.