1 Set up R environment

library(tidyverse)
library(ggplot2)
library(ggpubr)
library(plyr)
library(magick)
library(png)
library(EBImage)
library(lme4)
library(lmerTest)

2 Set the R working drectory to the main experiment directory.

setwd("/Users/adambarnas/Box/MetaAwareness/data/")  

3 Read in data files.

Rensink_RTs_likelihood_no_NA <- read_csv("Rensink_RTs_likelihood_no_NA.csv")
Ma_RTs_likelihood_no_NA <- read_csv("Ma_RTs_likelihood_no_NA.csv")
Wolfe1_RTs_likelihood_no_NA <- read_csv("Wolfe1_RTs_likelihood_no_NA.csv")

tbl_all <- rbind(Rensink_RTs_likelihood_no_NA, Ma_RTs_likelihood_no_NA, Wolfe1_RTs_likelihood_no_NA)

4 Compute average likelihood rating.

tbl_all_subj_avg <- tbl_all %>%
  group_by(workerId,image) %>%
  dplyr::summarize(average = mean(likelihood_rating)) %>%
  spread(image,average) %>% 
  mutate(subj_avg = rowMeans(.[-1], na.rm = TRUE))
mean(tbl_all_subj_avg$subj_avg)
## [1] 3.213581

5 Mixed effects model and correlation.

fit0 <- lmer(detection_rt ~ likelihood_rating + (1 | workerId) + (1 | image) + (1 | stim_set) + (1 | change_type), data=tbl_all)
summary(fit0)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: detection_rt ~ likelihood_rating + (1 | workerId) + (1 | image) +  
##     (1 | stim_set) + (1 | change_type)
##    Data: tbl_all
## 
## REML criterion at convergence: 12214.1
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.3766 -0.4017 -0.1133  0.1294  8.0915 
## 
## Random effects:
##  Groups      Name        Variance Std.Dev.
##  image       (Intercept)  1.7024  1.3048  
##  workerId    (Intercept)  7.9384  2.8175  
##  change_type (Intercept)  0.4031  0.6349  
##  stim_set    (Intercept)  0.9475  0.9734  
##  Residual                24.9922  4.9992  
## Number of obs: 1970, groups:  
## image, 228; workerId, 83; change_type, 5; stim_set, 3
## 
## Fixed effects:
##                    Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept)         10.4817     0.8167    4.2250  12.834 0.000153 ***
## likelihood_rating   -0.3682     0.1063 1236.3604  -3.462 0.000554 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## liklhd_rtng -0.407
corr <- tbl_all %>% 
  group_by(image) %>% 
  dplyr::summarize(detection_rt = mean(detection_rt), likelihood_rating = mean(likelihood_rating))
corr %>%
  ggscatter(y = "detection_rt", x = "likelihood_rating", ylab = "Change Detection RT (sec)", xlab = "Likelihood of Detecting Change", title = "N = 83", fill = "#f7a800", color = "#f7a800", add = "reg.line", cor.coef = TRUE, cor.coeff.args = list(method = "pearson", label.x = 1, label.y = 5, label.sep = "\n"), xlim = c(1, 5), ylim = c(0, 50))

Dropping image-116 (Wolfe1) from the analyses. Obvious outlier.

tbl_all_no_outlier <- tbl_all %>% 
  filter(image != "image-116")

fit1 <- lmer(detection_rt ~ likelihood_rating + (1 | workerId) + (1 | image) + (1 | stim_set) + (1 | change_type), data=tbl_all_no_outlier)
summary(fit1)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: detection_rt ~ likelihood_rating + (1 | workerId) + (1 | image) +  
##     (1 | stim_set) + (1 | change_type)
##    Data: tbl_all_no_outlier
## 
## REML criterion at convergence: 12154.6
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.4197 -0.4004 -0.1127  0.1210  8.1924 
## 
## Random effects:
##  Groups      Name        Variance Std.Dev.
##  image       (Intercept)  1.4334  1.1973  
##  workerId    (Intercept)  7.7222  2.7789  
##  change_type (Intercept)  0.3936  0.6274  
##  stim_set    (Intercept)  0.8443  0.9189  
##  Residual                24.5541  4.9552  
## Number of obs: 1968, groups:  
## image, 227; workerId, 83; change_type, 5; stim_set, 3
## 
## Fixed effects:
##                    Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept)         10.5721     0.7881    4.3490  13.416 0.000105 ***
## likelihood_rating   -0.4048     0.1046 1228.4465  -3.869 0.000115 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr)
## liklhd_rtng -0.415
corr %>%
  filter(image!="image-116") %>% 
  ggscatter(y = "detection_rt", x = "likelihood_rating", ylab = "Change Detection RT (sec)", xlab = "Likelihood of Detecting Change", title = "N = 83", fill = "#f7a800", color = "#f7a800", add = "reg.line", cor.coef = TRUE, cor.coeff.args = list(method = "pearson", label.x = 1, label.y = 5, label.sep = "\n"), xlim = c(1, 5), ylim = c(0, 40))