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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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)
