load data.
d_raw <- read_csv(here("study1/raw_data/kag_v1_raw_data.csv")) %>%
select(-seq) %>%
gather(key=trial, value=answer, -subid) %>%
mutate(answer = as.numeric(as.character(case_when(
answer == "y" ~ "1",
answer == "n" ~ "0",
TRUE ~ "NA"))
))
## Parsed with column specification:
## cols(
## .default = col_character(),
## subid = col_integer()
## )
## See spec(...) for full column specifications.
## Warning in evalq(as.numeric(as.character(case_when(answer == "y" ~ "1", :
## NAs introduced by coercion
merge and clean data.
log <- read_csv(here("study1/info/kag_v1_log.csv"))
## Parsed with column specification:
## cols(
## subid = col_integer(),
## seq = col_character(),
## initial = col_character(),
## age = col_integer(),
## sex = col_character(),
## education = col_character(),
## city = col_character(),
## foreign_lang = col_character(),
## foreign_lang_level = col_character(),
## foreign_experience = col_character(),
## foreign_years = col_double(),
## disability = col_character()
## )
info <- read_csv(here("study1/info/kag_v1_order.csv")) %>%
gather(key=trial, value=value, scope_test1:neg_test16) %>%
separate(trial, into=c("kind", "trial")) %>%
spread(kind, value)
## Parsed with column specification:
## cols(
## .default = col_character(),
## subid = col_integer()
## )
## See spec(...) for full column specifications.
d <- left_join(d_raw, info) %>%
left_join(., log) %>%
filter(trial != "practice") %>%
mutate(scope = fct_relevel(scope, "Q"),
scope = fct_recode(scope,
"neg > Q" = "N",
"Q > neg" = "Q")) %>%
mutate(neg = fct_recode(neg,
"long" = "L",
"short" = "S"))
## Joining, by = c("subid", "trial")
## Joining, by = "subid"
analysis.
d %>%
filter(grepl("test", trial), !is.na(scope)) %>%
group_by(neg, scope, subid) %>%
summarise(answer = mean(answer, na.rm=T)) %>%
group_by(neg, scope) %>%
multi_boot_standard(col="answer") %>%
rename(answer=mean) %>%
ggplot(., aes(x=scope, y=answer, fill=neg)) +
geom_bar(position=position_dodge(), stat = "identity") +
geom_linerange(aes(ymin=ci_lower, ymax=ci_upper), position=position_dodge(width=.9), stat = "identity") +
geom_hline(yintercept = .5, lty=2) +
ylab("proportion acceptance") +
scale_fill_ptol()
distribution of responses.
d %>%
filter(grepl("test", trial), !is.na(neg), !is.na(scope)) %>%
group_by(subid, neg, scope) %>%
summarise(mean = mean(answer, na.rm=T)) %>%
mutate(scope = fct_recode(scope,
"Q" = "Q > neg", "N" = "neg > Q")) %>%
spread(scope, mean) %>%
ggplot(.,
aes(x=N, y=Q)) +
# geom_raster(aes(fill = count)) +
# stat_bin2d(aes(fill = ..count..), bins = 16) +
geom_count() +
# geom_tile(aes(fill = count, width = .25, height = .25)) +
# xlim(c(0,1)) +
# ylim(c(0,1)) +
xlab("Acceptance rate for Neg > Q") +
ylab("Acceptance rate for Q > Neg") +
ggtitle("Acceptance rate for Q > Neg vs. Neg > Q") +
scale_size(guide = guide_legend(title = "Number of participants"), breaks=c(2, 4, 6, 8, 10))
load data from follow-up.
d1 <- read.csv(here("study3/processed_data/KAGresults_org.csv"))
log <- read.csv(here("study3/processed_data/KAGparticipantInfo_org.csv"))
d1 <- left_join(d1, log) %>%
filter(!is.na(age))
## Joining, by = "subid"
levels(d1$answer) <- c(0, 1)
d1 <- d1 %>%
mutate(answer = as.numeric(as.character(answer))) %>%
mutate(quant_type = substr(scope, 3, 3)) %>%
mutate(quant_type = ifelse(quant_type == "+", "≈more_than", "reg")) %>%
mutate(scope = substr(scope, 1, 2)) %>%
filter(!is.na(quant_type))
distribution of responses.
# dividing by responses to neg>Q
ms <- d1 %>%
filter(scope == "QN" | scope == "NQ") %>%
group_by(scope, subid) %>%
summarize(
answer = mean(answer, na.rm=TRUE)
)
ggplot(data=ms, aes(x=answer)) +
geom_histogram() +
facet_wrap(~scope)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
# count participants by "scope access"
ms1 <- ms %>%
filter(scope == "QN" | scope == "NQ") %>%
spread(scope, answer) %>%
mutate(NQ_acc = ifelse(NQ >= 0.75, 1, 0),
QN_acc = ifelse(QN >= 0.75, 1, 0),
scope_acc = ifelse(NQ_acc == 1 & QN_acc == 1, "both",
ifelse(NQ_acc == 1 & QN_acc == 0, "NQ_only",
ifelse(NQ_acc == 0 & QN_acc == 1, "QN_only", "neither")))) %>%
mutate(scope_acc = factor(scope_acc, levels = c("QN_only", "NQ_only", "both", "neither")),
subid = as.factor(subid))
p <- ggplot(ms1,
aes(x=scope_acc, fill=scope_acc))
p +
geom_bar(stat="count")
ms2 <- ms %>%
spread(scope, answer) %>%
group_by(NQ, QN) %>%
summarise(count = n())
ggplot(ms2,
aes(x=NQ, y=QN, size=count)) +
# geom_raster(aes(fill = count)) +
# stat_bin2d(aes(fill = ..count..), bins = 16) +
geom_point() +
# geom_tile(aes(fill = count, width = .25, height = .25)) +
# xlim(c(0,1)) +
# ylim(c(0,1)) +
xlab("Acceptance rate for Neg > Q") +
ylab("Acceptance rate for Q > Neg") +
ggtitle("Acceptance rate for Q > Neg vs. Neg > Q") +
scale_size(guide = guide_legend(title = "Number of participants"), breaks=c(2, 4, 6, 8, 10))
bind data together.
d0 <- d
d <- rbind(
d0 %>%
mutate(expt = "Expt 1") %>%
mutate(scope = fct_recode(scope,
"QN" = "Q > neg", "NQ" = "neg > Q")) %>%
filter(grepl("test", trial)) %>%
select(expt, subid, neg, scope, answer),
d1 %>%
mutate(expt = "Expt 2") %>%
filter(grepl("test", trial)) %>%
rename(neg = neg_type) %>%
select(expt, subid, neg, scope, answer)
)
plot proportions together.
d %>%
filter(!is.na(scope)) %>%
mutate(scope = fct_relevel(scope, "QN"),
scope = fct_recode(scope,
"neg > Q" = "NQ",
"Q > neg" = "QN")) %>%
group_by(expt, neg, scope, subid) %>%
summarise(answer = mean(answer, na.rm=T)) %>%
group_by(expt, neg, scope) %>%
multi_boot_standard(col="answer") %>%
rename(answer=mean) %>%
ggplot(., aes(x=scope, y=answer, fill=neg)) +
geom_bar(position=position_dodge(), stat = "identity") +
geom_linerange(aes(ymin=ci_lower, ymax=ci_upper), position=position_dodge(width=.9), stat = "identity") +
facet_grid(.~expt) +
geom_hline(yintercept = .5, lty=2) +
ylab("proportion acceptance") +
scale_fill_ptol()
plot distribution together.
ms <- d %>%
filter(!is.na(neg), !is.na(scope)) %>%
group_by(expt, subid, scope) %>%
summarise(mean = mean(answer, na.rm=T)) %>%
spread(scope, mean)
ggplot(ms,
aes(x=NQ, y=QN)) +
geom_jitter(data=filter(ms, NQ<=.5 | QN<=.5)) +
# scale_size(guide = guide_legend(title = "Number of participants", override.aes = list(col="black")), breaks=c(2, 4, 6, 8, 10)) +
facet_grid(.~expt) +
xlab("Acceptance rate for Neg > Q") +
ylab("Acceptance rate for Q > Neg") +
ggtitle("Acceptance rate for Q > Neg vs. Neg > Q") +
geom_jitter(col="red", data=filter(ms, NQ>.5 & QN>.5)) +
xlim(-0.1,1.1) +
ylim(-0.1,1.1) +
theme_few()