Summarize subject-level data

#### summarize subject-level data
subj_response <- resp_data%>%
  group_by(subject,trial_kind,list_id,rotation_start) %>%
  summarize(n=n(),
            outlier_resp=sum(diff_response>60),
            mean_diff=mean(diff_response), 
            mean_abs_diff=mean(abs(diff_response)),
            median_diff=median(diff_response),
            median_abs_diff=median(abs(diff_response)),
            mean_rt=mean(rt),
            median_rt=median(rt),
            exclude=exclude[1])

subj_response  %>%
  arrange(subject,trial_kind) %>%
  DT::datatable()

Handle participant-level and trial-level exclusions

Excluding 9 participants who havea disproportionate number of apparently random responses.

#exclude participants
resp_data_exclusions <- resp_data %>%
  filter(exclude=="n")
subj_response_clean <- subj_response %>%
  filter(exclude=="n")

Excluding outlier trials (>60 degree difference). About 3.08% of remaining trials.

#exclude responses over 60 (~3%)
resp_data_clean <- resp_data_exclusions %>%
  filter(abs(diff_response)<=60)

Descriptive Plots

Difference in Response (All Trials)

Difference in response from target shape for all trials, with smoothed fit across all data.

ggplot(resp_data_clean,aes(x=correct_response,y=diff_response))+
  geom_jitter(alpha=0.15)+
  geom_hline(yintercept=0,size=1.2,color="firebrick")+
  geom_smooth()+
  facet_wrap(~trial_kind)

ggsave(here("figures","vcs_memory_difference_response.pdf"), width=9,  height=6)

Histogram in response frequency by item/ shape

summarize_response_location <- resp_data %>%
  count(trial_kind,response)

ggplot(summarize_response_location,aes(response,n))+
  geom_histogram(stat="identity")+
  #geom_vline(xintercept=seq(0,360,10),color="red")+
  facet_wrap(~trial_kind)

Item-wise Analysis

Average response bias by item/ shape

#### item-wise analysis ####
item_response <- resp_data_clean %>%
  group_by(correct_response,trial_kind) %>%
  summarize(
    N=n(),
    mean_diff=mean(diff_response),
    sd_diff=sd(diff_response),
    mean_abs_diff=mean(abs(diff_response)),
    sd_abs_diff=sd(abs(diff_response)),
    simpson_diversity=simpson_diversity[1],
    modal_agreement=modal_agreement[1],
    modal_response_agreement=modal_response_agreement[1],
  )

ggplot(item_response,aes(correct_response,mean_diff))+
  geom_point()+
  geom_smooth(method="gam")+
  #geom_smooth(aes(y=sd_diff),color="red")+
  geom_line(aes(y=modal_agreement*10),col="red")+
  #geom_line(aes(y=modal_response_agreement*10),col="purple")+
  geom_line(aes(y=simpson_diversity*10),col="green")+
  facet_wrap(~trial_kind)

Smoothing in the plot uses GAMS. The colored lines indicate various measures of nameability (scaled up for visibility on the y-axis).

Red = Modal Agreement.

Green = Simpson Diversity.

Correlations with Nameability Values

Mean Difference

Undelayed

cor_mat_undelayed <- cor(filter(item_response,trial_kind=="undelayed")[,c("mean_diff","sd_diff","simpson_diversity","modal_agreement","modal_response_agreement")])

p.mat_undelayed <- cor_pmat(filter(item_response,trial_kind=="undelayed")[,c("mean_diff","sd_diff","simpson_diversity","modal_agreement","modal_response_agreement")])

ggcorrplot(cor_mat_undelayed,type="lower",method="circle",lab=TRUE)

Delayed

cor_mat_delayed <- cor(filter(item_response,trial_kind=="delayed")[,c("mean_diff","sd_diff","simpson_diversity","modal_agreement","modal_response_agreement")])

p.mat_delayed <- cor_pmat(filter(item_response,trial_kind=="delayed")[,c("mean_diff","sd_diff","simpson_diversity","modal_agreement","modal_response_agreement")])

ggcorrplot(cor_mat_delayed,type="lower",method="circle",lab=TRUE)

Tables

Undelayed
Correlation Values
cor_mat_undelayed %>%
  kable()
mean_diff sd_diff simpson_diversity modal_agreement modal_response_agreement
mean_diff 1.0000000 0.1482243 -0.1351491 -0.2095021 -0.0483246
sd_diff 0.1482243 1.0000000 0.0679155 0.1276163 -0.0551980
simpson_diversity -0.1351491 0.0679155 1.0000000 0.9405521 0.8790187
modal_agreement -0.2095021 0.1276163 0.9405521 1.0000000 0.7837597
modal_response_agreement -0.0483246 -0.0551980 0.8790187 0.7837597 1.0000000
P-Values
p.mat_undelayed %>%
  kable()
mean_diff sd_diff simpson_diversity modal_agreement modal_response_agreement
mean_diff 0.0000000 0.3882810 0.4319306 0.2200801 0.7795706
sd_diff 0.3882810 0.0000000 0.6939007 0.4582594 0.7491626
simpson_diversity 0.4319306 0.6939007 0.0000000 0.0000000 0.0000000
modal_agreement 0.2200801 0.4582594 0.0000000 0.0000000 0.0000000
modal_response_agreement 0.7795706 0.7491626 0.0000000 0.0000000 0.0000000
Delayed
Correlation Values
cor_mat_delayed %>%
  kable()
mean_diff sd_diff simpson_diversity modal_agreement modal_response_agreement
mean_diff 1.0000000 0.3338581 0.0001419 -0.1129869 0.0663066
sd_diff 0.3338581 1.0000000 -0.2687934 -0.3398370 -0.2902941
simpson_diversity 0.0001419 -0.2687934 1.0000000 0.9405521 0.8790187
modal_agreement -0.1129869 -0.3398370 0.9405521 1.0000000 0.7837597
modal_response_agreement 0.0663066 -0.2902941 0.8790187 0.7837597 1.0000000
P-Values
p.mat_delayed %>%
  kable()
mean_diff sd_diff simpson_diversity modal_agreement modal_response_agreement
mean_diff 0.0000000 0.0465951 0.9993444 0.5117581 0.7008135
sd_diff 0.0465951 0.0000000 0.1129269 0.0425744 0.0858880
simpson_diversity 0.9993444 0.1129269 0.0000000 0.0000000 0.0000000
modal_agreement 0.5117581 0.0425744 0.0000000 0.0000000 0.0000000
modal_response_agreement 0.7008135 0.0858880 0.0000000 0.0000000 0.0000000

Absolute Difference

Undelayed

cor_mat_undelayed <- cor(filter(item_response,trial_kind=="undelayed")[,c("mean_abs_diff","sd_abs_diff","simpson_diversity","modal_agreement","modal_response_agreement")])

p.mat_undelayed <- cor_pmat(filter(item_response,trial_kind=="undelayed")[,c("mean_abs_diff","sd_abs_diff","simpson_diversity","modal_agreement","modal_response_agreement")])

ggcorrplot(cor_mat_undelayed,type="lower",method="circle",lab=TRUE)

Delayed

cor_mat_delayed <- cor(filter(item_response,trial_kind=="delayed")[,c("mean_abs_diff","sd_abs_diff","simpson_diversity","modal_agreement","modal_response_agreement")])

p.mat_delayed <- cor_pmat(filter(item_response,trial_kind=="delayed")[,c("mean_abs_diff","sd_abs_diff","simpson_diversity","modal_agreement","modal_response_agreement")])

ggcorrplot(cor_mat_delayed,type="lower",method="circle",lab=TRUE)

Tables

Undelayed
Correlation Values
cor_mat_undelayed %>%
  kable()
mean_abs_diff sd_abs_diff simpson_diversity modal_agreement modal_response_agreement
mean_abs_diff 1.0000000 0.8548502 0.0969053 0.1538294 -0.0420252
sd_abs_diff 0.8548502 1.0000000 0.0489952 0.1240683 -0.0831011
simpson_diversity 0.0969053 0.0489952 1.0000000 0.9405521 0.8790187
modal_agreement 0.1538294 0.1240683 0.9405521 1.0000000 0.7837597
modal_response_agreement -0.0420252 -0.0831011 0.8790187 0.7837597 1.0000000
P-Values
p.mat_undelayed %>%
  kable()
mean_abs_diff sd_abs_diff simpson_diversity modal_agreement modal_response_agreement
mean_abs_diff 0.0000000 0.0000000 0.5739537 0.3703859 0.8077268
sd_abs_diff 0.0000000 0.0000000 0.7765891 0.4709521 0.6299164
simpson_diversity 0.5739537 0.7765891 0.0000000 0.0000000 0.0000000
modal_agreement 0.3703859 0.4709521 0.0000000 0.0000000 0.0000000
modal_response_agreement 0.8077268 0.6299164 0.0000000 0.0000000 0.0000000
Delayed
Correlation Values
cor_mat_delayed %>%
  kable()
mean_abs_diff sd_abs_diff simpson_diversity modal_agreement modal_response_agreement
mean_abs_diff 1.0000000 0.7040791 -0.1262459 -0.2184927 -0.2019600
sd_abs_diff 0.7040791 1.0000000 -0.2486908 -0.3052117 -0.2412904
simpson_diversity -0.1262459 -0.2486908 1.0000000 0.9405521 0.8790187
modal_agreement -0.2184927 -0.3052117 0.9405521 1.0000000 0.7837597
modal_response_agreement -0.2019600 -0.2412904 0.8790187 0.7837597 1.0000000
P-Values
p.mat_delayed %>%
  kable()
mean_abs_diff sd_abs_diff simpson_diversity modal_agreement modal_response_agreement
mean_abs_diff 0.0000000 0.0000017 0.4631401 0.2004662 0.2375176
sd_abs_diff 0.0000017 0.0000000 0.1435836 0.0702792 0.1562796
simpson_diversity 0.4631401 0.1435836 0.0000000 0.0000000 0.0000000
modal_agreement 0.2004662 0.0702792 0.0000000 0.0000000 0.0000000
modal_response_agreement 0.2375176 0.1562796 0.0000000 0.0000000 0.0000000

Response Difference By Start Value

ggplot(filter(resp_data_clean,trial_kind=="delayed"&abs(diff_response)<30),aes(x=start_value,y=diff_response))+
  geom_jitter(alpha=0.15)+
  geom_hline(yintercept=0,size=1.2,color="firebrick")+
  geom_smooth(method="loess")+
  geom_vline(aes(xintercept=correct_response))+
  facet_wrap(~correct_response)