Introduction:

This document contains the models and results for the statistical analyses performed for Emo Distraction 1 - a collaborative project between the University of Louisville (Dr. Shae Morgan), Vanderbilt (Dr. Erin Picou), and the University of Utah (Dr. Sam Gustafson and Liz Young, M.S.).

The Experiment measures the ratings of arousal and valence for stimuli that were previously utilized in a behavioral distraction paradigm. This should allow us to identify whether the perceived arousal or valence of a stimulus has any effect on the extent to which that stimulus acts as a distraction in a separate behavioral paradigm. Further, we had questions about the duration of a stimulus (500 ms vs full) and scaling procedure (peakScaled vs RMS) and whether these methodological considerations have any effect on a listeners' perception of the stimulus. Data were collected via Gorilla, and online platform. Users adjusted their volume to a "comfortable level" and rated the stimuli.

Cleaning Data:

  1. Removed IADS control stimuli
#remove IADs control stimuli
datNoIADS <- subset(dat, `Stimuli Type` == 'Distractor')
  1. When importing the data from the raw data, some presentations (n=3) were not recorded due to a loading delay greater than 10 seconds. These stimuli were coded with a response id of 10, and excluded from the analysis.
#A loading delay of 10s = 3 stimuli discarded (5022738, response id: 10)
datClean <- subset(datNoIADS,Response != 10)
  1. I took out the "noise" trials from Sam's data (since the Gorilla stimuli were presented in Quiet)
#do only quiet trials from Sam's data because ours was in quiet.
datDistClean <- subset(datDist,NoiseCond == 0   )
  1. modified filenames so that ratings of stimuli could be averaged
  1. removed "-peak"
  2. removed "_RMS"
  3. ensured extensions were lowercase (.wav)
#separate Arousal and Valence Data
datA <- subset(datClean, `Zone Name` == "ArousalSlider")
datV <- subset(datClean, `Zone Name` != "ArousalSlider")

#clean stimuli names to make sure they all match between Gorilla and Sam's Data
dfA1 <- datA %>% 
  mutate(Stimuli = gsub("_RMS", "", Stimuli))
dfV1 <- datV %>% 
  mutate(Stimuli = gsub("_RMS", "", Stimuli))
dfA2 <- dfA1 %>% 
  mutate(Stimuli = gsub("-peak", "", Stimuli))
dfV2 <- dfV1 %>% 
  mutate(Stimuli = gsub("-peak", "", Stimuli))
dfA <- dfA2 %>% 
  mutate(Stimuli = gsub(".WAV", ".wav", Stimuli))
dfV <- dfV2 %>% 
  mutate(Stimuli = gsub(".WAV", ".wav", Stimuli))
dfDC <- datDistClean %>%
   mutate(DistItem = gsub(".WAV",".wav",DistItem))
  1. Averaged PC, RT, Mean Arousal, and Mean Valence across listeners for each stimulus
#data averaged across peakScaled and RMS responses
dfA2 <-summarise(group_by(dfA, Stimuli), MeanA=mean(Response), SDA=sd(Response))
dfV2 <-summarise(group_by(dfV, Stimuli), MeanV=mean(Response), SDV=sd(Response))
dfPC <-summarise(group_by(dfDC, DistItem), PC=mean(Response), RT=mean(VRT1))

#joined dataframes into a single frame
dfA2$MeanV <- dfV2$MeanV
dfA2$SDV <- dfV2$SDV
  1. Performed a check to make sure that no stimuli were missing
#sanity checks - all items in Sam's study appeared in ours 
dfPC$DistItem[!(dfPC$DistItem %in% dfA2$Stimuli)] #number of items from Sam's NOT in ours
## character(0)
length(intersect(dfA2$Stimuli,dfPC$DistItem)) #total intersections between the two datasets
## [1] 78
  1. Merged percent correct (PC) and reaction time (VRT1) columns into the mean Arousal (MeanA) and Valence (MeanV) dataframe. This resulted in 78 matched stimuli between the 2 experiments, with mean and standard deviations for arousal and valence, percent correct, and reaction time data.
#Obtain the reduced list of items with their mean V and A values, PC, and RT
dfMerged <- merge(dfA2,dfPC, by.x = "Stimuli", by.y = "DistItem")
  1. There were 2 NA reaction times (not saved from Sam's data) - these were omited for a final dataframe containing 76 observations (stimuli) with all the data needed to perform correlations.
#remove NA RT values that made it to this point
dfReduced <- na.omit(dfMerged)

Analysis:

I ran correlations between the four primary variables we had for each stimulus.

cor.test(dfReduced$MeanA, dfReduced$MeanV)
## 
##  Pearson's product-moment correlation
## 
## data:  dfReduced$MeanA and dfReduced$MeanV
## t = -11.107, df = 74, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.8623435 -0.6877227
## sample estimates:
##        cor 
## -0.7905957
cor.test(dfReduced$MeanA, dfReduced$PC)
## 
##  Pearson's product-moment correlation
## 
## data:  dfReduced$MeanA and dfReduced$PC
## t = -0.19805, df = 74, p-value = 0.8435
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2471899  0.2034944
## sample estimates:
##         cor 
## -0.02301715
cor.test(dfReduced$MeanA, dfReduced$RT)
## 
##  Pearson's product-moment correlation
## 
## data:  dfReduced$MeanA and dfReduced$RT
## t = 1.1785, df = 74, p-value = 0.2424
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.09255916  0.35045995
## sample estimates:
##       cor 
## 0.1357288
cor.test(dfReduced$MeanV, dfReduced$PC)
## 
##  Pearson's product-moment correlation
## 
## data:  dfReduced$MeanV and dfReduced$PC
## t = 0.28683, df = 74, p-value = 0.775
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.1935853  0.2568505
## sample estimates:
##       cor 
## 0.0333247
cor.test(dfReduced$MeanV, dfReduced$RT)
## 
##  Pearson's product-moment correlation
## 
## data:  dfReduced$MeanV and dfReduced$RT
## t = -0.92936, df = 74, p-value = 0.3557
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.3249966  0.1209738
## sample estimates:
##        cor 
## -0.1074113
cor.test(dfReduced$PC, dfReduced$RT)
## 
##  Pearson's product-moment correlation
## 
## data:  dfReduced$PC and dfReduced$RT
## t = -2.9481, df = 74, p-value = 0.004276
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.5122127 -0.1065262
## sample estimates:
##        cor 
## -0.3241956
#create pairs plot
pairs.panels(dfReduced[, c('MeanA', 'MeanV','RT','PC')])

#show correlation table
cor(dfReduced[, c('MeanA', 'MeanV','PC','RT')])
##             MeanA      MeanV          PC         RT
## MeanA  1.00000000 -0.7905957 -0.02301715  0.1357288
## MeanV -0.79059569  1.0000000  0.03332470 -0.1074113
## PC    -0.02301715  0.0333247  1.00000000 -0.3241956
## RT     0.13572876 -0.1074113 -0.32419560  1.0000000